TimeAccounting
5.0.92
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
- Updated translations, thanks to all translators.
- Changed default group configuration and implemented migration path for existing systems. TimeAccounting specific user group will no longer be automatically created on new systems.
- Initial version for OTRS 6.
- Updated translations, thanks to all translators.
- Bug#12104 - TimeAccounting statistic silently returns only last full month unless Period filter is used.
A Time Registration Module.
Ein Zeiterfassungsmodul.
Egy munkaidő nyilvántartás modul.
6.0.x
<br>
<b>WELCOME</b>
<br>
<br>
You are about to install the OTRS package TimeAccounting.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WILLKOMMEN</b>
<br>
<br>
Sie sind im Begriff das OTRS-Paket TimeAccounting zu installieren.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>BIENVENIDO</b>
<br>
<br>
Ud. está a punto de instalar el paquete Contabilidad de Tiempo de OTRS.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ÜDVÖZÖLJÜK</b>
<br>
<br>
Ön a TimeAccounting OTRS csomag telepítésére készül.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>NOTICE</b>
<br>
<br>
In order to grant users access to the time accounting 'settings' and 'reporting' features, you need to add them as member to the group 'admin'.
<br>
<br>
The menu items that were added by this package will be visible after you log-in to the system again.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>HINWEIS</b>
<br>
<br>
In order to grant users access to the time accounting 'settings' and 'reporting' features, you need to add them as member to the group 'admin'.
<br>
<br>
Die von diesem Paket hinzugefügten Menü-Punkte sind erst nach einem erneuten Anmeldevorgang im System sichtbar.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>NOTA</b>
<br>
<br>
Para permitirles a los usuarios el acceso a las functiones de contabilidad de tiempo 'ajustes' y 'reporteo', es necesario añadirlos como miembros del grupo 'admin'.
<br>
<br>
Los elementos del menú agregados por este paquete, serán visibles luego de reiniciar sesión en el sistema.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>FIGYELMEZTETÉS</b>
<br>
<br>
In order to grant users access to the time accounting 'settings' and 'reporting' features, you need to add them as member to the group 'admin'.
<br>
<br>
Azok a menüpontok, amelyeket ez a csomag adott hozzá, azután lesznek láthatóak, miután ismét bejelentkezik a rendszerbe.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ATTENTION</b>
<br>
<br>
If you uninstall this package, all database tables that were created during installation will be deleted.
All data from these tables will be irrevocably lost!
<br>
<br>
The group 'time_accounting' that was created during package installation will be deactivated.
You can activate this group again in the admin area.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ACHTUNG</b>
<br>
<br>
Bei der Deinstallation werden die von diesem Paket angelegten Datenbank-Tabellen gelöscht.
Alle darin enthaltenen Daten gehen unwiderruflich verloren!
<br>
<br>
Die von diesem Paket angelegte Gruppe 'time_accounting' wird deaktiviert.
Sie kann jederzeit im Admin-Bereich wieder aktiviert werden.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ATTENTION</b>
<br>
<br>
Si usted desinstala este paquete, todas las tablas de la base de datos que se crearon durante la instalación del mismo, se eliminarán y
el contenido de dichas tablas se perderá irrevocablemente.
<br>
<br>
El grupo 'time_accounting' que se dió de alta durante la instalación del paquete, se desactivará.
Es posible reactivar dicho grupo en el área de administración.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>FIGYELEM</b>
<br>
<br>
Ha eltávolítja ezt a csomagot, akkor a telepítés során létrehozott összes adatbázistábla törlésre kerül.
Az ezekben a táblákban lévő összes adat visszavonhatatlanul el fog veszni!
<br>
<br>
A csomagtelepítés során létrehozott „time_accounting” csoport ki lesz kapcsolva.
Ezt a csoportot az adminisztrációs területen tudja ismét bekapcsolni.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WELCOME</b>
<br>
<br>
You are about to upgrade the OTRS package TimeAccounting.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WILLKOMMEN</b>
<br>
<br>
Sie sind im Begriff das OTRS-Paket TimeAccounting zu aktualisieren.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>BIENVENIDO</b>
<br>
<br>
Ud. está a punto de actualizar el paquete Contabilidad de Tiempo de OTRS.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ÜDVÖZÖLJÜK</b>
<br>
<br>
Ön a TimeAccounting OTRS csomag frissítésére készül.<br>
<br>
<br>
((enjoy))<br>
<br>
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeInstall();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_4_0_91();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_5_0_92();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUninstall();
2017-11-08 19:32:09
opms.otrs.com
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AMYD+T0j0EiL5EHpBgAARgX5PWDccMMUAAAAwGCgdAMAAAAwGCjdAAAAAAwGSjcAAAAAg4HSDQAAAMBgoHQDAAAAMBgo3QAAAAAMBko3AAAAAIOB0g0AAADAYKB0AwAAADAYKN0AAAAADAZKNwAAAACDgdINAAAAwGCgdAMAAAAwGCjdAAAAAAwGSjcAAAAAg4HSDQAAAMBgoHQDAAAAMBgmjxxx80apDtYBAAAAAI/EUSqV+l4DAAAAAAwIbpgCAAAAGAyUbgAAAAAGA6UbAAAAgMFA6QYAAABgMFC6AQAAABgMlG4AAAAABgOlGwAAAIDBQOkGAAAAYDD+H3KsT6dETQQmAAAAAElFTkSuQmCC
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgZWRpdC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50VGltZUFjY291bnRpbmdFZGl0IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0IyMjMSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+VGltZSBhY2NvdW50aW5nLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIEFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXIiPlRpbWVBY2NvdW50aW5nPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj5NZW51PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+SXRlbUFyZWE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj42MDAwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQjIyMyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQgdGltZSByZWNvcmQuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXIiPlRpbWVBY2NvdW50aW5nPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4yMDA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5PdmVydmlldzwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldyMjIzEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+T3ZlcnZpZXcuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPk92ZXJ2aWV3PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjZXNzS2V5Ij48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjEwMDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5TZXR0aW5nczwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcjIyMxIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlNldHRpbmdzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmtPcHRpb24iPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+OTAwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+VGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlJlcG9ydGluZzwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZyMjIzAwMi1UaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ1NTIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkRlZmF1bHRzLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuVGFibGUuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuQWdlbnQuUmVwb3J0aW5nLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nIyMjMSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlByb2plY3QgdGltZSByZXBvcnRpbmcuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlJlcG9ydGluZzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmtPcHRpb24iPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+NTAwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nVmlldyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgdmlldy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlZpZXc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50VGltZUFjY291bnRpbmdWaWV3IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3ROYW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0UHJvamVjdFN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj52YWxpZDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvbk5hbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvblN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nU2V0dGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5pbnZhbGlkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPnZhbGlkPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlcldlZWtseUhvdXJzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj40MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyTGVhdmVEYXlzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4yMzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyT3ZlcnRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEYXRlU3RhcnQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iIj4yMDE3LTAxLTAxPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEYXRlRW5kIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nU2V0dGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPjIwMTctMTItMzE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRlc2NyaXB0aW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nU2V0dGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPlB1dCB5b3VyIGRlc2NyaXB0aW9uIGhlcmUuPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJTdGF0dXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPmludmFsaWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+dmFsaWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OlRpbWVBY2NvdW50aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj40PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6VGltZUFjY291bnRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjI8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOb3RpZnlNb2R1bGUjIyM4ODgtVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OkZyb250ZW5kTm90aWZpY2F0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5vdGlmaWNhdGlvbjo6VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6Ok1heEFsbG93ZWRJbnNlcnREYXlzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6VGltZUFjY291bnRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjEwPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6UmVkdWNlVGltZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0mZ3Q7IHRyYXZlbGluZzsgQ29udGVudCA9Jmd0OyA1MCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJ0cmF2ZWxpbmciPjUwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpJbnB1dEhvdXJzV2l0aG91dFN0YXJ0RW5kVGltZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJQcmVBcHBsaWNhdGlvbk1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QmFzZTo6UHJlQXBwbGljYXRpb25Nb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iIj5LZXJuZWw6Ok1vZHVsZXM6OkFnZW50VGltZUFjY291bnRpbmdFZGl0PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6UHJvamVjdDJSZW1hcmtSZWdFeHAiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iIj5eKD86IFBST0pFQ1RcIyB8IElORlJBOiB8IFBST0RVQ1Q6ICk8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpQcm9qZWN0TGlzdENvbnN0cmFpbnRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdFZGl0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkFjdGlvbkxpc3RDb25zdHJhaW50cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24iIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdFZGl0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpBY3RpdmVGaWx0ZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdFZGl0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6VG9vbEJhck1vZHVsZSMjIzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6VG9vbEJhcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpUb29sQmFyOjpJbmNvbXBsZXRlV29ya2luZ0RheXM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNzc0NsYXNzIj5JbmNvbXBsZXRlV29ya2luZ0RheXM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikljb24iPmZhIGZhLWNsb2NrLW88L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iU3RhdHM6OkR5bmFtaWNPYmplY3RSZWdpc3RyYXRpb24jIyNUaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6U3RhdHM8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6U3RhdHM6OkR5bmFtaWM6OlRpbWVBY2NvdW50aW5nPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpGcm9udGVuZDo6UmVwb3J0aW5nUHJvamVjdCMjI1Nob3dPbmx5QWN0aXZlVXNlcnMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6VGltZUFjY291bnRpbmc6OlZpZXdSZXBvcnRpbmdQcm9qZWN0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgo8L290cnNfY29uZmlnPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6YmdfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfQndCw0LjRgdGC0LjQvdCwINC70Lgg0LjRgdC60LDRgtC1INC00LAg0LjQt9GC0YDQuNC10YLQtSDRgdGH0LXRgtC+0LLQvtC00YHRgtCy0L7RgtC+INC30LAg0LLRgNC10LzQtSDQsiDRgtC+0LfQuCDQtNC10L0/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQstGA0LXQvNC10LLQuNGPINC30LDQv9C40YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICfQntGC0LjQtNC10YLQtSDQsiDQvdCw0YHRgtGA0L7QudC60LjRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ9CU0LDRgtCwINC30LAg0L3QsNCy0LjQs9Cw0YbQuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAn0JTQvdC4INCx0LXQtyDQt9Cw0L/QuNGB0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn0JjQt9Cx0L7RgCDQvdCwINCy0YHQuNGH0LrQuCDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ9Cc0LDRgdC+0LLQviDQstGK0LLQtdC20LTQsNC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfQnNC+0LvRjywg0LjQt9Cx0LXRgNC10YLQtSDQv9GA0LjRh9C40L3QsNGC0LAg0LfQsCDQktCw0YjQtdGC0L4g0L7RgtGB0YrRgdGC0LLQuNC1INC30LAg0LjQt9Cx0YDQsNC90LjRgtC1INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ9CS0LDQutCw0L3RhtC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ9CSINC+0YLQv9GD0YHQuiDQv9C+INCx0L7Qu9C10YHRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ9Cf0YDQuCDQuNC30LLRitC90YDQtdC00LXQvSDQvtGC0L/Rg9GB0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICfQl9Cw0LTRitC70LbQuNGC0LXQu9C90LjRgtC1INC/0L7Qu9C10YLQsCDRgdCwINC80LDRgNC60LjRgNCw0L3QuCDRgSAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn0KLRgNGP0LHQstCwINC00LAg0LLRitCy0LXQtNC10YLQtSDQvdCw0YfQsNC70L3QviDQuCDQutGA0LDQudC90L4g0LLRgNC10LzQtSDQuNC70Lgg0L/QtdGA0LjQvtC0INC+0YIg0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ9Cf0YDQvtC10LrRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn0JfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ9CX0LDQsdC10LvQtdC20LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICfQnNC+0LvRjywg0LTQvtCx0LDQstC10YLQtSDQt9Cw0LHQtdC70LXQttC60LAg0YEg0L/QvtCy0LXRh9C1INC+0YIgOCDQt9C90LDQutCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J7RgtGA0LjRhtCw0YLQtdC70L3QuNGC0LUg0LLRgNC10LzQtdC90LAg0L3QtSDRgdC1INC00L7Qv9GD0YHQutCw0YIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQndC1INGB0LUg0LTQvtC/0YPRgdC60LDRgiDQv9C+0LLRgtC+0YDQvdC4INGH0LDRgdC+0LLQtS4g0J3QsNGH0LDQu9C90L7RgtC+INCy0YDQtdC80LUg0YHRitCy0L/QsNC00LAg0YEg0LTRgNGD0LMg0LjQvdGC0LXRgNCy0LDQuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ9Cd0LXQstCw0LvQuNC00LXQvSDRhNC+0YDQvNCw0YIhINCc0L7Qu9GPLCDQstGK0LLQtdC00LXRgtC1INGH0LDRgSDRgSDRhNC+0YDQvNCw0YIg0KfQpzog0JzQnC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAg0LUg0YDQsNC30YDQtdGI0LXQvdC+INGB0LDQvNC+INC60LDRgtC+INC60YDQsNC50L3QviDQstGA0LXQvNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQstCw0LvQuNC00L3QviDQstGA0LXQvNC1ISDQldC00LjQvSDQtNC10L0g0LjQvNCwIDI0INGH0LDRgdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn0JrRgNCw0LnQvdC+0YLQviDQstGA0LXQvNC1INGC0YDRj9Cx0LLQsCDQtNCwINC1INGB0LvQtdC0INC90LDRh9Cw0LvQvdC+0YLQviDQstGA0LXQvNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cd0LUg0YHQtSDQtNC+0L/Rg9GB0LrQsNGCINC/0L7QstGC0L7RgNC90Lgg0YfQsNGB0L7QstC1LiDQmtGA0LDQudC90L7RgtC+INCy0YDQtdC80LUg0YHRitCy0L/QsNC00LAg0YEg0LTRgNGD0LMg0LjQvdGC0LXRgNCy0LDQuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQstCw0LvQuNC00LXQvSDQv9C10YDQuNC+0LQhINCV0LTQuNC9INC00LXQvSDQuNC80LAgMjQg0YfQsNGB0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn0JLQsNC70LjQtNC90LjRj9GCINC/0LXRgNC40L7QtCDRgtGA0Y/QsdCy0LAg0LTQsCDQtSDQv9C+LdCz0L7Qu9GP0Lwg0L7RgiDQvdGD0LvQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Cd0LXQstCw0LvQuNC00LXQvSDQv9C10YDQuNC+0LQhINCe0YLRgNC40YbQsNGC0LXQu9C90LjRgtC1INC/0LXRgNC40L7QtNC4INC90LUg0YHQsCDRgNCw0LfRgNC10YjQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn0JTQvtCx0LDQstC4INC10LTQuNC9INGA0LXQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ9Cc0L7QttC10YLQtSDQtNCwINC40LfQsdC10YDQtdGC0LUg0YHQsNC80L4g0LXQtNC40L0g0LXQu9C10LzQtdC90YIg0L7RgiDQutCy0LDQtNGA0LDRgtGH0LXRgtC+INC30LAg0L7RgtC80LXRgtC60LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICfQodC40LPRg9GA0L3QuCDQu9C4INGB0YLQtSwg0YfQtSDRgNCw0LHQvtGC0LjRgtC1LCDQtNC+0LrQsNGC0L4g0YHRgtC1INCyINC+0YLQv9GD0YHQuiDQv9C+INCx0L7Qu9C10YHRgj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfQodC40LPRg9GA0L3QuCDQu9C4INGB0YLQtSwg0YfQtSDRgNCw0LHQvtGC0LjRgtC1LCDQtNC+0LrQsNGC0L4g0LHRj9GF0YLQtSDQvdCwINC/0L7Rh9C40LLQutCwPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn0KHQuNCz0YPRgNC90Lgg0LvQuCDRgdGC0LUsINGH0LUg0YHRgtC1INGA0LDQsdC+0YLQuNC70LgsINC00L7QutCw0YLQviDQsdGP0YXRgtC1INC90LAg0LjQt9Cy0YrQvdGA0LXQtNC10L0g0YLRgNGD0LQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ9Ch0LjQs9GD0YDQvdC4INC70Lgg0YHRgtC1LCDRh9C1INGB0YLQtSDRgNCw0LHQvtGC0LjQu9C4INC/0L7QstC10YfQtSDQvtGCIDE2INGH0LDRgdCwPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAn0JzQtdGB0LXRh9C10L0g0L/RgNC10LPQu9C10LQg0L3QsCDQstGA0LXQvNC10YLQviDQt9CwINC+0YLRh9C40YLQsNC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ9CY0LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0ICjRh9Cw0YHQvtCy0LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ9CY0LfQstGK0L3RgNC10LbQuNC8ICjRgtC+0LfQuCDQvNC10YHQtdGGKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAn0JjQt9Cy0YrQvdGA0LXQtNC10L0g0YLRgNGD0LQgKNC+0LHRidC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfQntGB0YLQsNCy0LDRiSDQvtGC0L/Rg9GB0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7RgtC/0YPRgdC60LAgKNC00L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn0JLQt9C10YLQsCDQvtGC0L/Rg9GB0LrQsCAo0YLQvtC30Lgg0LzQtdGB0LXRhiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ9CS0LfQtdGC0LAg0L7RgtC/0YPRgdC60LAgKNC+0LHRidC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICfQntGB0YLQsNCy0LDRidCwINC+0YLQv9GD0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ9Ce0YLQv9GD0YHQuiDQv9C+INCx0L7Qu9C10YHRgiAo0LTQvdC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9Ce0YLQv9GD0YHQvdCw0YIg0LUg0LHQvtC70L3QuNGH0LXQvSAo0YLQvtC30Lgg0LzQtdGB0LXRhiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAn0J7RgtC/0YPRgdC90LDRgiDQsdC+0LvQtdC90LjRh9C10L0gKNC+0LHRidC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ9Cf0YDQtdC00L3QuNGPINC80LXRgdC10YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ9Ch0LvQtdC00LLQsNGJ0LjRjyDQvNC10YHQtdGGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICfQlNC10LvQvdC40YfQtdC9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICfQoNCw0LHQvtGC0L3QuCDRh9Cw0YHQvtCy0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAn0J7QsdGJ0L4g0YDQsNCx0L7RgtC90L4g0LLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICfQn9GA0LXQs9C70LXQtCDQvdCwINC/0YDQvtC10LrRgtCwINC90LAg0L/QvtGC0YDQtdCx0LjRgtC10LvRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICfQp9Cw0YHQvtCy0LUgKNC80LXRgdC10YfQvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn0KfQsNGB0L7QstC1ICjRhtGP0Lsg0LbQuNCy0L7RgiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfQntCx0YnQvic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICfQntGC0YfQuNGC0LDQvdC1INC90LAg0LLRgNC10LzQtdGC0L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ9Cc0LXRgdC10YfQvdCwINC90LDQstC40LPQsNGG0LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn0J7RgtC40LTQtdGC0LUg0L3QsCDQtNCw0YLQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn0J/QvtGC0YDQtdCx0LjRgtC10LvRgdC60Lgg0L7RgtGH0LXRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICfQntCx0YnQviDQt9CwINC80LXRgdC10YbQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ9Ce0LHRidC+INC30LAg0YbQtdC70LjRjyDQv9C10YDQuNC+0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfQntGC0L/Rg9GB0Log0LfQsCDQuNC30LLRitC90YDQtdC00LXQvSDRgtGA0YPQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ9Ce0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfQntGC0L/Rg9GB0Log0L/QviDQsdC+0LvQtdGB0YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAn0J7RgdGC0LDQstCw0YnQsCDQvtGC0L/Rg9GB0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICfQlNC+0LrQu9Cw0LTQuCDQt9CwINC/0YDQvtC10LrRgtCwJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfQlNC+0LrQu9Cw0LQg0LfQsCDQv9GA0L7QtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfQntGC0LLQvtGA0LXRgtC1INC+0YLRh9C10YLQvdC40Y8g0L/RgNC10LPQu9C10LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQkiDQvNC+0LzQtdC90YLQsCDRgdC1INC/0L7QutCw0LfQstCw0YIg0YHQsNC80L4g0LDQutGC0LjQstC90Lgg0L/QvtGC0YDQtdCx0LjRgtC10LvQuCDQsiDRgtC+0LfQuCDQv9GA0L7QtdC60YIuINCX0LAg0LTQsCDQv9GA0L7QvNC10L3QuNGC0LUg0YLQvtCy0LAg0L/QvtCy0LXQtNC10L3QuNC1LCDQvNC+0LvRjywg0LDQutGC0YPQsNC70LjQt9C40YDQsNC50YLQtSDQvdCw0YHRgtGA0L7QudC60LDRgtCwOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQn9C+0L3QsNGB0YLQvtGP0YnQtdC8INGB0LUg0L/QvtC60LDQt9Cy0LDRgiDQstGB0LjRh9C60Lgg0L/QvtGC0YDQtdCx0LjRgtC10LvQuCwg0L7RgtGH0LjRgtCw0YnQuCDQstGA0LXQvNC10YLQvi4g0JfQsCDQtNCwINC/0YDQvtC80LXQvdC40YLQtSDRgtC+0LLQsCDQv9C+0LLQtdC00LXQvdC40LUsINC80L7Qu9GPLCDQsNC60YLRg9Cw0LvQuNC30LjRgNCw0LnRgtC1INC90LDRgdGC0YDQvtC50LrQsNGC0LA6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQvdCw0YHRgtGA0L7QudC60LjRgtC1INC90LAg0L/RgNC+0LXQutGCINC30LAg0YHRh9C10YLQvtCy0L7QtNC90L4g0LLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLRj9C90LUg0L3QsCDQv9GA0L7QtdC60YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICfQntGC0LjQtNC10YLQtSDQsiDQvtCx0Ykg0L/RgNC10LPQu9C10LQg0L3QsCDQvdCw0YHRgtGA0L7QudC60LjRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAn0JTQvtCx0LDQstGP0L3QtSDQvdCwINC/0YDQvtC10LrRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0LDQvdC1INC90LAg0L3QsNGB0YLRgNC+0LnQutC40YLQtSDQvdCwINC/0YDQvtC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10YfQtSDQuNC80LAg0L/RgNC+0LXQutGCINGBINGC0L7QstCwINC40LzQtS4g0JzQvtC70Y8sINC40LfQsdC10YDQtdGC0LUg0LTRgNGD0LMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNCw0L3QtSDQvdCwINC90LDRgdGC0YDQvtC50LrQuNGC0LUg0LfQsCDRgdGH0LXRgtC+0LLQvtC00L3QviDQstGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAn0JTQvtCx0LDQstGP0L3QtSDQvdCwINC30LDQtNCw0YfQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ9Cf0LXRgNC40L7QtNC40YLQtSDQvdC1INC80L7Qs9Cw0YIg0LTQsCDQsdGK0LTQsNGCINC40LfRgtGA0LjRgtC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfQodC/0LjRgdGK0Log0L3QsCDQv9GA0L7QtdC60YLQuNGC0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn0KHQv9C40YHRitC6INC90LAg0LfQsNC00LDRh9C40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ9CU0L7QsdCw0LLRj9C90LUg0L3QsCDQt9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNCw0L3QtSDQvdCwINC90LDRgdGC0YDQvtC50LrQuNGC0LUg0L3QsCDQt9Cw0LTQsNGH0LjRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10YfQtSDQuNC80LAg0LfQsNC00LDRh9CwINGBINGC0L7QstCwINC40LzQtS4g0JzQvtC70Y8sINC40LfQsdC10YDQtdGC0LUg0LTRgNGD0LPQvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn0KHQv9C40YHRitC6INGBINC/0L7RgtGA0LXQsdC40YLQtdC70LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAn0J/QvtC60LDQt9Cy0LDQvdC1INC90LAg0LjQt9Cy0YrQvdGA0LXQtNC10L0g0YLRgNGD0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn0KDQsNC30YDQtdGI0LDQstCw0L3QtSDQt9CwINGB0YrQt9C00LDQstCw0L3QtdGC0L4g0L3QsCDQv9GA0L7QtdC60YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICfQndCw0YfQsNC70L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ9Ca0YDQsNC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfQlNC90Lgg0L7RgiDQvtGC0L/Rg9GB0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ9Cn0LDRgdC+0LLQtSDQv9GA0LXQtyDRgdC10LTQvNC40YbQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ9Ce0YLQvtGA0LjQt9C40YDQsNC9INC40LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfQlNCw0YLQsCDQt9CwINC90LDRh9Cw0LvQvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICfQnNC+0LvRjyDQstGK0LLQtdC00LXRgtC1INCy0LDQu9C40LTQvdCwINC00LDRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn0JTQsNGC0LAg0LfQsCDQutGA0LDQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ9Ca0YDQsNC50L3QuNGP0YIg0L/QtdGA0LjQvtC0INGC0YDRj9Cx0LLQsCDQtNCwINCx0YrQtNC1INGB0LvQtdC0INC90LDRh9Cw0LvQvtGC0L4g0L3QsCDQv9C10YDQuNC+0LTQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ9Ce0YHRgtCw0LLQsNGJ0Lgg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ9Ch0LXQtNC80LjRh9C90Lgg0YfQsNGB0L7QstC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn0JjQt9Cy0YrQvdGA0LXQtNC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ9Cd0Y/QvNCwINC90LDQvNC10YDQtdC90Lgg0LLRgNC10LzQtdCy0Lgg0L/QtdGA0LjQvtC00LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ9CU0L7QsdCw0LLQtdGC0LUg0L/QtdGA0LjQvtC0INC+0YIg0LLRgNC10LzQtSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICfQn9GA0LXQs9C70LXQtCDQvdCwINCy0YDQtdC80LXQstC40Y8g0LfQsNC/0LjRgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ9Cf0YDQtdCz0LvQtdC0INC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAn0JLRh9C10YDQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ9Cj0YLRgNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ9Cd0Y/QvNCwINC00LDQvdC90Lgg0LfQsCDRgtC+0LfQuCDQtNC10L0uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn0J7RgtGH0LXRgtC90L7RgdGCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn0J3QsNGB0YLRgNC+0LnQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ9Cc0L7Qu9GPLCDQuNC30LHQtdGA0LXRgtC1INC/0L7QvdC1INC10LTQuNC9INC00LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ9Cc0LDRgdC+0LLQviDQstC/0LjRgdCy0LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAn0JzQvtC70Y8sINC40LfQsdC10YDQtdGC0LUg0L/RgNC40YfQuNC90LAg0LfQsCDQvtGC0YHRitGB0YLQstC40LUhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn0JjQt9GC0YDQuNCy0LDQvdC1INC90LAg0LLRgNC10LzQtdGC0L4g0LfQsCDQstC/0LjRgdCy0LDQvdC1INCyINGB0YfQtdGC0L7QstC+0LTRgdGC0LLQvtGC0L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICfQn9C+0YLQstGK0YDQtNC10YLQtSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdNw7ZjaHRlbiBTaWUgd2lya2xpY2ggZGllIFplaXRlcmZhc3N1bmcgZsO8ciBkZW4gYWt0dWVsbGVuIFRhZyBsw7ZzY2hlbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnWmVpdGFicmVjaG51bmcgYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0dlaGUgenUgRWluc3RlbGx1bmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdEYXR1bXNuYXZpZ2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnTmljaHQgYXVzZ2Vmw7xsbHRlIFRhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnQWxsZSBUYWdlIGF1c3fDpGhsZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ01hc3NlbmVpbnRyYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdCaXR0ZSB3w6RobGVuIFNpZSBkZW4gR3J1bmQgZsO8ciBJaHJlIEFid2VzZW5oZWl0IGbDvHIgZGllIGF1c2dld8OkaGx0ZW4gVGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ2ltIFVybGF1Yic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnRXJrcmFua3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICfDnGJlcnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdGZWxkZXIsIGRpZSBhdXNnZWbDvGxsdCB3ZXJkZW4gbcO8c3Nlbiwgc2luZCBtaXQgZWluZW0gU3Rlcm4gIioiIGdla2VubnplaWNobmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ1NpZSBtw7xzc2VuIGVpbmUgU3RhcnQtIHVuZCBFbmR6ZWl0IG9kZXIgZWluZSBaZWl0c3Bhbm5lIGFuZ2ViZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUw6R0aWdrZWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0FubWVya3VuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluZSBBbm1lcmt1bmcgdm9uIG1laHIgYWxzIDggWmVpY2hlbiBMw6RuZ2UgZWluISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdmUgQW5nYWJlbiBzaW5kIG5pY2h0IGVybGF1YnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdEaWVzZSBTdGFydHplaXQgd3VyZGUgYmVyZWl0cyBpbiBlaW5lbSBhbmRlcmVuIEVpbnRyYWcgYW5nZWdlYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnVW5nw7xsdGlnZXMgRm9ybWF0ISBCaXR0ZSBnZWJlbiBTaWUgZWluZSBaZWl0IGltIEZvcm1hdCBISDpNTSBlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJ051ciAyNDowMCBpc3QgYWxzIEVuZHplaXQgZXJsYXVidC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdVbmfDvGx0aWdlIFplaXQhIEVpbiBUYWcgaGF0IG51ciAyNCBTdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdEaWUgRW5kemVpdCBtdXNzIG5hY2ggZGVyIFN0YXJ0emVpdCBzZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0RpZXNlIEVuZHplaXQgd3VyZGUgYmVyZWl0cyBpbiBlaW5lbSBhbmRlcmVuIEVpbnRyYWcgYW5nZWdlYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnVW5nw7xsdGlnZSBBbmdhYmUuIEVpbiBUYWcgaGF0IG51ciAyNCBTdHVuZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ0VpbmUgZ8O8bHRpZ2UgWmVpdGRhdWVyIG11c3MgZ3LDtsOfZXIgYWxzIE51bGwgc2Vpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1VuZ8O8bHRpZ2UgQW5nYWJlLiBOZWdhdGl2ZSBaZWl0c3Bhbm5lbiBzaW5kIG5pY2h0IG3DtmdsaWNoLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0VpbmUgWmVpbGUgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdTaWUga8O2bm5lbiBudXIgZWluZSBDaGVja2JveCBtYXJraWVyZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIGdlYXJiZWl0ZXQgaGFiZW4sIG9id29obCBTaWUgZXJrcmFua3Qgc2luZD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIGdlYXJiZWl0ZXQgaGFiZW4sIG9id29obCBTaWUgaW0gVXJsYXViIHNpbmQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIGdlYXJiZWl0ZXQgaGFiZW4sIG9id29obCBTaWUgw5xiZXJzdHVuZGVuIGdlbm9tbWVuIGhhYmVuPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIG1laHIgYWxzIDE2IFN0dW5kZW4gZ2VhcmJlaXRldCBoYWJlbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ01vbmF0c8O8YmVyc2ljaHQgWmVpdGJlcmljaHRlcnN0YXR0dW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfDnGJlcnN0dW5kZW4gKGluIFN0dW5kZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ8OcYmVyc3R1bmRlbiAoZGllc2VyIE1vbmF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnw5xiZXJzdHVuZGVuIChTdW1tZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnw5xiZXJzdHVuZGVuICh2ZXJibGVpYmVuZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVXJsYXViIChpbiBUYWdlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnVXJsYXVic3RhZ2UgKGRpZXNlciBNb25hdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1VybGF1YnN0YWdlIChTdW1tZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnVXJsYXVic3RhZ2UgKHZlcmJsZWliZW5kKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0Vya3Jhbmt0IChpbiBUYWdlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdFcmtyYW5rdCAoZGllc2VyIE1vbmF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdFcmtyYW5rdCAoU3VtbWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnVm9yaGVyaWdlciBNb25hdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTsOkY2hzdGVyIE1vbmF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdXb2NoZW50YWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0FyYmVpdHNzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0FyYmVpdHNzdHVuZGVuIChnZXNhbXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Byb2pla3TDvGJlcnNpY2h0IGRlcyBCZW51dHplcnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnU3R1bmRlbiAoaW0gTW9uYXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdTdHVuZGVuIChnZXNhbXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnU3VtbWUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnWmVpdGJlcmljaHRlcnN0YXR0dW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdEYXR1bXNhdXN3YWhsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdHZWhlIHp1IERhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ051dHplcmJlcmljaHRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdwcm8gTW9uYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdTdW1tZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ8OcYmVyc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1VybGF1Yic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnRXJrcmFua3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnVmVyYmxlaWJlbmRlIFVybGF1YnN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb2pla3RiZXJpY2h0ZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUHJvamVrdMO8YmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnWnVyIEJlcmljaHRlcnN0YXR0dW5nc8O8YmVyc2ljaHQgZ2VoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdEZXJ6ZWl0IHdlcmRlbiBpbiBkaWVzZW0gUHJvamVrdCBudXIgYWt0aXZlIEJlbnV0emVyIGFuZ2V6ZWlndC4gVW0gZGllc2UgRWluc3RlbGx1bmcgenUgw6RuZGVybiwgYmVhcmJlaXRlbiBTaWUgYml0dGU6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0RlcnplaXQgd2VyZGVuIGFsbGUgemVpdGVyZmFzc2VuZGVuIEJlbnV0emVyIGFuZ2V6ZWlndC4gVW0gZGllc2UgRWluc3RlbGx1bmcgenUgw6RuZGVybiwgYmVhcmJlaXRlbiBTaWUgYml0dGU6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1plaXRhYnJlY2hudW5nLVByb2pla3RlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdQcm9qZWt0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnWnVyIEVpbnN0ZWxsdW5nc8O8YmVyc2ljaHQgZ2VoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdQcm9qZWt0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1Byb2pla3RlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0VpbiBQcm9qZWt0IG1pdCBnbGVpY2hlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4gQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gYW5kZXJlbiBOYW1lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdaZWl0YWJyZWNobnVuZ3NlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdUw6R0aWdrZWl0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnRmlsdGVyIGbDvHIgUHJvamVrdGUsIEF1ZmdhYmVuIG9kZXIgQmVudXR6ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdaZWl0ZmVuc3RlciBrw7ZubmVuIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdUw6R0aWdrZWl0c2xpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnVMOkdGlna2VpdCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdUw6R0aWdrZWl0c2VpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRWluZSBUw6R0aWdrZWl0IG1pdCBnbGVpY2hlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4gQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gYW5kZXJlbiBOYW1lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnQmVudXR6ZXJsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnQmVudXR6ZXJlaW5zdGVsbHVuZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnQmVudXR6ZXIgaXN0IGJlcmVjaHRpZ3Qgw5xiZXJzdHVuZGVuIHp1IHNlaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfDnGJlcnN0dW5kZW4gYW56ZWlnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ0JlbnV0emVyIGlzdCBiZXJlY2h0aWd0IFByb2pla3RlIHp1IGVyc3RlbGxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUHJvamVrdCBlcnN0ZWxsZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ1plaXRzcGFubmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0RhdHVtIEJlZ2lubic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnRGF0dW0gRW5kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnVXJsYXVic3RhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdXb2NoZW5zdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdBdXRvcmlzaWVydGUgw5xiZXJzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdTdGFydGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ0JpdHRlIGdlYmVuIFNpZSBlaW4gZ8O8bHRpZ2VzIERhdHVtIGVpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdFbmRkYXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0RhcyBFbmRlIGRlciBaZWl0c3Bhbm5lIG11c3MgbmFjaCBkZW0gQW5mYW5nIHNlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdVcmxhdWJzdGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdXw7ZjaGVudGxpY2hlIFN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfDnGJlcnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0tlaW5lIFplaXRzcGFubmUgZ2VmdW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1plaXRzcGFubmUgaGluenVmw7xnZW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnRGF0ZW5zYXR6IGFuemVpZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnQW5zaWNodCB2b24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnVm9yaGVyaWdlciBUYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdOw6RjaHN0ZXIgVGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0tlaW4gRWludHJhZyBmw7xyIGRpZXNlbiBUYWcgZ2VmdW5kZW4uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ0thbm4gQXJiZWl0c2VpbmhlaXRlbiBuaWNodCBlaW5mw7xnZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdMZXR6dGUgUHJvamVrdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnVW5nw7xsdGlnZSBBbmdhYmUuIEVpbiBUYWcgaGF0IG51ciAyNCBTdHVuZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnS2FubiBBcmJlaXRzZWluaGVpdGVuIG5pY2h0IGzDtnNjaGVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ0RpZXNlcyBEYXR1bSBpc3QgYXXDn2VyaGFsYiBkZXMgR3Jlbnp3ZXJ0ZXMsIGFiZXIgU2llIGhhYmVuIGRpZXNlbiBUYWcgYmlzIGpldHp0IG5vY2ggbmljaHQgZWluZ2Vmw7xndCwgYWxzbyBiZWtvbW1lbiBTaWUgZGFmw7xyIGVpbmUoISkgQ2hhbmNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ1Vudm9sbHN0w6RuZGlnZSBBcmJlaXRzdGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdCaXR0ZSBkaWUgQXJiZWl0c3N0dW5kZW4gZWludHJhZ2VuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdFaW5nYWJlbiBnZXNwZWljaGVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0ZlaGxlciBiZWkgZGVyIEVpbmdhYmUgZsO8ciBtZWhyZXJlIFRhZ2UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0RhdGVuIGbDvHIgbWVocmVyZSBUYWdlIGVyZm9sZ3JlaWNoIGVyZmFzc3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdFaW5nZWdlYmVuZXMgRGF0dW0gdW5nw7xsdGlnISBEYXR1bSB3dXJkZSBhdWYgXCdoZXV0ZVwnIGdlw6RuZGVydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnRXMgaXN0IGtlaW5lIFplaXRwZXJpb2RlIGtvbmZpZ3VyaWVydCwgb2RlciBkYXMgYW5nZWdlYmVuZSBEYXR1bSBsaWVndCBhdcOfZXJoYWxiIGRlciBrb25maWd1cmllcnRlbiBaZWl0cGVyaW9kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICdCaXR0ZSBrb250YWt0aWVyZW4gU2llIGlocmVuIFplaXRlcmZhc3N1bmdzLUFkbWluaXN0cmF0b3IsIHVtIGRpZSBaZWl0cGVyaW9kZW4genUgYWt0dWFsaXNpZXJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1p1bGV0enQgYXVzZ2V3w6RobHRlIFByb2pla3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ0FsbGUgUHJvamVrdGUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnQmVyaWNodHNwcm9qZWt0OiBCZW7DtnRpZ2UgUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnQmVyaWNodHNwcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ0JlcmljaHRlcnN0YXR0dW5nJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ0JlbnV0emVyZWluc3RlbGx1bmdlbiBrw7ZubmVuIG5pY2h0IGFrdHVhbGlzaWVydCB3ZXJkZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamVrdCBoaW56dWdlZsO8Z3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICdQcm9qZWt0IGFrdHVhbGlzaWVydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0F1ZmdhYmUgaGluenVnZWbDvGd0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnQXVmZ2FiZSBha3R1YWxpc2llcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0RpZSBVc2VySUQgaXN0IHVuZ8O8bHRpZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnS2FubiBCZW51dHplcmRhdGVuIG5pY2h0IGVpbmbDvGdlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdLYW5uIFplaXRwZXJpb2RlIG5pY2h0IGhpbnp1ZsO8Z2VuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnRWluc3RlbGx1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ0JlbnV0emVyIGFrdHVhbGlzaWVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdCZW51dHplciBoaW56dWdlZsO8Z3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnRWluZW4gQmVudXR6ZXIgenVyIFplaXRhYnJlY2hudW5nIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTmV1ZXIgQmVudXR6ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ1N0YXR1cyBkZXMgWmVpdHJhdW1zJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdBbnNpY2h0OiBCZW7DtnRpZ2UgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnVW52b2xsc3TDpG5kaWdlIEFyYmVpdHN0YWdlJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0JpdHRlIHfDpGhsZW4gU2llIG1pbmRlc3RlbnMgZWluZW4gVGFnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnTWFzc2VuZWludHJhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ0JpdHRlIHfDpGhsZW4gU2llIGVpbmVuIEdydW5kIGbDvHIgZGllIEFid2VzZW5oZWl0IGF1cyEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFaW50cmFnIGzDtnNjaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnRWluZ2FiZSBiZXN0w6R0aWdlbic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHp1bSBBbnplaWdlbiBkZXIgQW56YWhsIGRlciB1bnZvbGxzdMOkbmRpZ2VuIEFyYmVpdHN0YWdlIGRlcyBCZW51dHplcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhcmRuYW1lIGbDvHIgbmV1ZSBUw6R0aWdrZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gUHJvamVrdHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEVuZGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFN0YXJ0ZGF0dW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEJlc2NocmVpYnVuZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFVybGF1YnN0YWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0V2ZW50dWVsbCB2b3JoYW5kZW5lciDDnGJlcnN0dW5kZW7DvGJlcnRyYWcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdTdGFuZGFyZCBXb2NoZW5hcmJlaXRzemVpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXIgbmV1ZW4gVMOkdGlna2VpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdBbmZhbmdzc3RhdHVzIGVpbmVzIG5ldWVuIFByb2pla3RzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gQmVudXR6ZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdJbm5lcmhhbGIgZGllc2VyIEtvbmZpZ3VyYXRpb25zb3B0aW9uIGthbm4gZWluZSBSZWdFeHAgZGVmaW5pZXJ0IHdlcmRlbiwgZGllIGZlc3RsZWd0LCBiZWkgd2VsY2hlbiBQcm9qZWt0ZW4gZWluZSBCZW1lcmt1bmcgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MgKGRpZSBSZWdFeHAgYXJiZWl0ZXQgbWl0IHNteC1QYXJhbWV0ZXJuKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0Jlc3RpbW10LCBvYiBkYXMgU3RhdGlzdGlrLU1vZHVsIEluZm9ybWF0aW9uZW4genVyIFplaXRhYnJlY2hudW5nIGdlbmVyaWVyZW4ga2Fubi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnWmVpdGVyZmFzc3VuZ3MtRWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ1plaXQtRGF0ZW5zYXR6IGJlYXJiZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0xlZ3QgZmVzdCwgYmlzIHdhbm4gbWFuIGluIMOkbHRlcmUgWmVpdGVpbnRyw6RnZSBiZWFyYmVpdGVuIGthbm4gKHouIEIuIDEwIFRhZ2UgenVyw7xja2xpZWdlbmQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdXZW5uIGFrdGl2aWVydCwgd2VyZGVuIG51ciBVc2VyIGFuZ2V6ZWlndCBkaWUgQXJiZWl0c3plaXRlbiB6dSBkZW0gZ2V3w6RobHRlbiBQcm9qZWt0IGhpbnp1Z2Vmw7xndCBoYWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1dlbm4gYWt0aXZpZXJ0IHdlcmRlbiBkaWUgRHJvcGRvd24tRmVsZGVyIGltIGRlciBFZGl0aWVyLU9iZXJmbMOkY2hlIGluIGRlciBuZXVlbiBGb3JtIGFscyBGZWxkIG1pdCBBdXRvLVZlcnZvbGxzdMOkbmRpZ2VuIGFuZ2V6ZWlndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnRGVyIEZpbHRlciBiZWkgdm9yaGVyaWdlbiBQcm9qZWt0ZW4ga2FubiBiZWkgQWt0aXZpZXJ1bmcgZ2VudXR6dCB3ZXJkZW4sIGFuc3RlbGxlIGRhcyB6d2VpIFByb2pla3QgTGlzdGVuIChsZXR6dGUgdW5kIGFsbGUpIGdlbnV0enQgd2VyZGVuLiBFcyBrYW5uIGFsbGVyZGluZ3MgbnVyIGdlbnV0enQgd2VyZGVuIHdlbm4gVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGFrdGl2aWVydCBpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdCZWkgQWt0aXZpZXJ1bmcgaXN0IGRlciBGaWx0ZXIgZGVyIHZvcmhlcmlnZW4gUHJvamVrdGUgc3RhbmRhcmRtw6Rzc2lnIGFrdGl2IGZhbGxzIHZvcmhlcmlnZSBQcm9qZWt0ZSB2b3JoYW5kZW4gc2luZC4gRXIga2FubiBudXIgZ2VudXR6dCB3ZXJkZW4gd2VubiBFbmFibGVBdXRvQ29tcGxldGlvbiB1bmQgIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYWt0aXZpZXJ0IHNpbmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdXZW5uIGFrdGl2aWVydCwgIGvDtm5uZW4gQmVudXR6ZXIgImltIFVybGF1YiIsICJFcmtyYW5rdCIgdW5kICLDnGJlcnN0dW5kZW4iIGFuIG1laHJlcmVuIFRhZ2VuIGF1ZiBlaW5tYWwgc2V0emVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01heGltYWxlIEFuemFobCB2b24gQXJiZWl0c3RhZ2VuLCBuYWNoIGRlciBkaWUgQXJiZWl0c3plaXQgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEFyYmVpdHN0YWdlbiBvaG5lIEFyYmVpdHN6ZWl0ZWludHLDpGdlIG5hY2ggZGVuZW4gZWluZSBXYXJudW5nIGFuZ2V6ZWlndCB3aXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfDnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1Byb2pla3QtWmVpdC1SZXBvcnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bMOkcmVyIEF1c2RydWNrLCB1bSBkaWUgTGlzdGUgZGVyIFTDpHRpZ2tlaXRlbiBiZXrDvGdsaWNoIGRlcyBhdXNnZXfDpGhsdGVuIFByb2pla3RzIGVpbnp1c2NocsOkbmtlbi4gRGVyIFNjaGzDvHNzZWwgZW50aMOkbHQgZWluZW4gUmVndWzDpHJlbiBBdXNkcnVjayBmw7xyIFByb2pla3RlLCBkZXIgV2VydCBlaW5lbiBSZWd1bMOkcmVuIEF1c2RydWNrIGbDvHIgZGllIFTDpHRpZ2tlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnUmVndWzDpHJlciBBdXNkcnVjaywgdW0gZGllIExpc3RlIGRlciBQcm9qZWt0ZSBiZXrDvGdsaWNoIGRlcyBha3RpdmVuIEJlbnV0emVycyBlaW56dXNjaHLDpG5rZW4uIERlciBTY2hsw7xzc2VsIGVudGjDpGx0IGVpbmVuIFJlZ3Vsw6RyZW4gQXVzZHJ1Y2sgZsO8ciBQcm9qZWt0ZSwgZGVyIFdlcnQgZW50aMOkbHQgZWluZSBrb21tYS1zZXBhcmllcnRlIExpc3RlIHZvbiBCZW51dHplcmdydXBwZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdHaWJ0IGFuLCBvYiBBcmJlaXRzc3R1bmRlbiBvaG5lIFN0YXJ0LSB1bmQgRW5kemVpdCBlaW5nZWdlYmVuIHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdEaWVzZXMgTW9kdWwgendpbmd0IHp1ciBFaW5nYWJlIHZvbiBTdHVuZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ01vZHVsLCBkYXNzIGRlbiBBZ2VudCBpbSBOb3RpZmljYXRpb24tQmVyZWljaCBkZXMgQWdlbnQtSW50ZXJmYWNlcyBkYXLDvGJlciBpbmZvcm1pZXJ0LCB3ZW5uIHNjaG9uIHp1IGxhbmdlIGtlaW5lIFN0dW5kZW4gbWVociBlaW5nZXRyYWdlbiB3dXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1plaXRhYnJlY2hudW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ1plaXRhYnJlY2hudW5nIEJlYXJiZWl0dW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnWmVpdGFicmVjaG51bmdzw7xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdaZWl0YWJyZWNobnVuZyBCZXJpY2h0ZXJzdGF0dHVuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ1plaXRhYnJlY2hudW5nIEVpbnN0ZWxsdW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1plaXRhYnJlY2hudW5nIEFuc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdaZWl0YWJyZWNobnVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdIaWVyIGthbm4gbWFuIGVpbmdlYmVuLCBvYiBmw7xyIGVpbmUgYmVzdGltbXRlIFTDpHRpZ2tlaXQsIGRpZSB6dSB2ZXJyZWNobmVuZGVuIFN0dW5kZW4gZ2Vrw7xyenQgd2VyZGVuLiBaLiBCIHdlbm4gUmVpc2V6ZWl0ZW4gbnVyIHp1ciBIw6RsZnRlIHZlcmfDvHRldCB3ZXJkZW4gKEtleSA9Jmd0OyBqb3VybmV5OyBDb250ZW50ID0mZ3Q7IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGFfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWaWwgZHUgdmlya2VsaWcgc2xldHRlIHRpZHNyZWduc2thYmV0IGZvciBkZW5uZSBkYWc/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ1JlZGlnZXIgdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdEYXRvbmF2aWdhdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0RhZ2UgdWRlbiBvcHRlZ25lbHNlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ1DDpSBmZXJpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnU3lnZWZyYXbDpnInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdBZnNwYWRzZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdEZSBww6VrcsOmdmVkZSBmZWx0ZXIgZXIgbWFya2VyZXQgbWVkICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdEdSBza2FsIGluZHRhc3RlIGVuIHN0YXJ0LSBvZyBzbHV0ZGF0byBlbGxlciBlbiB0aWRzcGVyaW9kZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ09wZ2F2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdCZW3DpnJrbmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXYgdGlkIGVyIGlra2UgdGlsbGFkdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0dlbnRhZ25lIHRpbWVyIGVyIGlra2UgdGlsbGFkdC4gU3RhcnR0aWRlbiBzdmFyZXIgdGlsIGV0IGFuZGV0IGludGVydmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnU2x1dHRpZGVuIHNrYWwgdsOmcmUgc2VuZXJlIGVuZCBzdGFydHRpZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0dlbnRhZ25lIHRpbWVyIGVyIGlra2UgdGlsbGFkdC4gU2x1dHRpZGVuIHN2YXJlciB0aWwgZXQgYW5kZXQgaW50ZXJ2YWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdVZ3lsZGlnIHBlcmlvZGUhIEVuIGRhZyBoYXIga3VuIDI0IHRpbWVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ0VuIGd5bGRpZyBwZXJpb2RlIHNrYWwgdsOmcmUgc3TDuHJyZSBlbmQgMCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnVWd5bGRpZyBwZXJpb2RlISBOZWdhdGl2ZSBwZXJpb2RlciBlciBpa2tlIHRpbGxhZHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnVGlsZsO4aiBlbiByw6Zra2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdEdSBrYW4ga3VuIHbDpmxnZSBldCBhZmtyeWRzbmluZ3NmZWx0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnRXIgZHUgc2lra2VyIHDDpSwgYXQgZHUgYXJiZWpkZWRlIHVuZGVyIGRpdCBzeWdlZnJhdsOmcj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdFciBkdSBzaWtrZXIgcMOlLCBhdCBkdSBhcmJlamRlZGUsIG1lbnMgZHUgdmFyIHDDpSBmZXJpZT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0VyIGR1IHNpa2tlciBww6EsIGF0IGR1IGFyYmVqZGVkZSwgbWVucyBkdSB2YXIgcMOlIGFmc3BhZHNlcmluZz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnRXIgZHUgc2lra2VyIHDDpSwgYXQgZHUgYXJiZWpkZWRlIG1lcmUgZW5kIDE2IHRpbWVyPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTcOlbmVkbGlnIG92ZXJzaWd0IG92ZXIgdGlkc3JhcG9ydGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdPdmVydGlkICh0aW1lciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnT3ZlcnRpZCAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnT3ZlcnRpZCAoaSBhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1Jlc3RlcmVuZGUgYWZzcGFkc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0ZlcmllIChkYWdlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdGZXJpZWRhZ2UgYnJ1Z3QgKGRlbm5lIG3DpW5lZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0ZlcmllZGFnZSBicnVndCAoaSBhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1Jlc3RlcmVuZGUgZmVyaWVkYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnU3lnZWZyYXbDpnIgKGRhZ2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnU3lnZWZyYXbDpnIgYnJ1Z3QgKGRlbm5lIG3DpW5lZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnU3lnZWZyYXbDpnIgYnJ1Z3QgKGkgYWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ0ZvcnJpZ2UgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOw6ZzdGUgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdVZ2VkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0FyYmVqZHN0aW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdBcmJlamRzdGltZXIgaSBhbHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnQnJ1Z2VycyBwcm9qZWt0b3ZlcmJsaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnVGltZXIgKG3DpW5lZGxpZyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1NhbWxldCBhbnRhbCB0aW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ0FsdCBpIGFsdCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdUaWRzcmFwb3J0ZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ03DpW5lZHNuYXZpZ2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnQnJ1Z2VycmFwcG9ydGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdJIGFsdCBmb3IgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnU2FtbGV0IHRvdGFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQWZzcGFkc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ1N5Z2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ1Jlc3RlcmVuZGUgZnJhdsOmcnNkYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb2pla3RyYXBwb3J0ZXInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1Byb2pla3RyYXBwb3J0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUmVkaWdlciBpbmRzdGlsbGluZ2VyIGZvciB0aWRzcmVnbnNrYWJzcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ1RpbGbDuGogcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ1RpbGbDuGogcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdSZWRpZ2VyIHByb2pla3RpbmRzdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdEZXIgZXIgYWxsZXJlZGUgZXQgcHJvamVrdCBtZWQgZGV0dGUgbmF2bi4gVsOmbGcgdmVubGlnc3QgZXQgYW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnUmVkaWdlciB0aWRzcmVnbnNrYWJzaW5kc3RpbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnVGlsZsO4aiBvcGdhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnUHJvamVrdGxpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ09wZ2F2ZWxpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnVGlsZsO4aiBvcGdhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnUmVkaWdlciBvcGdhdmVpbmRzdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdEZXIgZXIgYWxsZXJlZGUgZW4gb3BnYXZlIG1lZCBkZXR0ZSBuYXZuLiBWw6ZsZyB2ZW5saWdzdCBldCBhbmRldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnQnJ1Z2VybGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnVmlzIG92ZXJ0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnVGlsbGFkIG9wcmV0dGVsc2UgYWYgcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0JlZ3luZCBwZXJpb2RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdBZnNsdXQgcGVyaW9kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRmVyaWVkYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnVGltZXIgcHIuIHVnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnR29ka2VuZHQgb3ZlcnRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ1BlcmlvZGVucyBhZnNsdXRuaW5nIHNrYWwgdsOmcmUgZWZ0ZXIgcGVyaW9kZW5zIHN0YXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnSW5nZW4gdGlkc3BlcmlvZGVyIGZ1bmRldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnVGlsZsO4aiB0aWRzcGVyaW9kZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdTZSB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnU2UgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0ZvcnJpZ2UgZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnTsOmc3RlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdEZXIgZXIgaWtrZSBmdW5kZXQgZGF0YSBmb3IgZGVubmUgZGFnLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGVyaW5nJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnSW5kc3RpbGxpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdTbGV0IHRpZHNyZWduc2thYnNpbmR0YXN0bmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0Jla3LDpmZ0IGluZHPDpnR0ZWxzZSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ0FnZW50IGludGVyZmFjZS1ub3RpZmljYXRpb25zbW9kdWxldCBza2FsIHNlIGFudGFsbGV0IGFmIHVhZnNsdXR0ZWRlIGFyYmVqZHNkYWdlIGZvciBicnVnZXJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdTdGFuZGFyZG5hdm4gZm9yIG55ZSBoYW5kbGluZ2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdTdGFuZGFyZG5hdm4gZm9yIG55ZSBwcm9qZWt0ZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igc2x1dGRhdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBiZWd5bmRlbHNlc2RhdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBmcmF2w6Zyc2RhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igb3ZlcnRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIG5vcm1hbGUgdWdlbnRsaWdlIHRpbWVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3IgbnllIGhhbmRsaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3IgbnllIHByb2pla3Rlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBueWUgYnJ1Z2VyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lcmVyIGRlIHByb2pla3RlciwgZm9yIGh2aWxrZSBlbiBiZW3DpnJrbmluZyBlciBww6VrcsOmdmV0LiBIdmlzIFJlZ0V4cCBtYXRjaGVyIHDDpSBwcm9qZWt0ZXQsIHNrYWwgZHUgb2dzw6UgaW5kZsO4amUgZW4gYmVtw6Zya25pbmcuIFJlZ0V4cCBicnVnZXIgc214IHBhcmFtZXRlcmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdBbmdpdmVyIGZvciBodm9yIG1hbmdlIGRhZ2UsIGR1IGthbiBpbmRzw6Z0dGUgYXJiZWpkc2VuaGVkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdNYWtzaW1hbHQgYW50YWwgYWYgYXJiZWpkc2RhZ2UgZWZ0ZXIgaHZpbGtldCBhcmJlamRzZW5oZWRlcm5lIHNrYWwgaW5kc8OmdHRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ1JlZ3Vsw6ZyZSB1ZHRyeWsgZm9yIGJlZ3LDpm5zbmluZyBhZiBoYW5kbGluZ3NsaXN0ZSBpZsO4bGdlIGRldCB2YWxndGUgcHJvamVrdC4gTsO4Z2xlbiBpbmRlaG9sZGVyIGV0IHJlZ3Vsw6ZydCB1ZHRyeWsgZm9yIHByb2pla3QoZXIpLCBpbmRob2xkZXQgcnVtbWVyIHJlZ3Vsw6ZyZSB1ZHRyeWsgZm9yIGhhbmRsaW5nKGVyKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnUmVndWzDpnJlIHVkdHJ5ayBmb3IgYmVncsOmbnNuaW5nIGFmIHByb2pla3RsaXN0ZSBpZsO4bGdlIGJydWdlcmdydXBwZXIuIE7DuGdsZW4gaW5kZWhvbGRlciBldCByZWd1bMOmcnQgdWR0cnlrIGZvciBwcm9qZWt0KGVyKSwgaW5kaG9sZGV0IHJ1bW1lciBrb21tYXNlcGFyZXJldCBsaXN0ZSBvdmVyIGdydXBwZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdBbmdpdmVyLCBvbSBhcmJlamRzdGltZXIga2FuIGluZHPDpnR0ZXMgdWRlbiBzdGFydC0gb2cgc2x1dHRpZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdEZXR0ZSBtb2R1bCBnZW5uZW10dmluZ2VyIGluZHPDpnR0ZWxzZXIgaSB0aWRzcmVnbnNrYWIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRGV0dGUgYWR2aXNlcmluZ3Ntb2R1bCBnaXZlciBlbiBhZHZhcnNlbCwgaHZpcyBkZXIgZXIgZm9yIG1hbmdlIHVmdWxkc3TDpm5kaWdlIGFyYmVqZHNkYWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ1RpZHNyZWduc2thYic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdCcnVnZXMsIGh2aXMgbm9nbGUgaGFuZGxpbmdlciBoYXIgcmVkdWNlcmV0IGFyYmVqZHN0aW1lcm5lIChmLmVrcy4gaHZpcyBrdW4gaGFsdmRlbGVuIGFmIHJlanNldGlkZW4gZXIgYmV0YWx0IEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfTVhfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfCv1JlYWxtZW50ZSBkZXNlYSBlbGltaW5hciBsYSBDb250YWJpbGlkYWQgZGUgVGllbXBvIGRlIGVzdGUgZMOtYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnTW9kaWZpY2FyIFJlZ2lzdHJvIGRlIEhvcmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgYSBjb25maWd1cmFjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhY2nDs24gcG9yIEZlY2hhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRMOtYXMgc2luIHJlZ2lzdHJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVjY2lvbmFyIHRvZG9zIGxvcyBkw61hcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnUmVnaXN0cm8gbWFzaXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUG9yIGZhdm9yIGVzY29qYSB1bmEgcmF6w7NuIHBhcmEgc3UgYXVzZW5jaWEgcGFyYSBsb3MgZMOtYXMgc2VsZWNjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0RlIHZhY2FjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0F1c2VudGUgcG9yIGVuZmVybWVkYWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdBdXNlbnRlIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnTG9zIGNhbXBvcyByZXF1ZXJpZG9zIGVzdMOhbiBtYXJjYWRvcyBjb24gdW4gIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0VzIG5lY2VzYXJpbyBxdWUgcHJvcG9yY2lvbmUgdW5hIGhvcmEgZGUgaW5pY2lvIHkgdW5hIGRlIGZpbmFsaXphY2nDs24gbyB1biBwZXJpb2RvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1RhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0NvbWVudGFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnwqFQb3IgZmF2b3IgYWdyZWd1ZSB1bmEgb2JzZXJ2YWNpw7NuIGRlIG1cJ3MgZGUgOCBjYXJhY3RlcmVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTm8gc2UgcGVybWl0ZSBsYSBpbnNlcmNpw7NuIGRlIGhvcmFzIG5lZ2F0aXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyByZXBldGlkYXMuIExhIGhvcmEgZGUgaW5pY2lvIGVzdMOhIGluY2x1w61kYSBlbiBvdHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ0Zvcm1hdG8gaW52w6FsaWRvISBQb3IgZmF2b3IgaW50cm9kdXpjYSBsYXMgaG9yYXMgY29uIGVsIGZvcm1hdG8gSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGVzIHNvbG8gcGVybWl0aWRvIGNvbW8gdGllbXBvIGZpbmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0hvcmEgaW52w6FsaWRhISBVbiBkw61hIHNvbG8gdGllbmUgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZGViZSBzZXIgcG9zdGVyaW9yIGEgbGEgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyByZXBldGlkYXMuIExhIGhvcmEgZGUgZmluYWxpemFjacOzbiBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfCoVBlcmlvZG8gaW52w6FsaWRvISBVbiBkw61hIHPDs2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ1VuIHBlcmlvZG8gdsOhbGlkbyBkZWJlIHNlciBtYXlvciBhIGNlcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfCoVBlcmlvZG8gaW52w6FsaWRvISBObyBzZSBwZXJtaXRlbiBwZXJpb2RvcyBuZWdhdGl2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQcOxYWRpciB1bmEgZmlsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ8KhU8OzbG8gc2UgcGVybWl0ZSBlbGVnaXIgdW4gZWxlbWVudG8gY2hlY2tib3ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdSBhdXNlbmNpYSBwb3IgZW5mZXJtZWRhZD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdXMgdmFjYWNpb25lcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBkdXJhbnRlIHN1IGF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgbcOhcyBkZSAxNiBob3Jhcz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ1Zpc3RhIG1lbnN1YWwgZGUgdGllbXBvcyByZXBvcnRhZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdOw7ptZXJvIGRlIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdIb3JhcyBleHRyYXMgdHJhYmFqYWRhcyAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdUb3RhbCBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnSG9yYXMgcmVzdGFudGVzIHBhcmEgYXVzZW50YXJzZSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdWYWNhY2lvbmVzIChkw61hcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnVmFjYWNpb25lcyAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdWYWNhY2lvbmVzIHRvbWFkYXMgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdEw61hcyBkZSB2YWNhY2lvbmVzIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0F1c2VuY2lhIHBvciBlbmZlcm1lZGFkIChkw61hcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdBdXNlbmNpYXMgcG9yIGVuZmVybWVkYWQgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdBdXNlbmNpYXMgcG9yIGVuZmVybWVkYWQgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ01lcyBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTWVzIHNpZ3VpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRMOtYSBkZSBsYSBzZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0hvcmFzIHRyYWJhamFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWwgZGUgaG9yYXMgdHJhYmFqYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXN0YSBkZSBwcm95ZWN0byBkZSB1c3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0hvcmFzIChtZW5zdWFsZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdIb3JhcyAodGllbXBvIGRlIHZpZGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnVG90YWwgbmV0byc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZXBvcnRlIGRlIGhvcmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2FjacOzbiBwb3IgbWVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdJciBhIGZlY2hhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JlcG9ydGVzIGRlIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsIG1lbnN1YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdUaWVtcG8gdG90YWwgZGUgdmlkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0F1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnVmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnQXVzZW5jaWEgcG9yIGVuZmVybWVkYWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnRMOtYXMgbGlicmVzIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSZXBvcnRlcyBkZSBwcm95ZWN0byc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUmVwb3J0ZSBkZSBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdJciBhbCByZXN1bWVuIGRlIHJlcG9ydGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc29sbyBzZSBtdWVzdHJhbiBsb3MgdXN1YXJpb3MgYWN0aXZvcyBlbiBlc3RlIHByb3llY3RvLiBQYXJhIGNhbWJpYXIgZXN0ZSBjb21wb3J0YW1pZW50bywgcG9yIGZhdm9yIGFjdHVhbGl6ZSBsYSBjb25maWd1cmFjacOzbjonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc2UgbXVlc3RyYW4gdG9kb3MgbG9zIHVzdWFyaW9zIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWllbnRvLCBwb3IgZmF2b3IgYWN0dWFsaXplIGxhIGNvbmZpZ3VyYWNpw7NuOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgY29uZmlndXJhY2nDs24gZGVsIHByb3llY3RvIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZ3JlZ2FyIHByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnSXIgYWwgcmVzdW1lbiBkZSBjb25maWd1cmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0FncmVnYXIgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIENvbmZpZ3VyYWNpw7NuIGRlbCBQcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWWEgZXhpc3RlIHVuIHByb3llY3RvIGNvbiBlc3RlIG5vbWJyZS4gUG9yIGZhdm9yLCBlbGlqYSB1bm8gZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZSBsYSBDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnQWdyZWdhciB0YXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ0ZpbHRybyBwYXJhIHByb3llY3RvcywgdGFyZWFzIG8gdXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdMb3MgcGVyw61vZG9zIGRlIHRpZW1wbyBubyBwdWVkZW4gc2VyIGVsaW1pbmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0xpc3RhIGRlIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSBkZSBUYXJlYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZ3JlZ2FyIFRhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZSBsYSBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWWEgZXhpc3RlIHVuYSB0YXJlYSBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgVXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0FqdXN0ZXMgZGVsIFVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdFbCB1c3VhcmlvIHB1ZWRlIHZlciBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgaG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ0VsIHVzdWFyaW8gcHVlZGUgY3JlYXIgcHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdQZXJtaXRpciBjcmVhY2nDs24gZGUgcHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICdFc3BhY2lvcyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyaW9kbyBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZG8gZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRMOtYXMgZGUgVmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ0hvcmFzIHBvciBTZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1RpZW1wbyBFeHRyYSBBdXRvcml6YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdGZWNoYSBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnUG9yIGZhdm9yIGluc2VydGUgdW5hIGZlY2hhIHbDoWxpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRmVjaGEgZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0VsIHBlcmlvZG8gZGUgZmluYWxpemFjacOzbiBkZWJlIHNlciBwb3N0ZXJpb3IgYWwgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRMOtYXMgZGUgYXVzZW5jaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5hbGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnSG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vIHNlIGVuY29udHJhcm9uIHBlcmlvZG9zIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWdyZWdhciBwZXJpb2RvIGRlIHRpZW1wbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdWZXIgcmVnaXN0cm8gZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnUmVzdW1lbiBkZSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnRMOtYSBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0TDrWEgc2lndWllbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05vIHNlIGVuY29udHJhcm9uIGRhdG9zIGRlIGVzdGUgZMOtYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnwqFObyBzZSBwdWRpZXJvbiBpbnRlbnRhciBsYXMgVW5pZGFkZXMgZGUgVHJhYmFqbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICfCoU5vIHNlIHB1ZGllcm9uIGd1YXJkYXIgbG9zIGFqdXN0ZXMsIHBvcnF1ZSBlbCBkw61hIHNvbG8gdGllbmUgMjQgaG9yYXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfCoU5vIHNlIHB1ZGllcm9uIGd1YXJkYXIgbGFzIFVuaWRhZGVzIGRlIFRyYWJham8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXN0YSBGZWNoYSBlc3RhIGZ1ZXJhIGRlbCBsw61taXRlLCBwZXJvIHRvZGF2w61hIG5vIGhhIGluc2VydGFkbyBlc3RlIGTDrWEsIGVudG9uY2VzIHVzdGVkIHRpZW5lIHNvbG8gdW5hIG9wb3J0dW5pZGFkIGRlIGluc2VydGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0TDrWFzIExhYm9yYWxlcyBJbmNvbXBsZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSBzdXMgaG9yYXMgZGUgdHJhYmFqbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnSW5zZXJjacOzbiBleGl0b3NhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRXJyb3IgYWwgaW5zZXJ0YXIgbcO6bHRpcGxlcyBmZWNoYXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ1NlIGluc2VydGFyb24gc2F0aXNmYWN0b3JpYW1lbnRlIGxhcyBlbnRyYWRhcyBkZSB2YXJpYXMgZmVjaGFzISAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0xhIGZlY2hhIGVudHJhZGEgZXMgaW5jb3JyZWN0YSEgTGEgZmVjaGEgZGUgaGEgY2FtYmlhZG8gYSBob3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ8KhTm8gaGF5IHVuIHBlcmlvZG8gZGUgdGllbXBvIGNvbmZpZ3VyYWRvLCBvciBsYSBmZWNoYSBlc3BlY2lmaWNhZGEgZXN0w6EgZnVlcmEgZGUgbG9zIHBlcmlvZG9zIGRlIHRpZW1wbyBkZWZpbmlkb3MhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICfCoVBvciBmYXZvciBjb250YWN0ZSBhbCBhZG1pbmlzdHJhZG9yIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG9zIHBhcmEgYWN0dWFsaXphciBzdXMgcGVyaW9kb3MgZGUgdGllbXBvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnTG9zIMOabHRpbW9zIFByb3llY3RvcyBTZWxlY2Npb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1RvZG9zIGxvcyBQcm95ZWN0b3MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnUmVwb3J0ZURlUHJveWVjdG9zOiBOZWNlc2l0YSAiUHJvamVjdElEIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ1JlcG9ydGUgZGUgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ8KhTm8gZnVlIHBvc2libGUgYWN0dWFsaXphciBsb3MgYWp1c3RlcyBkZWwgdXN1YXJpbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICfCoVByb3llY3RvIGHDsWFkaWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnwqFQcm95ZWN0byBhY3R1YWxpemFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICfCoVRhcmVhIGHDsWFkaWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnwqFUYXJlYSBhY3R1YWxpemFkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnwqFFbCAiVXNlcklEIiBubyBlcyB2w6FsaWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICfCoU5vIHNlIHB1ZWRlIGluc2VydGFyIGRhdG9zIGRlbCB1c3VhcmlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ8KhTm8gZnVlIHBvc2libGUgYcOxYWRpciBlbCBwZXJpb2RvIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0NvbmZpZ3VyYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfCoVVzdWFyaW8gYWN0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnwqFVc3VhcmlvIGHDsWFkaWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJ0HDsWFkaXIgdXN1YXJpbyBhIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG9zLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnVXN1YXJpbyBOdWV2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnRXN0YWRvIGRlbCBQZXJpb2RvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaXN0YTogwqFOZWNlc2l0YSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdEw61hcyBsYWJvcmFsZXMgaW5jb21wbGV0b3MnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUG9yIGZhdm9yIHNlbGVjY2lvbmUgYWwgbWVub3MgdW4gZMOtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1JlZ2lzdHJvIE1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwb3IgYXVzZW5jaWEuJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRWxpbWluYXIgUmVnaXN0cm8gZGUgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1hciBpbnNlcmNpw7NuJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYWNpw7NuIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUsIG5lY2VzYXJpbyBwYXJhIHZpc3VhbGl6YXIgZWwgbsO6bWVybyBkZSBkw61hcyBpbmNvbXBsZXRvcyBkZSB1biB1c3VhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05vbWJyZSBwb3IgZGVmZWN0byBwYXJhIGFjY2lvbmVzIG51ZXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTm9tYnJlIHBvciBkZWZlY3RvIHBhcmEgcHJveWVjdG9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGZlY2hhIGRlIGZpbmFsaXphY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGZlY2hhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGRlc2NyaXBjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGZhbHRhcyAoZMOtYXMgZGUgYXVzZW5jaWEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGhvcmFzIGV4dHJhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGhvcmFzIHNlbWFuYWxlcyBlc3TDoW5kYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSBhY2Npb25lcyBudWV2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgcHJveWVjdG9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSB1c3VhcmlvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluZSBwYXJhIGN1w6FsZXMgcHJveWVjdG9zIGVzIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgY29tZW50YXJpb3MuIFNpIGxhIGV4cHJlc2nDs24gcmVndWxhciBjb2luY2lkZSBjb24gZWwgcHJveWVjdG8sIHNlIHRpZW5lIHF1ZSBlc2NyaWJpciB1biBjb21lbnRhcmlvLiBMYSBleHByZXNpw7NuIHJlZ3VsYXIgdXNhIGVsIHBhcsOhbWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNpIGVsIG3Ds2R1bG8gZGUgZXN0YWTDrXN0aWNhcyBkZWJlIGdlbmVyYXIgaW5mb3JtYWNpw7NuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0VkaXRhciBhanVzdGVzIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ0VkaXRhciByZWdpc3RybyBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0VzcGVjaWZpY2EgZWwgbsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIHBhcmEgcmVnaXN0cmFyIGhvcmFzIGRlIHRyYWJham8gYXRyYXNhZGFzIChwb3IgZWplbXBsbzogMTAgZMOtYXMgZGUgYW50aWfDvGVkYWQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgc29sYW1lbnRlIGxvcyB1c3VhcmlvcyBxdWUgaGFuIHJlZ2lzdHJhZG8gc3VzIHRpZW1wb3MgZW4gZWwgcHJveWVjdG8gc2VsZWNjaW9uYWRvIHNlcsOhbiBtb3N0cmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NpIGVzdMOhbiBoYWJpbGl0YWRvcywgbG9zIGVsZW1lbnRvcyBkZXNwbGVnYWJsZXMgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gaGFuIHNpZG8gbW9kaWZpY2Fkb3MgcG9yIGNhbXBvcyBkZSBhdXRvLWNvbXBsZXRhZG8sIGVzdG8gcGFyYSBzZXIgbWFzIG1vZGVybm9zICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTaSBlc3TDoSBoYWJpbGl0YWRvLCBlbCBmaWx0cm8gcGFyYSBlbCBwcm95ZWN0byBhbnRlcmlvciBwdWVkZSBzZXIgdXNhZG8gZW4gdmV6IGRlIGRvcyBsaXN0YXMgZGUgcHJveWVjdG9zIChsYXMgYW50ZXJpb3IgeSB0b2RhcyBsYXMgZGVtw6FzKS4gRXN0byBzZSBwb2Ryw6EgdXNhciBzaSwgeSBzb2xvIHNpIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2kgZXN0w6EgaGFiaWxpdGFkbywgZWwgZmlsdHJvIHBhcmEgZWwgcHJveWVjdG8gYW50ZXJpb3IgZXN0w6EgYWN0aXZhZG8gcG9yIG9taXNpw7NuIHNpIGhheSBwcm95ZWN0b3MgcHJldmlvcy4gRXN0byBwdWVkZSBzZXIgdXRpbGl6YWRvIHNpLCB5IHNvbG8gc2ksIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzZSBsZSBwZXJtaXRpcsOhIGFsIHVzdWFyaW8gcmVnaXN0cmFyICJ2YWNhY2lvbmVzIiwgImF1c2VuY2lhIHBvciBlbmZlcm1lZGFkIiwgImF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmEiIGVuIG3Dumx0aXBsZXMgZmVjaGFzIGFsIG1pc21vIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgZXMgb2JsaWdhdG9yaW8gcmVwb3J0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgc2UgbW9zdHJhcsOhIHVuYSBhZHZlcnRlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBHZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGUgdGllbXBvcyBkZWwgcHJveWVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIGFjY2lvbmVzLCBkZSBhY3VlcmRvIGFsIHByb3llY3RvIHNlbGVjY2lvbmFkby4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCBsYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgbGFzIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIHByb3llY3RvcywgZGUgYWN1ZXJkbyBhIGxvcyBncnVwb3MgZGUgdXN1YXJpb3MuIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgdW5hIGxpc3RhIGRlIGdydXBvcywgc2VwYXJhZG9zIHBvciBjb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2kgZXMgcG9zaWJsZSBpbnNlcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcyBzaW4gZGVmaW5pciBsb3MgdGllbXBvcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIGRlIGxhcyB0YXJlYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBoYWNlIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gcXVlIG11ZXN0cmEgdW5hIGFkdmVydGVuY2lhIHNpIGhheSBkZW1hc2lhZG9zIGTDrWFzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdSZXN1bWVuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZXBvcnRlIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0FqdXN0ZXMgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnU2UgdXNhIHNpIGFsZ3VuYXMgYWNjaW9uZXMgcmVkdWNlbiBlbCBuw7ptZXJvIGRlIGhvcmFzIHRyYWJhamFkYXMgKHBvciBlamVtcGxvOiBzaSBzw7NsbyBzZSBwYWdhIGxhIG1pdGFkIGRlbCB0aWVtcG8gZGUgdmlhamUgcHVlZGUgZXNwZWNpZmljYXJzZSBLZXkgPT4gVmlhamU7IENvbnRlbnQgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfCv1JlYWxtZW50ZSBkZXNlYSBlbGltaW5hciBsYSBDb250YWJpbGlkYWQgZGUgVGllbXBvIGRlIGVzdGUgZMOtYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnTW9kaWZpY2FyIHJlZ2lzdHJvIGRlIGhvcmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgYSBjb25maWd1cmFjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhY2nDs24gcG9yIGZlY2hhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRMOtYXMgc2luIHJlZ2lzdHJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVjY2lvbmFyIHRvZG9zIGxvcyBkw61hcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnUmVnaXN0cm8gbWFzaXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUG9yIGZhdm9yIGVzY29qYSB1bmEgcmF6w7NuIHBhcmEgc3UgYXVzZW5jaWEgcGFyYSBsb3MgZMOtYXMgc2VsZWNjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0RlIHZhY2FjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0F1c2VudGUgcG9yIGVuZmVybWVkYWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdBdXNlbnRlIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnTG9zIGNhbXBvcyByZXF1ZXJpZG9zIGVzdMOhbiBtYXJjYWRvcyBjb24gdW4gIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0VzIG5lY2VzYXJpbyBxdWUgcHJvcG9yY2lvbmUgdW5hIGhvcmEgZGUgaW5pY2lvIHkgdW5hIGRlIGZpbmFsaXphY2nDs24gbyB1biBwZXJpb2RvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1RhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0NvbWVudGFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnwqFQb3IgZmF2b3IsIGHDsWFkZSB1biBjb21lbnRhcmlvIGNvbiBtYXMgZGUgOCBjYXJhY3RlcmVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTm8gc2UgcGVybWl0ZSBsYSBpbnNlcmNpw7NuIGRlIGhvcmFzIG5lZ2F0aXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyByZXBldGlkYXMuIExhIGhvcmEgZGUgaW5pY2lvIGVzdMOhIGluY2x1w61kYSBlbiBvdHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ8KhRm9ybWF0byBubyB2w6FsaWRvISBQb3IgZmF2b3IgaW50cm9kdXpjYSBsYXMgaG9yYXMgY29uIGVsIGZvcm1hdG8gSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGVzIHNvbG8gcGVybWl0aWRvIGNvbW8gdGllbXBvIGZpbmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ8KhSG9yYSBubyB2w6FsaWRhISBVbiBkw61hIHNvbG8gdGllbmUgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZGViZSBzZXIgcG9zdGVyaW9yIGEgbGEgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyByZXBldGlkYXMuIExhIGhvcmEgZGUgZmluYWxpemFjacOzbiBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfCoVBlcmlvZG8gbm8gdsOhbGlkbyEgVW4gZMOtYSBzw7NsbyB0aWVuZSAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHbDoWxpZG8gZGViZSBzZXIgbWF5b3IgYSBjZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnwqFQZXJpb2RvIG5vIHbDoWxpZG8hIE5vIHNlIHBlcm1pdGVuIHBlcmlvZG9zIG5lZ2F0aXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdBw7FhZGlyIHVuYSBmaWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnwqFTw7NsbyBzZSBwZXJtaXRlIGVsZWdpciB1biBlbGVtZW50byBkZSBsYSBjYXNpbGxhIGRlIHZlcmlmaWNhY2nDs24hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdSBhdXNlbmNpYSBwb3IgZW5mZXJtZWRhZD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdXMgdmFjYWNpb25lcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBkdXJhbnRlIHN1IGF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgbcOhcyBkZSAxNiBob3Jhcz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ1Zpc3RhIG1lbnN1YWwgZGUgdGllbXBvcyByZXBvcnRhZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdOw7ptZXJvIGRlIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdIb3JhcyBleHRyYXMgdHJhYmFqYWRhcyAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdUb3RhbCBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnSG9yYXMgcmVzdGFudGVzIHBhcmEgYXVzZW50YXJzZSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdWYWNhY2lvbmVzIChkw61hcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnVmFjYWNpb25lcyB0b21hZGFzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1ZhY2FjaW9uZXMgdG9tYWRhcyAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0TDrWFzIGRlIHZhY2FjaW9uZXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQXVzZW5jaWEgcG9yIGVuZmVybWVkYWQgKGTDrWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0F1c2VuY2lhcyBwb3IgZW5mZXJtZWRhZCAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0F1c2VuY2lhcyBwb3IgZW5mZXJtZWRhZCAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXMgc2lndWllbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdEw61hIGRlIGxhIHNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSG9yYXMgdHJhYmFqYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbCBkZSBob3JhcyB0cmFiYWphZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Zpc3RhIGRlIHByb3llY3RvIGRlIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnSG9yYXMgKG1lbnN1YWxlcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICh0aWVtcG8gZGUgdmlkYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdUb3RhbCBuZXRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydGUgZGUgaG9yYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBtZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIGEgZmVjaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnUmVwb3J0ZXMgZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWwgbWVuc3VhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RpZW1wbyB0b3RhbCBkZSB2aWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW5jaWEgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdBdXNlbmNpYSBwb3IgZW5mZXJtZWRhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdEw61hcyBsaWJyZXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JlcG9ydGVzIGRlIHByb3llY3RvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSZXBvcnRlIGRlIHByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0lyIGFsIHJlc3VtZW4gZGUgcmVwb3J0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzb2xvIHNlIG11ZXN0cmFuIGxvcyB1c3VhcmlvcyBhY3Rpdm9zIGVuIGVzdGUgcHJveWVjdG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWllbnRvLCBwb3IgZmF2b3IgYWN0dWFsaXplIGxhIGNvbmZpZ3VyYWNpw7NuOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzZSBtdWVzdHJhbiB0b2RvcyBsb3MgdXN1YXJpb3MgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wby4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtaWVudG8sIHBvciBmYXZvciBhY3R1YWxpemUgbGEgY29uZmlndXJhY2nDs246JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBjb25maWd1cmFjacOzbiBkZWwgcHJveWVjdG8gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZ3JlZ2FyIHByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnSXIgYWwgcmVzdW1lbiBkZSBjb25maWd1cmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0FncmVnYXIgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIENvbmZpZ3VyYWNpw7NuIGRlbCBQcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWWEgZXhpc3RlIHVuIHByb3llY3RvIGNvbiBlc3RlIG5vbWJyZS4gUG9yIGZhdm9yLCBlbGlqYSB1bm8gZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZSBsYSBDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnQWdyZWdhciB0YXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0xvcyBwZXLDrW9kb3MgZGUgdGllbXBvIG5vIHNlIHB1ZWRlbiBib3JyYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0xpc3RhIGRlIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSBkZSBUYXJlYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZ3JlZ2FyIFRhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZSBsYSBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWWEgZXhpc3RlIHVuYSB0YXJlYSBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgVXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnRWwgdXN1YXJpbyB0aWVuZSBwZXJtaXRpZG8gY3JlYXIgcHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdQZXJtaXRpciBjcmVhY2nDs24gZGUgcHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyaW9kbyBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZG8gZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRMOtYXMgZGUgVmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ0hvcmFzIHBvciBTZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1RpZW1wbyBFeHRyYSBBdXRvcml6YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdGZWNoYSBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnUG9yIGZhdm9yIGluc2VydGUgdW5hIGZlY2hhIHbDoWxpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRmVjaGEgZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0VsIHBlcmlvZG8gZGUgZmluYWxpemFjacOzbiBkZWJlIHNlciBwb3N0ZXJpb3IgYWwgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRMOtYXMgZGUgYXVzZW5jaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5hbGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnSG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vIHNlIGVuY29udHJhcm9uIHBlcmlvZG9zIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWdyZWdhciBwZXJpb2RvIGRlIHRpZW1wbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdWZXIgcmVnaXN0cm8gZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnUmVzdW1lbiBkZSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnRMOtYSBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0TDrWEgc2lndWllbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05vIHNlIGVuY29udHJhcm9uIGRhdG9zIGRlIGVzdGUgZMOtYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnwqFObyBzZSBwdWVkZW4gaW5zZXJ0YXIgdW5pZGFkZXMgZGUgdHJhYmFqbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICfCoU5vIHNlIHB1ZWRlIGd1YXJkYXIgbGEgY29uZmlndXJhY2nDs24sIHBvcnF1ZSB1biBkw61hIHPDs2xvIHRpZW5lIDI0IGhvcmFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnwqFObyBzZSBwdWVkZW4gYm9ycmFyIHVuaWRhZGVzIGRlIHRyYWJham8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXN0YSBmZWNoYSBlc3TDoSBmdWVyYSBkZWwgbMOtbWl0ZSwgcGVybyBubyBoYSBpbnNlcnRhZG8gdG9kYXbDrWEgZXN0ZSBkw61hLCBwb3IgbG8gcXVlIG9idGllbmUgdW5hICggwqFzb2xvIHVuYSEpIG9wb3J0dW5pZGFkIGRlIGluc2VydGFyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnRMOtYXMgTGFib3JhbGVzIEluY29tcGxldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ8KhUG9yIGZhdm9yIGluc2VydGUgc3VzIGhvcmFzIGRlIHRyYWJham8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ8KhSW5zZXJjacOzbiBleGl0b3NhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnwqFFcnJvciBhbCBpbnNlcnRhciBtw7psdGlwbGVzIGZlY2hhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnwqFTZSBoYW4gaW5zZXJ0YWRvIHNhdGlzZmFjdG9yaWFtZW50ZSBlbnRyYWRhcyBwYXJhIHZhcmlhcyBmZWNoYXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICfCoUxhIGZlY2hhIGludHJvZHVjaWRhIG5vIGVyYSB2w6FsaWRhISBMYSBmZWNoYSBzZSBjYW1iacOzIGEgaG95Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnw5psdGltb3MgUHJveWVjdG9zIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnVG9kb3MgbG9zIFByb3llY3Rvcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdQcm95ZWN0byBkZSBSZXBvcnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZXBvcnRlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICfCoU5vIHNlIHB1ZWRlIGFjdHVhbGl6YXIgbGEgY29uZmlndXJhY2nDs24gZGVsIHVzdWFyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnwqFQcm95ZWN0byBhw7FhZGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ8KhUHJveWVjdG8gYWN0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnwqFUYXJlYSBhw7FhZGlkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ8KhVGFyZWEgYWN0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ8KhTGEgSUQgZGUgdXN1YXJpbyBubyBlcyB2YWxpZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ8KhTm8gcHVlZGUgaW5zZXJ0YXIgZGF0b3MgZGUgdXN1YXJpbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICfCoU5vIHNlIHB1ZWRlIGHDsWFkaXIgdW4gcGVyw61vZG8gZGUgdGllbXBvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnQWp1c3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfCoVVzdWFyaW8gYWN0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnwqFVc3VhcmlvIGHDsWFkaWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ051ZXZvIFVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ0VzdGFkbyBkZWwgcGVyw61vZG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1ZlcjogwqFOZWNlc2l0YSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdEw61hcyBsYWJvcmFsZXMgaW5jb21wbGV0b3MnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnwqFQb3IgZmF2b3Igc2VsZWNjaW9uZSBhbCBtZW5vcyB1biBkw61hISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnUmVnaXN0cm8gTWFzaXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnwqFQb3IgZmF2b3IgZXNjb2phIHVuYSByYXrDs24gcG9yIGF1c2VuY2lhISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0VsaW1pbmFyIFJlZ2lzdHJvIGRlIENvbnRhYmlsaWRhZCBkZSBUaWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdDb25maXJtYXIgaW5zZXJjacOzbic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2FjacOzbiBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLCBuZWNlc2FyaW8gcGFyYSB2aXN1YWxpemFyIGVsIG7Dum1lcm8gZGUgZMOtYXMgaW5jb21wbGV0b3MgZGUgdW4gdXN1YXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21icmUgcG9yIGRlZmVjdG8gcGFyYSBhY2Npb25lcyBudWV2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWJyZSBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBkZXNjcmlwY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBmYWx0YXMgKGTDrWFzIGRlIGF1c2VuY2lhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBleHRyYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBzZW1hbmFsZXMgZXN0w6FuZGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgYWNjaW9uZXMgbnVldmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgdXN1YXJpb3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmUgcGFyYSBjdcOhbGVzIHByb3llY3RvcyBlcyBvYmxpZ2F0b3JpYSBsYSBpbnNlcmNpw7NuIGRlIGNvbWVudGFyaW9zLiBTaSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgY29pbmNpZGUgY29uIGVsIHByb3llY3RvLCBzZSB0aWVuZSBxdWUgZXNjcmliaXIgdW4gY29tZW50YXJpby4gTGEgZXhwcmVzacOzbiByZWd1bGFyIHVzYSBlbCBwYXLDoW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzaSBlbCBtw7NkdWxvIGRlIGVzdGFkw61zdGljYXMgZGViZSBnZW5lcmFyIGluZm9ybWFjacOzbiBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdFZGl0YXIgbGEgY29uZmlndXJhY2nDs24gZGUgQ29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdFZGl0YXIgcmVnaXN0cm8gZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdFc3BlY2lmaWNhIGVsIG7Dum1lcm8gbcOheGltbyBkZSBkw61hcyBwYXJhIHJlZ2lzdHJhciBob3JhcyBkZSB0cmFiYWpvIGF0cmFzYWRhcyAocG9yIGVqZW1wbG86IDEwIGTDrWFzIGRlIGFudGlnw7xlZGFkKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnU2kgc2UgaGFiaWxpdGEsIHNvbGFtZW50ZSBsb3MgdXN1YXJpb3MgcXVlIGhhbiByZWdpc3RyYWRvIHN1cyB0aWVtcG9zIGVuIGVsIHByb3llY3RvIHNlbGVjY2lvbmFkbyBzZXLDoW4gbW9zdHJhZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgbG9zIGVsZW1lbnRvcyBkZXNwbGVnYWJsZXMgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gc2UgY2FtYmlhcmFuIGEgbW9yZGVybm9zIGNhbXBvcyBkZSBhdXRvY29tcGxldGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzZSBsZSBwZXJtaXRpcsOhIGFsIHVzdWFyaW8gcmVnaXN0cmFyICJ2YWNhY2lvbmVzIiwgImF1c2VuY2lhIHBvciBlbmZlcm1lZGFkIiwgImF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmEiIGVuIG3Dumx0aXBsZXMgZmVjaGFzIGFsIG1pc21vIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgZXMgb2JsaWdhdG9yaW8gcmVwb3J0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgc2UgbW9zdHJhcsOhIHVuYSBhZHZlcnRlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBnZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGVsIHRpZW1wbyBkZWwgcHJveWVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIGFjY2lvbmVzLCBkZSBhY3VlcmRvIGFsIHByb3llY3RvIHNlbGVjY2lvbmFkby4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCBsYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgbGFzIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIHByb3llY3RvcywgZGUgYWN1ZXJkbyBhIGxvcyBncnVwb3MgZGUgdXN1YXJpb3MuIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgdW5hIGxpc3RhIGRlIGdydXBvcywgc2VwYXJhZG9zIHBvciBjb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2kgZXMgcG9zaWJsZSBpbnNlcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcyBzaW4gZGVmaW5pciBsb3MgdGllbXBvcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIGRlIGxhcyB0YXJlYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBoYWNlIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gcXVlIG11ZXN0cmEgdW5hIGFkdmVydGVuY2lhIHNpIGhheSBkZW1hc2lhZG9zIGTDrWFzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdSZXN1bWVuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZXBvcnRlIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0FqdXN0ZXMgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnU2UgdXNhIHNpIGFsZ3VuYXMgYWNjaW9uZXMgcmVkdWNlbiBlbCBuw7ptZXJvIGRlIGhvcmFzIHRyYWJhamFkYXMgKHBvciBlamVtcGxvOiBzaSBzw7NsbyBzZSBwYWdhIGxhIG1pdGFkIGRlbCB0aWVtcG8gZGUgdmlhamUgcHVlZGUgZXNwZWNpZmljYXJzZSBLZXkgPT4gVmlhamU7IENvbnRlbnQgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6Z2xfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdRdWVyZSByZWFsbWVudGUgYm9ycmFyIG8gVGVtcG8gQ29udGFiaWxpemFkbyBkZXN0ZSBkw61hPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdFZGl0ZSBSZXhpc3RybyBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0lyIMOhIGNvbmZpZ3VyYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIGVudHJlIGRhdGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRMOtYXMgc2VuIGVudHJhZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVjY2lvbmFyIHRvZG9zIG9zIGTDrWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdJbnRyb2R1Y2nDs24gZW4gbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ0VzY29sbGEgbyBtb3Rpdm8gZGEgc8O6YSBhdXNlbmNpYSBub3MgZMOtYXMgc2VsZWNjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ1ZhY2FjacOzbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0xpY2VuemEgcG9yIGVuZmVybWlkYWRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnRW4gcGVybWlzbyBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdPcyBjYW1wb3Mgb2JyaWdhdG9yaW9zIGVzdMOhbiBtYXJjYWRvcyBjdW4gwqsqwrsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnSGFpIHF1ZSBkYXIgdW5oYSBob3JhIGRlIGluaWNpbyBlIGRlIHJlbWF0ZSBvdSB1biBwZXLDrW9kbyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3hlY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnT2JzZXJ2YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTm9uIHNlIHBlcm1pdGVuIGhvcmFzIG5lZ2F0aXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vbiBzZSBwZXJtaXRlbiBob3JhcyByZXBldGlkYXMuIEEgaG9yYSBkZSBpbmljaW8gY29pbmNpZGUgY29uIG91dHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ08gZm9ybWF0byDDqSBpbmNvcnJlY3RvISBJbnRyb2R1emEgdW5oYSBob3JhIG5vIGZvcm1hdG8gSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIHPDsyBlc3TDoSBwZXJtaXRpZG8gY29tbyBob3JhIGRlIGZpbmFsaXphY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnQSBob3JhIMOpIGluY29ycmVjdGEhIFVuIGTDrWEgc8OzIHRlbiAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ0EgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGhhIGRlIHNlciBwb3N0ZXJpb3Igw6EgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vbiBzZSBwZXJtaXRlbiBob3JhcyByZXBldGlkYXMuIEEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGNvaW5jaWRlIGNvbiBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdPIHBlcsOtb2RvIMOpIGluY29ycmVjdG8hIFVuIGTDrWEgc8OzIHRlbiAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXLDrW9kbyBjb3JyZWN0byBoYSBkZSBzZXIgbWFpb3IgZGUgY2Vyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ08gcGVyw61vZG8gw6kgaW5jb3JyZWN0byEgTm9uIHNlIHBlcm1pdGVuIHBlcsOtb2RvcyBuZWdhdGl2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnRW5nYWRpciB1bmhhIGZpbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdTw7Mgw6kgcG9zw61iZWwgc2VsZWNjaW9uYXIgdW4gZWxlbWVudG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdDb25maXJtYSBxdWUgdHJhYmFsbG91IG1lbnRyZXMgdGnDsWEgbGljZW56YSBwb3IgZW5mZXJtaWRhZGU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtZW50cmVzIGVzdGFiYSBkZSB2YWNhY2nDs25zPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtZW50cmVzIHRpw7FhIHBlcm1pc28gcG9yIGhvcmFzIGV4dHJhcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtw6FpcyBkZSBkZXphc2VpcyBob3Jhcz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ1Zpc3RhIHhlcmFsIG1lbnN1YWwgZGUgcmVwb3J0ZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnSG9yYXMgZXh0cmEgKGhvcmFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdIb3JhcyBleHRyYSAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdIb3JhcyBleHRyYSAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1Blcm1pc28gcG9yIGhvcmFzIGV4dHJhcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVmFjYWNpw7NucyAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1ZhY2FjacOzbnMgY29sbGlkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnVmFjYWNpw7NucyBjb2xsaWRhcyAodG90YWlzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdWYWNhY2nDs25zIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0xpY2VuemEgcG9yIGVuZmVybWlkYWRlIChkw61hcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdMaWNlbnphcyBwb3IgZW5mZXJtaWRhZGUgY29sbGlkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdMaWNlbnphcyBwb3IgZW5mZXJtaWRhZGUgY29sbGlkYXMgKHRvdGFpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNZXMgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ01lcyBzZWd1aW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRMOtYSBkYSBzZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0hvcmFzIGxhYm9yYWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0hvcmFzIHRyYWJhbGxhZGFzIHRvdGFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXN0YSB4ZXJhbCBkbyBwcm94ZWN0byBkbyB1c3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0hvcmFzIChwb3IgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSG9yYXMgKHZpZGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnVG90YWwgYWN1bXVsYWRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBtZXNlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSXIgYSB1bmhhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnSW5mb3JtZXMgZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWwgbWVuc3VhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RvdGFsIGRhIHZpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdMaWNlbnphIHBvciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1ZhY2FjacOzbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpY2VuemEgcG9yIGVuZmVybWlkYWRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ1ZhY2FjacOzbnMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ0luZm9ybWVzIGRlIHByb3hlY3Rvcyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnSW5mb3JtZSBkZSBwcm94ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnSXIgw6EgdmlzdGEgeGVyYWwgZGUgaW5mb3JtZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzw7MgdXN1YXJpb3MgYWN0aXZvcyBuZXN0ZSBwcm94ZWN0byBzb24gbW9zdHJhZG9zLiBQYXJhIGNhbWJpYXIgZXN0ZSBjb21wb3J0YW1lbnRvLCBwb3IgZmF2b3IgYWN0dWFsaWNlIG8gYXh1c3RlOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdUb2RvIG8gdGVtcG8gY29udGFiaWxpemFkbyBwb2xvcyB1c3VhcmlvcyDDqSBtb3N0cmFkby4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGFjdHVsaWNlIG8gYXh1c3RlOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0ZSBDb250YWJpbGl6YWNpw7NuIGRvIFRlbXBvIGVuIEF4dXN0ZXMgZGUgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdFbmdhZGlyIHVuIHByb3hlY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnVmFpYSDDoSB2aXN0YSB4ZXJhbCBkZSBheHVzdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnRW5nYWRpciB1biBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0YXIgYSBjb25maWd1cmFjacOzbiBkbyBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWGEgaGFpIHVuIHByb3hlY3RvIGNvbiBlc3RlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xsYSB1biBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRWRpdGUgQ29udGFiaWxpemFjacOzbiBkbyBUZW1wbyBlbiBBeHVzdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRW5nYWRpciB1bmhhIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBwcm94ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgdGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0VuZ2FkaXIgdW5oYSB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnRWRpdGFyIGEgY29uZmlndXJhY2nDs24gZGEgdGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdYYSBoYWkgdW5oYSB0YXJlZmEgY29uIGVzdGUgbm9tZS4gUG9yIGZhdm9yLCBlc2NvbGxhIHVuIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgdXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBUZW1wbyBFeGNlc28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUGVybWl0aXIgY3JlYWNpw7NuIHByb3hlY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnQ29taWVuem8gUGVyaW9kbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnRmluIFBlcmlvZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0TDrWFzIGRlIFZhY2FjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdIb3JhcyBwb3IgU2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdFeGNlc28gVGVtcG8gQXV0b3JpemFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBkZSBjb21lem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnUG9yIGZhdm9yIGludHJvZHV6Y2EgdW5oYSBkYXRhIHbDoWxpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdEYXRhIGRlIGZpbmFsaXphY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdGaW4gZG8gcGVyaW9kbyBkZWJlIHNlciBkZXNwb2lzIGRlIHF1ZSBjb21pZW5jZSBvIHBlcmlvZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0TDrWFzIGRlIHBlcm1pc28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5haXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm9uIHNlIGF0b3Bhcm9uIHBlcsOtb2RvcyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnRW5nYWRpciBwZXJpb2RvIGRlIHRlbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1Zpc3RhIFJleGlzdHJvIGRlIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzdGEgZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnRMOtYSBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0TDrWEgc2VndWludGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm9uIHNlIGF0b3Bhcm9uIGRhdG9zIHBhcmEgZXN0ZSBkw61hLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdJbnRyb2R1emEgYXMgc8O6YXMgaG9yYXMgZGUgdHJhYmFsbG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyY2nDs24gc2F0aXNmYWN0b3JpYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0Vycm8gbWVudHJlcyBpbnRyb2R1Y8OtYW5zZSBkYXRhcyBtw7psdGlwbGVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdFbnRyYWRhcyBzYXRpc2ZhY3RvcmlhbWVudGUgaW50cm9kdWNpZGFzIHBhcmEgdmFyaWFzIGRhdGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnRGF0YSBpbnRyb2R1Y2lkYSBmb2kgaW52YWxpZGEhIEEgZGF0YSBmb2kgY2FtYmlhZGEgYSBob3hlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnSW5mb3JtZXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdDb25maWd1cmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdFc2NvbGxhIGFvIG1lbm9zIHVuIGTDrWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdJbnRyb2R1Y2nDs24gZW4gbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ0VzY29sbGEgbyBtb3Rpdm8gZGEgYXVzZW5jaWEhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRWxpbWluZSBFbnRyYWRhIFRlbXBvIENvbnRhYmlsaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdDb25maXJtZSBhIGluc2VyY2nDs24nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIG5vdGlmaWNhY2nDs24gaW50ZXJmYWNlIGRlIGF4ZW50ZSBwYXJhIHZlciBvIG7Dum1lcm8gZGUgZMOtYXMgZGUgdHJhYmFsbG8gaW5jb21wbGV0b3MgcGFyYSBvIHVzdWFyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTm9tZSBwcmVkZXRlcm1pbmFkbyBwYXJhIGFzIGFjY2nDs25zIG5vdmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdOb21lIHByZWRldGVybWluYWRvIHBhcmEgb3MgcHJveGVjdG9zIG5vdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0F4dXN0ZSBwb3IgZGVmZWN0byBwYXJhIGZpbiBkYSBkYXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQXh1c3RlIHBvciBkZWZlY3RvIHBhcmEgaW5pY2lvIGRhIGRhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ29uZmlndXJhY2nDs24gcHJlZGVmaW5pZGEgZGEgZGVzY3JpY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHByZWRlZmluaWRhIGRvcyBkw61hcyBkZSBwZXJtaXNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHByZWRlZmluaWRhIGRhcyBob3JhcyBleHRyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0F4dXN0ZSBwb3IgZGVmZWN0byBwYXJhIGFzIGhvcmFzIGVzdGFuZGFyZCBzZW1hbsOhaXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdFc3RhZG8gcHJlZGV0ZXJtaW5hZG8gcGFyYSBhcyBhY2Npw7NucyBub3Zhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdFc3RhZG8gcHJlZGV0ZXJtaW5hZG8gcGFyYSBvcyBwcm94ZWN0b3Mgbm92b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRXN0YWRvIHByZWRldGVybWluYWRvIHBhcmEgb3MgdXN1YXJpb3Mgbm92b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBwcm94ZWN0b3MgcGFyYSBvcyBjYWxlcyB1biBjb21lbnRhcmlvIMOpIHJlcXVpcmlkby4gU2UgYSBFeHBSZWcgY29pbmNpZGUgbm8gcHJveGVjdG8sIHRlbiBxdWUgaW5zZXJ0YXIgdW4gY29tZW50YXJpbyB0YW3DqW4uIEEgRXhwUmVnIHVzYSBvIHBhcsOhbWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNlIG8gbcOzZHVsbyBkZSBlc3RhdMOtc3RpY2FzIHBvZGUgeGVyYXIgaW5mb3JtYWNpw7NuIGRlIGNvbnRhYmlsaXphY2nDs24gZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdQb3IgY2FudG9zIGTDrWFzIGF0csOhcyBwb2RlIGluc2VydGFyIHVuaWRhZGVzIGRlIHRyYWJhbGxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTZSBoYWJpbGl0YWRvLCBzw7MgdXN1YXJpb3MgcXVlIGVuZ2FkaXJvbiB0ZW1wbyBkZSB0cmFiYWxsbyBhbyBwcm94ZWN0byBzZWxlY2Npb25hZG8gc29uIG1vc3RyYWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnU2UgaGFiaWxpdGFkbywgYW8gdXN1YXJpbyBwZXJtaXRlc2VsbGUgaW50cm9kdWNpciAicGVybWlzbyBkZSB2YWNhY2nDs25zIiAsICJwZXJtaXNvIHBvciBlbmZlcm1pZGFkZSIgZSAicGVybWlzbyBwb3IgZXhjZXNvIGRlIHRlbXBvIiBwYXJhIG11bHRpcGxlcyBkYXRhcyBkdW5oYSB2ZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIGRlIHRyYWJhbGxvIGRlc3BvaXMgZG9zIGNhbGVzIGFzIHVuaWRhZGVzIGRlIHRyYWJhbGxvIGRlYmVuIHNlciBpbnNlcnRhZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIGRlIHRyYWJhbGxvIHNlbiBlbnRyYWRhcyBkZSB1bmlkYWRlcyBkZSB0cmFiYWxsbyBkZXNwb2lzIGRvcyBjYWxlcyB1bmhhIGFsZXJ0YSBzZXLDoSBtb3N0cmFkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpw7NucyByZWd1bGFyZXMgcGFyYSBhIGxpc3RhIHF1ZSBjb250cmlueGUgYSBhY2Npw7NuIHNlZ3VuZG8gbyBwcm94ZWN0byBzZWxlY2Npb25hZG8uIENoYXZlIGNvbnTDqW4gYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBwcm94ZWN0byhzKSwgY29udGlkbyBjb250w6luIGV4cHJlc2nDs25zIHJlZ3VsYXJlcyBwYXJhIGFjY2nDs24ocykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ0V4cHJlc2nDs25zIHJlZ3VsYXJlcyBwYXJhIGEgbGlzdGEgcXVlIGNvbnRyaW54ZSBvIHByb3hlY3RvIHNlZ3VuZG8gb3MgZ3J1cG9zIHNlbGVjY2lvbmFkb3MuIENoYXZlIGNvbnTDqW4gYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBwcm94ZWN0byhzKSwgY29udGlkbyBjb250w6luIGxpc3RhIHNlcGFyYWRhIHBvciBjb21hcyBkZSBncnVwb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdFc3BlY2lmaWNhIHNlIGFzIGhvcmFzIGRlIHRyYWJhbGxvIHBvZGVuIHNlciBpbnNlcnRhZGFzIHNlbiB0ZW1wb3MgZGUgaW5pY2lvIGUgZmluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdFc3RlIG3Ds2R1bG8gZm9yemEgYXMgaW5zZXJjacOzbnMgZW4gQ29udGFiaWxpemFjacOzblRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ0VzdGUgbcOzZHVsbyBkZSBub3RpZmljYWNpw7NuIGRhIHVuaGEgYWxlcnRhIHNlIGhhaSBtb2l0b3MgZMOtYXMgZGUgdHJhYmFsbG8gaW5jb21wbGV0b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ0NvbnRhYmlsaXphciBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdFZGl0ZSBjb250YWJpbGl6YWNpw7NuIGRvIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnVmlzdGEgWGVyYWwgY29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdJbmZvcm1lIGNvbnRhYmlsaXphY2nDs24gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdBeHVzdGVzIGNvbnRhYmlsaXphY2nDs24gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1Zpc3RhIGNvbnRhYmlsaXphY2nDs24gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdDb250YWJpbGl6YWNpw7NuIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdQYXJhIHVzYXIgc2UgYWxndW5oYXMgYWNjacOzbnMgcmVkdWNpcm9uIGFzIGhvcmFzIGRlIHRyYWJhbGxvIChwb3IgZXhlbXBsbywgc2Ugc8OzIGEgbWl0YWRlIGRvIHRlbXBvIGRlIHZpYXhlIMOpIHBhZ2FkbyBDaGF2ZSA9PiB2aWF4ZTsgQ29udGlkbyA9PiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aHVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWYWzDs2JhbiB0w7Zyw7Zsbmkgc3plcmV0bsOpIGVubmVrIGEgbmFwbmFrIGF6IGlkxZFlbHN6w6Ftb2zDoXPDoXQ/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ0lkxZFmZWxqZWd5esOpcyBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnVWdyw6FzIGEgYmXDoWxsw610w6Fzb2tob3onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRMOhdHVtIG5hdmlnw6FjacOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnQmVqZWd5esOpc2VrIG7DqWxrw7xsaSBuYXBvayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdNaW5kZW4gbmFwIGtpamVsw7Zsw6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnVMO2bWVnZXMgYmVqZWd5esOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1bDoWxhc3N6YSBraSBhIHTDoXZvbGzDqXRlIG9rw6F0IGEga2lqZWzDtmx0IG5hcG9rcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdTemFiYWRzw6Fnb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0JldGVnc3phYmFkc8OhZ29uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQ3PDunN6dGF0w6Fzb24gdMO6bMOzcmEgbWlhdHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdBIGvDtnRlbGV6xZEgbWV6xZFrIOKAnirigJ0gamVsbGVsIHZhbm5hayBtZWdqZWzDtmx2ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdLaSBrZWxsIHTDtmx0ZW5pZSBhIGtlemTFkSDDqXMgYmVmZWplesWRIGlkxZF0IHZhZ3kgZWd5IGlkxZFzemFrb3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdGZWxhZGF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ8OJc3pyZXbDqXRlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdBZGpvbiBob3p6w6EgZWd5IDgga2FyYWt0ZXJuw6lsIGhvc3N6YWJiIMOpc3pyZXbDqXRlbHQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWdhdMOtdiBpZMWRcG9udG9rIG5lbSBlbmdlZMOpbHllemV0dGVrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnQXogaXNtw6l0bMWRZMWRIMOzcsOhayBuZW0gZW5nZWTDqWx5ZXpldHRlay4gQSBrZXpkw6lzaSBpZMWRIGVneSBtw6FzaWsgaWTFkWvDtnpyZSBpbGxlc3prZWRpay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ8OJcnbDqW55dGVsZW4gZm9ybcOhdHVtISDDk8OTOlBQIGZvcm3DoXR1bcO6IGlkxZF0IGFkam9uIG1lZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnQSAyNDowMCBjc2FrIGJlZmVqZXrDqXNpIGlkxZFrw6ludCBlbmdlZMOpbHllemV0dC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfDiXJ2w6lueXRlbGVuIGlkxZFwb250ISBFZ3kgbmFwbmFrIGNzYWsgMjQgw7Nyw6FqYSB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdBIGJlZmVqZXrDqXNpIGlkxZFuZWsgYSBrZXpkw6lzaSBpZMWRIHV0w6FuIGtlbGwgbGVubmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0F6IGlzbcOpdGzFkWTFkSDDs3LDoWsgbmVtIGVuZ2Vkw6lseWV6ZXR0ZWsuIEEgYmVmZWplesOpc2kgaWTFkSBlZ3kgbcOhc2lrIGlkxZFrw7Z6cmUgaWxsZXN6a2VkaWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfDiXJ2w6lueXRlbGVuIGlkxZFzemFrISBFZ3kgbmFwbmFrIGNzYWsgMjQgw7Nyw6FqYSB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnRWd5IMOpcnbDqW55ZXMgaWTFkXN6YWtuYWsgbmFneW9iYm5hayBrZWxsIGxlbm5pZSBudWxsw6Fuw6FsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnw4lydsOpbnl0ZWxlbiBpZMWRc3phayEgTmVnYXTDrXYgaWTFkXN6YWtvayBuZW0gZW5nZWTDqWx5ZXpldHRlay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdFZ3kgc29yIGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ0NzYWsgZWd5IGplbMO2bMWRbsOpZ3l6ZXQgZWxlbWV0IHbDoWxhc3p0aGF0IGtpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnQml6dG9zIGJlbm5lLCBob2d5IGRvbGdvem90dCwgbWlhbGF0dCBiZXRlZ3N6YWJhZHPDoWdvbiB2b2x0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0JpenRvcyBiZW5uZSwgaG9neSBkb2xnb3pvdHQsIG1pYWxhdHQgc3phYmFkc8OhZ29uIHZvbHQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdCaXp0b3MgYmVubmUsIGhvZ3kgZG9sZ296b3R0LCBtaWFsYXR0IGNzw7pzenRhdG90dD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnQml6dG9zIGJlbm5lLCBob2d5IHTDtmJiIG1pbnQgMTYgw7Nyw6F0IGRvbGdvem90dD8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ0lkxZFqZWxlbnTDqXMgaGF2aSDDoXR0ZWtpbnTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdUw7psw7NyYSAow7NyYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnVMO6bMOzcmEgKGV6IGEgaMOzbmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnVMO6bMOzcmEgKMO2c3N6ZXNlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnTWVnbWFyYWR0IGNzw7pzenRhdMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdTemFiYWRzw6FnIChuYXApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0tpdmV0dCBzemFiYWRzw6FnIChleiBhIGjDs25hcCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0tpdmV0dCBzemFiYWRzw6FnICjDtnNzemVzZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ01lZ21hcmFkdCBzemFiYWRzw6FnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQmV0ZWdzemFiYWRzw6FnIChuYXApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnS2l2ZXR0IGJldGVnc3phYmFkc8OhZyAoZXogYSBow7NuYXApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0tpdmV0dCBiZXRlZ3N6YWJhZHPDoWcgKMO2c3N6ZXNlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdFbMWResWRIGjDs25hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnS8O2dmV0a2V6xZEgaMOzbmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdIw6l0a8O2em5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnTXVua2FpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0xlZG9sZ296b3R0IMOzcsOhayDDtnNzemVzZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnQSBmZWxoYXN6bsOhbMOzIHByb2pla3Rqw6luZWsgw6F0dGVraW50xZFqZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICfDk3LDoWsgKGhhdm9udGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICfDk3LDoWsgKMOpbGV0dGFydGFtKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ01pbmTDtnNzemVzZW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnSWTFkWplbGVudMOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnSMOzbmFwIG5hdmlnw6FjacOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdVZ3LDoXMgZMOhdHVtcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnRmVsaGFzem7DoWzDs2kgamVsZW50w6lzZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ0hhdmkgw7Zzc3plc8OtdMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnw4lsZXR0YXJ0YW0gw7Zzc3plc2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQ3PDunN6dGF0w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnU3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnQmV0ZWdzemFiYWRzw6FnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0jDoXRyYWzDqXbFkSBzemFiYWRzw6FnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb2pla3QgamVsZW50w6lzZWsnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1Byb2pla3QgamVsZW50w6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ1VncsOhcyBhIGplbGVudMOpcyDDoXR0ZWtpbnTFkWjDtnonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdKZWxlbmxlZyBjc2FrIGF6IGFrdMOtdiBmZWxoYXN6bsOhbMOzayB2YW5uYWsgbWVnamVsZW7DrXR2ZSBlYmJlbiBhIHByb2pla3RiZW4uIEEgbcWxa8O2ZMOpcyBtw7Nkb3PDrXTDoXPDoWhveiBmcmlzc8OtdHNlIGEgYmXDoWxsw610w6FzdDonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnSmVsZW5sZWcgbWluZGVuIGlkxZFlbHN6w6Ftb2zDsyBmZWxoYXN6bsOhbMOzIG1lZyB2YW4gamVsZW7DrXR2ZS4gQSBtxbFrw7Zkw6lzIG3Ds2Rvc8OtdMOhc8OhaG96IGZyaXNzw610c2UgYSBiZcOhbGzDrXTDoXN0Oic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdJZMWRZWxzesOhbW9sw6FzIHByb2pla3RiZcOhbGzDrXTDoXNvayBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnUHJvamVrdCBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdVZ3LDoXMgYSBiZcOhbGzDrXTDoXNvayDDoXR0ZWtpbnTFkWjDtnonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdQcm9qZWt0IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdQcm9qZWt0YmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnTcOhciBsw6l0ZXppayBlZ3kgaWx5ZW4gbmV2xbEgcHJvamVrdC4gVsOhbGFzc3pvbiBlZ3kgbcOhc2lrIG5ldmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ0lkxZFlbHN6w6Ftb2zDoXNpIGJlw6FsbMOtdMOhc29rIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdGZWxhZGF0IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ1N6xbFyxZEgYSBwcm9qZWt0a2VoZXosIGZlbGFkYXRva2hveiB2YWd5IGZlbGhhc3puw6Fsw7NraG96JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnQXogaWTFkXN6YWtvayBuZW0gdMO2csO2bGhldMWRay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnUHJvamVrdGxpc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0ZlbGFkYXRsaXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0ZlbGFkYXQgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0ZlbGFkYXRiZcOhbGzDrXTDoXNvayBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdNw6FyIGzDqXRlemlrIGVneSBpbHllbiBuZXbFsSBmZWxhZGF0LiBWw6FsYXNzem9uIGVneSBtw6FzaWsgbmV2ZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0ZlbGhhc3puw6Fsw7NsaXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnRmVsaGFzem7DoWzDs2kgYmXDoWxsw610w6Fzb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdBIGZlbGhhc3puw6Fsw7MgbWVndGVraW50aGV0aSBhIHTDumzDs3LDoWthdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnVMO6bMOzcmEgbWVnamVsZW7DrXTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdBIGZlbGhhc3puw6Fsw7MgbMOpdHJlaG96aGF0IHByb2pla3Rla2V0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdQcm9qZWt0bMOpdHJlaG96w6FzIGVuZ2Vkw6lseWV6w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnSWTFkXRhcnRhbW9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0lkxZFzemFrIGtlemRldGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0lkxZFzemFrIHbDqWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdTemFiYWRzw6FnIG5hcGphaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ8OTcsOhayBoZXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdKb2dvc3VsdCB0w7psw7NyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnS2V6ZMOpc2kgZMOhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ8OJcnbDqW55ZXMgZMOhdHVtb3QgaWxsZXNzemVuIGJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0JlZmVqZXrDqXNpIGTDoXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0F6IGlkxZFzemFrIHbDqWfDqW5layBheiBpZMWRc3phayBrZXpkZXRlIHV0w6FuIGtlbGwgbGVubmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnU3phYmFkc8OhZyBuYXBqYWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSGV0aSDDs3LDoWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdUw7psw7NyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmVtIHRhbMOhbGhhdMOzayBpZMWRc3pha29rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdJZMWRc3phayBob3p6w6FhZMOhc2EnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnSWTFkWZlbGplZ3l6w6lzIG1lZ3Rla2ludMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdBIGvDtnZldGtlesWRIG1lZ3Rla2ludMOpc2U6ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdFbMWResWRIG5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0vDtnZldGtlesWRIG5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOZW0gdGFsw6FsaGF0w7MgYWRhdCBlcnJlIGEgbmFwcmEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ05lbSBsZWhldCBiZWlsbGVzenRlbmkgYSBtdW5rYWVneXPDqWdla2V0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnTGVndXTDs2JiaSBwcm9qZWt0ZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTmVtIGxlaGV0IGVsbWVudGVuaSBhIGJlw6FsbMOtdMOhc29rYXQsIG1lcnQgZWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTmVtIGxlaGV0IHTDtnLDtmxuaSBhIG11bmthZWd5c8OpZ2VrZXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXogYSBkw6F0dW0gYSBoYXTDoXJvbiBrw612w7xsIHZhbiwgZGUgbcOpZyBuZW0gaWxsZXN6dGV0dGUgYmUgZXogYSBuYXBvdCwgw61neSBrYXAgbcOpZyBlZ3koISkgZXPDqWx5dCBhIGJlaWxsZXN6dMOpc3JlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnQmVmZWplemV0bGVuIG11bmthbmFwb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnSWxsZXNzemUgYmUgYSBtdW5rYWlkZWrDqXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ1Npa2VyZXMgYmVpbGxlc3p0w6lzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnSGliYSB0w7ZydMOpbnQgdMO2YmIgZMOhdHVtIGJlaWxsZXN6dMOpc2Uga8O2emJlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnQSBiZWplZ3l6w6lzZWsgc2lrZXJlc2VuIGJlaWxsZXN6dHZlIGEga8O8bMO2bmLDtnrFkSBkw6F0dW1va2hveiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0EgbWVnYWRvdHQgZMOhdHVtIMOpcnbDqW55dGVsZW4gdm9sdCEgQSBkw6F0dW0gYSBtYWkgbmFwcmEgbGV0dCBtw7Nkb3PDrXR2YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnTmluY3MgaWTFkXN6YWsgYmXDoWxsw610dmEsIHZhZ3kgYSBtZWdhZG90dCBkw6F0dW0gYSBtZWdoYXTDoXJvem90dCBpZMWRc3pha29rb24ga8OtdsO8bCB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICdWZWd5ZSBmZWwgYSBrYXBjc29sYXRvdCBheiBpZMWRZWxzesOhbW9sw6FzIGFkbWluaXN6dHLDoXRvcsOhdmFsLCBob2d5IGZyaXNzw610c2UgYXogaWTFkXN6YWthaXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICdMZWd1dMOzYmIga2l2w6FsYXN6dG90dCBwcm9qZWt0ZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnTWluZGVuIHByb2pla3QnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnSmVsZW50w6lzIHByb2pla3Q6IHByb2pla3Rhem9ub3PDrXTDsyBzesO8a3PDqWdlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ0plbGVudMOpcyBwcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ0plbGVudMOpcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICdOZW0gbGVoZXQgZnJpc3PDrXRlbmkgYSBmZWxoYXN6bsOhbMOzaSBiZcOhbGzDrXTDoXNva2F0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ1Byb2pla3QgaG96esOhYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2pla3QgZnJpc3PDrXR2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICdGZWxhZGF0IGhvenrDoWFkdmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdGZWxhZGF0IGZyaXNzw610dmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0EgZmVsaGFzem7DoWzDsy1hem9ub3PDrXTDsyBuZW0gw6lydsOpbnllcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnTmVtIGxlaGV0IGJlaWxsZXN6dGVuaSBhIGZlbGhhc3puw6Fsw7NhZGF0b2thdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdOZW0gbGVoZXQgaG96esOhYWRuaSBpZMWRc3pha290ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnQmXDoWxsw610w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICdGZWxoYXN6bsOhbMOzIGZyaXNzw610dmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnRmVsaGFzem7DoWzDsyBob3p6w6FhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJ0ZlbGhhc3puw6Fsw7MgaG96esOhYWTDoXNhIGF6IGlkxZFlbHN6w6Ftb2zDoXNob3rigKYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfDmmogZmVsaGFzem7DoWzDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnSWTFkXN6YWsgw6FsbGFwb3QnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ07DqXpldDogJXMgc3rDvGtzw6lnZXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnQmVmZWplemV0bGVuIG11bmthbmFwb2snOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnTGVnYWzDoWJiIGVneSBuYXBvdCB2w6FsYXNzem9uIGtpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnVMO2bWVnZXMgYmVqZWd5esOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1bDoWxhc3N6YSBraSBhIHTDoXZvbGzDqXQgb2vDoXQhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnSWTFkWVsc3rDoW1vbMOhcyBiZWplZ3l6w6lzIHTDtnJsw6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0JlaWxsZXN6dMOpcyBtZWdlcsWRc8OtdMOpc2UnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfDnGd5aW50w6l6xZFpIGZlbMO8bGV0IMOpcnRlc8OtdMOpc2kgbW9kdWwgYSBmZWxoYXN6bsOhbMOzIGJlZmVqZXpldGxlbiBtdW5rYW5hcGphaSBzesOhbcOhbmFrIG1lZ3Rla2ludMOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgbsOpdiBheiDDumogbcWxdmVsZXRla2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBuw6l2IGF6IMO6aiBwcm9qZWt0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBiZWZlamV6w6lzaSBkw6F0dW1ob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IGJlw6FsbMOtdMOhcyBhIGtlemTDqXNpIGTDoXR1bWhvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IGJlw6FsbMOtdMOhcyBhIGxlw61yw6FzaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBzemFiYWRzw6FnIG5hcGphaWhvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IGJlw6FsbMOtdMOhcyBhIHTDumzDs3LDoWhvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgc3phYnbDoW55b3MgaGV0aSBtdW5rYcOzcsOha2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgw6FsbGFwb3QgYXogw7pqIG3FsXZlbGV0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCDDoWxsYXBvdCBheiDDumogcHJvamVrdGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgw6FsbGFwb3QgYXogw7pqIGZlbGhhc3puw6Fsw7NraG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGF6b2thdCBhIHByb2pla3Rla2V0LCBhbWVseWVraGV6IMOpc3pyZXbDqXRlbCBzesO8a3PDqWdlcy4gSGEgYSByZWd1bMOhcmlzIGtpZmVqZXrDqXMgaWxsZXN6a2VkaWsgYSBwcm9qZWt0cmUsIGFra29yIGJlIGtlbGwgaWxsZXN6dGVuaWUgZWd5IMOpc3pyZXbDqXRlbHQgaXMuIEEgcmVndWzDoXJpcyBraWZlamV6w6lzIGF6IHNteCBwYXJhbcOpdGVydCBoYXN6bsOhbGphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSwgaG9neSBhIHN0YXRpc3p0aWthIG1vZHVsIGVsxZHDoWxsw610aGF0LWUgaWTFkWVsc3rDoW1vbMOhc2kgaW5mb3Jtw6FjacOza2F0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIGJlw6FsbMOtdMOhc2FpbmFrIHN6ZXJrZXN6dMOpc2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnSWTFkWZlbGplZ3l6w6lzIHN6ZXJrZXN6dMOpc2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0jDoW55IG5hcHBhbCBlemVsxZF0dGjDtnogaWxsZXN6dGhldCBiZSBtdW5rYWVneXPDqWdla2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdIYSBlbmdlZMOpbHllenZlIHZhbiwgYWtrb3IgY3NhayBhem9rIGEgZmVsaGFzem7DoWzDs2sgbGVzem5layBtZWdqZWxlbsOtdHZlLCBha2lrIG11bmthaWTFkXQgYWR0YWsgaG96esOhIGEga2lqZWzDtmx0IHByb2pla3RoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdIYSBlbmdlZMOpbHllenZlIHZhbiwgYWtrb3IgYSBzemVya2VzenTDqXNpIGvDqXBlcm55xZFuIGzDqXbFkSBsZW55w61sw7MgZWxlbWVrIGtvcnN6ZXLFsXPDrXRldHQgYXV0b21hdGlrdXNhbiBraWVnw6lzesOtdGV0dCBtZXrFkWtyZSBsZXN6bmVrIG1lZ3bDoWx0b3p0YXR2YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGF6IGVsxZF6xZEgcHJvamVrdGVrIHN6xbFyxZFqZSBoYXN6bsOhbGhhdMOzIGEgcHJvamVrdGVrIGvDqXQgbGlzdMOhamEgaGVseWV0dCAobGVndXTDs2JiaSDDqXMgw7Zzc3plcykuIENzYWsgYWtrb3IgaGFzem7DoWxoYXTDsywgaGEgYSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gZW5nZWTDqWx5ZXp2ZSB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdIYSBlbmdlZMOpbHllenZlIHZhbiwgYWtrb3IgYXogZWzFkXrFkSBwcm9qZWt0ZWsgc3rFsXLFkWplIGFsYXDDqXJ0ZWxtZXpldHRlbiBiZSB2YW4ga2FwY3NvbHZhLCBoYSB2YW5uYWsgZWzFkXrFkSBwcm9qZWt0ZWsuIENzYWsgYWtrb3IgaGFzem7DoWxoYXTDsywgaGEgYXogRW5hYmxlQXV0b0NvbXBsZXRpb24gw6lzIGEgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBlbmdlZMOpbHllenZlIHZhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0hhIGVuZ2Vkw6lseWV6dmUgdmFuLCBha2tvciBhIGZlbGhhc3puw6Fsw7NuYWsgbWVnZW5nZWRldHQgZWd5c3plcnJlIHTDtmJiIGTDoXR1bWhveiDigJ5zemFiYWRzw6Fnb27igJ0sIOKAnmJldGVnc3phYmFkc8OhZ29u4oCdIMOpcyDigJ5jc8O6c3p0YXTDoXNvbuKAnSDDqXJ0w6lrIG1lZ2Fkw6FzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdBIG11bmthbmFwb2sgbGVnbmFneW9iYiBzesOhbWEsIGFtZWx5ZWsgdXTDoW4gYSBtdW5rYWVneXPDqWdla2V0IGJlIGtlbGwgc3rDunJuaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ0EgbXVua2FlZ3lzw6lnZWsgYmVqZWd5esOpcyBuw6lsa8O8bGkgbXVua2FuYXBvayBsZWduYWd5b2JiIHN6w6FtYSwgYW1lbHllayB1dMOhbiBlZ3kgZmlneWVsbWV6dGV0w6lzIGxlc3ogbWVnamVsZW7DrXR2ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnw4F0dGVraW50w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1Byb2pla3RpZMWRIGplbGVudMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ1JlZ3Vsw6FyaXMga2lmZWplesOpc2VrIGEga2lqZWzDtmx0IHByb2pla3Qgc3plcmludGkga29ybMOhdG96w7MgbcWxdmVsZXQgbGlzdMOhasOhaG96LiBBIGt1bGNzIGEgcHJvamVrdGVraGV6IHRhcnRhbG1heiByZWd1bMOhcmlzIGtpZmVqZXrDqXN0LCBhIHRhcnRhbG9tIHBlZGlnIGEgbcWxdmVsZXRla2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnUmVndWzDoXJpcyBraWZlamV6w6lzZWsgYSBmZWxoYXN6bsOhbMOzY3NvcG9ydG9rIHN6ZXJpbnRpIGtvcmzDoXRvesOzIHByb2pla3QgbGlzdMOhasOhaG96LiBBIGt1bGNzIGEgcHJvamVrdGVraGV6IHRhcnRhbG1heiByZWd1bMOhcmlzIGtpZmVqZXrDqXN0LCBhIHRhcnRhbG9tIHBlZGlnIGNzb3BvcnRvayB2ZXNzesWRdmVsIGVsdsOhbGFzenRvdHQgbGlzdMOhasOhdCB0YXJ0YWxtYXp6YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ01lZ2FkamEsIGhvZ3kgYSBtdW5rYWlkxZEgYmVzesO6cmhhdMOzLWUga2V6ZMOpc2kgw6lzIGJlZmVqZXrDqXNpIGlkxZFrIG7DqWxrw7xsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdFeiBhIG1vZHVsIGtpa8OpbnlzemVyw610aSBhIGJlc3rDunLDoXNva2F0IGF6IGlkxZFlbHN6w6Ftb2zDoXNiYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRXogYXogw6lydGVzw610w6lzaSBtb2R1bCBlZ3kgZmlneWVsbWV6dGV0w6lzdCBhZCwgaGEgdMO6bCBzb2sgYmVmZWplemV0bGVuIG11bmthbmFwIHRhbMOhbGhhdMOzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdJZMWRZWxzesOhbW9sw6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgc3plcmtlc3p0w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyDDoXR0ZWtpbnTFkS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIGplbGVudMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgYmXDoWxsw610w6Fzb2suJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgbsOpemV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnQWtrb3Iga2VsbCBoYXN6bsOhbG5pLCBoYSBuw6low6FueSBtxbF2ZWxldCBjc8O2a2tlbnRldHRlIGEgbXVua2FpZMWRdCAocMOpbGTDoXVsIGhhIGNzYWsgYXogdXRhesOhc2kgaWTFkSBmZWxlIHZhbiBraWZpemV0dmU6IEt1bGNzID0+IHV0YXrDoXM7IFRhcnRhbG9tID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aXRfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWdW9pIHZlcmFtZW50ZSBjYW5jZWxsYXJlIGxhIHJlbmRpY29udGF6aW9uZSB0ZW1wb3JhbGUgZGkgb2dnaSA/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ01vZGlmaWNhIGxhIHJlbmRpY29udGF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ1ZhaSBhbGxlIGltcG9zdGF6aW9uaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2F6aW9uZSBwZXIgZGF0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0dpb3JuaSBzZW56YSBpbmZvcm1hemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZXppb25hIHR1dHRpIGkgZ2lvcm5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdJbnNlcmltZW50byBtYXNzaXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUGVyIGZhdm9yZSBzZWxlemlvbmEgaWwgbW90aXZvIGRlbGxhIHR1YSBhc3NlbnphIHBlciBpIGdpb3JuaSBzZWxlemlvbmF0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdGZXJpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQXNzZW50ZSBwZXIgbWFsYXR0aWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdBc3NlbnRlIHBlciByZWN1cGVybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0kgY2FtcGkgb2JibGlnYXRvcmkgc29ubyBpbmRpY2F0aSBjb24gIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0VcJyBvYmJsaWdhdG9yaW8gaW5zZXJpcmUgaW5pemlvIGUgZmluZSBvcHB1cmUgdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdDb21waXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0NvbW1lbnRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ0FnZ2l1bmdlcmUgdW4gY29tbWVudG8gY29uIHBpw7kgZGkgOCBjYXJhdHRlcmkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOb24gcG9zc29ubyBlc3NlcmUgaW5zZXJpdGkgdmFsb3JpIG5lZ2F0aXZpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnTm9uIMOoIHBlcm1lc3NvIGluc2VyaXJlIG9yZSByaXBldHV0ZS4gTFwnb3JhcmlvIGRpIGluaXppbyBjb2luY2lkZSBjb24gdW4gYWx0cm8gaW50ZXJ2YWxsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ0Zvcm1hdG8gbm9uIHZhbGlkby4gSW5zZXJpcmUgdW4gb3JhcmlvIG5lbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdMXCdvcmEgMjQ6MDAgw6ggY29uc2VudGl0YSBzb2xvIGNvbWUgb3JhIGRpIGZpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnT3JhcmlvIG5vbiB2YWxpZG8hIEluIHVuIGdpb3JubyBjaSBzb25vIHNvbG8gMjQgb3JlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTFwnb3JhcmlvIGRpIGZpbmUgw6ggcG9zdGVyaW9yZSBhbGxcJ29yYXJpbyBkaSBpbml6aW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnTm9uIMOoIHBlcm1lc3NvIGluc2VyaXJlIG9yZSByaXBldHV0ZS4gTFwnb3JhcmlvIGRpIGZpbmUgY29pbmNpZGUgY29uIHVuIGFsdHJvIGludGVydmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdQZXJpb2RvIG5vbiB2YWxpZG8uIFVuYSBnaW9ybmF0YSBoYSBzb2xvIDI0IG9yZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHZhbGlkbyBkZXZlIGVzc2VyZSBtYWdnaW9yZSBkaSB6ZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnUGVyaW9kbyBub24gdmFsaWRvLiBWYWxvcmkgbmVnYXRpdmkgbm9uIGFtbWVzc2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQWdnaXVuZ2VyZSB1bmEgcmlnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1B1b2kgc2VsZXppb25hcmUgc29sbyB1biBlbGVtZW50byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ1NlaSBzaWN1cm8gZGkgYXZlciBsYXZvcmF0byBtZW50cmUgZXJpIGFzc2VudGUgcGVyIG1hbGF0dGlhPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ1NlaSBzaWN1cm8gZGkgYXZlciBsYXZvcmF0byBtZW50cmUgZXJpIGluIGZlcmllPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnU2VpIHNpY3VybyBkaSBhdmVyIGxhdm9yYXRvIG1lbnRyZSBlcmkgYXNzZW50ZSBwZXIgcmVjdXBlcm8gPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gcGnDuSBkaSAxNiBvcmU/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdDcnVzY290dG8gbWVuc2lsZSBkaSByZW5kaWNvbnRhemlvbmUgdGVtcG9yYWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdTdHJhb3JkaW5hcmlvIChvcmUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ1N0cmFvcmRpbmFyaW8gKHF1ZXN0byBtZXNlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnU3RyYW9yZGluYXJpbyAodG90YWxlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdUb3RhbGUgb3JlIGRpIHJlY3VwZXJvIGRpc3BvbmliaWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0ZlcmllIChnaW9ybmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0ZlcmllIHV0aWxpenphdGUgKHF1ZXN0byBtZXNlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnRmVyaWUgdXRpbGl6emF0ZSAodG90YWxlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdGZXJpZSByZXNpZHVlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQXNzZW56ZSBwZXIgbWFsYXR0aWEgKGdpb3JuaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdBc3NlbnplIHBlciBtYWxhdHRpYSB1dGlsaXp6YXRlIChxdWVzdG8gbWVzZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnQXNzZW56ZSBwZXIgbWFsYXR0aWEgKHRvdGFsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNZXNlIHByZWNlZGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ01lc2Ugc2VndWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0dpb3JubyBkZWxsYSBzZXR0aW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ09yZSBsYXZvcmF0aXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ1RvdGFsZSBvcmUgbGF2b3JhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzdWFsaXp6YXppb25lIGRlbCBwcm9nZXR0byAtIFV0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdPcmUgKG1lbnNpbGkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdPcmUgKGdsb2JhbGkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnVG90YWxlIG9tbmljb21wcmVuc2l2byc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZXBvcnQgZGVsIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2F6aW9uZSBwZXIgbWVzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnVmFpIGFsbGEgZGF0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSZXBvcnQgdXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdUb3RhbGUgbWVuc2lsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RvdGFsZSBnTG9iYWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQXNzZW56ZSBwZXIgcmVjdXBlcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdGZXJpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnTWFsYXR0aWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnR2lvcm5pIHJpbWFuZW50aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSaWFzc3VudGkgcHJvZ2V0dG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1JpYXNzdW50byBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdWYWkgYWwgcmllcGlsb2dvIGRpIHJlcG9ydGlzdGljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1Zlbmdvbm8gbW9zdHJhdGkgc29sbyBnbGkgdXRlbnRpIGF0dGl2aSBkaSBxdWVzdG8gcHJvZ2V0dG8uIFBlciBjYW1iaWFyZSBxdWVzdG8gY29tcG9ydGFlbnRvIGFnZ2lvcm5hcmUgaWwgcGFyYW1ldHJvOiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVmVuZ29ubyBtb3N0cmF0aSB0dXR0aSBnbGkgdXRlbnRpIHBlciBsYSByZW5kaWNvbnRhemlvbmUgdGVtcG8uIFBlciBjYW1iaWFyZSBxdWVzdG8gY29tcG9ydGFtZW50byBhZ2dpb3JuYXJlIGlsIHBhcmFtZXRybzonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBsZSBjb25maWd1cmF6aW9uaSBkaSBnZXN0aW9uZSBkZWwgdGVtcG8gZGVsIHByb2dldHRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ0FnZ2l1bmdlcmUgcHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdWYWkgYWwgcmllcGlsb2dvIGltcG9zdGF6aW9uaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0FnZ2l1bmdlcmUgcHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBsYSBjb25maWd1cmF6aW9uZSBkZWwgcHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0VzaXN0ZSBnacOgIHVuIHByb2dldHRvIGNvbiBxdWVzdG8gbm9tZS4gU2NlZ2xlaXJlIHVuIG5vbWUgZGl2ZXJzby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXJlIGxlIGNvbmZpZ3VyYXppb25pIGRlbGxhIHJlbmRpY29udGF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FnZ2l1bmdlcmUgY29tcGl0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ0ZpbHRybyBwZXIgcHJvZ2V0dGksIGF0dGl2aXTDoCBvIHV0ZW50aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0kgcGVyaW9kaSBkaSB0ZW1wbyBub24gcG9zc29ubyBlc3NlcmUgZWxpbWluYXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdFbGVuY28gZGVpIHByb2dldHRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0VsZW5jbyBkZWkgY29tcGl0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0FnZ2l1bmdlcmUgY29tcGl0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXJlIGxhIGNvbmZpZ3VyYXppb25lIGRlaSBjb21waXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdFc2lzdGUgZ2nDoCB1biBjb21waXRvIGNvbiBxdWVzdG8gbm9tZS4gU2NlZ2xpZXJlIHVuIG5vbWUgZGl2ZXJzby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnRWxlbmNvIHV0ZW50aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnSW1wb3N0YXppb25pIHV0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhcmUgc3RyYW9yZGluYXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0Nvc2VudGlyZSBsYSBjcmVhemlvbmUgZGVsIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyaW9kbyBkaSBpbml6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZG8gZGkgdGVybWluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnR2lvcm5pIGRpIEFzc2VuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdPcmUgYWxsYSBzZXR0aW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1N0cmFvcmRpbmFyaSBhdXRvcml6emF0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBkaSBpbml6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnSW5zZXJpcmUgdW5hIGRhdGEgdmFsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgRmluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0lsIHBlcmlvZG8gZmluYWxlIGRldmUgZXNzZXJlIHBvc3RlcmlvcmUgYWwgcGVyaW9kbyBpbml6aWFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0dpb3JuaSBkaSBhc3NlbnphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ09yYXJpIGRlbGxhIFNldHRpbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ1N0cmFvcmRpbmFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vbiBjaSBzb25vIHBlcmlvZGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0FnZ2l1bmdpIHBlcmlvZG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnVmlzdWFsaXp6YXJlIHJlZ2lzdHJvIG9yYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc3VhbGl6emF6aW9uZSBkaSAgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0dpb3JubyBwcmVjZWRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnR2lvcm5vIHN1Y2Nlc3Npdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTmVzc3VuIGRhdG8gdHJvdmF0byBwZXIgcXVlc3RvIGdpb3Juby4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdVbHRpbWkgcHJvZ2V0dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdHaW9ybmkgbGF2b3JhdGl2aSBpbmNvbXBsZXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0luc2VyaXJlIGxcJ29yYXJpbyBsYXZvcmF0aXZvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmltZW50byBhdnZlbnV0byBjb24gc3VjY2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdTaSDDqCB2ZXJpZmljYXRvIHVuIGVycm9yZSBuZWxsXCdpbnNlcmltZW50byBkaSBkYXRlIG11bHRpcGxlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdJbnNlcmltZW50byBkaSBkYXRlIG11bHRpcGxlIGF2dmVudXRvIGNvbiBzdWNjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0xhIGRhdGEgaW5zZXJpdGEgbm9uIMOoIHZhbGlkYSEgRVwnIHN0YXRhIGltcG9zdGF0YSBsYSBkYXRhIGRpIG9nZ2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICdVbHRpbWkgcHJvZ2V0dGkgc2VsZXppb25hdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnVHV0dGkgaSBwcm9nZXR0aSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmVwb3J0aXN0aWNhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ0ltcG9zc2liaWxlIGFnZ2lvcm5hcmUgbGUgaW1wb3N0YXppb25pIHV0ZW50ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9nZXR0byBhZ2dpdW50byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2dldHRvIGFnZ2lvcm5hdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnQXR0aXZpdMOgIGFnZ2l1bnRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0xvIFVzZXJJRCBub24gw6ggdmFsaWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0ltcG9zdGF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnVXRlbnRlIGFnZ2lvcm5hdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnVXRlbnRlIGluc2VyaXRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ051b3ZvIHV0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdG8gZGkgcGVyaW9kbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnR2lvcm5pIGxhdm9yYXRpdmkgaW5jb21wbGV0aSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdTcGVjaWZpY2FyZSBhbG1lbm8gdW4gZ2lvcm5vISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnSW5zZXJpbWVudG8gbWFzc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1NlbGV6aW9uYXJlIHVuIG1vdGl2byBwZXIgbFwnYXNzZW56YSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdDYW5jZWxsYXJlIHZvY2UgZGkgcmVuZGljb250YXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmVybWFyZSBpbnNlcmltZW50byc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsbyBkaSBub3RpZmljYSBkZWxsXCdpbnRlcmZhY2NpYSBhZ2VudGUgcGVyIHZlZGVyZSBpbCBudW1lcm8gZGkgZ2lvcm5pIGxhdm9yYXRpdmkgaW5jb21wbGV0aSBwZXIgbFwndXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTm9tZSBwcmVkZWZpbml0byBwZXIgbGUgbnVvdmUgYXppb25pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdOb21lIHByZWRlZmluaXRvIHBlciBpIG51b3ZpIHByb2dldHRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbGEgZGF0YSBkaSBmaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsYSBkYXRhIGRpIGluaXppby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxhIGRlc2NyaXppb25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBpIGdpb3JuaSBkaSBhc3NlbnphL3ZhY2FuemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsbyBzdHJhb3JkaW5hcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsXCdvcmFyaW8gc2V0dGltYW5hbGUgc3RhbmRhcmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxlIG51b3ZlIGF6aW9uaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGkgbnVvdmkgcHJvZ2V0dGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBpIG51b3ZpIHV0ZW50aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5pc2NlIGkgcHJvZ2V0dGkgcGVyIGkgcXVhbGkgdW5hIGFubm90YXppb25lIMOoIG9iYmxpZ2F0b3JpYS4gU2UgbGEgUmVnRXhwIGNvaW5jaWRlIGlsIHByb2dldHRvIHNpIMOoIG9iYmxpZ2F0aSBhZCBpbnNlcmlyZSB1bmEgYW5ub3RhemlvbmUuIExhIFJlZ0V4cCB1dGlsaXp6YSBpbCBwYXJhbWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNlIGlsIG1vZHVsbyBzdGF0aXN0aWNoZSBwdcOyIGdlbmVyYXJlIGluZm9ybWF6aW9uaSBkaSByZW5kaWNvbnRhemlvbmUgdGVtcG9yYWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnTnVtZXJvIG1hc3NpbW8gZGkgZ2lvcm5pIG5lbCBwYXNzYXRvIGluIGN1aSDDqCBwb3NzaWJpbGUgaW5zZXJpcmUgbGUgdW5pdMOgIGRpIGxhdm9yby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRvLCBtb3N0cmEgc29sbyBnbGkgdXRlbnRpIGNoZSBoYW5ubyBhZ2dpdW50byB2b2NpIGRpIHRlbXBvIGxhdm9ybyBhbCBwcm9nZXR0byBzZWxlemlvbmF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NlIGFiaWxpdGF0YSwgZ2xpIGVsZW1lbnRpIGEgdGVuZGluYSBuZWxsYSBzY2hlcm1hdGEgZGkgbW9kaWZpY2Egc29ubyBzb3N0aXR1aXRpIGRhIHBpw7kgbW9kZXJuaSBjYW1waSBjb24gY29tcGxldGFtZW50byBhdXRvbWF0aWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdGEsIGlsIGZpbHRybyBwZXIgaSBwcm9nZXR0aSBwcmVjZWRlbnRpIHB1w7IgZXNzZXJlIHV0aWxpenphdG8gYWwgcG9zdG8gZGkgZHVlIGVsZW5jaGkgZGkgcHJvZ2V0dGkgKHVsdGltbyBlIHR1dHRpKS4gUHXDsiBlc3NlcmUgdXRpbGl6emF0byBzb2xvIHNlIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiDDqCBhYmlsaXRhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdGEsIGlsIGZpbHRybyBwZXIgaSBwcm9nZXR0aSBwcmVjZWRlbnRpIMOoIGF0dGl2byBpbiBtb2RvIHByZWRlZmluaXRvIHNlIGNpIHNvbm8gcHJvZ2V0dGkgcHJlY2VkZW50aS4gUHXDsiBlc3NlcmUgdXRpbGl6emF0byBzb2xvIHNlIEVuYWJsZUF1dG9Db21wbGV0aW9uIGUgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBzb25vIGFiaWxpdGF0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NlIGFiaWxpdGF0bywgw6ggcG9zc2liaWxlIHBlciBnbGkgdXRlbnRpIGluc2VyaXJlIGkgY2FtcGkgInBlcmlvZG8gZGkgdmFjYW56YSIsICJwZXJpb2RvIGRpIG1hbGF0dGlhIiBlICJzdHJhb3JkaW5hcmlvIiBjb24gZGF0ZSBtdWx0aXBsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOdW1lcm8gbWFzc2ltbyBkaSBnaW9ybmkgbGF2b3JhdGl2aSBpbiBjdWkgw6ggcG9zc2liaWxlIGluc2VyaXJlIGxlIHZvY2kgZGkgdW5pdMOgIGRpIGxhdm9yby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ051bWVybyBtYXNzaW1vIGRpIGdpb3JuaSBsYXZvcmF0aXZpIGNoZSBub24gaGFubm8gdm9jaSBkaSB1bml0w6AgZGkgbGF2b3JvIG9sdHJlIGlsIHF1YWxlIHZlcnLDoCBtb3N0cmF0byB1biBhdnZpc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnRXNwcmVzc2lvbmkgcmVnb2xhcmkgcGVyIHZpbmNvbGFyZSBsaXN0YSBkaSBhemlvbmkgaW4gYmFzZSBhbCBwcm9nZXR0byBzZWxlemlvbmF0by4gTGEgY2hpYXZlIGNvbnRpZW5lIHVuXCdlc3ByZXNzaW9uZSByZWdvbGFyZSBwZXIgaWwvaSBwcm9nZXR0by9pLCBpbCBjb250ZW51dG8gY29udGllbmUgZXNwcmVzc2lvbmkgcmVnb2xhcmkgcGVyIGxlIGF6aW9uaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnRXNwcmVzc2lvbmkgcmVnb2xhcmkgcGVyIHZpbmNvbGFyZSBsaXN0YSBkaSBwcm9nZXR0aSBpbiBiYXNlIGFpIGdydXBwaSB1dGVudGUuIExhIGNoaWF2ZSBjb250aWVuZSB1blwnZXNwcmVzc2lvbmUgcmVnb2xhcmUgcGVyIGlsL2kgcHJvZ2V0dG8vaSwgaWwgY29udGVudXRvIGNvbnRpZW5lIGVzcHJlc3Npb25pIHJlZ29sYXJpIHBlciBsZSBhemlvbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdTcGVjaWZpY2Egc2UgbGUgb3JlIGxhdm9yYXRpdmUgcG9zc29ubyBlc3NlcmUgaW5zZXJpdGUgc2VuemEgb3JhcmkgZGkgaW5pemlvIGUgZGkgZmluZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnUXVlc3RvIG1vZHVsbyBmb3J6YSBnbGkgaW5zZXJpbWVudGkgaW4gVGltZUFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnUXVlc3RvIG1vZHVsbyBkaSBub3RpZmljYSBnZW5lcmEgdW4gYXZ2aXNvIHNlIGNpIHNvbm8gdHJvcHBpIGdpb3JuaSBsYXZvcmF0aXZpIG5vbiBjb21wbGV0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnUmVuZGljb250YXppb25lIFRlbXBvcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdNb2RpZmljYSByZW5kaWNvbnRhemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdQYW5vcmFtaWNhIHN1bGxhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGlzdGljYSBzdWxsYSBjb250YWJpbGl6emF6aW9uZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0ltcG9zdGF6aW9uaSBwZXIgbGEgY29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1Zpc3RhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0RhIHV0aWxpenphcmUgc2UgYWxjdW5lIGF6aW9uaSBoYW5ubyByaWRvdHRvIGxlIG9yZSBsYXZvcmF0aXZlIChwZXIgZXNlbXBpbzogc2Ugc29sbyBsYSBtZXTDoCBkZWwgdGVtcG8gZGkgdmlhZ2dpbyDDqCBwYWdhdG86IENoaWF2ZSA9PiBWaWFnZ2lvOyBDb250ZW51dG8gPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6amFfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfmnKzlvZPjgavoqbLlvZPml6Xjga7mg4XloLHjgpLliYrpmaTjgZfjgb7jgZnjgYvvvJ8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn44K/44Kk44Og44Os44Kz44O844OJ44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn6Kit5a6a44G4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ+aXpeWIpeODiuODk+OCsuODvOOCt+ODp+ODsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ+OCqOODs+ODiOODquODvOOBruOBquOBhOaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICflhajjgabjga7ml6XjgpLpgbjmip4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ+WFqOS9k+WFpeWKmyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ+ipsuW9k+OBruaXpeOBruasoOWLpOeQhueUseOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ+S8keaah+WPluW+l+S4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAn55eF5qyg5LitJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAn5Luj5LyR5LitJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnKiDjga7poIXnm67jga/lhaXlipvlv4XpoIjjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICfplovlp4vmmYLplpPjgajntYLkuobmmYLplpPjgIHjgb7jgZ/jga/mnJ/plpPjgpLmjIflrprjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn44K/44K544KvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ+azqOmHiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICc45paH5a2X5Lul5LiK44Gu5rOo6YeI44KS6L+95Yqg44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfvvI3vvIjjg57jgqTjg4rjgrnvvInjga7mmYLplpPjga/lhaXlipvjgafjgY3jgb7jgZvjgpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ+e5sOOCiui/lOOBleOCjOOBn+aZgumWk+OBr+ioseWPr+OBleOCjOOBvuOBm+OCk+OAgumWi+Wni+aZguWIu+OBr+WIpeOBrumWk+malOOBqOS4gOiHtOOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAn5LiN5q2j44Gq44OV44Kp44O844Oe44OD44OI44Gn44GZISDmmYLplpPjga7lhaXlipvjga9ISDpNTeOBruODleOCqeODvOODnuODg+ODiOOBq+W+k+OBo+OBpuOBj+OBoOOBleOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMOOBr+e1guS6huaZgumWk+OBqOOBl+OBpuOBruOBv+WFpeWKm+WPr+iDveOBp+OBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ+S4jeato+OBquaZgumWk+OBp+OBmSEgMeaXpeOBrzI05pmC6ZaT44Gn44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfntYLkuobmmYLplpPjga7liY3jgavplovlp4vmmYLplpPjgpLoqK3lrprjgZnjgovjgZPjgajjga/jgafjgY3jgb7jgZvjgpPjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdEaWVzZSBFbmR6ZWl0IHd1cmRlIGJlcmVpdHMgaW4gZWluZW0gYW5kZXJlbiBFaW50cmFnIGFuZ2VnZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ+OAjOacn+mWk+OAjeOBruioreWumuOBjOS4jeato+OBp+OBmeOAgu+8iDI05pmC6ZaT5Lul5LiK44Gv6Kix5Y+v44GV44KM44G+44Gb44KT77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn44CM5pyf6ZaT44CN44Gu6Kit5a6a44GM5LiN5q2j44Gn44GZ44CC77yIMOOBr+ioseWPr+OBleOCjOOBvuOBm+OCk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn44CM5pyf6ZaT44CN44Gu6Kit5a6a44GM5LiN5q2j44Gn44GZ44CC77yI77yN77yI44Oe44Kk44OK44K577yJ44Gv6Kix5Y+v44GV44KM44G+44Gb44KT77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn6KGM44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnMemgheebruOBruOBv+mBuOaKnuOBp+OBjeOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn55eF5qyg44Gr6Kit5a6a44GV44KM44Gf5pyf6ZaT5Lit44Gr56i85YON44GX44G+44GX44Gf44GL77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn5LyR5pqH44Gr6Kit5a6a44GV44KM44Gf5pyf6ZaT5Lit44Gr56i85YON44GX44G+44GX44Gf44GL77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICfku6PkvJHjgavoqK3lrprjgZXjgozjgZ/mnJ/plpPkuK3jgavnqLzlg43jgZfjgb7jgZfjgZ/jgYvvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnMTbmmYLplpPku6XkuIrnqLzlg43jgZfjgb7jgZfjgZ/jgYvvvJ8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ+aciOWIpeS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAn6LaF6YGO5Yuk5YuZ77yI77ya5pmC6ZaT77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ+i2hemBjuWLpOWLme+8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAn6LaF6YGO5Yuk5YuZ77yI57Sv6KiI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ+i2hemBjuWLpOWLmeWPr+iDveaui++8iOaZgumWk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICfkvJHmmofvvIjml6XmlbDvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn5LyR5pqH5Y+W5b6X5pel5pWw77yI5LuK5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfkvJHmmoflj5blvpfml6XmlbDvvIjntK/oqIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn5LyR5pqH5Y+W5b6X5q6L5pel5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAn55eF5qyg77yI5pel5pWw77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn55eF5qyg5pel5pWw77yI5LuK5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ+eXheasoOaXpeaVsO+8iOe0r+ioiO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ+WJjeaciCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAn5qyh5pyIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICfmm5zml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ+eovOWDjeaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICfnt4/nqLzlg43mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAn44Om44O844K244O844Gu44OX44Ot44K444Kn44Kv44OI5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ+aZgumWk++8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn5pmC6ZaT77yI6YCa566X77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn5ZCI6KiIJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ+aZgumWk+S8muioiOODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAn5pyI5Yil44OK44OT44Ky44O844K344On44OzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfml6Xku5jjgavnp7vli5XjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn44Om44O844K244O744Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICfmnIjlkIjoqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfpgJrnrpflkIjoqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfku6PkvJEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICfkvJHmmocnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ+eXheasoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfkvJHml6Xmrovml6XmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn44OX44Ot44K444Kn44Kv44OI44O744Os44Od44O844OIJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjg7vjg6zjg53jg7zjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAn5aCx5ZGK44Gu5qaC6KaB44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn5pys44OX44Ot44K444Kn44Kv44OI44Gu44Ki44Kv44OG44Kj44OW44Om44O844K244O844Gu44G/6KGo56S644GX44Gm44GE44G+44GZ44CB5aSJ5pu044GZ44KL44Gr44Gv6Kit5a6a44KS5pu05paw44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ+OBmeOBueOBpuOBruOCv+OCpOODoOOCouOCq+OCpuODs+ODiOODpuODvOOCtuODvOOCkuihqOekuuOBl+OBpuOBhOOBvuOBmeOAgeWkieabtOOBmeOCi+OBq+OBr+ioreWumuOCkuabtOaWsOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfmmYLplpPkvJroqIgg44OX44Ot44K444Kn44Kv44OI6Kit5a6a44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn6Kit5a6a44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5ZCM5ZCN44Gu44OX44Ot44K444Kn44Kv44OI44GM5a2Y5Zyo44GX44G+44GZ44CC5ZCN56ew44KS5aSJ5pu044GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn6Kit5a6a44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAn5paw6KaP44K/44K544Kv44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAn44OX44Ot44K444Kn44Kv44OI44CB44K/44K544Kv44CB44G+44Gf44Gv44Om44O844K244O844Gu44OV44Kj44Or44K/44Oq44Oz44KwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAn5pmC6ZaT44Gv5YmK6Zmk44Gn44GN44G+44Gb44KTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICfjgr/jgrnjgq/kuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfmlrDopo/jgr/jgrnjgq/jga7ov73liqAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAn44K/44K544Kv6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICflkIzlkI3jga7jgr/jgrnjgq/jgYzlrZjlnKjjgZfjgb7jgZnjgILlkI3np7DjgpLlpInmm7TjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn44Om44O844K25LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICfjg6bjg7zjgrbjg7zoqK3lrponOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICfjg6bjg7zjgrbjg7zjga/jgqrjg7zjg5Djg7zjgr/jgqTjg6DjgpLopovjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ+i2hemBjuWLpOWLmeOCkuihqOekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAn44Om44O844K244O844Gv44OX44Ot44K444Kn44Kv44OI44KS5L2c5oiQ44Gn44GN44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjga7mlrDopo/ov73liqDjgpLoqLHlj6/jgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ+acn+mWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICfplovlp4vngrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ+e1guS6hueCuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn5LyR5pqHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAn5pmC6ZaTIC8g6YCxJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICfmib/oqo3muIjjga7otoXpgY7li6Tli5knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ+OCueOCv+ODvOODiOaXpeS7mCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICfmraPjgZfjgYTml6Xku5jjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfntYLkuobmmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICfntYLkuobngrnjga7liY3jgavplovlp4vngrnjgpLoqK3lrprjgZnjgovjgZPjgajjga/jgafjgY3jgb7jgZvjgpPjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ+S8keaah+aXpeaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICfpgLHjgYLjgZ/jgorjga7mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfmrovmpa3mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ+acn+mWk+OBjOacquioreWumuOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICfmnJ/plpPjgpLov73liqDjgZfjgabjgY/jgaDjgZXjgYTjgIInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn44K/44Kk44Og44O744Os44Kz44O844OJ44KS6KGo56S6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAn5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ+WJjeOBruaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ+asoeOBruaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfoqbLlvZPjgZnjgovjg4fjg7zjgr/jgYzjgYLjgorjgb7jgZvjgpPjgIInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAn5bel5pWw44KS5oy/5YWl44Gn44GN44G+44Gb44KT77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfliY3jg5fjg63jgrjjgqfjgq/jg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAn5LiN5q2j44Gq5pmC6ZaT44Gn44GZISAx5pel44GvMjTmmYLplpPjgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ+W3peaVsOOCkuWJiumZpOOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ+WFpeWKm+OBleOCjOOBn+aXpeS7mOOBr+acn+mWk+WkluOBp+OBmeOBruOBp+OAgeaMv+WFpeOBmeOCi+S6i+OBr+OBp+OBjeOBvuOBm+OCk+OBp+OBl+OBn+OAguOCguOBhuS4gOW6pighKeaXpeS7mOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ+acquWujOS6huOBruWPr+WLleaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICfli6Tli5nlrp/nuL7jgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44KS5YWl5Yqb5Lit44Gr44Ko44Op44O844GM55m655Sf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44Gr44KP44Gf44KL56i85YON5a6f57i+44Gu5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ+WFpeWKm+OBleOCjOOBn+aXpeS7mOOBr+S4jeato+OBp+OBmSAhIOaXpeS7mOOBr+acrOaXpeOBq+WkieabtOOBleOCjOOBvuOBl+OBnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfmjIflrprjgZXjgozjgZ/mnJ/plpPjgYzoqK3lrprjgZXjgozjgabjgYTjgarjgYTjgYvjgIHjgb7jgZ/jga/mjIflrprjgZXjgozjgZ/ml6Xku5jjgYzlrprnvqnjgZXjgozjgZ/mnJ/plpPlpJbjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ+WLpOaAoOeuoeeQhuaLheW9k+iAheOBq+mAo+e1oeOBl+OBpuacn+mWk+OCkuabtOaWsOOBl+OBpuOBj+OBoOOBleOBhO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAn5YmN5Zue6YG45oqe44GV44KM44Gf44OX44Ot44K444Kn44Kv44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ+WFqOODl+ODreOCuOOCp+OCr+ODiCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdSZXBvcnRpbmdQcm9qZWN0OiDjg5fjg63jgrjjgqfjgq/jg4hJROOBruWFpeWKm+OBjOW/heimgeOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOCkuWgseWRiuOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICfloLHlkYrjgZnjgosnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAn44Om44O844K244O86Kit5a6a44KS5pu05paw44Gn44GN44G+44Gb44KT77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAn44OX44Ot44K444Kn44Kv44OI44KS6L+95Yqg44GX44G+44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjgpLmm7TmlrDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICfjgr/jgrnjgq/jgpLov73liqDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ+OCv+OCueOCr+OCkuabtOaWsOOBl+OBvuOBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdVc2VySUQg44GM54Sh5Yq544Gn44GZ77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ+ODpuODvOOCtuODvOODh+ODvOOCv+OBjOaMv+WFpeOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ+acn+mWk+OCkui/veWKoOOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfjg6bjg7zjgrbjg7zjgpLmm7TmlrDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfjg6bjg7zjgrbjg7zjgpLov73liqDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjgavjg6bjg7zjgrbjg7zjgpLov73liqAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfmlrDopo/jg6bjg7zjgrbjg7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ+acn+mWk+OBrueKtuaFiyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAn5rOo55uu77yB77yaICVzIOOBruWFpeWKm+OBjOW/heimgeOBp+OBmeOAgic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ+acquWujOS6huOBruWPr+WLleaXpSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICflsJHjgarjgY/jgajjgoLkuIDml6Xjga/pgbjmip7jgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ+WFqOS9k+WFpeWKmyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ+asoOWLpOeQhueUseOCkumBuOaKnuOBl+OBpuOBj+OBoOOBleOBhCc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ+OCqOODs+ODiOODquODvOOCkuWJiumZpCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ+aMv+WFpeOBrueiuuiqjSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ+ODpuODvOOCtuOBruS4jeWujOWFqOOBqueovOWDjeaXpeaVsOOCkuOCq+OCpuODs+ODiOOBl+mAmuefpeOBmeOCi+OCqOODvOOCuOOCp+ODs+ODiOODu+OCpOODs+OCv+ODvOODleOCp+OCpOOCueOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ+aWsOimj+aTjeS9nOOBq+WvvuOBmeOCi+ODh+ODleOCqeODq+ODiOOBruWQjeensCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfmlrDopo/jg5fjg63jgrjjgqfjgq/jg4jjgavlr77jgZnjgovjg4fjg5Xjgqnjg6vjg4jjga7lkI3np7AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICfjgIzntYLkuobml6XjgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ+OAjOmWi+Wni+aXpeOAjeOBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ+OAjOiqrOaYjuaWh+OAjeOBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAn44CM5LyR5pqH44CN44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn44CM6LaF6YGO5Yuk5YuZ44CN44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICfpgLHjgYLjgZ/jgorln7rmnKznqLzlg43mmYLplpPjga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ+aWsOimj+aTjeS9nOOBq+WvvuOBmeOCi+ODh+ODleOCqeODq+ODiOOBruOCueODhuODvOOCv+OCuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ+aWsOimj+ODl+ODreOCuOOCp+OCr+ODiOOBq+WvvuOBmeOCi+ODh+ODleOCqeODq+ODiOOBruOCueODhuODvOOCv+OCuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ+aWsOimj+ODpuODvOOCtuOBq+WvvuOBmeOCi+ODh+ODleOCqeODq+ODiOOBruOCueODhuODvOOCv+OCuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICfjgIzms6jph4jjgI3jgqjjg7Pjg4jjg6rjg7zjgpLlv4XopoHjgajjgZnjgovpoIXnm67jgpLlrprnvqnjgZfjgb7jgZnjgIIg44KC44GX44OX44Ot44K444Kn44Kv44OI5ZCN44GM44GT44GT44Gn6Kit5a6a44GX44Gf5q2j6KaP6KGo54++44Gr44Oe44OD44OB44GZ44KL5aC05ZCI44CB44CM5rOo6YeI772d44Gv5b+F6aCI6aCF55uu44Go44Gq44KK44G+44GZ44CC4oC75q2j6KaP6KGo54++44Gr44GvU01Y44OR44Op44Oh44O844K/44KS5L2/44GE44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICfntbHoqIjjg6Ljgrjjg6Xjg7zjg6vjgYzjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDmg4XloLHjgpLnlJ/miJDjgZnjgovjgYvpgbjmip7jgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn5pmC6ZaT5Lya6KiI44Gu6Kit5a6a44KS57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAn44K/44Kk44Og44Os44Kz44O844OJ44KS57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ+S9leaXpeWJjeOBi+OCieODr+ODvOOCreODs+OCsOODu+ODpuODi+ODg+ODiOOBruaWsOimj+eZu+mMsuOBjOWPr+iDveOBp+OBguOCi+OBi+OBruioreWumuOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICfmnInlirnmmYLjgavjga/jgIHoqbLlvZPjga7jg5fjg63jgrjjgqfjgq/jg4jjgavnqLzlg43mmYLplpPjgpLmipXlhaXjgZfjgabjgYTjgovjg6bjg7zjgrbjg7zjga7jgb/ooajnpLrjgZXjgozjgb7jgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+OAgee3qOmbhueUu+mdouOBruODieODreODg+ODl+ODgOOCpuODs+OCqOODrOODoeODs+ODiOOBr+iHquWLleODleOCo+ODvOODq+ODieOBq+e9ruOBjeaPm+OBiOOCieOCjOOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICfmnInlirnmmYLjgavjga/ku6XliY3jga7jg5fjg63jgrjjgqfjgq/jg4jjg5XjgqPjg6vjgr/jg7zjgpLpgbjmip7jgZnjgovjgZPjgajjgYzlj6/og73jgafjgZko6YCa5bi444Gv5YmN5Zue44GK44KI44Gz44GZ44G544GmKeOAguOBk+OBrumgheebruOBryBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24g44GM5pyJ5Yq544Gr44Gq44Gj44Gm44GE44KL5pmC44Gu44G/5Yip55So5Y+v6IO9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICfmnInlirnmmYLjgavjga/jgIzku6XliY3jga7jg5fjg63jgrjjgqfjgq/jg4jjgI3jgYzlrZjlnKjjgZnjgovmmYLjga/jgIHku6XliY3jga7jg5fjg63jgrjjgqfjgq/jg4jjg5XjgqPjg6vjgr/jg7zjgYzjg4fjg5Xjgqnjg6vjg4jlgKTjgavjgarjgorjgb7jgZnjgILjgZPjga7poIXnm67jga8gVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciDjgYzmnInlirnjgavjgarjgaPjgabjgYTjgovmmYLjga7jgb/liKnnlKjlj6/og70nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ+acieWKueOBq+OBmeOCjOOBsOS4gOWbnuOBrue3qOmbhuOBp+OAgeikh+aVsOOBruaXpeOBq+a4oeOCiuOAjOS8keaah+OAjeOAjOeXheasoOOAjeOAjOS7o+S8keOAjeOBjOmBuOaKnuOBp+OBjeOBvuOBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJzHjgaTku6XkuIrjga7jg6/jg7zjgq3jg7PjgrDjg7vjg6bjg4vjg4Pjg4jjgpLoqK3lrprjgZnjgbnjgY3mnIDlpKfjga7nqLzlg43ml6XmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ+itpuWRiuOBjOihqOekuuOBleOCjOOCi+OBk+OBqOOBquOBj+OCqOODs+ODiOODquWHuuadpeOCi+OAgeWWtualreaXpeOBruacgOWkp+aXpeaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfmpoLopoEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jliKXmmYLplpPkvJroqIjjg6zjg53jg7zjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ+ODl+ODreOCuOOCp+OCr+ODiOOBq+OCiOOBo+OBpuihjOWLleODquOCueODiOOCkue1nuOCiui+vOOCgOOBn+OCgeOBruato+imj+ihqOePvuOAguOAjOmNteOAjeOBp+OBr+ODl+ODreOCuOOCp+OCr+ODiOOBq+WvvuOBmeOCi+ato+imj+ihqOePvuOCkuOAgeOAjOWGheWuueOAjeOBp+OBr2DooYzli5Vg44Gr5a++44GZ44KL5q2j6KaP6KGo54++44KS5oyH5a6a44GZ44KL44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ+ODpuODvOOCtuOCsOODq+ODvOODl+OBq+OCiOOBo+OBpuODl+ODreOCuOOCp+OCr+ODiOODquOCueODiOOCkue1nuOCiui+vOOCgOOBn+OCgeOBruato+imj+ihqOePvuOAguOAjOmNteOAjeOBp+OBr+ODl+ODreOCuOOCp+OCr+ODiOOBq+WvvuOBmeOCi+ato+imj+ihqOePvuOCkuOAgeOAjOWGheWuueOAjeOBp+OBr+OCq+ODs+ODnuWMuuWIh+OCiuOBruODpuODvOOCtuODquOCueODiOOCkuaMh+WumuOBmeOCi+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAn5qWt5YuZ5pmC6ZaT44KS44CM6ZaL5aeL5pmC6ZaT44CN44Go44CM57WC5LqG5pmC6ZaT44CN44Gu5oyH5a6a44OK44K344Gn5paw6KaP55m76Yyy44Gn44GN44KL44GL44Gp44GG44GL5oyH5a6a44GZ44KL44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ1RpbWVBY2NvdW50aW5n44Oi44K444Ol44O844Or44Go5ZCM562J44Gu6aCF55uu44GM6Kit5a6a5b+F6aCI44Go44Gq44KK44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAn44GC44G+44KK44Gr44KC5aSa44GP44Gu5LiN5a6M5YWo44Gq56i85YON5pel44GM44GC44KL5aC05ZCI44CB44GT44Gu6YCa55+l44Oi44K444Ol44O844Or44Gv6K2m5ZGK44KS5LiO44GI44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjgpLnt6jpm4bjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOOBruamguimgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOOBruWgseWRiic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw44Gu6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsCDjg5Pjg6Xjg7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ+aZgumWk+S8muioiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICfmpa3li5nkuIrjga7ooYzli5XjgavjgYrjgYTjgabjgIHnqLzlg43mmYLplpPjgajjgZfjgaboqIjkuIrjgZnjgovmmYLplpPjgpLoqr/mlbTjgZnjgovlv4XopoHjgYzjgYLjgovloLTlkIjjgavjgIHjgZPjga7oqK3lrprjgpLkvb/nlKjjgZfjgb7jgZnjgILvvIjkvovvvJrjgIznp7vli5XmmYLplpPjgI3jga41MCXjga7jgb/li6Tli5nmmYLplpPnm7jlvZPjgajjgZnjgovloLTlkIjjgIzpjbXjgI3jgatgam91cm5leWDjgIHjgIzlhoXlrrnjgI3jgatgNTBg44Go6Kit5a6aKSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bXNfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdBZGFrYWggYW5kYSBwYXN0aSBpbmdpbiBtZW5naGFwdXNrYW4gUGVyYWthdW5hbiBNYXNhIGhhcmkgaW5pPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdTdW50aW5nIFJla29kIE1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdQZXJnaSBrZSB0ZXRhcGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmlnYXNpIFRhcmlraCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0hhcmkgdGFucGEgcGVueWVydGFhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdQaWxpaCBrZXNlbXVhIGhhcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ0tlbWFzdWthbiBiZXNhci1iZXNhcmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUGlsaWggc2ViYWIga2V0aWRha2hhZGlyYW4gYW5kYSB1bnR1ayBoYXJpLWhhcmkgeWFuZyBkaXBpbGloJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnQmVyY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQ3V0aSBzYWtpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0JlcmN1dGkgbGViaWggbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ01lZGFuIHlhbmcgZGlwZXJsdWthbiBkaXRhbmRhaSBkZW5nYW4gIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0FuZGEgcGVybHUgbWVuZ2lzaSBwZXJtdWxhYW4gZGFuIGFraGlyIG1hc2EgYXRhdSB0ZW1wb2ggbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVHVnYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnS29tZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnU2lsYSB0YW1iYWgga29tZW4gZGVuZ2FuIGxlYmloIGRhcmlwYWRhIDgga2FyYWt0ZXIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdXYWt0dSBuZWdhdGlmIHRpZGFrIGRpYmVuYXJrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdQZW5ndWxhbmdhbiBqYW0gYWRhbGFoIHRpZGFrIGRpYmVuYXJrYW4uIE1hc2EgbXVsYSBwYWRhbiBkZW5nYW4gc2VsYW5nIGxhaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXQgdGlkYWsgc2FoISBTaWxhIG1hc3Vra2FuIG1hc2EgZGVuZ2FuIGZvcm1hdCBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgaGFueWEgZGliZW5hcmthbiBzZWJhZ2FpIG1hc2EgYWtoaXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTWFzYSB0aWRhayBzYWghIFNlaGFyaSBoYW55YSBtZW1wdW55YWkgMjQgamFtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTWFzYSB0YW1hdCBtZXN0aSBzZWxlcGFzIG1hc2EgbXVsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdQZW5ndWxhbmdhbiBqYW0gYWRhbGFoIHRpZGFrIGRpYmVuYXJrYW4uIE1hc2EgYWtoaXIgcGFkYW4gZGVuZ2FuIHNlbGFuZyBsYWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnVGVtcG9oIHRpZGFrIHNhaCEgU2VoYXJpIGhhbnlhIG1lbXB1bnlhaSAyNCBqYW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVGVtcG9oIHNhaCBtZXN0aSBsZWJpaCBiZXNhciBkYXJpcGFkYSBzaWZhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1RlbXBvaCB0aWRhayBzYWghIFRlbXBvaCBuZWdhdGlmIGFkYWxhaCB0aWRhayBkaWJlbmFya2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ1RhbWJhaCBzYXR1IGJhcmlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnQW5kYSBoYW55YSBib2xlaCBwaWxpaCBzYXR1IGVsZW1lbiBrb3RhayBzZW1hayEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0FkYWthaCBhbmRhIHBhc3RpIGJhaGF3YSBhbmRhIGJla2VyamEgc2VtYXNhIGFuZGEgYmVyY3V0aSBzYWtpdD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdBZGFrYWggYW5kYSBwYXN0aSBiYWhhd2EgYW5kYSBiZWtlcmphIHNlbWFzYSBhbmRhIGJlcmN1dGk/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdBZGFrYWggYW5kYSBwYXN0aSBiYWhhd2EgYW5kYSBiZWtlcmphIHNlbWFzYSBhbmRhIGJlcmN1dGkgbGViaWggbWFzYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnQWRha2FoIGFuZGEgcGFzdGkgYmFoYXdhIGFuZGEgYmVrZXJqYSBsZWJpaCBkYXJpcGFkYSAxNiBqYW0/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdHYW1iYXJhbiBidWxhbmFuIG1hc2EgbWVsYXBvcmthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnTGViaWggbWFzYSAoSmFtKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdLZXJqYSBsZWJpaCBtYXNhIChidWxhbiBpbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdLZXJqYSBsZWJpaCBtYXNhIChqdW1sYWgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ0Jha2kgY3V0aSBsZWJpaCBtYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0JlcmN1dGkgKEhhcmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0N1dGkgZGlhbWJpbCAoYnVsYW4gaW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnQ3V0aSBkaWFtYmlsIChqdW1sYWgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0Jha2kgY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0N1dGkgU2FraXQgKEhhcmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQ3V0aSBzYWtpdCBkaWFtYmlsIChidWxhbiBpbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0N1dGkgc2FraXQgZGlhbWJpbCAoanVtbGFoKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ0J1bGFuIHNlYmVsdW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ0J1bGFuIGJlcmlrdXRueWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0hhcmkgbWluZ2d1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdKYW0gYmVrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdKdW1sYWggamFtIGJla2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnR2FtYmFyYW4gcHJvamVrIHBlbmdndW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0phbSAoYnVsYW5hbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0phbSAoSGF5YXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnSnVtbGFoIGtlc2VsdXJ1aGFuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ01hc2EgbWVsYXBvcmthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhc2kgYnVsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ1BlcmdpIGtlIHRhcmlraCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdMYXBvcmFuIHBlbmdndW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdKdW1sYWggYnVsYW5hbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ0p1bWxhaCBoYXlhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0N1dGkgbGViaWggbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0JlcmN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0N1dGkgc2FraXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnQmFraSBjdXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ0xhcG9yYW4gcHJvamVrJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdMYXBvcmFuIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdQZXJnaSBrZSB0aW5qYXVhbiBtZWxhcG9ya2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnUGFkYSBtYXNhIGluaSBoYW55YSBwZW5nZ3VuYSBha3RpZiBkYWxhbSBwcm9qZWsgaW5pIGFrYW4gZGl0dW5qdWtrYW4uIFVudHVrIG1lbmd1YmFoIHNpZmF0IGluaSwgc2lsYSBrZW1hcyBraW5pIHRldGFwYW46JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1BhZGEgbWFzYSBpbmkga2VzZW11YSBwZW5nZ3VuYSBwZXJha2F1bmFuIG1hc2EgZGl0dW5qdWtrYW4uIFVudHVrIG1lbmd1YmFoIHRpbmdrYWggbGFrdSBpbmksIHNpbGEga2VtYXMga2luaSB0ZXRhcGFuOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdTdW50aW5nIFRldGFwYW4gUHJvamVrIFBlcmFrYXVuYW4gTWFzYSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdUYW1iYWggcHJvamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnUGVyZ2kga2UgZ2FtYmFyYW4ga2VzZWx1cnVoYW4gdGV0YXBhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ1RhbWJhaCBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnU3VudGluZyB0ZXRhcGFuIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnU3VkYWggYWRhIHByb2playBkZW5nYW4gbmFtYSBpbmkuIFNpbGEgcGlsaWggeWFuZyBsYWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ1N1bnRpbmcgVGV0YXBhbiBQZXJha2F1bmFuIE1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdUYW1iYWggdHVnYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdUZW1wb2ggbWFzYSB0aWRhayBib2xlaCBkaWhhcHVza2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdTZW5hcmFpIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdTZW5hcmFpIHR1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnVGFtYmFoIHR1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ1N1bnRpbmcgdGV0YXBhbiB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnU3VkYWggYWRhIHR1Z2FzIGRlbmdhbiBuYW1hIGluaS4gU2lsYSBwaWxpaCB5YW5nIGxhaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ1NlbmFyYWkgUGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnVHVuanVrIGxlYmloYW4gbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdCZW5hcmthbiBjaXB0YWFuIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1RlbXBvaCBNdWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdUZW1wb2ggdGFtYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0hhcmkgQmVyY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ0phbSBTZW1pbmdndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnTGViaWhhbiBtYXNhIGRpYmVuYXJrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ1RhcmlraCBNdWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1NpbGEgbWFzdWtrYW4gdGFyaWtoIHlhbmcgc2FoLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ1RhcmlraCBUYW1hdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ1RlbXBvaCB0YW1hdCBtZXN0aWxhaCBzZWxlcGFzIHRlbXBvaCBtdWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnSGFyaSBjdXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ0phbSBtaW5nZ3Vhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ0xlYmloIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ1RpYWRhIHRlbXBvaCBtYXNhIGRpanVtcGFpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdUYW1iYWggdGVtcG9oIG1hc2EnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnTGloYXQgUmVrb2QgTWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1BhbmRhbmdhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdIYXJpIHNlYmVsdW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdIYXJpIHNldGVydXNueWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnVGlhZGEgZGF0YSBkaWp1bXBhaSBwYWRhIGhhcmkgaW5pLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICdUaWRhayBib2xlaCBtZW1hc3Vra2FuIFVuaXQgS2VyamEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdQcm9qZWsgTGVwYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnVGlkYWsgYm9sZWggbWVueWltcGFuIHRldGFwYW4tdGV0YXBhbiwga2VyYW5hIHNlaGFyaSBoYW55YSBhZGEgMjQgamFtISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnVGlkYWsgYm9sZWggbWVtYnVhbmcgVW5pdCBLZXJqYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdUYXJpa2ggaW5pIHRlbGFoIHRlcmxlYmloIGhhZCwgdGV0YXBpIGFuZGEgbWFzaWggYmVsdW0gbWVtYXN1a2thbiBoYXJpIGluaSBsYWdpLCBqYWRpIGFuZGEgbWVuZGFwYXQgc2F0dSghKSBwZWx1YW5nIHVudHVrIG1hc3Vra2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnSGFyaSBCZWtlcmphIFRpZGFrIExlbmdrYXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnU2lsYSBtYXN1a2thbiB3YWt0dSBrZXJqYSBhbmRhISAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnQmVyamF5YSBkaW1hc3Vra2FuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnUmFsYXQgc2VtYXNhIG1lbWFzdWtrYW4gYmViZXJhcGEgdGFyaWtoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdCZXJqYXlhIGRpbWFzdWtrYW4gcGVueWVydGFhbiB1bnR1ayBiZWJlcmFwYSB0YXJpa2ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdUYXJpa2ggeWFuZyBkaW1hc3Vra2FuIHRpZGFrIHNhaCEgVGFyaWtoIHRlbGFoIGRpdHVrYXIga2VwYWRhIGhhcmkgaW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnUHJvamVrIERpcGlsaWggTGVwYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnU2VtdWEgUHJvamVrJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ01lbGFwb3JrYW5Qcm9qZWs6IFBlcmx1a2FuIFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ01lbGFwb3JrYW4gUHJvamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ01lbGFwb3JrYW4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnVGlkYWsgYm9sZWggdW50dWsga2VtYXNraW5pIHRldGFwYW4tdGV0YXBhbiBwZW5nZ3VuYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9qZWsgdGVsYWggZGl0YW1iYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICdQcm9qZWsgdGVsYWggZGlrZW1hc2tpbmkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnVHVnYXNhbiB0ZWxhaCBkaXRhbWJhaCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ1R1Z2FzYW4gdGVsYWggZGlrZW1hc2tpbmkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0lEIFBlbmdndW5hIHRpZGFrIHNhaCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnVGlkYWsgYm9sZWggbWVtYXN1a2thbiBkYXRhIHBlbmdndW5hISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ1RpZGFrIGJvbGVoIG1lbmFtYmFoIHRlbXBvaCBtYXNhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnVGV0YXBhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnUGVuZ2d1bmEgdGVsYWggZGlrZW1hc2tpbmkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnUGVuZ2d1bmEgdGVsYWggZGl0YW1iYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnUGVuZ2d1bmEgQmFoYXJ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGF0dXMgVGVtcG9oJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdQYW5kYW5nYW46IFBlcmx1ICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0hhcmkgYmVrZXJqYSB0aWRhayBsZW5na2FwJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1NpbGEgcGlsaWggc2VrdXJhbmcta3VyYW5nbnlhIHNlaGFyaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0tlbWFzdWthbiBiZXNhci1iZXNhcmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnU2lsYSBwaWxpaCBzZWJhYiBrZXRpZGFraGFkaXJhbiEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdQYWRhbSBLZW1hc3VrYW4gTWFzYSBQZXJha2F1bmFuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ1NhaGthbiBrZW1hc3VrYW4nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bCBwZW1iZXJpdGFodWFuIGFudGFyYSBtdWthIGVqZW4gdW50dWsgbWVsaWhhdCBiaWxhbmdhbiBoYXJpIGJla2VyamEgeWFuZyB0aWRhayBsZW5na2FwIHVudHVrIHBlbmdndW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05hbWEgbGFsYWkgdW50dWsgdGluZGFrYW4gYmFydS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTmFtYSBsYWxhaSB1bnR1ayBwcm9qZWsgYmFydS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdUZXRhcGFuIGxhbGFpIHVudHVrIHRhcmlraCBha2hpci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgdGFyaWtoIG11bGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBnYW1iYXJhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgaGFyaSBjdXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgbGViaWggbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgamFtIG1pbmdndWFuIHBpYXdhaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgdGluZGFrYW4gYmFoYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgcHJvamVrIGJhaGFydS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdUZXRhcGFuIGxhbGFpIHVudHVrIHBlbmdndW5hIGJhaGFydS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHByb2play1wcm9qZWsgeWFuZyBtYW5hIGtvbWVuIGRpcGVybHVrYW4uIEppa2EgVW5na2FwYW5CaWFzYSBwYWRhbiBkYWxhbSBwcm9qZWsgaW5pLCBhbmRhIHBlcmx1IG1lbWFzdWtrYW4ga29tZW4ganVnYS4gVW5na2FwYW5CaWFzYSBtZW5nZ3VuYWthbiBwYXJhbWV0ZXIgc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnTWVuZW50dWthbiBqaWthIG1vZHVsIHN0YXRpc3RpayBib2xlaCBtZW5qYW5hIG1hc2EgbWFrbHVtYXQgcGVyYWthdW5hbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnU3VudGluZyB0ZXRhcGFuLXRldGFwYW4gcGVyYWthdW5hbiBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ1N1bnRpbmcgcmVrb2QgbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnVW50dWsgYmVyYXBhIGhhcmkgeWFuZyBsYWx1LCBhbmRhIGJvbGVoIG1lbWFzdWtrYW4gdW5pdCBrZXJqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnSmlrYSBkaWJvbGVoa2FuLCBoYW55YSBwZW5nZ3VuYSB5YW5nIHRlbGFoIGRpdGFtYmFoIG1hc2Ega2VyamEgdW50dWsgcHJvamVrIHlhbmcgZGlwaWxpaCBha2FuIGRpdHVuanVra2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnSmlrYSBkaWJvbGVoa2FuLCB1bnN1ci11bnN1ciBrb3RhayBwaWxpaGFuIGRhbGFtIHNrcmluIHN1bnRpbmcgZGl0dWthciBrZXBhZGEgYmlkYW5nIHBlbnlpYXBhbiBzZWNhcmEgYXV0b21hdGlrIG1vZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdKaWthIGRpYWt0aWZrYW4sIHBlbmFwaXMgYmFnaSBwcm9qZWstcHJvamVrIHNlYmVsdW0gYm9sZWggZGlndW5ha2FuIHNlbGFpbiBkdWEgc2VuYXJhaSBwcm9qZWstcHJvamVrICh0ZXJha2hpciBkYW4gc2VtdWFueWEpLiBJYSBib2xlaCBkaWd1bmFrYW4gaGFueWEgamlrYSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gZGlkYXlha2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnSmlrYSBkaWFrdGlma2FuLCBwZW5hcGlzIGJhZ2kgcHJvamVrLXByb2playBzZWJlbHVtIGFkYWxhaCBha3RpZiBzZWNhcmEgbGFsYWkgc2VraXJhbnlhIHRlcmRhcGF0IHByb2playBsZXBhcy4gSWEgYm9sZWggZGlndW5ha2FuIGhhbnlhIGppa2EgRW5hYmxlQXV0b0NvbXBsZXRpb24gZGFuIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZGlkYXlha2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnSmlrYSBkaWJvbGVoa2FuLCBwZW5nZ3VuYSBkaWJlbmFya2FuIHVudHVrIG1lbWFzdWtpICJzZWRhbmcgY3V0aSByZWhhdCAiLCAic2VkYW5nIGN1dGkgc2FraXQgIiBkYW4gInNlZGFuZyBjdXRpIGxlYmloIG1hc2EiIHBhZGEgYmViZXJhcGEgdGFyaWtoIHNla2FsaWd1cy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdCaWxhbmdhbiBtYWtzaW11bSBoYXJpIGJla2VyamEgc2VsZXBhcyB1bml0IGtlcmphIHBlcmx1IGRpbWFzdWtrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdCaWxhbmdhbiBtYWtzaW11bSBoYXJpIGJla2VyamEgdGFucGEga2VtYXN1a2FuIHVuaXQgYmVrZXJqYSBzZWxlcGFzIGRpIG1hbmEgYW1hcmFuIGFrYW4gZGl0dW5qdWtrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ1BhbmRhbmdhbiBrZXNlbHVydWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdtZWxhcG9ya2FuIG1hc2EgcHJvamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdVbmdrYXBhbiBiaWFzYSB1bnR1ayBtZW5nZWthbmcgc2VuYXJhaSB0aW5kYWthbiBtZW5naWt1dCBwcm9qZWsgeWFuZyBkaXBpbGloLiBLdW5jaSBtZW5nYW5kdW5naSB1bmdrYXBhbiBiaWFzYSB1bnR1ayBwcm9qZWsgKHByb2play1wcm9qZWspLCBrYW5kdW5nYW4gbWVuZ2FuZHVuZ2kgdW5na2FwYW4gYmlhc2EgdW50dWsgdGluZGFrYW4gKHRpbmRha2FuLXRpbmRha2FuKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnVW5na2FwYW4gYmlhc2EgdW50dWsgbWVuZ2VrYW5nIHNlbmFyYWkgcHJvamVrIG1lbmdpa3V0IGt1bXB1bGFuIHBlbmdndW5hLiBLdW5jaSBtZW5nYW5kdW5naSB1bmdrYXBhbiBiaWFzYSB1bnR1ayBwcm9qZWsgKHByb2play1wcm9qZWspLCBrYW5kdW5nYW4gbWVuZ2FuZHVuZ2kga29tYSBzZW5hcmFpIGt1bXB1bGFuIGRpcGlzYWhrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdNZW5lbnR1a2FuIGppa2Egd2FrdHUgYmVrZXJqYSBib2xlaCBkaW1hc3Vra2FuIHRhbnBhIHBlcm11bGFhbiBkYW4gYWtoaXIgbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnTW9kdWwgaW5pIG1lbWFrc2Ega2VtYXN1a2FuIGRhbGFtIFBlcmFrYXVuYW5TZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnTW9kdWwgcGVtYmVyaXRhaHVhbiBpbmkgbWVtYmVyaSBhbWFyYW4gamlrYSB0ZXJkYXBhdCB0ZXJsYWx1IGJhbnlhayBoYXJpIGJla2VyamEgdGlkYWsgbGVuZ2thcC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnTWFzYSBQZXJha2F1bmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ1N1bnRpbmcgcGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdHYW1iYXJhbiBrZXNlbHVydWhhbiBwZXJha2F1bmFuIHNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdNZWxhcG9yIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnVGV0YXBhbiBwZXJha2F1bmFuIHNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnUGFwYXJhbiBwZXJha2F1bmFuIHNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ1BlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdVbnR1ayBkaWd1bmFrYW4gamlrYSBiZWJlcmFwYSB0aW5kYWthbiBtZW5ndXJhbmdrYW4gd2FrdHUga2VyamEgKGNvbnRvaG55YSwgamlrYSBoYW55YSBzZXBhcnVoIGRhcmlwYWRhIG1hc2EgcGVyamFsYW5hbiBkaWJheWFyIEt1bmNpID0+IHBlcmphbGFuYW47IEthbmR1bmdhbiA9ID4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bmJfTk9fVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWaWwgZHUgdmlya2VsaWcgZmplcm5lIHRpZHNyZWdpc3RyZXJpbmdlbiBmb3IgZGVubmUgZGFnZW4/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ0VuZHJlIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJbm5zdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmlnZXJpbmcgbWVsbG9tIGRhdG9lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0RhZ2VyIHV0ZW4gdGlkcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1ZlbGcgYWxsZSBkYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnTWFzc2VyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdWZW5ubGlnc3QgdmVsZyDDpXJzYWtlbiB0aWwgZGl0dCBmcmF2w6ZyIHDDpSBkZSB2YWxndGUgZGFnZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1N5a2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXZzcGFzc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnT2JsaWdhdG9yaXNrZSBmZWx0IGVyIG1hcmtlcnQgbWVkICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdEdSBtw6UgZnlsbGUgdXQgc3RhcnQtIG9nIHNsdXR0aWRzcHVua3QsIGVsbGVyIHBlcmlvZGVsZW5nZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvc2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ0FrdGl2aXRldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdNZXJrbmFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZW4gbWVya25hZCBww6UgbWluc3QgOCB0ZWduISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdiB0aWQgZ29kdGFzIGlra2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdPdmVybGFwcGVuZGUgcGVyaW9kZXIgaWtrZSB0aWxsYXR0LiBTdGFydHRpZGVuIGVyIGkgZW4gYW5uZW4gcGVyaW9kZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ0ZlaWwgZm9ybWF0ISBWZW5ubGlnc3Qgb3BwZ2kgZXR0IHRpZHNwdW5rdCBpIGZvcm1hdGV0IFRUOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBnb2R0YXMgYmFyZSBzb20gc2x1dHRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdGZWlsYWt0aWcgdGlkISBFdCBkw7hnbiBoYXIga3VuIDI0IHRpbWVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnU2x1dHRpZCBtw6UgdsOmcmUgc2VuZXJlIGVubiBzdGFydHRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdPdmVybGFwcGVuZGUgcGVyaW9kZXIgaWtrZSB0aWxsYXR0LiBTbHV0dGlkZW4gZXIgaSBlbiBhbm5lbiBwZXJpb2RlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnRmVpbGFrdGlnIHRpZCEgRXQgZMO4Z24gaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFbiB0aWRzcGVyaW9kZSBtw6UgdsOmcmUgc3TDuHJyZSBlbm4gbnVsbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ0ZlaWxha3RpZCB0aWQuICBOZWdhdGl2IHRpZCBnb2R0YXMgaWtrZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdMZWdnIHRpbCBlbiByYWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnRHUga2FuIGJhcmUgZ2rDuHJlIGVuIGF2a3J5c25pbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IGFyYmVpZGV0IG1lbnMgZHUgdmFyIHN5a2VtZWxkdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IGFyYmVpZGV0IG1lbnMgZHUgaGFkZGUgZmVyaWU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IGFyYmVpZGV0IG1lbnMgZHUgYXZzcGFzc2VydGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0VyIGR1IHNpa2tlciBww6UgYXQgZHUgYXJiZWlkZXQgaSBmbGVyZSBlbm4gMTYgdGltZXI/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdNw6VuZWRzb3ZlcnNpa3QgcmVnaXN0cmVydCB0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ092ZXJ0aWQgKHRpbWVyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdPdmVydGlkIChkZW5uZSBtw6VuZWQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdPdmVydGlkICh0b3RhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ0dqZW5zdMOlZW5kZSBhdnNwYXNzZXJpbmdzdGltZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnRmVyaWUgKGRhZ2VyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdGZXJpZSB0YXR0IChkZW5uZSBtw6VuZWQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdGZXJpZSB0YXR0ICh0b3RhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0dqZW5zdMOlZW5kZSBmZXJpZWRhZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnU3lrZWZyYXbDpnIgKGRhZ2VyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1N5a2VmcmF2w6ZyIChkZW5uZSBtw6VuZWQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ1N5a2VmcmF2w6ZyICh0b3RhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnRm9ycmlnZSBtw6VuZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ05lc3RlIG3DpW5lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnVWtlZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdBcmJlaWRldCB0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWwgYXJiZWlkZXQgdGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0JydWtlcnMgcHJvc2pla3RvdmVyc2lrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdUaW1lciAobcOlbmVkbGlnKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnVGltZXIgKHRvdGFsdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdTbHV0dHN1bSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdUaWRyYXBwb3J0ZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmlnZXJpbmcgbWVsbG9tIG3DpW5lZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdHw6UgdGlsIGRhdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnQnJ1a2VycmFwcG9ydGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdNw6VuZWRzc3VtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnVG90YWxzdW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdBdnNwYXNzZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdGZXJpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnU3lrZWZyYXbDpnInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnR2plbnN0w6VlbmRlIGZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb3NqZWt0cmFwcG9ydGVyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdQcm9zamVrdHJhcHBvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnR8OlIHRpbCByYXBwb3J0ZXJpbmdzb3ZlcnNpa3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdGb3IgdGlkZW4gdmlzZXMgYmFyZSBkZSBha3RpdmUgYnJ1a2VybmUgaSBkZXR0ZSBwcm9zamVrdGV0LiBGb3Igw6UgZW5kcmUgZGV0dGUgbcOlIGbDuGxnZW5kZSBpbm5zdGlsbGluZyBlbmRyZXM6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0ZvciB0aWRlbiB2aXNlcyBhbGxlIHRpZHNyZWdpc3RyZXJpbmdzYnJ1a2VyZS4gRm9yIMOlIGVuZHJlIGRldHRlIG3DpSBmw7hsZ2VuZGUgaW5uc3RpbGxpbmcgZW5kcmVzOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFbmRyZSBpbnN0aWxsaW5nZXIgZm9yIHRpZHNyZWdpc3RyZXJpbmdzcHJvc2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdMZWdnIHRpbCBldCBwcm9zamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0fDpSB0aWwgb3ZlcnNpa3RlbiBvdmVyIGlubnN0aWxsaW5nZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdMZWdnIHRpbCBldCBwcm9zamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdFbmRyZSBpbnN0aWxsaW5nZXIgZm9yIHByb3NqZWt0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0RldCBmaW5uZXMgYWxsZXJlZGUgZXQgcHJvc2pla3QgbWVkIGRldHRlIG5hdm5ldC4gVmVubmxpZ3N0IHZlbGcgZXQgYW5uZXQgbmF2bi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdFbmRyZSBpbnN0aWxsaW5nZXIgZm9yIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdMZWdnIHRpbCBlbiBha3Rpdml0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdUaWRzcGVyaW9kZXIga2FuIGlra2Ugc2xldHRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnUHJvc2pla3RsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdBa3Rpdml0ZXRzbGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdMZWdnIHRpbCBlbiBha3Rpdml0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciBha3Rpdml0ZXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRGV0IGZpbm5lcyBhbGxlcmVkZSBlbiBha3Rpdml0ZXQgbWVkIGRldHRlIG5hdm5ldC4gVmVubmxpZ3N0IHZlbGcgZXQgYW5uZXQgbmF2bi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnQnJ1a2VybGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnVmlzIG92ZXJ0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnVGlsbGF0dCBicnVrZXIgw6Ugb3BwcmV0dGUgcHJvc2pla3Rlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BlcmlvZGVzdGFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kZXNsdXR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdGZXJpZWRhZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnVGltZXIgcGVyIHVrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnUMOlbGFndCBvdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdTdGFydGRhdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnVmVubmxpZ3N0IHNldHQgaW5uIGVuIGd5bGRpZyBkYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ1NsdXR0ZGF0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ1BlcmlvZGVzbHV0dCBtw6UgdsOmcmUgZXR0ZXIgcGVyaW9kZXN0YXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRGFnZXIgbWVkIGd5bGRpZyBmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ1VrZW50bGlnZSB0aW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ092ZXJ0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0luZ2VuIHRpZHNwZXJpb2RlciBmdW5uZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnTGVnZyB0aWwgZW4gdGlkc3BlcmlvZGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnU2UgcMOlIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdWaXNuaW5nIGF2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0ZvcnJpZ2UgZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnTmVzdGUgZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0luZ2VuIGRhdGEgZnVubmV0IGZvciBkZW5uZSBkYWdlbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdTZW5lc3RlIHByb3NqZWt0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnS2FuIGlra2UgbGFncmUgaW5zdGlsbGluZ2VuZSBmb3JkaSBldCBkw7hnbiBoYXIga3VuIDI0IHRpbWVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRGVubmUgZGF0b2VuIGVyIHV0ZW5mb3IgdGlsbGF0dCBvbXLDpWRlLiBNZW4sIGR1IGhhciBpa2tlIHNhdHQgaW5uIGRlbm5lIGRhZ2VuIGVubsOlLCBzw6UgZHUgZsOlciBlbighKSBzamFuc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdVZnVsbHN0ZW5kaWdlIGFyYmVpZHNkYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdWZW5ubGlnc3Qgc2V0dCBpbm4gZGluZSBhcmJlaWRzdGltZXIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ1ZlbGx5a2tldCBpbm5zZXR0aW5nISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRmVpbCB1bmRlciBpbm5zZXR0aW5nIGF2IGZsZXJlIGRhdG9lciEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnSW5uc2V0dGluZyBhdiByZWdpc3RyZXJpbmdlciBmb3IgZmxlcmUgZGF0b2VyIHZhciB2ZWxseWtrZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdPcHBnaXR0IGRhdG8gdmFyIHVneWxkaWchIERhdG8gZW5kcmV0IHRpbCBkYWdlbnMgZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1NlbmVzdGUgdmFsZ3RlIHByb3NqZWt0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnQWxsZSBwcm9zamVrdGVyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ1Byb3NqZWt0IHNvbSByYXBwb3J0ZXJlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSYXBwb3J0ZXJpbmcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnS2FuIGlra2UgZW5kcmUgYnJ1a2VyaW5uc3RpbGxpbmdlciEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9zamVrdCBsYWd0IHRpbCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb3NqZWt0IG9wcGRhdGVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICdBa3Rpdml0ZXQgbGFndCB0aWwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdBa3Rpdml0ZXQgb3BwZGF0ZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdCcnVrZXJJRCBlciBpa2tlIGd5bGRpZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnS2FuIGlra2UgbGVnZ2UgdGlsIGJydWtlcmRhdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnS2FuIGlra2UgbGVnZ2UgdGlsIHRpZHNwZXJpb2RlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnSW5uc3RpbGxpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ0JydWtlciBvcHBkYXRlcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnQnJ1a2VyIGxhZ3QgdGlsISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ055IGJydWtlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnUGVyaW9kZXN0YXR1cyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnVmlzbmluZzogVHJlbmdlciAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdVZnVsbHN0ZW5kaWdlIGFyYmVpZHNkYWdlcic7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdWZW5ubGlnc3QgdmVsZyBtaW5zdCBlbiBkYWchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdNYXNzZXJlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1Zlbm5saWdzdCB2ZWxnIGZyYXbDpnJzw6Vyc2FrISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ1NsZXR0IGVuIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdCZWtyZWZ0IGlubnNldHRpbmcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnRW5kcmUgaW5uc3RpbGxpbmdlciBmb3IgdGlkc3JlZ2lzdHJlcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdFbmRyZSB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0h2b3IgbWFuZ2VyIGRhZ2VyIHRpbGJha2UgaSB0aWQgZGV0IGVyIGFubGVkbmluZyB0aWwgw6UgbGVnZ2UgdGlsIGVuIHRpZHNib2xrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnT3ZlcnNpa3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnVGlkcmFwcG9ydGVyaW5nIGZvciBwcm9zamVrdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnVGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdFbmRyZSB0aWRzcmVnaXN0cmVyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnT3ZlcnNpa3Qgb3ZlciByZWdpc3RyZXJ0IHRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSYXBwb3J0ZXJpbmcgYXYgcmVnaXN0cmVydCB0aWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJbm5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdTZSBww6UgdGlkc3JlZ2lzdHJlcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ1RpZHNyZWdpc3RyZXJpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cGxfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdDenkgbmEgcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHJvemxpY3plbmllIGN6YXN1IHByYWN5IHRlZ28gZG5pYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWR5Y2phIGV3aWRlbmNqaSBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ1ByemVqZMW6IGRvIHVzdGF3aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXdpZ2FjamEgcG8gZGFjaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEbmkgYmV6IHdwaXPDs3cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnWmF6bmFjeiB3c3p5c3RraWUgZG5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdNYXNvd2Ugd3Bpc3l3YW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1Byb3N6xJkgd3licmHEhyBwcnp5Y3p5bsSZIG5pZW9iZWNub8WbY2kgZGxhIHd5YnJhbnljaCBkbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdVcmxvcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnWndvbG5pZW5pZSBsZWthcnNraWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdXb2xuZSB6YSBnb2R6aW55IG5hZGxpY3pib3dlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnUG9sYSB3eW1hZ2FuZSBvem5hY3pvbmUgc8SFICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdNdXNpc3ogd3Byb3dhZHppxIcgY3phcyBwb2N6xIV0a3UgaSB6YWtvxYRjemVuaWEgbHViIG9rcmXFm2wgY3phcyB0cndhbmlhIGN5bGt1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnWmFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdVd2FnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdQcm9zesSZIGRvZGHEhyB1d2FnxJkgemF3aWVyYWrEhWPEhSB3acSZY2VqIG5pxbwgOCB6bmFrw7N3ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnVWplbW5lIGN6YXN5IHPEhSBuaWVkb3p3b2xvbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdQb2tyeXdhasSFY2Ugc2nEmSBnb2R6aW55IG5pZSBzxIUgZG96d29sb25lLiBDemFzIHJvenBvY3rEmWNpYSBwYXN1amUgZG8gaW5uZWdvIHByemVkemlhxYJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnTmllcHJhd2lkxYJvd3kgZm9ybWF0ISBQcm9zesSZIHBvZGHEhyBjemFzIHcgZm9ybWFjaWUgR0c6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGplc3QgZG96d29sb25hIGplZHluaWUgamFrbyBjemFzIHpha2/FhGN6ZW5pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdOaWVwcmF3aWTFgm93eSBjemFzISBEemllxYQgbWEgdHlsa28gMjQgZ29kemlueS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ0N6YXMgemFrb8WEY3plbmlhIG11c2kgYnnEhyBwbyBjemFzaWUgcm96cG9jesSZY2lhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ1Bva3J5d2FqxIVjZSBzacSZIGdvZHppbnkgbmllIHPEhSBkb3p3b2xvbmUuIEN6YXMgemFrb8WEY3plbmlhIHBhc3VqZSBkbyBpbm5lZ28gcHJ6ZWR6aWHFgnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdOaWVwcmF3aWTFgm93eSBjemFzIGN5a2x1ISBEemllxYQgbWEgdHlsa28gMjQgZ29kemlueS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdQcmF3aWTFgm93eSBjemFzIGN5a2x1IG11c2kgYnnEhyB3acSZa3N6eSBvZCB6ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmllcHJhd2lkxYJvd3kgY3lrbCEgVWplbW55IGN6YXMgY3lrbHUgbmllIGplc3QgZG96d29sb255Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0RvZGFqIHdpZXJzeic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ01vxbxlc3ogemF6bmFjennEhyB0eWxrbyBqZWRlbiBlbGVtZW50ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnQ3p5IGplc3RlxZsgcGV3aWVuLCDFvGUgcHJhY293YcWCZcWbIHcgdHJha2NpZSB6d29sbmllbmlhIGxla2Fyc2tpZWdvPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3IHRyYWtjaWUgdXJsb3B1Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQ3p5IGplc3RlxZsgcGV3aWVuLCDFvGUgcHJhY293YcWCZcWbIHcgdHJha2NpZSB3b2xuZWdvIHphIG5hZGdvZHppbnk/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3acSZY2VqIG5pxbwgMTYgZ29kemluPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTWllc2nEmWN6bnkgcmFwb3J0IGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdHb2R6aW55IG5hZGxpY3pib3dlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0dvZHppbnkgbmFkbGljemJvd2UgKGJpZcW8xIVjeSBtaWVzacSFYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ0dvZHppbnkgbmFkbGljemJvd2UgKMWCxIVjem5pZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnUG96b3N0YcWCZSBnb2R6aW55IG5hZGxpY3pib3dlIGRvIHd5YnJhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1VybG9wIChkbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1d5a29yenlzdGFueSB1cmxvcCAoYmllxbzEhWN5IG1pZXNpxIVjKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnV3lrb3J6eXN0YW55IHVybG9wICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1VybG9wIHBvem9zdGHFgnkgZG8gd3lrb3J6eXN0YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ1p3b2xuaWVuaWUgbGVrYXJza2llIChkbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRG5pIHp3b2xuaWVuaWEgbGVrYXJza2llZ28gKGJpZcW8xIVjeSBtaWVzacSFYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnRG5pIHp3b2xuaWVuaWEgbGVrYXJza2llZ28gKMWCxIVjem5pZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdQb3ByemVkbmkgbWllc2nEhWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ05hc3TEmXBueSBtaWVzacSFYyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRHppZcWEIHJvYm9jenknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0dvZHppbnkgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnxYHEhWN6bmEgaWxvxZvEhyBwcnplcHJhY293YW55Y2ggZ29kemluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ09waXMgcHJvamVrdHUgdcW8eXRrb3duaWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0dvZHppbnkgKG1pZXNpxJljem5pZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0dvZHppbnkgKMWCxIVjem5pZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdPZ8OzxYJlbSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSYW9ydG93YW5pZSBjemFzdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF3aWdhY2phIG1pZXNpxJljem5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdQcnplamTFuiBkbyBkYXR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JhcG9ydHkgdcW8eXRrb3duaWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICfFgcSFY3puaWUgLSBtaWVzacSZY3puaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfFgcSFY3puaWUgLSBvZ8OzxYJlbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ1dvbG5lIHphIGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdVcmxvcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnWndvbG5pZW5pZSBsZWthcnNraWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnVXJsb3AgcG96b3N0YcWCeSBkbyB3eWtvcnp5c3RhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JhcG9ydHkgcHJvamVrdHUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1JhcG9ydCBwcm9qZWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdQcnplamTFuiBkbyBwcnplZ2zEhWR1IHJhcG9ydG93YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0FrdHVhbG5pZSB3aWRvY3puaSBzxIUgamVkeW5pZSB1xbx5dGtvd25pY3kgeiB0ZWdvIHByb2pla3R1LiBUdXRhaiBtb8W8bmEgdG8gem1pZW5pxIc6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0FrdHVhbG5pZSB3aWRvY3puaSBzxIUgd3N6eXNjeSB1xbx5dGtvd25pY3kgcm96bGljemFqxIVjeSBjemFzIHByYWN5LiBUdXRhaiBtb8W8bmEgdG8gem1pZW5pxIc6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHJvemxpY3phbmlhIGN6YXN1IHByYWN5IHcgcHJvamVrY2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnRG9kYWogcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1ByemVqZMW6IGRvIG9waXN1IHVzdGF3aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0RvZGFqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWR5dHVqIHVzdGF3aWVuaWEgcHJvamVrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0lubnkgcHJvamVrdCB1xbx5d2EganXFvCB0ZWogbmF6d3kuIFXFvHlqIGlubmVqIG5hend5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHJvemxpY3phbmlhIGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRG9kYWogemFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ0ZpbHRydWogcHJvamVrdHksIHphZGFuaWEgbHViIHXFvHl0a293bmlrw7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnQ3lrbGUgY3phc3UgbmllIG1vZ8SFIHpvc3RhxIcgdXN1bmnEmXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBwcm9qZWt0w7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIHphZGHFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0RvZGFqIHphZGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnRWR5dHVqIHVzdGF3aWVuaWEgemFkYW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnSW5uZSB6YWRhbmllIHXFvHl3YSBqdcW8IHRlaiBuYXp3eS4gVcW8eWogaW5uZWogbmF6d3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIFXFvHl0a293bmlrw7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICdVc3Rhd2llbmlhIFXFvHl0a293bmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJ1XFvHl0a293bmlrIG1vxbxlIHpvYmFjennEhyBuYWRnb2R6aW55JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdQb2thxbwgZ29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnVcW8eXRrb3duaWsgbW/FvGUgdHdvcnp5xIcgcHJvamVrdHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1plendhbGFqIG5hIHR3b3J6ZW5pZSBwcm9qZWt0w7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICdPa3Jlc3kgQ3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUG9jesSFdGVrIGN5a2x1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdLb25pZWMgY3lrbHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0RuaSB1cmxvcHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdJbG/Fm8SHIGdvZHppbiB3IHR5Z29kbml1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdaZXp3w7NsIG5hIGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdGEgcm96cG9jesSZY2lhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1Byb3N6xJkgd3Byb3dhZHppxIcgcHJhd2lkxYJvd8SFIGRhdMSZLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgemFrb8WEY3plbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnS29uaWVjIG9rcmVzdSBtdXNpIGJ5xIcgcG8gamVnbyBwb2N6xIV0a3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEbmkgb3B1Y3pvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnVHlnb2RuaW93eSBjemFzIHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnR29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmllIHpuYWxlemlvbm8gxbxhZG5lZ28gY3lrbHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0RvZGFqIGN5a2wnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnUG9rYcW8IGV3aWRlbmNqxJkgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdXaWRvayAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnUG9wcnplZG5pIGR6aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0tvbGVqbnkgZHppZcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0JyYWsgZGFueWNoIGRvdHljesSFY3ljaCB3eWJyYW5lZ28gZG5pYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnTmllIHVkYcWCbyBzacSZIHdzdGF3acSHIGplZG5vc3RlayBwcmFjeSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ09zdGF0bmllIHByb2pla3R5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ05pZSBtb8W8bmEgemFwaXNhxIcgdXN0YXdpZcWELCBwb25pZXdhxbwgZG9iYSBtYSB0eWxrbyAyNCBnb2R6aW55ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTmllIHVkYcWCbyBzacSZIHVzdW7EhcSHIGplZG5vc3RlayBwcmFjeSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdXcHJvd2Fkem9uYSBkYXRhIGplc3QgcG96YSB6YWtyZXNlbSwgYWxlIG5pZSB3cHJvd2FkemnFgmXFmyBqZXN6Y3plIHRlZ28gZG5pYSwgbWFzeiB3acSZYyBqZWR5bsSFKCEpIG9rYXpqxJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdOaWVwZcWCbmUgZG5pIHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1Byb3N6xJkgd3Byb3dhZHppxIcgc3fDs2ogY3phcyBwcmFjeSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnV3Byb3dhZGFuaWUgcG93aW9kxYJvIHNpxJkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdXeXN0xIVwacWCIGLFgsSFZCBwb2RjemFzIHdwcm93YWR6YW5pYSB3aWVsdSBkYXQgamVkbm9jemXFm25pZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnUG9tecWbbG5pZSB3cHJvd2Fkem9ubyB3aWVsZSBkYXQgamVkbm9jemXFm25pZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ1dwcm93YWR6b25vIG5pZXByYXdpZMWCb3fEhSBkYXTEmSEgWm9zdGHFgmEgb25hIHptaWVuaW9uYSBuYSBiaWXFvMSFY8SFLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICdOaWUgc2tvbmZpZ3Vyb3dhbm8gb2tyZXPDs3cgY3phc3UgbHViIHBvZGFuYSBkYXRhIGxlxbx5IHBvemEgemRlZmluaW93YW55bWkgb2tyZXNhbWkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICdTa29udGFrdHVqIHNpxJkgeiBhZG1pbmlzdHJhdG9yZW0gY3phc3UgcHJhY3kgdyBjZWx1IGFrdHVhbGl6YWNqaSB0d29pY2ggb2tyZXPDs3cgcHJhY3khJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICdPc3RhdG5pbyB3eWJyYW5lIHByb2pla3R5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1dzenlzdGtpZSBwcm9qZWt0eSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdSYXBvcnRvd2FuaWUgcHJvamVrdHU6IFd5bWFnYW55IFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ1JhcG9ydG93YW5pZSBwcm9qZWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSYXBvcnRvd2FuaWUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnTmllIG1vxbxuYSB6bWllbmnEhyB1c3Rhd2llxYQgdcW8eXRrb3duaWthISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ1Byb2pla3QgZG9kYW55ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrdCB6bWllbmlvbnkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnWmFkYW5pZSBkb2RhbmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdaYWRhbmllIHptaWVuaW9uZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnSWRlbnR5ZmlrYXRvciBVc2VySUQgamVzdCBuaWVwcmF3aWTFgm93eSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnTmllIHVkYcWCbyBzacSZIHdzdGF3acSHIGRhbnljaCB1xbx5dGtvd25pa2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnTmllIG1vxbxuYSBkb2RhxIcgY3lrbHUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdVc3Rhd2llbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICdVxbx5dGtvd25payB6bWllbmlvbnkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnVcW8eXRrb3duaWsgZG9kYW55ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJ0RvZGFqIHXFvHl0a293bmlrYSBkbyByb3psaWN6YW5pYSBjemFzdSBwcmFjeS4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ05vd3kgVcW8eXRrb3duaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ1N0YW4gY3lrbHUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1dpZG9rOiBQb3RyemVibnkgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnTmllcGXFgm5lIGRuaSBwcmFjeSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdQcm9zesSZIHd5YnJhxIcgY28gbmFqbW5pZWogamVkZW4gZHppZcWEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnTWFzb3dlIHdwaXN5d2FuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdQcm9zesSZIHd5YnJhxIcgcHJ6eWN6eW7EmSBuaWVvYmVjbm/Fm2NpISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ1VzdcWEIHJvemxpY3plbmllIGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnUG90d2llcmTFuiB3cGlzJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTW9kdcWCIHBvd2lhZGFtaWFuaWEgQWdlbnRhIG8gbGljemJpZSBkbmkgeiBuaWVrb21wbGV0bnltIHJhcG9ydG93YW5pZW0gY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRG9tecWbbG5hIG5hendhIG5vd3ljaCBjenlubm/Fm2NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdEb215xZtsbmEgbmF6d2Egbm93eWNoIHByb2pla3TDs3cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnRG9tecWbbG5hIGRhdGEgemFrb8WEY3plbmlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnRG9tecWbbG5hIGRhdGEgcm96cG9jesSZY2lhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0RvbXnFm2xuZSB1c3Rhd2llbmllIG9waXN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnRG9tecWbbG5lIGtvbmZpZ3VyYWNqYSB1cmxvcHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnRG9tecWbbG5lIGtvbmZpZ3VyYWNqYSBnb2R6aW4gbmFkbGljemJvd3ljaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0RvbXnFm2xuYSBrb25maWd1cmFjamEgdHlnb2RuaW93ZWdvIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRG9tecWbbG55IHN0YW4gbm93eWNoIGN6eW5ub8WbY2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRG9tecWbbG55IHN0YW4gbm93eWNoIHByb2pla3TDs3cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRG9tecWbbG55IHN0YW4gbm93eWNoIHXFvHl0a293bmlrw7N3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdPa3JlxZtsYSBwcm9qZWt0eSwga3TDs3JlIHd5bWFnYWrEhSBkb2Rhd2FuaWEga29tZW50YXJ6eS4gSmXFvGVsaSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBwYXN1amUgZG8gcHJvamVrdHUsIHRyemViYSBkb2RhxIcga29tZW50YXJ6LiBXeXJhxbxlbmlhIHJlZ3VsYXJuZSBrb3J6eXN0YWrEhSB6IHBhcmFtZXRyw7N3IHNlcndlcmEgbWFrciAoU01YKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ09rcmXFm2xhLCBjenkgbW9kdcWCIHN0YXR5c3R5Y3pueSBtb8W8ZSBnZW5lcm93YcSHIGluZm9ybWFjamUgbyByb3psaWN6ZW5pYWNoIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdFZHl0dWogdXN0YXdpZW5pYSByb3psaWN6YW5pYSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdFZHljamEgZXdpZGVuY2ppIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdMaWN6YmEgZG5pIHdzdGVjeiwgZGxhIGt0w7NyeWNoIG1vxbxuYSByb3psaWN6YcSHIGN6YXMgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ0plxZtsaSBha3R5d25lLCB3aWRvY3puaSBzxIUgdHlsa28gdcW8eXRrb3duaWN5LCBrdMOzcnp5IHJvemxpY3p5bGkgY3phcyBwcmFjeSB3IHd5YnJhbnltIHByb2pla2NpZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1Byenkgd8WCxIVjem9uZWogb3BjamksIGVsZW1lbnR5IHJvendpamFuZSB3IG9rbmllIGVkeWNqaSBixJlkxIUgemFzdMSFcGlvbmUgcG9sYW1pIHogYXV0b21hdHljem55bSB1enVwZcWCbmlhbmllbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnUHJ6eSB3xYLEhWN6b25laiBvcGNqaSwgbW/FvG5hIHXFvHnEhyBmaWx0csOzdywgdcW8eXR5Y2ggdyBwb3ByemVkbmljaCBwcm9qZWt0YWNoLCB6YW1pYXN0IHN0b3Nvd2HEhyBkd2llIGxpc3R5IHByb2pla3TDs3cgKG9zdGF0bmllZ28gaSB3c3p5c3RraWNoKS4gTmllemLEmWRuZSBqZXN0IHVydWNob21pZW5pZSBvcGNqaSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdKZcWbbGkgYWt0eXduZSwgZmlsdHJ5IHXFvHl0ZSB3IHBvcHJ6ZWRuaWNoIHByb2pla3RhY2ggc8SFIGRvbXnFm2xuaWUgYWt0eXduZSAoamXFm2xpIHRha2llIHByb2pla3R5IGlzdG5pZWrEhSkuIE5pZXpixJlkbmUgamVzdCB1cnVjaG9taWVuaWUgb3BjamkgRW5hYmxlQXV0b0NvbXBsZXRpb24gb3JheiBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnSmXFm2xpIGFrdHl3bmUsIHXFvHl0a293bmlrIG1vxbxlIHVzdGF3acSHICJ1cmxvcCIsICJ6d29sbmllbmllIGxla2Fyc2tpZSIgb3JheiAid29sbmUgemEgbmFkZ29kemlueSIgZGxhIHdpZWx1IGRuaSBqZWRub2N6ZcWbbmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01ha3N5bWFsbmEgbGljemJhIGRuaSByb2JvY3p5Y2gsIHcgY2nEhWd1IGt0w7NyeWNoIG5hbGXFvHkgdXp1cGXFgm5pxIcgY3phcyBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ01ha3N5bWFsbmEgbGljemJhIGRuaSByb2JvY3p5Y2gsIGJleiB1enVwZcWCbmlhbmlhIGN6YXN1IHByYWN5LCBwbyBrdMOzcnljaCBwb2themFuZSB6b3N0YW5pZSBvc3RyemXFvGVuaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ1ByemVnbMSFZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdSYXBvcnRvd2FuaWUgY3phc3UgcHJvamVrdHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdXeXJhxbxlbmlhIHJlZ3VsYXJuZSBkbyBvZ3JhbmljemVuaWEgbGlzdHkgemFkYcWEIHd5YnJhbnljaCBwcm9qZWt0w7N3LiBLbHVjeiB6YXdpZXJhIHd5cmHFvGVuaWUgcmVndWxhcm5lIGRsYSBwcm9qZWt0dSjDs3cpLCB6YXdhcnRvxZvEhyBva3JlxZtsYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgYWtjamkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ1d5cmHFvGVuaWEgcmVndWxhcm5lIGRvIG9ncmFuaWN6ZW5pYSBsaXN0eSBwcm9qZWt0w7N3IHd5YnJhbnljaCBncnVwIHXFvHl0a293bmlrw7N3LiBLbHVjeiB6YXdpZXJhIHd5cmHFvGVuaWUgcmVndWxhcm5lIGRsYSBwcm9qZWt0dSjDs3cpLCB6YXdhcnRvxZvEhyB6YXdpZXJhIGxpc3TEmSBncnVwIHJvemR6aWVsb255Y2ggcHJ6ZWNpbmthbWkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdPa3JlxZtsYSwgY3p5IGN6YXMgcHJhY3kgbW/FvGUgem9zdGHEhyB3cHJvd2Fkem9ueSBiZXogcG9kYXdhbmlhIGN6YXN1IHJvenBvY3rEmWNpYSBvcmF6IHpha2/FhGN6ZW5pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnVGVuIG1vZHXFgiB3eW11c3phIHV6dXBlxYJuaWFuaWUgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNb2R1xYIgdGVuIG9zdHJ6ZWdhIG8gemJ5dCBkdcW8ZWogbGljemJpZSBuaWVyb3psaWN6b255Y2ggZG5pIHJvYm9jenljaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnUm96bGljemFuaWUgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWR5Y2phIHJvemxpY3plxYQgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdPcGlzIHJvemxpY3phbmlhIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JhcG9ydG93YW5pZSByb3psaWN6ZcWEIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnS29uZmlndXJhY2phIHJvemxpY3plxYQgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1ByemVnbMSFZCByb3psaWN6ZcWEIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnUm96bGljemFuaWUgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1d5a29yenlzdHl3YW5lIGplxbxlbGkga3TDs3JlxZsgemFkYW5pYSByZWR1a3VqxIUgZ29kemlueSBwcmFjeSAobnAuIGplxZtsaSB6YSBjemFzdSBkb2phemR1IGxpY3pvbmEgamVzdCB0eWxrbyBwb8WCb3dhIGN6YXN5OyBLbHVjeiA9PiBkb2phemQ7IFdhcnRvxZvEhyA9PiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfQlJfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWb2PDqiByZWFsbWVudGUgcXVlciByZW1vdmVyIG8gYXBvbnRhbWVudG8gZGUgdGVtcG8gZGVzdGUgZGlhID8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGFyIGVzc2UgcmVnaXN0cm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJciBwYXJhIGNvbmZpZ3VyYcOnw7Vlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2HDp8OjbyBkZSBkYXRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0RpYXMgc2VtIGFwb250YW1lbnRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2lvbmFyIHRvZG9zIG9zIGRpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ0VudHJhZGEgZW0gbWFzc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdQb3IgZmF2b3IsIGVzY29saGEgbyBtb3Rpdm8gZGUgc3VhIGF1c8OqbmNpYSBwYXJhIG9zIGRpYXMgc2VsZWNpb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRW0gZsOpcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnRW0gbGljZW7Dp2EgbcOpZGljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0VtIGxpY2Vuw6dhIGRlIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0NhbXBvcyBvYnJpZ2F0w7NyaW9zIGVzdMOjbyBtYXJjYWRvcyBjb20gIioiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnVm9jw6ogdMOqbSBxdWUgcHJlZW5jaGVyIGluw61jaW8gZSBmaW0sIG91IHVtIHBlcsOtb2RvIGRlIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdPYnNlcnZhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnUG9yIGZhdm9yLCBhZGljaW9uZSB1bSBjb21lbnTDoXJpbyBjb20gbWFpcyBkZSA4IGNhcmFjdGVyZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdEYXRhcyBuZWdhdGl2YXMgbsOjbyBzw6NvIGxpYmVyYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnSG9yYXMgcmVwZXRpZGFzIG7Do28gc8OjbyBsaWJlcmFkYXMuIEluaWNpZSBvIGFwb250YW1lbnRvIGVtIG91dHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ0Zvcm1hdG8gaW52w6FsaWRvISBQb3IgZmF2b3IsIGVudHJlIGNvbSB1bSB0ZW1wbyBubyBmb3JtYXRvIEhIOk1NJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJ0FwZW5hcyAyNDowMCBzw6NvIHBlcm1pdGlkYXMgY29tbyB0ZW1wbyBmaW5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1RlbXBvIGludsOhbGlkbyEgVW0gZGlhIHRlbSBhcGVuYXMgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdUZW1wbyBmaW5hbCBkZXZlIHNlciBkZXBvaXMgZG8gdGVtcG8gaW5pY2lhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdIb3JhcyByZXBldGlkYXMgbsOjbyBzw6NvIGxpYmVyYWRhcy4gSW5pY2llIG8gYXBvbnRhbWVudG8gZW0gb3V0cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnUGVyw61vZG8gaW52w6FsaWRvISBVbSBkaWEgdGVtIGFwZW5hcyAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbSBwZXLDrW9kbyB2w6FsaWRvIGRldmUgc2VyIG1haW9yIHF1ZSB6ZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnUGVyw61vZG8gaW52w6FsaWRvISBQZXLDrW9kb3MgbmVnYXRpdm9zIG7Do28gc8OjbyBsaWJlcmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQWRpY2lvbmFyIHVtYSBsaW5oYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1ZvY8OqIHBvZGUgc2VsZWNpb25hciBhcGVuYXMgdW0gZWxlbWVudG8gbm8gY2hlY2tib3ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgdm9jw6ogdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBlbSBsaWNlbsOnYSBtw6lkaWNhPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ1RlbSBjZXJ0ZXphIGRlIHF1ZSB2b2PDqiB0cmFiYWxob3UgZW5xdWFudG8gZXN0YXZhIGRlIGbDqXJpYXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdWb2PDqiB0ZW0gY2VydGV6YSBxdWUgdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBkZSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ1ZvY8OqIHRlbSBjZXJ0ZXphIHF1ZSB0cmFiYWxob3UgbWFpcyBxdWUgMTYgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdSZWxhdMOzcmlvIGRlIGFwb250YW1lbnRvIGRlIHRlbXBvIG1lbnNhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnSG9yYXMgZXh0cmFzIChob3JhcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmFzIChlc3RlIG3DqnMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdIb3JhcyBleHRyYXMgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdSZXN0YW50ZSBkYSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnRsOpcmlhcyAoRGlhcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRsOpcmlhcyB0aXJhZGFzIChlc3RlIG3DqnMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdGw6lyaWFzIHRpcmFkYXMgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdGw6lyaWFzIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0xpY2Vuw6dhIE3DqWRpY2EgKERpYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnTGljZW7Dp2EgbcOpZGljYXMgdGlyYWRhcyAgKCBlc3RlIG3DqnMgKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdMaWNlbsOnYSBtw6lkaWNhcyB0aXJhZGFzICAoIHRvdGFsICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNw6pzIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdQcsOzeGltbyBtw6pzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdEaWEgZGEgc2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdIb3LDoXJpbyBkZSB0cmFiYWxobyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbCBkZSBob3JhcyB0cmFiYWxoYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXPDo28gZGUgcHJvamV0byBkZSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnSG9yYXMgKCBtZW5zYWwgKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSG9yYXMgKCBEdXJhw6fDo28gKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsIGdlcmFsJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlbGF0w7NyaW8gZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmVnYcOnw6NvIE1lbnNhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSXIgcGFyYSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JlbGF0w7NyaW9zIGRlIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWwgbWVuc2FsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnRHVyYcOnw6NvIHRvdGFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnTGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRsOpcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnTGljZW7Dp2EgbcOpZGljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdGw6lyaWFzIHJlc3RhbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JlbGF0w7NyaW9zIGRlIHByb2pldG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1JlbGF0w7NyaW8gZGUgcHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdJciBwYXJhIHZpc8OjbyBnZXJhbCBkZSByZWxhdMOzcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0F0dWFsbWVudGUgc29tZW50ZSB1c3XDoXJpb3MgYXRpdm9zIG5lc3RlIHByb2pldG8gc8OjbyBleGliaWRvcy4gUGFyYSBhbHRlcmFyIGVzc2UgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGF0dWFsaXplIGEgY29uZmlndXJhw6fDo286JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0F0dWFsbWVudGUgdG9kb3Mgb3MgYXBvbnRhbWVudG8gZGUgdGVtcG9zIGRvcyB1c3XDoXJpb3Mgc8OjbyBleGliaWRvcy4gUGFyYSBhbHRlcmFyIGVzc2UgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGF0dWFsaXplIGEgY29uZmlndXJhw6fDo286JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkaXRhciBjb25maWd1cmHDp8O1ZXMgZG8gUHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ0FkaWNpb25hciBwcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnSXIgcGFyYSBjb25maWd1cmHDp8O1ZXMgZ2VyYWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnQWRpY2lvbmFyIHByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWRpdGFyIENvbmZpZ3VyYcOnw7VlcyBkbyBQcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdKw6EgZXhpc3RlIHVtIHByb2pldG8gY29tIGVzdGUgbm9tZS4gUG9yIGZhdm9yLCBlc2NvbGhhIHVtIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdFZGl0YXIgQ29uZmlndXJhw6fDtWVzIGRhIENvbnRhYmlsaWRhZGUgZGUgVGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnQWRpY2lvbmFyIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ1BlcsOtb2RvcyBkZSB0ZW1wbyBuw6NvIHBvZGVtIHNlciBleGNsdcOtZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSBkZSB0YXJlZmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWRpY2lvbmFyIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRhIFRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnSsOhIGV4aXN0ZSB1bWEgdGFyZWZhIGNvbSBlc3NlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xoYSB1bSBub21lIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0xpYmVyYXIgY3JpYcOnw6NvIGRlIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyw61vZG8gSW5pY2lhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyw61vZG8gRmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0RpYXMgZGUgRsOpcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ0hvcmFzIHBvciBTZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0hvcmFzIGV4dHJhcyBhdXRvcml6YWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdEYXRhIGluaWNpYWwgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1BvciBmYXZvciwgaW5zaXJhIHVtYSBkYXRhIHbDoWxpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRGF0YSBmaW5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ1BlcsOtb2RvIGZpbmFsIGRldmUgc2VyIG1haW9yIHF1ZSAgcGVyw61vZG8gaW5pY2lhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0RpYXMgZGUgZsOpcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ0hvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnUGVyw61vZG8gZGUgdGVtcG8gbsOjbyBlbmNvbnRyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZGljaW9uYXIgcGVyw61vZG8gZGUgdGVtcG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnVmVyIHJlZ2lzdHJvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzw6NvIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0RpYSBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ1Byw7N4aW1vIGRpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOw6NvIGZvcmFtIGVuY29udHJhZG9zIGRhZG9zIHBhcmEgZXN0ZSBkaWEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBpbnNlcmlyIFVuaWRhZGVzIGRlIFRyYWJhbGhvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnQ29uZmlndXJhw6fDtWVzIG7Do28gc2FsdmFzLCBwb2lzIHVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGRlbGV0YXIgVW5pZGFkZXMgZGUgVHJhYmFsaG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXN0YSBEYXRhIGVzdMOhIGZvcmEgZG8gbGltaXRlLCBtYXMgdm9jw6ogbsOjbyBpbnNlcml1IGVzdGUgZGlhIGFpbmRhLCBlbnTDo28gdm9jw6ogcG9zc3VpIFVNQSghKSBjaGFuY2UgZGUgaW5zZXJpcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0RpYXMgZGUgdHJhYmFsaG9zIGluY29tcGxldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1BvciBmYXZvciBpbnNpcmEgc3VhcyBob3JhcyBkZSB0cmFiYWxobyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnSW5zZXJpZG8gY29tIHN1Y2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdFcnJvIGFvIGluc2VyaXIgbcO6bHRpcGxhcyBkYXRhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnRW50cmFkYSBkZSB2w6FyaWFzIGRhdGFzIGluc2VyaWRhIGNvbSBzdWNlc3NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnRGF0YSBpbnNlcmlkYSDDqSBpbnbDoWxpZGEhIERhdGEgZm9pIGFsdGVyYWRhIHBhcmEgaG9qZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIHByb2pldG9zIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUb2RvcyBvcyBwcm9qZXRvcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdQcm9qZXRvIGRlIFJlbGF0w7NyaW86IE5lY2Vzc8OhcmlvIFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ1Byb2pldG8gZGUgUmVsYXTDs3Jpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZWxhdMOzcmlvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ0ltcG9zc8OtdmVsIGF0dWFsaXphciBjb25maWd1cmHDp8O1ZXMgZGUgdXN1w6FyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamV0byBhZGljaW9uYWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamV0byBhdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0F0aXZpZGFkZSBhZGljaW9uYWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnQXRpdmlkYWRlIGF0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ08gVXNlcklEIG7Do28gw6kgdsOhbGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGluc2VyaXIgZGFkb3MgZGUgdXN1w6FyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnSW1wb3Nzw612ZWwgYWRpY2lvbmFyIHBlcsOtb2RvIGRlIHRlbXBvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnQ29uZmlndXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1VzdcOhcmlvIGF0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnVXN1w6FyaW8gYWRpY2lvbmFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3ZvIHVzdcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdFc3RhZG8gZG8gcGVyw61vZG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1Zpc8OjbzogTmVjZXNzw6FyaW8gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnRGlhcyBkZSB0cmFiYWxob3MgaW5jb21wbGV0b3MnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUG9yIGZhdm9yLCBlc2NvbGhhIHBlbG8gbWVub3MgdW0gZGlhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnRW50cmFkYSBlbSBtYXNzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1BvciBmYXZvciBlc2NvbGhhIHVtIG1vdGl2byBwYXJhIGEgYXVzw6puY2lhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRGVsZXRhciBlbnRyYWRhIG5hIENvbnRhYmlsaWRhZGUgZGUgVGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWFyIGluc2Vyw6fDo28nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZG8gQWdlbnRlIHBhcmEgdmVyIG8gbnVtZXJvIGRlIGRpYXMgaW5jb21wbGV0b3MgZG8gdXN1w6FyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTyBub21lIHBhZHLDo28gcGFyYSBub3ZhcyBhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdPIG5vbWUgcGFkcsOjbyBwYXJhIG5vdm9zIHByb2pldG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkYXRhIGZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGF0YSBpbmljaWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkZXNjcmnDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkaWFzIGRlIGbDqXJpYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGhvcmFzIGV4dHJhcywnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBob3JhcyBzZW1hbmFpcyBwYWRyw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdFc3RhZG8gcGFkcsOjbyBwYXJhIG5vdmFzIGHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRXN0YWRvIHBhZHLDo28gcGFyYSBub3ZvcyBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0VzdGFkbyBwYXJhIHBhcmEgbm92b3MgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBwcm9qZXRvcyBwYXJhIG9zIHF1YWlzIMOpIG5lY2Vzc8OhcmlhIHVtYSBvYnNlcnZhw6fDo28uIFNlIG8gUmVnRXhwIMOpIGVuY29udHJhZG8gbm8gcHJvamV0bywgdm9jw6ogdGVtIHF1ZSBpbnNlcmlyIHVtYSBvYnNlcnZhw6fDo28uIE8gUmVnRXhwIHVzYSBvIHBhcsOibWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNlIG8gbcOzZHVsbyBkZSBlc3RhdMOtc3RpY2FzIHBvZGUgZ2VyYXIgaW5mb3JtYcOnw7VlcyBkbyB0aW1lIGFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0VkaXRhciBjb25maWd1cmHDp8O1ZXMgZGEgY29udGFiaWxpZGFkZSBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdFZGl0YXIgcmVnaXN0cm8gZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1BhcmEgcXVhbnRvcyBkaWFzIGF0csOhcyB2b2PDqiBwb2RlIGluc2VyaXIgdW5pZGFkZXMgZGUgdHJhYmFsaG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIHNvbWVudGUgb3MgdXN1w6FyaW9zIHF1ZSBhZGljaW9ub3UgdGVtcG8gZGUgdHJhYmFsaG8gYW8gbyBwcm9qZXRvIHNlbGVjaW9uYWRvIHNlcsOjbyBleGliaWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG9zIGVsZW1lbnRvcyBzdXNwZW5zb3MgbmEgdGVsYSBkZSBlZGnDp8OjbyBzw6NvIG1vZGlmaWNhZGFzIHBhcmEgY2FtcG9zIGRlIGF1dG9jb21wbGV0YXIgbW9kZXJuaXphZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTZSBoYWJpbGl0YWRvLCBvIGZpbHRybyBwYXJhIG9zIHByb2pldG9zIGFudGVyaW9yZXMgcG9kZSBzZXIgdXNhZG8gZW0gdmV6IGRlIGR1YXMgbGlzdGFzIGRlIHByb2pldG9zICjDumx0aW1vIGUgdG9kb3MpLiBFbGUgcG9kZSBzZXIgdXNhZG8gYXBlbmFzIHNlIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2UgaGFiaWxpdGFkbywgbyBmaWx0cm8gcGFyYSBwcm9qZXRvcyBhbnRlcmlvcmVzIMOpIGF0aXZhZG8gcG9yIHBhZHLDo28gc2UgaMOhIHByb2pldG9zIGFudGVyaW9yZXMuIEVsZSBwb2RlIHNlciB1c2FkbyBhcGVuYXMgc2UgRW5hYmxlQXV0b0NvbXBsZXRpb24gZSBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGVzdMOjbyBoYWJpbGl0YWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG8gdXN1w6FyaW8gdGVtIHBlcm1pc3PDo28gcGFyYSBlbnRyYXIgImVtIGxpY2Vuw6dhIGRlIGbDqXJpYXMiLCAiZW0gbGljZW7Dp2EgbcOpZGljYSIgZSAiZW0gbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzIiBkZSB1bWEgc8OzIHZleiBwYXJhIHbDoXJpYXMgZGF0YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgZGlhcyBkZSB0cmFiYWxobyBhcMOzcyBvIHF1YWwgYXMgInVuaWRhZGVzIGRlIHRyYWJhbGhvIiBkZXZlbSBzZXIgaW5zZXJpZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdPIG7Dum1lcm8gbcOheGltbyBkZSBkaWFzIGRlIHRyYWJhbGhvIHNlbSAidW5pZGFkZXMgZGUgdHJhYmFsaG8iICBhcMOzcyBvIHF1YWwgdW0gYXZpc28gc2Vyw6EgbW9zdHJhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ1Zpc8OjbyBHZXJhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdSZWxhdMOzcmlvIGRlIHRlbXBvcyBkZSBwcm9qZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0FzIGV4cHJlc3PDtWVzIHJlZ3VsYXJlcyBwYXJhIHJlc3RyaW5naXIgbGlzdGEgZGUgYcOnw7VlcyBkZSBhY29yZG8gY29tIG8gcHJvamV0byBzZWxlY2lvbmFkby4gQ2hhdmUgY29udMOpbSBleHByZXNzw6NvIHJlZ3VsYXIgcGFyYSBvIHByb2pldG8ocyksIENvbnRlw7pkbyBjb250w6ltIGV4cHJlc3PDtWVzIHJlZ3VsYXJlcyBwYXJhIGEgYcOnw6NvKHMpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdBcyBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGEgbGlzdGEgZGUgcHJvamV0byBkZSBhY29yZG8gY29tIGdydXBvcyBkZSB1c3XDoXJpb3MuIENoYXZlIGNvbnTDqW0gZXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgbyBwcm9qZXRvIChzKSwgY29udGXDumRvIGNvbnTDqW0gbGlzdGEgIHNlcGFyYWRhIHBvciB2w61yZ3VsYXMgZGUgZ3J1cG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnRXNwZWNpZmlxdWUgc2UgbyBob3LDoXJpbyBkZSB0cmFiYWxobyBwb2RlIHNlciBpbnNlcmlkbyBzZW0gaG9yw6FyaW9zIGRlIGluw61jaW8gZSB0w6lybWluby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRXNzZSBtw7NkdWxvIGZvcsOnYSBwcmVlbmNoZXIgbyBUaW1lQWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdFc3RlIG3Ds2R1bG8gZGUgbm90aWZpY2HDp8OjbyBkw6EgdW0gYXZpc28gc2UgaG91dmVyIG11aXRvcyBkaWFzIGRlIHRyYWJhbGhvIG7Do28gcmVnaXN0cmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ0NvbnRhYmlsaWRhZGUgVGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWRpdGFyIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1Zpc8OjbyBnZXJhbCBkZSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnUmVsYXTDs3JpbyBkZSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdDb25maWd1cmHDp8O1ZXMgZGUgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkZSBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdVc2FyIHBhcmEgIGFsZ3VtYXMgYcOnw7VlcyBkZSByZWR1emlyIGFzIGhvcmFzIGRlIHRyYWJhbGhvIChwb3IgZXhlbXBsbywgc2UgYXBlbmFzIG1ldGFkZSBkbyB0ZW1wbyBkZSB2aWFnZW0gw6kgcGFnbyBLZXkgPT4gdmlhamFyOyBDb250ZW50ID0+IDUwKSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cnVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INC20LXQu9Cw0LXRgtC1INGD0LTQsNC70LjRgtGMINGD0YfRgtC10L3QvdGL0LUg0LfQsNGC0YDQsNGC0Ysg0LLRgNC10LzQtdC90Lgg0LTQu9GPINGN0YLQvtCz0L4g0LTQvdGPPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQt9Cw0L/QuNGB0Ywg0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQvdCw0YHRgtGA0L7QudC60LDQvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40Y8g0L/QviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ9CU0L3QuCDQsdC10Lcg0LfQsNC/0LjRgdC10LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn0JLRi9Cx0YDQsNGC0Ywg0LLRgdC1INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAn0JzQsNGB0YHQvtCy0YvQuSDQstCy0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ9CS0YvQsdC10YDQuNGC0LUg0L/RgNC40YfQuNC90YMg0LLQsNGI0LXQs9C+INC+0YLRgdGD0YLRgdGC0LLQuNGPINCyINCy0YvQsdGA0LDQvdC90YvQtSDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfQkiDQvtGC0L/Rg9GB0LrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAn0J/QviDQsdC+0LvQtdC30L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ9CSINC+0YLQs9GD0LvQtSDQt9CwINC/0LXRgNC10YDQsNCx0L7RgtC60YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICfQntCx0Y/Qt9Cw0YLQtdC70YzQvdGL0LUg0L/QvtC70Y8g0L/QvtC80LXRh9C10L3RiyAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn0J3QtdC+0LHRhdC+0LTQuNC80L4g0LfQsNC/0L7Qu9C90LjRgtGMINCy0YDQtdC80Y8g0L3QsNGH0LDQu9CwINC4INC+0LrQvtC90YfQsNC90LjRjyDQuNC70Lgg0L/QtdGA0LjQvtC0INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn0J/Qu9Cw0L3QuNGA0L7QstCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICfQl9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn0J/RgNC40LzQtdGH0LDQvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAn0J/RgNC40LzQtdGH0LDQvdC40LUg0LTQvtC70LbQvdC+INCx0YvRgtGMINC90LUg0LzQtdC90LXQtSA4INGB0LjQvNCy0L7Qu9C+0LIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQntGC0YDQuNGG0LDRgtC10LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1INC90LXQtNC+0L/Rg9GB0YLQuNC80L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQndC1INC00L7Qv9GD0YHQutCw0LXRgtGB0Y8g0L/QvtCy0YLQvtGA0LXQvdC40LUuINCS0YDQtdC80Y8g0L3QsNGH0LDQu9CwINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPQtdGCINC00YDRg9Cz0L7QvNGDINC40L3RgtC10YDQstCw0LvRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0YTQvtGA0LzQsNGCISDQktCy0LXQtNC40YLQtSDQstGA0LXQvNGPINCyINGE0L7RgNC80LDRgtC1IEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICfQotC+0LvRjNC60L4gMjQ6MDAg0YDQsNC30YDQtdGI0LXQvdC+INCyINC60LDRh9C10YHRgtCy0LUg0LLRgNC10LzQtdC90Lgg0L7QutC+0L3Rh9Cw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQstC10YDQvdC+0LUg0LLRgNC10LzRjyEg0JIg0YHRg9GC0LrQsNGFINGC0L7Qu9GM0LrQviAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ9CS0YDQtdC80Y8g0L7QutC+0L3Rh9Cw0L3QuNGPINC00L7Qu9C20L3QviDQsdGL0YLRjCDQv9C+0LfQttC1INCy0YDQtdC80LXQvdC4INC90LDRh9Cw0LvQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQndC1INC00L7Qv9GD0YHQutCw0LXRgtGB0Y8g0L/QvtCy0YLQvtGA0LXQvdC40LUuINCS0YDQtdC80Y8g0L7QutC+0L3Rh9Cw0L3QuNGPINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPQtdGCINC00YDRg9Cz0L7QvNGDINC40L3RgtC10YDQstCw0LvRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0L/QtdGA0LjQvtC0ISDQkiDRgdGD0YLQutCw0YUg0YLQvtC70YzQutC+IDI0INGH0LDRgdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ9Cf0YDQsNCy0LjQu9GM0L3Ri9C5INC/0LXRgNC40L7QtCDQtNC+0LvQttC10L0g0LHRi9GC0Ywg0LHQvtC70YzRiNC1INC90YPQu9GPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J3QtdCy0LXRgNC90YvQuSDQv9C10YDQuNC+0LQhINCe0YLRgNC40YbQsNGC0LXQu9GM0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0L3QtSDQtNC+0L/Rg9GB0LrQsNC10YLRgdGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L7QtNC90YMg0YHRgtGA0L7QutGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn0KMg0LLQsNGBINC10YHRgtGMINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0LLRi9Cx0YDQsNGC0Ywg0YLQvtC70YzQutC+INC+0LTQuNC9INGN0LvQtdC80LXQvdGCISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCyINC/0LXRgNC40L7QtCDQsdC+0LvQtdC30L3QuD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INGA0LDQsdC+0YLQsNC70Lgg0LIg0L/QtdGA0LjQvtC0INC+0YLQv9GD0YHQutCwPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCyINC/0LXRgNC40L7QtCDQvtGC0LPRg9C70L7Qsj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCx0L7Qu9C10LUgMTYg0YfQsNGB0L7Qsj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ9Cc0LXRgdGP0YfQvdGL0Lkg0L7RgtGH0LXRgiDQviDQt9Cw0YLRgNCw0YfQtdC90L3QvtC8INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQn9C10YDQtdGA0LDQsdC+0YLQutCwICjRh9Cw0YHRiyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsCAo0Y3RgtC+0LPQviDQvNC10YHRj9GG0LApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfQn9C10YDQtdGA0LDQsdC+0YLQutCwICjQstGB0LXQs9C+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfQntGB0YLQsNCy0YjQtdC10YHRjyDQstGA0LXQvNGPINC+0YLQs9GD0LvQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICfQntGC0L/Rg9GB0LogKNC00L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn0JjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC90YvQtSDQtNC90Lgg0L7RgtC/0YPRgdC60LAgKNCyINGN0YLQvtC8INC80LXRgdGP0YbQtSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0L3QvdGL0LUg0LTQvdC4INC+0YLQv9GD0YHQutCwICjQstGB0LXQs9C+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICfQntGB0YLQsNCy0YjQuNC10YHRjyDQtNC90Lgg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfQkdC+0LvQtdC30L3RjCAo0LTQvdC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9Ce0YLRgdGD0YLRgdGC0LLQvtCy0LDQuyDQv9C+INCx0L7Qu9C10LfQvdC4ICjQsiDRjdGC0L7QvCDQvNC10YHRj9GG0LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9Ce0YLRgdGD0YLRgdGC0LLQvtCy0LDQuyDQv9C+INCx0L7Qu9C10LfQvdC4ICjQstGB0LXQs9C+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ9Cf0YDQtdC00YvQtNGD0YnQuNC5INC80LXRgdGP0YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ9Ch0LvQtdC00YPRjtGJ0LjQuSDQvNC10YHRj9GGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICfQndC10LTQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ9Cg0LDQsdC+0YfQuNC1INGH0LDRgdGLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ9CS0YHQtdCz0L4g0L7RgtGA0LDQsdC+0YLQsNC90L3Ri9GFINGH0LDRgdC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAn0J7QsdC30L7RgCDQtNCw0L3QvdGL0YUg0L/QviDQv9C70LDQvdC40YDQvtCy0LDQvdC40Y4g0LTQu9GPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICfQp9Cw0YHRiyAo0LXQttC10LzQtdGB0Y/Rh9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICfQp9Cw0YHRiyAo0LfQsCDQstC10YHRjCDRgdGA0L7QuiDQvdCw0LHQu9GO0LTQtdC90LjRjyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfQktGB0LXQs9C+JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ9Ce0YLRh9C10YIg0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ9Cd0LDQstC40LPQsNGG0LjRjyDQv9C+INC80LXRgdGP0YbQsNC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQtNCw0YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICfQntGC0YfQtdGCINC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn0JjRgtC+0LPQviDQt9CwINC80LXRgdGP0YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQmNGC0L7Qs9C+INC30LAg0LLRgdC1INCy0YDQtdC80Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfQntGC0LPRg9C70Ysg0LfQsCDQv9C10YDQtdGA0LDQsdC+0YLQutGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn0J7RgtC/0YPRgdC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfQntGC0YHRg9GC0YHRgtCy0LjQtSDQv9C+INCx0L7Qu9C10LfQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ9Ce0YHRgtCw0LvQvtGB0Ywg0LTQvdC10Lkg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn0J7RgtGH0LXRgtGLINC/0L4g0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGOJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfQntGC0YfQtdGCINC/0L4g0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ9Cf0LXRgNC10LnRgtC4INC6INC+0LHQt9C+0YDRgyDQvtGC0YfQtdGC0L7Qsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ9CSINC90LDRgdGC0L7Rj9GJ0LXQtSDQstGA0LXQvNGPINC/0L7QutCw0LfQsNC90Ysg0YLQvtC70YzQutC+INCw0LrRgtC40LLQvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C4INCyINGN0YLQvtC8INC/0YDQvtC10LrRgtC1LiDQp9GC0L7QsdGLINC40LfQvNC10L3QuNGC0Ywg0Y3RgtC+LCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0L7QsdC90L7QstC40YLQtSDQvdCw0YHRgtGA0L7QudC60Lg6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ9CSINC90LDRgdGC0L7Rj9GJ0LXQtSDQstGA0LXQvNGPINC/0L7QutCw0LfQsNC90Ysg0LLRgdC1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCDQsiDRjdGC0L7QvCDQv9GA0L7QtdC60YLQtS4g0KfRgtC+0LHRiyDQuNC30LzQtdC90LjRgtGMLCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0L7QsdC90L7QstC40YLQtSDQvdCw0YHRgtGA0L7QudC60Lg6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDRg9GH0LXRgtCwINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCDQv9C+INC/0YDQvtC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn0JTQvtCx0LDQstC40YLRjCDQv9C70LDQvdC40YDQvtCy0LDQvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQvtCx0LfQvtGA0YMg0L3QsNGB0YLRgNC+0LXQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDQv9C70LDQvdC40YDQvtCy0LDQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ9Cj0LbQtSDQtdGB0YLRjCDQv9GA0L7QtdC60YIg0YEg0YLQsNC60LjQvCDQvdCw0LjQvNC10L3QvtCy0LDQvdC40LXQvC4g0JLRi9Cx0LXRgNC40YLQtSDQtNGA0YPQs9C+0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INGD0YfQtdGC0LAg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQt9Cw0LTQsNGH0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICfQpNC40LvRjNGC0YAg0LTQu9GPINC/0YDQvtC10LrRgtC+0LIsINC30LDQtNCw0Ycg0LjQu9C4INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAn0J/QtdGA0LjQvtC00Ysg0LLRgNC10LzQtdC90Lgg0L3QtSDQvNC+0LPRg9GCINCx0YvRgtGMINGD0LTQsNC70LXQvdGLLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfQodC/0LjRgdC+0Log0L/RgNC+0LXQutGC0L7Qsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICfQodC/0LjRgdC+0Log0LfQsNC00LDRhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LfQsNC00LDRh9GDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDQt9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ9Cj0LbQtSDQtdGB0YLRjCDQt9Cw0LTQsNGH0LAg0YEg0YLQsNC60LjQvCDQuNC80LXQvdC10LwsINCS0YvQsdC10YDQuNGC0LUg0LTRgNGD0LPQvtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICfQodC/0LjRgdC+0Log0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ9Cf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC1INC90LDRgdGC0YDQvtC50LrQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJ9Cf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjiDRgNCw0LfRgNC10YjQtdC90L4g0L/RgNC+0YHQvNCw0YLRgNC40LLQsNGC0Ywg0LLRgNC10LzRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAn0J/QvtC60LDQt9Cw0YLRjCDQv9C10YDQtdGA0LDQsdC+0YLQutGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Y4g0YDQsNC30YDQtdGI0LXQvdC+INGB0L7Qt9C00LDQstCw0YLRjCDQv9GA0L7QtdC60YLRiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn0KDQsNC30YDQtdGI0LjRgtGMINGB0L7Qt9C00LDQvdC40LUg0L/RgNC+0LXQutGC0L7Qsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAn0J/RgNC+0LzQtdC20YPRgtC60Lgg0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J3QsNGH0LDQu9C+INC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfQmtC+0L3QtdGGINC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfQlNC90Lgg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfQp9Cw0YHQvtCyINCyINC90LXQtNC10LvQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn0KDQsNC30YDQtdGI0LXQvdC90LDRjyDQv9C10YDQtdGA0LDQsdC+0YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfQlNCw0YLQsCDQvdCw0YfQsNC70LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn0JLQstC10LTQuNGC0LUg0L/RgNCw0LLQuNC70YzQvdGD0Y4g0LTQsNGC0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn0JTQsNGC0LAg0L7QutC+0L3Rh9Cw0L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn0JLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0L/QtdGA0LjQvtC00LAg0LTQvtC70LbQvdC+INCx0YvRgtGMINC/0L7Qt9C20LUg0LLRgNC10LzQtdC90Lgg0LXQs9C+INC90LDRh9Cw0LvQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ9Ce0YHRgtCw0LvQvtGB0YwsINC00L3QtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ9Cn0LDRgdC+0LIg0LIg0L3QtdC00LXQu9GOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsC/QodCy0LXRgNGF0YPRgNC+0YfQvdGL0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ9Cd0LUg0LfQsNC00LDQvdGLINC/0LXRgNC40L7QtNGLINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0LXRgNC40LQg0LLRgNC10LzQtdC90LgnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn0J/QvtGB0LzQvtGC0YDQtdGC0Ywg0LfQsNC/0LjRgdGMINCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAn0J/RgNC+0YHQvNC+0YLRgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfQn9GA0LXQtNGL0LTRg9GJ0LjQuSDQtNC10L3RjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ9Ch0LvQtdC00YPRjtGJ0LjQuSDQtNC10L3RjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfQlNC70Y8g0Y3RgtC+0LPQviDQtNC90Y8g0LTQsNC90L3Ri9C1INC90LUg0L3QsNC50LTQtdC90YsuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0LTQvtCx0LDQstC40YLRjCDRgNCw0LHQvtGH0LjQtSDQtdC00LjQvdC40YbRiyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNC90LjQtSDQv9GA0L7QtdC60YLRiy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDRgdC+0YXRgNCw0L3QuNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4LCDRgtCw0Log0LrQsNC6INCyINGB0YPRgtC60LDRhSAyNCDRh9Cw0YHQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YPQtNCw0LvQuNGC0Ywg0YDQsNCx0L7Rh9C40LUg0LXQtNC40L3QuNGG0YshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAn0K3RgtCwINC00LDRgtCwINCy0L3QtSDQtNC40LDQv9Cw0LfQvtC90LAsINC90L4g0LLRiyDQtdGJ0LUg0L3QtSDRg9GB0YLQsNC90L7QstC40LvQuCDRjdGC0L7RgiDQtNC10L3RjCwg0YLQsNC6INGH0YLQviDQstCw0Lwg0LTQsNC10YLRgdGPINC+0LTQuNC9KCEpINGI0LDQvdGBINC00LvRjyDQtdC1INGD0YHRgtCw0L3QvtCy0LrQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ9Cd0LXQv9C+0LvQvdGL0LUg0YDQsNCx0L7Rh9C40LUg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ9CS0LLQtdC00LjRgtC1INCS0LDRiNC4INGA0LDQsdC+0YfQuNC1INGH0LDRgdGLISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICfQlNCw0L3QvdGL0LUg0LfQsNC90LXRgdC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ9Ce0YjQuNCx0LrQsCDQv9GA0Lgg0LLQstC+0LTQtSDQvdC10YHQutC+0LvRjNC60LjRhSDQtNCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ9CU0LDQvdC90YvQtSDQtNC70Y8g0YDQsNC30L3Ri9GFINC00LDRgiDQstCy0LXQtNC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ9CS0LLQtdC00LXQvdC90LDRjyDQtNCw0YLQsCDQvdC10LLQtdGA0L3QsCEg0JfQsNC80LXQvdC10L3QsCDQvdCwINGC0LXQutGD0YnRg9GOISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfQndC1INC90LDRgdGC0YDQvtC10L0g0LLRgNC10LzQtdC90L3QvtC5INC/0LXRgNC40L7QtCwg0LjQu9C4INGD0LrQsNC30LDQvdC90LDRjyDQtNCw0YLQsCDQvdCw0YXQvtC00LjRgtGB0Y8g0LfQsCDQv9GA0LXQtNC10LvQsNC80Lgg0L7Qv9GA0LXQtNC10LvQtdC90L3Ri9GFINCy0YDQtdC80LXQvdC90YvRhSDQv9C10YDQuNC+0LTQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINGB0LLRj9C20LjRgtC10YHRjCDRgSDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNC+0Lwg0LLRgNC10LzQtdC90L3QvtCz0L4g0YPRh9C10YLQsCwg0YfRgtC+0LHRiyDQvtCx0L3QvtCy0LjRgtGMINCy0LDRiNC4INCy0YDQtdC80LXQvdC90YvQtSDQv9C10YDQuNC+0LTRiyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNC90LjQtSDQstGL0LHRgNCw0L3QvdGL0LUg0L/RgNC+0LXQutGC0YsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAn0JLRgdC1INC/0YDQvtC10LrRgtGLJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1JlcG9ydGluZ1Byb2plY3Q6INCi0YDQtdCx0YPQtdGC0YHRjyBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICfQn9GA0L7QtdC60YIg0YHQvtGB0YLQsNCy0LvQtdC90LjRjyDQvtGC0YfQtdGC0L7Qsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICfQodC+0YHRgtCw0LLQu9C10L3QuNC1INC+0YLRh9C10YLQvtCyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ9CU0L7QsdCw0LLQu9C10L3QviDQv9C70LDQvdC40YDQvtCy0LDQvdC40LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfQn9C70LDQvdC40YDQvtCy0LDQvdC40LUg0L7QsdC90L7QstC70LXQvdC+ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ9CX0LDQtNCw0YfQsCDQtNC+0LHQsNCy0LvQtdC90LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfQl9Cw0LTQsNGH0LAg0L7QsdC90L7QstC70LXQvdCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICfQndC10LLQtdGA0L3Ri9C5IFVzZXJJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQstGB0YLQsNCy0LjRgtGMINC00LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQtNC+0LHQsNCy0LjRgtGMINC/0LXRgNC40LQg0LLRgNC10LzQtdC90LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICfQn9Cw0YDQsNC80LXRgtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0L7QsdC90L7QstC70LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0LTQvtCx0LDQstC70LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQsiDRg9GH0LXRgiDQstGA0LXQvNC10L3QuCAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfQndC+0LLRi9C5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAn0KHRgtCw0YLRg9GBINC/0LXRgNC40L7QtNCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaWV3OiDQotGA0LXQsdGD0LXRgtGB0Y8gICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ9Cd0LXQv9C+0LvQvdGL0LUg0YDQsNCx0L7Rh9C40LUg0LTQvdC4JzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ9CS0YvQsdC10YDQuNGC0LUg0YXQvtGC0Y8g0LHRiyDQvtC00LjQvSDQtNC10L3RjCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ9Cc0LDRgdGB0L7QstGL0Lkg0LLQstC+0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfQktGL0LHQtdGA0LjRgtC1INC/0YDQuNGH0LjQvdGDINC+0YLRgdGD0YLRgdGC0LLQuNGPISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ9Cj0LTQsNC70LjRgtGMINC30LDQv9C40YHRjCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICfQn9C+0LTRgtCy0LXRgNC00LjRgtC1INCy0YHRgtCw0LLQutGDJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn0JzQvtC00YPQu9GMINGD0LLQtdC00L7QvNC70LXQvdC40LksINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwINC90LXQt9Cw0LLQtdGA0YjQtdC90L3Ri9GFINGA0LDQsdC+0YfQuNGFINC00L3QtdC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfQmNC80LXQvdCwINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQvdC+0LLRi9GFINC00LXQudGB0YLQstC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ9Cd0LDQt9Cy0LDQvdC40LUg0L3QvtCy0L7Qs9C+INC/0YDQvtC10LrRgtCwINC/0L4t0YPQvNC+0LvRh9Cw0L3QuNGOLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC00LDRgtGLINC+0LrQvtC90YfQsNC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC00LDRgtGLINC90LDRh9Cw0LvQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQvtC/0LjRgdCw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0L7RgdGC0LDQstGI0LjRhdGB0Y8g0LTQvdC10LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0L/QtdGA0LXRgNCw0LHQvtGC0LrQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINGB0YLQsNC90LTQsNGA0YLQvdGL0YUg0YDQsNCx0L7Rh9C40YUg0YfQsNGB0L7Qsi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0YHRgtCw0YLRg9GB0LAg0L3QvtCy0YvRhSDQtNC10LnRgdGC0LLQuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINGB0YLQsNGC0YPRgdCwINC90L7QstGL0YUg0L/RgNC+0LXQutGC0L7Qsi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDRgdGC0LDRgtGD0YHQsCDQvdC+0LLRi9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0L/RgNC+0LXQutGC0Ysg0LTQu9GPINC60L7RgtC+0YDRi9GFINGC0YDQtdCx0YPQtdGC0YHRjyDQt9Cw0L3QtdGB0LXQvdC40LUg0LfQsNC80LXRh9Cw0L3QuNC5LiDQldGB0LvQuCBSZWdFeHAg0LLQtdGA0L3QviDQtNC70Y8g0L/RgNC+0LXQutGC0LAsINCy0Ysg0LTQvtC70LbQvdGLINC00L7QsdCw0LLQuNGC0Ywg0LfQsNC80LXRh9Cw0L3QuNGPINGC0L7QttC1LiDQlNC70Y8gUmVnRXhwINC40YHQv9C+0LvRjNC30YPQudGC0LUg0L/QsNGA0LDQvNC10YLRgCBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIsINC80L7QttC10YIg0LvQuCDQvNC+0LTRg9C70Ywg0L7RgtGH0LXRgtC+0LIg0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINC40L3RhNC+0YDQvNCw0YbQuNGOINC/0L4g0YPRh9C10YLRgyDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDRg9GH0LXRgtCwINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQt9Cw0L/QuNGB0Ywg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ9CU0LvRjyDQutCw0LrQvtCz0L4g0LrQvtC70LjRh9C10YHRgtCy0LAg0L/RgNC+0YjQtdC00YjQuNGFINC00L3QtdC5INCy0Ysg0LzQvtC20LXRgtC1INCy0L3QtdGB0YLQuCDQtNCw0L3QvdGL0LUg0L4g0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINC+0YLQvtCx0YDQsNC20LDRjtGC0YHRjyDRgtC+0LvRjNC60L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C4LCDQutC+0YLQvtGA0YvQtSDQt9Cw0L3QvtGB0LjQu9C4INC30LDRgtGA0LDRgtGLINCy0YDQtdC80LXQvdC4INCyINCy0YvQsdGA0LDQvdC90YvQuSDQv9GA0L7QtdC60YIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICfQldGB0LvQuCDQstC60LvRjtGH0LXQvdC+LCDQstGL0L/QsNC00LDRjtGJ0LjQtSDQv9C+0LvRjyDRgdC/0LjRgdC60LAg0L3QsCDRjdC60YDQsNC90LUg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQv9GA0LXQvtCx0YDQsNC30YPRjtGC0YHRjyDQsiDQvNC+0LTQtdGA0L3QuNC30LjRgNC+0LLQsNC90L3Ri9C1INC/0L7Qu9GPINCw0LLRgtC+0LfQsNCy0LXRgNGI0LXQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINGC0L4g0YTQuNC70YzRgtGAINC00LvRjyDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDQv9GA0L7QtdC60YLQvtCyINC80L7QttC10YIg0LHRi9GC0Ywg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvSDQstC80LXRgdGC0L4g0LTQstGD0YUg0YHQv9C40YHQutC+0LIgKNC/0L7RgdC70LXQtNC90LjRhSDQuCDQstGB0LXRhSDQv9GA0L7QtdC60YLQvtCyKS4g0K3RgtC+INC00L7RgdGC0YPQv9C90L4g0YLQvtC70YzQutC+INC10YHQu9C4INC/0LDRgNCw0LzQtdGC0YAgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uINCw0LrRgtC40LLQuNGA0L7QstCw0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICfQldGB0LvQuCDQstC60LvRjtGH0LXQvdC+LCDRgtC+INGE0LjQu9GM0YLRgCDQtNC70Y8g0L/RgNC10LTRi9C00YPRidC40YUg0L/RgNC+0LXQutGC0L7QsiDQstC60LvRjtGH0LXQvSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQv9GA0Lgg0L3QsNC70LjRh9C40LUg0L/RgNC10LTRi9C00YPRidC40YUg0L/RgNC+0LXQutGC0L7Qsi4g0K3RgtC+INC00L7RgdGC0YPQv9C90L4g0YLQvtC70YzQutC+INC10YHQu9C4INC/0LDRgNCw0LzQtdGC0YDRiyBFbmFibGVBdXRvQ29tcGxldGlvbiDQuCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyINCw0LrRgtC40LLQuNGA0L7QstCw0L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjiDRgNCw0LfRgNC10YjQtdC90L4g0LLQstC+0LTQuNGC0Ywg0LfQvdCw0YfQtdC90LjRjyAi0J7RgdGC0LDQu9C+0YHRjCDQsiDQvtGC0L/RgdC60LUiLCAi0J7RgdGC0LDQu9C+0YHRjCDQtNC90LXQuSDQv9C+INCx0L7Qu9C10LfQvdC4IiDQuCAi0J7RgdGC0LDQu9C+0YHRjCDQv9C10YDQtdGA0LDQsdC+0YLQutC4IiDQv9C+INC90LXRgdC60L7Qu9GM0LrQviDQtNCw0YIg0YHRgNCw0LfRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICfQnNCw0LrRgS4g0LrQvtC70LjRh9C10YHRgtCy0L4g0YDQsNCx0L7Rh9C40YUg0LTQvdC10LksINC/0L7RgdC70LUg0LrQvtGC0L7RgNGL0YUg0YDQsNCx0L7Rh9C40LUg0LXQtNC40L3QuNGG0Ysg0LTQvtC70LbQvdGLINCx0YvRgtGMINC30LDQvdC10YHQtdC90YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70YzQvdC+INC60L7Qu9C40YfQtdGB0YLQstC+INGA0LDQsdC+0YfQuNGFINC00L3QtdC5LCDQv9C+0YHQu9C1INC60L7RgtC+0YDQvtCz0L4g0LLRi9C00LDQtdGC0YHRjyDQv9GA0LXQtNGD0L/RgNC10LbQtNC10L3QuNC1INC+INGC0L7QvCwg0YfRgtC+INC00LDQvdC90YvQtSDQvdC1INCy0LLQvtC00LjQu9C40YHRjC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAn0J7QsdC30L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ9Ce0YLRh9C10YIg0L4g0LLRgNC10LzQtdC90Lgg0L/QviDQv9GA0L7QtdC60YLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn0KDQtdCz0YPQu9GP0YDQvdGL0LUg0LLRi9GA0LDQttC10L3QuNGPINC00LvRjyDRgdC+0YHRgtCw0LLQu9C10L3QuNGPINGB0L/QuNGB0LrQsCDQtNC10LnRgdGC0LLQuNC5INCyINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjQuCDRgSDQstGL0LHRgNCw0L3QvdGL0Lwg0L/RgNC+0LXQutGC0L7QvC4g0JrQu9GO0Ycg0LTQvtC70LbQtdC9INGB0L7QtNC10YDQttCw0YLRjCDRgNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LTQu9GPINC/0YDQvtC10LrRgtCwKNC+0LIpLCDQodC+0LTQtdGA0LbQsNC90LjQtSAtINGA0LXQs9GD0LvRj9GA0L3Ri9C1INCy0YvRgNCw0LbQtdC90LjRjyDQtNC70Y8g0LTQtdC50YHRgtCy0LjRjyjQuSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ9Cg0LXQs9GD0LvRj9GA0L3Ri9C1INCy0YvRgNCw0LbQtdC90LjRjyDQtNC70Y8g0YHQvtGB0YLQsNCy0LvQtdC90LjRjyDRgdC/0LjRgdC60LAg0LTQtdC50YHRgtCy0LjQuSDQsiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4INC+0YIg0LPRgNGD0L/QvyDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS4g0JrQu9GO0Ycg0LTQvtC70LbQtdC9INGB0L7QtNC10YDQttCw0YLRjCDRgNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LTQu9GPINC/0YDQvtC10LrRgtCwKNC+0LIpLCDQodC+0LTQtdGA0LbQsNC90LjQtSAtINGB0L/QuNGB0L7QuiDQs9GA0YPQv9C/LCDRgNCw0LfQtNC10LvQtdC90L3Ri9GFINC30LDQv9GP0YLQvtC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCLCDQvNC+0LbQvdC+INC70Lgg0LfQsNC90L7RgdC40YLRjCDRgNCw0LHQvtGH0LjQtSDRh9Cw0YHRiyDQsdC10Lcg0YPQutCw0LfQsNC90LjRjyDQstGA0LXQvNC10L3QuCDQvdCw0YfQsNC70LAg0Lgg0L7QutC+0L3Rh9Cw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICfQrdGC0L7RgiDQvNC+0LTRg9C70Ywg0YPRgdC60L7RgNGP0LXRgiDQstCy0L7QtCDQtNCw0L3QvdGL0YUg0LIgVGltZUFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAn0JzQvtC00YPQu9GMINGD0LLQtdC00L7QvNC70LXQvdC40LksINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwINC90LXQt9Cw0LLQtdGA0YjQtdC90L3Ri9GFINGA0LDQsdC+0YfQuNGFINC00L3QtdC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAn0KPRh9C10YIg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40LUg0LfQsNGC0YDQsNGCINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAn0J7QsdC30L7RgCDQt9Cw0YLRgNCw0YIg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAn0J7RgtGH0LXRgtGLINC+INC30LDRgtGA0YLQsNGFINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn0J3QsNGB0YLRgNC+0LnQutC4INGD0YfQtdGC0LAg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICfQn9GA0L7RgdC80L7RgtGAINC30LDRgtGA0LDRgiDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ9Cj0YfQtdGCINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICfQlNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8sINC10YHQu9C4INC90LXQutC+0YLQvtGA0YvQtSDQtNC10LnRgdGC0LLQuNGPINGD0LzQtdC90YzRiNCw0Y7RgiDRgNCw0LHQvtGH0LjQtSDRh9Cw0YHRiyAo0L3QsNC/0YDQuNC80LXRgCwg0LXRgdC70Lgg0YLQvtC70YzQutC+INC/0L7Qu9C+0LLQuNC90LAg0LLRgNC10LzQtdC90Lgg0LIg0L/Rg9GC0Lgg0L7Qv9C70LDRh9C40LLQsNC10YLRgdGPIC0gS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3JfQ3lybF9UaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIFRpbWUgQWNjb3VudGluZyBvZiB0aGlzIGRheT8nfSA9CiAgICAgICAgJ9CU0LAg0LvQuCDQt9Cw0LjRgdGC0LAg0LbQtdC70LjRgtC1INC00LAg0L7QsdGA0LjRiNC10YLQtSDQvtCx0YDQsNGH0YPQvSDQstGA0LXQvNC10L3QsCDQt9CwINC+0LLQsNGYINC00LDQvT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn0KPRgNC10LTQuCDQstGA0LXQvNC10L3RgdC60Lgg0LfQsNC/0LjRgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ9CY0LTQuCDRgyDQv9C+0LTQtdGI0LDQstCw0ZrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfQlNCw0YLRg9C80YHQutCwINC90LDQstC40LPQsNGG0LjRmNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAn0JTQsNC90Lgg0LHQtdC3INGD0L3QvtGB0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn0KHQtdC70LXQutGC0YPRmCDRgdCy0LUg0LTQsNC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ9Cc0LDRgdC+0LLQvdC4INGD0L3QvtGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAn0JzQvtC70LjQvNC+INCS0LDRgSDQuNC30LDQsdC10YDQuNGC0LUg0YDQsNC30LvQvtCzINCy0LDRiNC10LMg0L7QtNGB0YPRgdGC0LLQsCDQt9CwINC40LfQsNCx0YDQsNC90LUg0LTQsNC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfQndCwINC+0LTQvNC+0YDRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAn0J3QsCDQsdC+0LvQvtCy0LDRmtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J3QsCDRgdC70L7QsdC+0LTQvdC40Lwg0LTQsNC90LjQvNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0J7QsdCw0LLQtdC30L3QsCDQv9C+0ZnQsCDRgdGDINC+0LfQvdCw0YfQtdC90LAg0YHQsCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn0JzQvtGA0LDRgtC1INGD0L3QtdGC0Lgg0LLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsCDQuCDQt9Cw0LLRgNGI0LXRgtC60LAg0LjQu9C4INCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfQn9GA0L7RmNC10LrQsNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICfQl9Cw0LTQsNGC0LDQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfQndCw0L/QvtC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ9Cc0L7Qu9C40LzQviDQtNCwINC00L7QtNCw0YLQtSDQvdCw0L/QvtC80LXQvdGDINC00YPQttGDINC+0LQgOCDQutCw0YDQsNC60YLQtdGA0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LPQsNGC0LjQstC90LAg0LLRgNC10LzQtdC90LAg0L3QuNGB0YMg0LTQvtC30LLQvtGZ0LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J/QvtC90LDQstGZ0LDRmtC1INGB0LDRgtC4INC90LjRmNC1INC00L7Qt9Cy0L7RmdC10L3Qvi4g0JLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsCDRgdC1INC/0L7QutC70LDQv9CwINGB0LAg0LTRgNGD0LPQuNC8INC40L3RgtC10YDQstCw0LvQvtC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAn0J3QtdC40YHQv9GA0LDQstCw0L0g0YTQvtGA0LzQsNGCISDQnNC+0LvQuNC80L4g0LTQsCDRg9C90LXRgdC10YLQtSDQstGA0LXQvNC1INGDINGE0L7RgNC80LDRgtGDIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCDRmNC1INC00L7Qt9Cy0L7RmdC10L3QviDRgdCw0LzQviDQutCw0L4g0LLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn0J3QtdC40YHQv9GA0LDQstC90L4g0LLRgNC10LzQtSEg0JTQsNC9INC40LzQsCDRgdCw0LzQviAyNCDRgdCw0YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ9CS0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwINC80L7RgNCwINCx0LjRgtC4INC90LDQutC+0L0g0L/QvtGH0LXRgtC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J/QvtC90LDQstGZ0LDRmtC1INGB0LDRgtC4INC90LjRmNC1INC00L7Qt9Cy0L7RmdC10L3Qvi4g0JLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAg0YHQtSDQv9C+0LrQu9Cw0L/QsCDRgdCwINC00YDRg9Cz0LjQvCDQuNC90YLQtdGA0LLQsNC70L7QvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQsNC9INC/0LXRgNC40L7QtCEg0JTQsNC9INC40LzQsCDRgdCw0LzQviAyNCDRgdCw0YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICfQmNGB0L/RgNCw0LLQsNC9INC/0LXRgNC40L7QtCDQvNC+0YDQsCDQsdC40YLQuCDQstC10ZvQuCDQvtC0INC90YPQu9C1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J3QtdC40YHQv9GA0LDQstCw0L0g0L/QtdGA0LjQvtC0ISDQndC10LPQsNGC0LjQstC90Lgg0L/QtdGA0LjQvtC00Lgg0L3QuNGB0YMg0LTQvtC30LLQvtGZ0LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ9CU0L7QtNCw0Zgg0ZjQtdC00LDQvSDRgNC10LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICfQnNC+0LbQtdGC0LUg0LjQt9Cw0LHRgNCw0YLQuCDRgdCw0LzQviDRmNC10LTQvdC+INC/0L7RmdC1INC30LAg0L/QvtGC0LLRgNC00YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICfQlNCwINC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LAg0YHRgtC1INGA0LDQtNC40LvQuCDQtNC+0Log0YHRgtC1INCx0LjQu9C4INC90LAg0LHQvtC70L7QstCw0ZrRgz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfQlNCwINC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LAg0YHRgtC1INGA0LDQtNC40LvQuCDQtNC+0Log0YHRgtC1INCx0LjQu9C4INC90LAg0L7QtNC80L7RgNGDPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINGB0LvQvtCx0L7QtNC90LjQvCDQtNCw0L3QuNC80LA/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ9CU0LAg0LvQuCDRgdGC0LUg0YHQuNCz0YPRgNC90Lgg0LTQsCDRgdGC0LUg0YDQsNC00LjQu9C4INCy0LjRiNC1INC+0LQgMTYg0YHQsNGC0Lg/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICfQn9GA0LXQs9C70LXQtCDQvNC10YHQtdGH0L3QvtCzINC+0LHRgNCw0YfRg9C90LAg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ9Cf0YDQtdC60L7QstGA0LXQvNC10L3QviAo0YHQsNGC0LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ9Cf0YDQtdC60L7QstGA0LXQvNC10L3QviAo0L7QstCw0Zgg0LzQtdGB0LXRhiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ9Cf0YDQtdC60L7QstGA0LXQvNC10L3QviAo0YPQutGD0L/QvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfQn9GA0LXQvtGB0YLQsNC70Lgg0YHQu9C+0LHQvtC00L3QuCDQtNCw0L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICfQntC00LzQvtGAICjQtNCw0L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn0JjRgdC60L7RgNC40YjRm9C10L0g0L7QtNC80L7RgCAo0L7QstCw0Zgg0LzQtdGB0LXRhiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ9CY0YHQutC+0YDQuNGI0ZvQtdC9INC+0LTQvNC+0YAgKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn0J/RgNC10L7RgdGC0LDQviDQvtC00LzQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAn0JHQvtC70L7QstCw0ZrQtSAo0LTQsNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn0JHQvtC70L7QstCw0ZrQtSAo0L7QstCw0Zgg0LzQtdGB0LXRhiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAn0JHQvtC70L7QstCw0ZrQtSAo0YPQutGD0L/QvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ9Cf0YDQtdGC0YXQvtC00L3QuCDQvNC10YHQtdGGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICfQodC70LXQtNC10ZvQuCDQvNC10YHQtdGGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICfQoNCw0LTQvdC4INC00LDQvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAn0KDQsNC00L3QuCDRgdCw0YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICfQo9C60YPQv9C90L4g0YDQsNC00L3QuNGFINGB0LDRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ9Cf0YDQtdCz0LvQtdC0INC60L7RgNC40YHQvdC40YfQutC+0LMg0L/RgNC+0ZjQtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICfQodCw0YLQuCAo0LzQtdGB0LXRh9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICfQodCw0YLQuCAo0YPQutGD0L/QvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ9Cj0LrRg9C/0LDQvSDQt9Cx0LjRgCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICfQmNC30LLQtdGI0YLQsNCy0LDRmtC1INC+INCy0YDQtdC80LXQvdGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40ZjQsCDQv9C+INC80LXRgdC10YbQuNC80LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ9CY0LTQuCDQvdCwINC00LDRgtGD0LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn0JrQvtGA0LjRgdC90LjRh9C60Lgg0LjQt9Cy0LXRiNGC0LDRmNC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICfQnNC10YHQtdGH0L3QuCDQt9Cx0LjRgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ9Ch0LLQtdCz0LAg0LTQviDRgdCw0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ9Ch0LvQvtCx0L7QtNC90Lgg0LTQsNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICfQntC00LzQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfQkdC+0LvQvtCy0LDRmtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ9Cf0YDQtdC+0YHRgtCw0L4g0L7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICfQmNC30LLQtdGI0YLQsNGY0Lgg0L4g0L/RgNC+0ZjQtdC60YLRgyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn0JjQt9Cy0LXRiNGC0LDRmCDQviDQv9GA0L7RmNC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ9CY0LTQuCDQvdCwINC/0YDQtdCz0LvQtdC0INC40LfQstC10YjRgtCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQotGA0LXQvdGD0YLQvdC+INGB0YMg0L/RgNC40LrQsNC30LDQvdC4INGB0LDQvNC+INCw0LrRgtC40LLQvdC4INC60L7RgNC40YHQvdC40YbQuCDRgyDQvtCy0L7QvCDQv9GA0L7RmNC10LrRgtGDLiDQl9CwINC/0YDQvtC80LXQvdGDINC+0LLQsNC60LLQvtCzINC/0L7QvdCw0YjQsNGa0LAsINC80L7Qu9C40LzQviDQktCw0YEg0LDQttGD0YDQuNGA0LDRmNGC0LUg0L/QvtC00LXRiNCw0LLQsNGa0LA6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ9Ci0YDQtdC90YPRgtC90L4g0YHRgyDQv9GA0LjQutCw0LfQsNC90Lgg0YHQstC4INC60L7RgNC40YHQvdC40YbQuCDQvtCx0YDQsNGH0YPQvdCwINCy0YDQtdC80LXQvdCwLiDQl9CwINC/0YDQvtC80LXQvdGDINC+0LLQsNC60LLQvtCzINC/0L7QvdCw0YjQsNGa0LAsINC80L7Qu9C40LzQviDQsNC20YPRgNC40YDQsNGY0YLQtSDQv9C+0LTQtdGI0LDQstCw0ZrQsDonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAn0JjQt9C80LXQvdCwINC/0L7QtNC10YjQsNCy0LDRmtCwINC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsCDQv9GA0L7RmNC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn0JTQvtC00LDRmCDQv9GA0L7RmNC10LrQsNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn0JjQtNC4INC90LAg0L/RgNC10LPQu9C10LQg0L/QvtC00LXRiNCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICfQlNC+0LTQsNGYINCf0YDQvtGY0LXQutCw0YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAn0JjQt9C80LXQvdC4INC/0L7QtNC10YjQsNCy0LDRmtCwINCf0YDQvtGY0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ9CS0LXRmyDQv9C+0YHRgtC+0ZjQuCDQv9GA0L7RmNC10LrQsNGCINGB0LAg0YLQuNC8INC40LzQtdC90L7QvC4g0JzQvtC70LjQvNC+INCy0LDRgSwg0LjQt9Cw0LHQtdGA0LjRgtC1INC90LXQutC+INC00YDRg9Cz0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn0JjQt9C80LXQvdC4INC/0L7QtNC10YjQsNCy0LDRmtCwINC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ9CU0L7QtNCw0Zgg0LfQsNC00LDRgtCw0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICfQpNC40LvRgtC10YAg0LfQsCDQv9GA0L7RmNC10LrRgtC1LCDQt9Cw0LTQsNGC0LrQtSDQuNC70Lgg0LrQvtGA0LjRgdC90LjQutC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAn0JLRgNC10LzQtdC90YHQutC4INC/0LXRgNC40L7QtNC4INGB0LUg0L3QtSDQvNC+0LPRgyDQvtCx0YDQuNGB0LDRgtC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfQm9C40YHRgtCwINC/0YDQvtGY0LXQutCw0YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICfQm9C40YHRgtCwINC30LDQtNCw0YLQsNC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LTQsNGYINC30LDQtNCw0YLQsNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ9Cj0YDQtdC00Lgg0L/QvtC00LXRiNCw0LLQsNGa0LAg0LfQsNC00LDRgtC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ9CS0LXRmyDQv9C+0YHRgtC+0ZjQuCDQt9Cw0LTQsNGC0LDQuiDRgdCwINGC0LjQvCDQuNC80LXQvdC+0LwuINCc0L7Qu9C40LzQviDQstCw0YEsINC40LfQsNCx0LXRgNC40YLQtSDQvdC10LrQviDQtNGA0YPQs9C+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICfQm9C40YHRgtCwINC60L7RgNC40YHQvdC40LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAn0JrQvtGA0LjRgdC90LjRh9C60LAg0L/QvtC00LXRiNCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICfQmtC+0YDQuNGB0L3QuNC60YMg0ZjQtSDQvtC80L7Qs9GD0ZvQtdC90L4g0LTQsCDQstC40LTQuCDQv9GA0LXQutC+0LLRgNC10LzQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ9Cf0YDQuNC60LDQttC4INC/0YDQtdC60L7QstGA0LXQvNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAn0JrQvtGA0LjRgdC90LjQutGDINGY0LUg0L7QvNC+0LPRg9Gb0LXQvdC+INC00LAg0LrRgNC10LjRgNCwINC/0YDQvtGY0LXQutGC0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9CU0L7Qt9Cy0L7Qu9C4INC60YDQtdC40YDQsNGa0LUg0L/RgNC+0ZjQtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAn0KDQsNGB0L/QvtC90Lgg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J/QvtGH0LXRgtCw0Log0L/QtdGA0LjQvtC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ9Ca0YDQsNGYINC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfQlNCw0L3QuCDQvtC00LzQvtGA0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfQodCw0YLQuCDQv9C+INC90LXQtNC10ZnQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn0JTQvtC30LLQvtGZ0LXQvdC+INC/0YDQtdC60L7QstGA0LXQvNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0JTQsNGC0YPQvCDQv9C+0YfQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICfQnNC+0LvQuNC80L4g0LTQsCDRg9C90LXRgdC10YLQtSDQstCw0LbQtdGb0Lgg0LTQsNGC0YPQvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfQlNCw0YLRg9C8INC30LDQstGA0YjQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ9Ca0YDQsNGYINC/0LXRgNC40L7QtNCwINC80L7RgNCwINCx0LjRgtC4INC/0L7RgdC70LUg0L/QvtGH0LXRgtC60LAg0L/QtdGA0LjQvtC00LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfQlNCw0L3QuCDQvtC00YHRg9GB0YLQstCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ9Ch0LXQtNC80LjRh9C90Lgg0YHQsNGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ9Cd0LjRgdGDINC/0YDQvtC90LDRktC10L3QuCDQstGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC00LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ9CU0L7QtNCw0Zgg0LLRgNC10LzQtdC90YHQutC4INC/0LXRgNC40L7QtCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICfQn9GA0LjQutCw0Lcg0LLRgNC10LzQtdC90YHQutC+0LMg0LfQsNC/0LjRgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAn0J/RgNC40LrQsNC3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9Cf0YDQtdGC0YXQvtC00L3QuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQodC70LXQtNC10ZvQuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn0J3QtdC80LAg0L/QvtC00LDRgtCw0LrQsCDQt9CwINC+0LLQsNGYINC00LDQvS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAn0KDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1INGB0LUg0L3QtSDQvNC+0LPRgyDRg9C90LXRgtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn0J/QvtGB0LvQtdC00ZrQuCDQv9GA0L7RmNC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ9Cd0LUg0LzQvtCz0YMg0LTQsCDRgdCw0YfRg9Cy0LDQvCDQv9C+0LTQtdGI0LDQstCw0ZrQsCwg0ZjQtdGAINC00LDQvSDQuNC80LAg0YHQsNC80L4gMjQg0YHQsNGC0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfQoNCw0LTQvdC1INGY0LXQtNC40L3QuNGG0LUg0YHQtSDQvdC1INC80L7Qs9GDINC+0LHRgNC40YHQsNGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAn0J7QstCw0Zgg0LTQsNGC0YPQvCDRmNC1INC40LfQstCw0L0g0LPRgNCw0L3QuNGG0LAg0LDQu9C4INCz0LAg0L3QuNGB0YLQtSDRmNC+0Ygg0YPQstC10Log0YPQvdC10LvQuCwg0L/QsCDQuNC80LDRgtC1INGY0L7RiCDRmNC10LTQvdGDKCEpINGI0LDQvdGB0YMg0LfQsCDRg9C90L7RgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ9Cd0LXQv9C+0YLQv9GD0L3QuCDRgNCw0LTQvdC4INC00LDQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ9Cc0L7Qu9C40LzQviDQstCw0YEg0YPQvdC10YHQuNGC0LUg0LLQsNGI0LUg0YDQsNC00L3QviDQstGA0LXQvNC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICfQo9GB0L/QtdGI0L3QviDQtNC+0LTQsNCy0LDRmtC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn0JPRgNC10YjQutCwINC/0YDQuCDRg9C90L7RgdGDINCy0LjRiNC1INC00LDRgtGD0LzQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn0KPRgdC/0LXRiNC90L4g0YPQsdCw0YfQtdC90Lgg0YPQvdC+0YHQuCDQt9CwINCy0LjRiNC1INC00LDRgtGD0LzQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ9Cj0L3QtdGC0Lgg0LTQsNGC0YPQvCDRmNC1INC90LXQstCw0LbQtdGb0LghINCU0LDRgtGD0Lwg0ZjQtSDQv9GA0L7QvNC10ZrQtdC9INC90LAg0LTQsNC90LDRiNGa0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ9Cd0LjRmNC1INC60L7QvdGE0LjQs9GD0YDQuNGB0LDQvSDQstGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC0INC40LvQuCDRmNC1INC90LDQstC10LTQtdC90Lgg0LTQsNGC0YPQvCDQstCw0L0g0LTQtdGE0LjQvdC40YHQsNC90LjRhSDQstGA0LXQvNC10L3RgdC60LjRhSDQv9C10YDQuNC+0LTQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ9Cc0L7Qu9C40LzQviDQtNCwINC60L7QvdGC0LDQutGC0LjRgNCw0YLQtSDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNCwINC+0LHRgNCw0YfRg9C90LAg0LLRgNC10LzQtdC90LAg0LfQsCDQsNC20YPRgNC40YDQsNGa0LUg0LLRgNC10LzQtdC90YHQutC40YUg0L/QtdGA0LjQvtC00LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICfQn9C+0YHQu9C10LTRmtC4INC40LfQsNCx0YDQsNC90Lgg0L/RgNC+0ZjQtdC60YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICfQodCy0Lgg0L/RgNC+0ZjQtdC60YLQuCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICfQmNC30LLQtdGI0YLQsNCy0LDRmtC1INC+INC/0YDQvtGY0LXQutGC0YM6INC90LXQvtC/0YXQvtC00LDQvSDRmNC1IFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ9CY0LfQstC10YjRgtCw0LLQsNGa0LUg0L4g0L/RgNC+0ZjQtdC60YLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICfQmNC30LLQtdGI0YLQsNCy0LDRmtC1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutCwINC/0L7QtNC10YjQsNCy0LDRmtCwINGB0LUg0L3QtSDQvNC+0LPRgyDQsNC20YPRgNC40YDQsNGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAn0JTQvtC00LDRgiDQv9GA0L7RmNC10LrQsNGCISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAn0JDQttGD0YDQuNGA0LDQvSDQv9GA0L7RmNC10LrQsNGCISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ9CU0L7QtNCw0YIg0LfQsNC00LDRgtCw0LohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfQkNC20YPRgNC40YDQsNC9INC30LDQtNCw0YLQsNC6ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdVc2VySUQg0ZjQtSDQvdC10LLQsNC20LXRm9C4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICfQmtC+0YDQuNGB0L3QuNGH0LrQuCDQv9C+0LTQsNGG0Lgg0YHQtSDQvdC1INC80L7Qs9GDINGD0L3QtdGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAn0JLRgNC10LzQtdC90YHQutC4INC/0LXRgNC40L7QtCDRgdC1INC90LUg0LzQvtC20LUg0LTQvtC00LDRgtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn0J/QvtC00LXRiNCw0LLQsNGa0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ9CQ0LbRg9GA0LjRgNCw0L0g0LrQvtGA0LjRgdC90LjQuiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfQlNC+0LTQsNGCINC60L7RgNC40YHQvdC40LohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAn0JTQvtC00LDRmCDQutC+0YDQuNGB0L3QuNC60LAg0YMg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtC1INCy0YDQtdC80LXQvdCwLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAn0J3QvtCy0Lgg0LrQvtGA0LjRgdC90LjQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAn0KHRgtCw0YLRg9GBINC/0LXRgNC40L7QtNCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICfQn9GA0LjQutCw0Lc6INC90LXQvtC/0YXQvtC00LDQvSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICfQndC10L/QvtGC0L/Rg9C90Lgg0YDQsNC00L3QuCDQtNCw0L3QuCc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICfQnNC+0LvQuNC80L4g0LLQsNGBINC40LfQsNCx0LXRgNC40YLQtSDQsdCw0YAg0ZjQtdC00LDQvSDQtNCw0L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICfQnNCw0YHQvtCy0L3QuCDRg9C90L7RgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ9Cc0L7Qu9C40LzQviDQstCw0YEg0LjQt9Cw0LHQtdGA0LjRgtC1INGA0LDQt9C70L7QsyDQstCw0YjQtdCzINC+0LTRgdGD0YHRgtCy0LAhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn0J7QsdGA0LjRiNC4INGB0YLQsNCy0LrRgyDQvtCx0YDQsNGH0YPQvdCwINCy0YDQtdC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAn0J/QvtGC0LLRgNC00Lgg0YPQvdC+0YEnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfQnNC+0LTRg9C7INC30LAg0L7QsdCw0LLQtdGI0YLQsNCy0LDRmtC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsCDQutC+0ZjQuCDQv9GA0LjQutCw0LfRg9GY0LUg0LHRgNC+0Zgg0L3QtdC60L7QvNC/0LvQtdGC0L3QuNGFINGA0LDQtNC90LjRhSDQtNCw0L3QsCDQt9CwINC60L7RgNC40YHQvdC40LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQuNC80LUg0L3QvtCy0LjRhSDQsNC60YbQuNGY0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC40LzQtSDQvdC+0LLQuNGFINC/0YDQvtGY0LXQutCw0YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQt9CwINC00LDRgtGD0Lwg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQtNCw0YLRg9C8INC/0L7Rh9C10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0L7Qv9C40YEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQt9CwINC00LDQvdC1INC+0LTRgdGD0YHRgtCy0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQv9GA0LXQutC+0LLRgNC10LzQtdC90Lgg0YDQsNC0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDRgdGC0LDQvdC00LDRgNC00L3RgyDRgNCw0LTQvdGDINC90LXQtNC10ZnRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGB0YLQsNGC0YPRgSDQt9CwINC90L7QstC1INCw0LrRhtC40ZjQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRgdGC0LDRgtGD0YEg0LfQsCDQvdC+0LLQtSDQv9GA0L7RmNC10LrRgtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGB0YLQsNGC0YPRgSDQvdC+0LLQuNGFINC60L7RgNC40YHQvdC40LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9GA0L7RmNC10LrRgtC1INC30LAg0LrQvtGY0LUg0ZjQtSDQvdCw0L/QvtC80LXQvdCwINC+0LHQsNCy0LXQt9C90LAuINCQ0LrQviDRgdC1IFJlZ0V4cCDQv9C+0LrQu9C+0L/QuCDQvdCwINC/0YDQvtGY0LXQutGC0YMsINC80L7RgNCw0YLQtSDRgtC10LrQvtGS0LUg0YPQvdC10YLQuCDQvdCw0L/QvtC80LXQvdGDLiBSZWdFeHAg0LrQvtGA0LjRgdGC0Lggc214INC/0LDRgNCw0LzQtdGC0LDRgC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INGB0YLQsNGC0LjRgdGC0LjRh9C60Lgg0LzQvtC00YPQuyDQvNC+0LbQtSDQs9C10L3QtdGA0LjRgdCw0YLQuCDQuNC90YTQvtGA0LzQsNGG0LjRmNC1INC+INC+0LHRgNCw0YfRg9C90YMg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAn0JjQt9C80LXQvdC4INCy0YDQtdC80LXQvdGB0LrQuCDQt9Cw0L/QuNGBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICfQl9CwINC60L7Qu9C40LrQviDQtNCw0L3QsCDRg9C90LDQt9Cw0LQg0LzQvtC20LXRgtC1INGD0L3QtdGC0Lgg0YDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0L/RgNC40LrQsNC30LDQvdC4INGB0YMg0YHQsNC80L4g0LrQvtGA0LjRgdC90LjRhtC4INC60L7RmNC4INGB0YMg0LTQvtC00LDQu9C4INGA0LDQtNC90L4g0LLRgNC10LzQtSDRgyDQuNC30LDQsdGA0LDQvdC4INC/0YDQvtGY0LXQutCw0YIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0L/QsNC00LDRmNGD0ZvQuCDQtdC70LXQvNC10L3RgtC4INC90LAg0LXQutGA0LDQvdGDINC30LAg0LjQt9C80LXQvdGDINGB0LUg0LzQtdGa0LDRmNGDINGDINC80L7QtNC10YDQvdC40LfQvtCy0LDQvdCwINGB0LDQvNC+0LTQvtCy0YDRiNCw0LLQsNGY0YPRm9CwINC/0L7RmdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0YTQuNC70YLQtdGAINC/0YDQtdGC0YXQvtC00L3QuNGFINC/0YDQvtGY0LXQutCw0YLQsCDRgdC1INC80L7QttC1INC60L7RgNC40YHRgtC40YLQuCDRg9C80LXRgdGC0L4g0LTQstC1INC70LjRgdGC0LUg0L/RgNC+0ZjQtdC60LDRgtCwICjQv9C+0YHQu9C10LTRmtC4INC4INGB0LLQuCkuINCc0L7QttC1INGB0LUg0LrQvtGA0LjRgdGC0LjRgtC4INGB0LDQvNC+INCw0LrQviDRmNC1IFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiDQsNC60YLQuNCy0LjRgNCw0L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ9CQ0LrQviDRmNC1INCw0LrRgtC40LLQuNGA0LDQvdC+LCDRhNC40LvRgtC10YAg0L/RgNC10YLRhdC+0LTQvdC40YUg0L/RgNC+0ZjQtdC60LDRgtCwINGY0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0LDQutGC0LjQstCw0L0g0LDQutC+INC40LzQsCDQv9GA0L7RmNC10LrQsNGC0LAg0L7QtCDQv9GA0LUuINCc0L7QttC1INGB0LUg0LrQvtGA0LjRgdGC0LjRgtC4INGB0LDQvNC+INCw0LrQviDRmNC1IEVuYWJsZUF1dG9Db21wbGV0aW9uINC4IFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIg0LDQutGC0LjQstC40YDQsNC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0LrQvtGA0LjRgdC90LjQutGDINGY0LUg0LTQvtC30LLQvtGZ0LXQvdC+INC00LAg0YPQvdC10YHQtSAi0L3QsCDQvtC00LzQvtGA0YMiLCAi0L3QsCDQsdC+0LvQvtCy0LDRmtGDIiDQuCAi0L3QsCDRgdC70L7QsdC+0LTQvdC40Lwg0LTQsNC90LjQvNCwIiDQvdCwINCy0LjRiNC1INC00LDRgtGD0LzQsCDQvtC00ZjQtdC00L3QvtC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvQvdC4INCx0YDQvtGYINGA0LDQtNC90LjRhSDQtNCw0L3QsCDQv9C+0YHQu9C1INC60L7QsyDRgtGA0LXQsdCwINC00L7QtNCw0YLQuCDRgNCw0LTQvdC1INGY0LXQtNC40L3QuNGG0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70L3QuCDQsdGA0L7RmCDRgNCw0LTQvdC40YUg0LTQsNC90LAg0LHQtdC3INGD0L3QvtGB0LAg0YDQsNC00L3QuNGFINGY0LXQtNC40L3QuNGG0LAg0L/QvtGB0LvQtSDQutC+0LMg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90L4g0YPQv9C+0LfQvtGA0LXRmtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfQn9GA0LXQs9C70LXQtC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICfQmNC30LLQtdGI0YLQsNCy0LDRmtC1INC+INCy0YDQtdC80LXQvdGDINC/0YDQvtGY0LXQutGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICfQoNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQt9C4INC30LAg0L7Qs9GA0LDQvdC40YfQsNCy0LDRmtC1INC70LjRgdGC0LUg0LDQutGG0LjRmNCwINC/0YDQtdC80LAg0LjQt9Cw0LHRgNCw0L3QuNC8INC/0YDQvtGY0LXQutGC0LjQvNCwLiDQmtGZ0YPRhyDRgdCw0LTRgNC20Lgg0YDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0Lcg0LfQsCDQv9GA0L7RmNC10LrRgijQtSksINGDINGB0LDQtNGA0LbQsNGY0YMg0ZjQtSDRgNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQtyDQt9CwINCw0LrRhtC40ZjRgyjQtSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ9Cg0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC30Lgg0LfQsCDQvtCz0YDQsNC90LjRh9Cw0LLQsNGa0LUg0LvQuNGB0YLQtSDQsNC60YbQuNGY0LAg0L/RgNC10LzQsCDQuNC30LDQsdGA0LDQvdC40Lwg0LrQvtGA0LjRgdC90LjRh9C60LjQvCDQs9GA0YPQv9Cw0LzQsC4g0JrRmdGD0Ycg0YHQsNC00YDQttC4INGA0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC3INC30LAg0L/RgNC+0ZjQtdC60YIo0LUpLCDRgyDRgdCw0LTRgNC20LDRmNGDINGY0LUg0YDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0Lcg0LfQsCDQs9GA0YPQv9C1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQtNCwINC70Lgg0YDQsNC00L3QuCDRgdCw0YLQuCDQvNC+0LPRgyDQtNCwINGB0LUg0YPQvdC10YHRgyDQsdC10Lcg0LLRgNC10LzQtdC90LAg0L/QvtGH0LXRgtC60LAg0Lgg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICfQntCy0LDRmCDQvNC+0LTRg9C7INC90LDQvNC10ZvQtSDRg9C90L7RgSDRgyDQvtCx0YDQsNGH0YPQvSDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfQntCy0LDRmCDQvNC+0LTRg9C7INC30LAg0L7QsdCw0LLQtdGI0YLQsNCy0LDRmtC1INC00LDRmNC1INGD0L/QvtC30L7RgNC10ZrQtSDQsNC60L4g0LjQvNCwINC/0YDQtdCy0LjRiNC1INC90LXQutC+0LzQv9C70LXRgtC90LjRhSDRgNCw0LTQvdC40YUg0LTQsNC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ9Ce0LHRgNCw0YfRg9C90LDQstCw0ZrQtSDQstGA0LXQvNC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICfQo9GA0LXRktC40LLQsNGa0LUg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAn0J/RgNC10LPQu9C10LQg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ9CY0LfQstC10YjRgtCw0ZjQuCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQn9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ9Cf0YDQtdCz0LvQtdC0INC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ9Ce0LHRgNCw0YfRg9C90LDQstCw0ZrQtSDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAn0JfQsCDRg9C/0L7RgtGA0LXQsdGDINCw0LrQviDQvdC10LrQtSDQsNC60YbQuNGY0LUg0YHQvNCw0ZrRg9GY0YMg0YDQsNC00L3QtSDRgdCw0YLQtSAo0L3QsCDQv9GA0LjQvNC10YAsINCw0LrQviDRgdC1INC/0LvQsNGb0LAg0YHQsNC80L4g0L/QvtC70LAg0LLRgNC10LzQtdC90LAg0L/Rg9GC0L7QstCw0ZrQsCDQmtGZ0YPRhyA9PiDQv9GD0YLQvtCy0LDRmtC1OyDQodCw0LTRgNC20LDRmCA9PiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3JfTGF0bl9UaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIFRpbWUgQWNjb3VudGluZyBvZiB0aGlzIGRheT8nfSA9CiAgICAgICAgJ0RhIGxpIHphaXN0YSDFvmVsaXRlIGRhIG9icmnFoWV0ZSBvYnJhxI11biB2cmVtZW5hIHphIG92YWogZGFuPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdVcmVkaSB2cmVtZW5za2kgemFwaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJZGkgdSBwb2RlxaFhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0dW1za2EgbmF2aWdhY2lqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0RhbmkgYmV6IHVub3NhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVrdHVqIHN2ZSBkYW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdNYXNvdm5pIHVub3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdNb2xpbW8gVmFzIGl6YWJlcml0ZSByYXpsb2cgdmHFoWVnIG9kc3VzdHZhIHphIGl6YWJyYW5lIGRhbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdOYSBvZG1vcnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ05hIGJvbG92YW5qdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ05hIHNsb2JvZG5pbSBkYW5pbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdPYmF2ZXpuYSBwb2xqYSBzdSBvem5hxI1lbmEgc2EgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ01vcmF0ZSB1bmV0aSB2cmVtZSBwb8SNZXRrYSBpIHphdnLFoWV0a2EgaWxpIHZyZW1lbnNraSBwZXJpb2QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWthdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnWmFkYXRhayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdOYXBvbWVuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdNb2xpbW8gZGEgZG9kYXRlIG5hcG9tZW51IGR1xb51IG9kIDgga2FyYWt0ZXJhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdm5hIHZyZW1lbmEgbmlzdSBkb3p2b2xqZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG9uYXZsamFuamUgc2F0aSBuaWplIGRvenZvbGplbm8uIFZyZW1lIHBvxI1ldGthIHNlIHBva2xhcGEgc2EgZHJ1Z2ltIGludGVydmFsb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdOZWlzcHJhdmFuIGZvcm1hdCEgTW9saW1vIGRhIHVuZXNldGUgdnJlbWUgdSBmb3JtYXR1IEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBqZSBkb3p2b2xqZW5vIHNhbW8ga2FvIHZyZW1lIHphdnLFoWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmVpc3ByYXZubyB2cmVtZSEgRGFuIGltYSBzYW1vIDI0IHNhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdWcmVtZSB6YXZyxaFldGthIG1vcmEgYml0aSBuYWtvbiBwb8SNZXRrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdQb25hdmxqYW5qZSBzYXRpIG5pamUgZG96dm9samVuby4gVnJlbWUgemF2csWhZXRrYSBzZSBwb2tsYXBhIHNhIGRydWdpbSBpbnRlcnZhbG9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmVpc3ByYXZhbiBwZXJpb2QhIERhbiBpbWEgc2FtbyAyNCBzYXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ0lzcHJhdmFuIHBlcmlvZCBtb3JhIGJpdGkgdmXEh2kgb2QgbnVsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05laXNwcmF2YW4gcGVyaW9kISBOZWdhdGl2bmkgcGVyaW9kaSBuaXN1IGRvenZvbGplbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnRG9kYWogamVkYW4gcmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnTW/FvmV0ZSBpemFicmF0aSBzYW1vIGplZG5vIHBvbGplIHphIHBvdHZyZHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdEYSBsaSBzdGUgc2lndXJuaSBkYSBzdGUgcmFkaWxpIGRvayBzdGUgYmlsaSBuYSBib2xvdmFuanU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnRGEgbGkgc3RlIHNpZ3VybmkgZGEgc3RlIHJhZGlsaSBkb2sgc3RlIGJpbGkgbmEgb2Rtb3J1Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnRGEgbGkgc3RlIHNpZ3VybmkgZGEgc3RlIHJhZGlsaSBkb2sgc3RlIGJpbGkgbmEgc2xvYm9kbmltIGRhbmltYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnRGEgbGkgc3RlIHNpZ3VybmkgZGEgc3RlIHJhZGlsaSB2acWhZSBvZCAxNiBzYXRpPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnUHJlZ2xlZCBtZXNlxI1ub2cgb2JyYcSNdW5hIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ1ByZWtvdnJlbWVubyAoc2F0aSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnUHJla292cmVtZW5vIChvdmFqIG1lc2VjKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnUHJla292cmVtZW5vICh1a3Vwbm8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1ByZW9zdGFsaSBzbG9ib2RuaSBkYW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ09kbW9yIChkYW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdJc2tvcmnFocSHZW4gb2Rtb3IgKG92YWogbWVzZWMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdJc2tvcmnFocSHZW4gb2Rtb3IgKHVrdXBubyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnUHJlb3N0YW8gb2Rtb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdCb2xvdmFuamUgKGRhbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQm9sb3ZhbmplIChvdmFqIG1lc2VjKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdCb2xvdmFuamUgKHVrdXBubyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdQcmV0aG9kbmkgbWVzZWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ1NsZWRlxIdpIG1lc2VjJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdSYWRuaSBkYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ1JhZG5pIHNhdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVWt1cG5vIHJhZG5paCBzYXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1ByZWdsZWQga29yaXNuacSNa29nIHByb2pla3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ1NhdGkgKG1lc2XEjW5vKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnU2F0aSAodWt1cG5vKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1VrdXBhbiB6YmlyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ0l6dmXFoXRhdmFuamUgbyB2cmVtZW51JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2FjaWphIHBvIG1lc2VjaW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdJZGkgbmEgZGF0dW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnS29yaXNuacSNa2kgaXp2ZcWhdGFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnTWVzZcSNbmkgemJpcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1N2ZWdhIGRvIHNhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdTbG9ib2RuaSBkYW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnT2Rtb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0JvbG92YW5qZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdQcmVvc3RhbyBvZG1vcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdJenZlxaF0YWppIG8gcHJvamVrdHUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ0l6dmXFoXRhaiBvIHByb2pla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0lkaSBuYSBwcmVnbGVkIGl6dmXFoXRhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdUcmVudXRubyBzdSBwcmlrYXphbmkgc2FtbyBha3Rpdm5pIGtvcmlzbmljaSB1IG92b20gcHJvamVrdHUuIFphIHByb21lbnUgb3Zha3ZvZyBwb25hxaFhbmphLCBtb2xpbW8gVmFzIGHFvnVyaXJhanRlIHBvZGXFoWF2YW5qYTonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVHJlbnV0bm8gc3UgcHJpa2F6YW5pIHN2aSBrb3Jpc25pY2kgb2JyYcSNdW5hIHZyZW1lbmEuIFphIHByb21lbnUgb3Zha3ZvZyBwb25hxaFhbmphLCBtb2xpbW8gYcW+dXJpcmFqdGUgcG9kZcWhYXZhbmphOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdJem1lbmEgcG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEgcHJvamVrdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdEb2RhaiBwcm9qZWthdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lkaSBuYSBwcmVnbGVkIHBvZGXFoWF2YW5qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0RvZGFqIFByb2pla2F0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0l6bWVuaSBwb2RlxaFhdmFuamEgUHJvamVrdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1ZlxIcgcG9zdG9qaSBwcm9qZWthdCBzYSB0aW0gaW1lbm9tLiBNb2xpbW8gdmFzLCBpemFiZXJpdGUgbmVrbyBkcnVnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdJem1lbmkgcG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdEb2RhaiB6YWRhdGFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnRmlsdGVyIHphIHByb2pla3RlLCB6YWRhdGtlIGlsaSBrb3Jpc25pa2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdWcmVtZW5za2kgcGVyaW9kaSBzZSBuZSBtb2d1IG9icmlzYXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBwcm9qZWthdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgemFkYXRha2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdEb2RhaiB6YWRhdGFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ1VyZWRpIHBvZGXFoWF2YW5qYSB6YWRhdGthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdWZcSHIHBvc3RvamkgemFkYXRhayBzYSB0aW0gaW1lbm9tLiBNb2xpbW8gdmFzLCBpemFiZXJpdGUgbmVrbyBkcnVnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEga29yaXNuaWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICdLb3Jpc25pxI1rYSBwb2RlxaFhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdLb3Jpc25pa3UgamUgb21vZ3XEh2VubyBkYSB2aWRpIHByZWtvdnJlbWVubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnUHJpa2HFvmkgcHJla292cmVtZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdLb3Jpc25pa3UgamUgb21vZ3XEh2VubyBkYSBrcmVpcmEgcHJvamVrdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0RvenZvbGkga3JlaXJhbmplIHByb2pla3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICdSYXNwb25pIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUG/EjWV0YWsgcGVyaW9kYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnS3JhaiBwZXJpb2RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEYW5pIG9kbW9yYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1NhdGkgcG8gbmVkZWxqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnRG96dm9samVubyBwcmVrb3ZyZW1lbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdHVtIHBvxI1ldGthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ01vbGltbyBkYSB1bmVzZXRlIHZhxb5lxIdpIGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdHVtIHphdnLFoWV0a2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdLcmFqIHBlcmlvZGEgbW9yYSBiaXRpIHBvc2xlIHBvxI1ldGthIHBlcmlvZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEYW5pIG9kc3VzdHZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ1NlZG1pxI1uaSBzYXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnUHJla292cmVtZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdOaXN1IHByb25hxJFlbmkgdnJlbWVuc2tpIHBlcmlvZGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0RvZGFqIHZyZW1lbnNraSBwZXJpb2QnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnUHJpa2F6IHZyZW1lbnNrb2cgemFwaXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnUHJpa2F6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1ByZXRob2RuaSBkYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdTbGVkZcSHaSBkYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTmVtYSBwb2RhdGFrYSB6YSBvdmFqIGRhbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnUmFkbmUgamVkaW5pY2Ugc2UgbmUgbW9ndSB1bmV0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ1Bvc2xlZG5qaSBwcm9qZWt0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICdOZSBtb2d1IGRhIHNhxI11dmFtIHBvZGXFoWF2YW5qYSwgamVyIGRhbiBpbWEgc2FtbyAyNCBzYXRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnUmFkbmUgamVkaW5pY2Ugc2UgbmUgbW9ndSBvYnJpc2F0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdPdmFqIGRhdHVtIGplIGl6dmFuIGdyYW5pY2EgYWxpIGdhIG5pc3RlIGpvxaEgdXZlayB1bmVsaSwgcGEgaW1hdGUgam/FoSBqZWRudSghKSDFoWFuc3UgemEgdW5vcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ05lcG90cHVuaSByYWRuaSBkYW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ01vbGltbyB2YXMgdW5lc2l0ZSB2YcWhZSByYWRubyB2cmVtZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnVXNwZcWhbm8gZG9kYXZhbmplISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnR3JlxaFrYSBwcmkgdW5vc3UgdmnFoWUgZGF0dW1hISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdVc3BlxaFubyB1YmHEjWVuaSB1bm9zaSB6YSB2acWhZSBkYXR1bWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdVbmV0aSBkYXR1bSBqZSBuZXZhxb5lxIdpISBEYXR1bSBqZSBwcm9tZW5qZW4gbmEgZGFuYcWhbmppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICdOaWplIGtvbmZpZ3VyaXNhbiB2cmVtZW5za2kgcGVyaW9kIGlsaSBqZSBuYXZlZGVuaSBkYXR1bSB2YW4gZGVmaW5pc2FuaWggdnJlbWVuc2tpaCBwZXJpb2RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnTW9saW1vIGRhIGtvbnRha3RpcmF0ZSBhZG1pbmlzdHJhdG9yYSBvYnJhxI11bmEgdnJlbWVuYSB6YSBhxb51cmlyYW5qZSB2cmVtZW5za2loIHBlcmlvZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICdQb3NsZWRuamkgaXphYnJhbmkgcHJvamVrdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnU3ZpIHByb2pla3RpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ0l6dmXFoXRhdmFuamUgbyBwcm9qZWt0dTogbmVvcGhvZGFuIGplIFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ0l6dmXFoXRhdmFuamUgbyBwcm9qZWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdJenZlxaF0YXZhbmplJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ0tvcmlzbmnEjWthIHBvZGXFoWF2YW5qYSBzZSBuZSBtb2d1IGHFvnVyaXJhdGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnRG9kYXQgcHJvamVrYXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICdBxb51cmlyYW4gcHJvamVrYXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnRG9kYXQgemFkYXRhayEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0HFvnVyaXJhbiB6YWRhdGFrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdVc2VySUQgamUgbmV2YcW+ZcSHaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnS29yaXNuacSNa2kgcG9kYWNpIHNlIG5lIG1vZ3UgdW5ldGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnVnJlbWVuc2tpIHBlcmlvZCBzZSBuZSBtb8W+ZSBkb2RhdGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdQb2RlxaFhdmFuamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ0HFvnVyaXJhbiBrb3Jpc25payEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdEb2RhdCBrb3Jpc25payEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdEb2RhaiBrb3Jpc25pa2EgdSBvYnJhxI11bmF2YW5qZSB2cmVtZW5hLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTm92aSBrb3Jpc25payc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdHVzIHBlcmlvZGEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1ByaWthejogbmVvcGhvZGFuICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdNb2xpbW8gdmFzIGl6YWJlcml0ZSBiYXIgamVkYW4gZGFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnTWFzb3ZuaSB1bm9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnTW9saW1vIHZhcyBpemFiZXJpdGUgcmF6bG9nIHZhxaFlZyBvZHN1c3R2YSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdPYnJpxaFpIHN0YXZrdSBvYnJhxI11bmEgdnJlbWVuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ1BvdHZyZGkgdW5vcyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHphIG9iYXZlxaF0YXZhbmplIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEga29qaSBwcmlrYXp1amUgYnJvaiBuZWtvbXBsZXRuaWggcmFkbmloIGRhbmEgemEga29yaXNuaWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1BvZHJhenVtZXZhbm8gaW1lIG5vdmloIGFrY2lqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnUG9kcmF6dW1ldmFubyBpbWUgbm92aWggcHJvamVrYXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ1BvZHJhenVtZXZhbm8gcG9kZcWhYXZhbmplIHphIGRhdHVtIHphdnLFoWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdQb2RyYXp1bWV2YW5vIHBvZGXFoWF2YW5qZSB6YSBkYXR1bSBwb8SNZXRrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdQb2RyYXp1bWV2YW5vIHBvZGXFoWF2YW5qZSB6YSBvcGlzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgZGFuZSBvZHN1c3R2YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdQb2RyYXp1bWV2YW5vIHBvZGXFoWF2YW5qZSB6YSBwcmVrb3ZyZW1lbmkgcmFkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgc3RhbmRhcmRudSByYWRudSBuZWRlbGp1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnUG9kcmF6dW1ldmFuaSBzdGF0dXMgemEgbm92ZSBha2NpamUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnUG9kcmF6dW1ldmFuaSBzdGF0dXMgemEgbm92ZSBwcm9qZWt0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdQb2RyYXp1bWV2YW5pIHN0YXR1cyBub3ZpaCBrb3Jpc25pa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBwcm9qZWt0ZSB6YSBrb2plIGplIG5hcG9tZW5hIG9iYXZlem5hLiBBa28gc2UgUmVnRXhwIHBva2xvcGkgbmEgcHJvamVrdHUsIG1vcmF0ZSB0ZWtvxJFlIHVuZXRpIG5hcG9tZW51LiBSZWdFeHAga29yaXN0aSBzbXggcGFyYW1ldGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnT2RyZcSRdWplIGRhIGxpIHN0YXRpc3RpxI1raSBtb2R1bCBtb8W+ZSBnZW5lcmlzYXRpIGluZm9ybWFjaWplIG8gb2JyYcSNdW51IHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0l6bWVuaSBwb2RlxaFhdmFuamEgb2JyYcSNdW5hdmFuamEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdJem1lbmkgdnJlbWVuc2tpIHphcGlzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdaYSBrb2xpa28gZGFuYSB1bmF6YWQgbW/FvmV0ZSB1bmV0aSByYWRuZSBqZWRpbmljZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnQWtvIGplIGFrdGl2aXJhbm8sIHByaWthemFuaSBzdSBzYW1vIGtvcmlzbmljaSBrb2ppIHN1IGRvZGFsaSByYWRubyB2cmVtZSB1IGl6YWJyYW5pIHByb2pla2F0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnQWtvIGplIGFrdGl2aXJhbm8sIHBhZGFqdcSHaSBlbGVtZW50aSBuYSBla3JhbnUgemEgaXptZW51IHNlIG1lbmphanUgdSBtb2Rlcm5pem92YW5hIHNhbW9kb3ZyxaFhdmFqdcSHYSBwb2xqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnQWtvIGplIGFrdGl2aXJhbm8sIGZpbHRlciBwcmV0aG9kbmloIHByb2pla2F0YSBzZSBtb8W+ZSBrb3Jpc3RpdGkgdW1lc3RvIGR2ZSBsaXN0ZSBwcm9qZWthdGEgKHBvc2xlZG5qaSBpIHN2aSkuIE1vxb5lIHNlIGtvcmlzdGl0aSBzYW1vIGFrbyBqZSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gYWt0aXZpcmFuby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBmaWx0ZXIgcHJldGhvZG5paCBwcm9qZWthdGEgamUgcG9kcmF6dW1ldmFubyBha3RpdmFuIGFrbyBpbWEgcHJvamVrYXRhIG9kIHByZS4gTW/FvmUgc2Uga29yaXN0aXRpIHNhbW8gYWtvIGplIEVuYWJsZUF1dG9Db21wbGV0aW9uIGkgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBha3RpdmlyYW5vLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnQWtvIGplIGFrdGl2aXJhbm8sIGtvcmlzbmlrdSBqZSBkb3p2b2xqZW5vIGRhIHVuZXNlICJuYSBvZG1vcnUiLCAibmEgYm9sb3Zhbmp1IiBpICJuYSBzbG9ib2RuaW0gZGFuaW1hIiBuYSB2acWhZSBkYXR1bWEgb2RqZWRub20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTWFrc2ltYWxuaSBicm9qIHJhZG5paCBkYW5hIHBvc2xlIGtvZyB0cmViYSBkb2RhdGkgcmFkbmUgamVkaW5pY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdNYWtzaW1hbG5pIGJyb2ogcmFkbmloIGRhbmEgYmV6IHVub3NhIHJhZG5paCBqZWRpbmljYSBwb3NsZSBrb2cgxIdlIGJpdGkgcHJpa2F6YW5vIHVwb3pvcmVuamUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ1ByZWdsZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnSXp2ZcWhdGF2YW5qZSBvIHZyZW1lbnUgcHJvamVrdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bGFybmkgaXpyYXppIHphIG9ncmFuacSNYXZhbmplIGxpc3RlIGFrY2lqYSBwcmVtYSBpemFicmFuaW0gcHJvamVrdGltYS4gS2xqdcSNIHNhZHLFvmkgcmVndWxhcm5pIGl6cmF6IHphIHByb2pla3QoZSksIHUgc2FkcsW+YWp1IGplIHJlZ3VsYXJuaSBpenJheiB6YSBha2NpanUoZSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ1JlZ3VsYXJuaSBpenJhemkgemEgb2dyYW5pxI1hdmFuamUgbGlzdGUgYWtjaWphIHByZW1hIGl6YWJyYW5pbSBrb3Jpc25pxI1raW0gZ3J1cGFtYS4gS2xqdcSNIHNhZHLFvmkgcmVndWxhcm5pIGl6cmF6IHphIHByb2pla3QoZSksIHUgc2FkcsW+YWp1IGplIHJlZ3VsYXJuaSBpenJheiB6YSBncnVwZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBkYSBsaSByYWRuaSBzYXRpIG1vZ3UgZGEgc2UgdW5lc3UgYmV6IHZyZW1lbmEgcG/EjWV0a2EgaSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdPdmFqIG1vZHVsIG5hbWXEh2UgdW5vcyB1IG9icmHEjXVuIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnT3ZhaiBtb2R1bCB6YSBvYmF2ZcWhdGF2YW5qZSBkYWplIHVwb3pvcmVuamUgYWtvIGltYSBwcmV2acWhZSBuZWtvbXBsZXRuaWggcmFkbmloIGRhbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ09icmHEjXVuYXZhbmplIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnVXJlxJFpdmFuamUgb2JyYcSNdW5hdmFuamEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1ByZWdsZWQgb2JyYcSNdW5hdmFuamEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdJenZlxaF0YWppIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdQb2RlxaFhdmFuamEgb2JyYcSNdW5hdmFuamEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnUHJlZ2xlZCBvYnJhxI11bmF2YW5qYSB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnT2JyYcSNdW5hdmFuamUgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnWmEgdXBvdHJlYnUgYWtvIG5la2UgYWtjaWplIHNtYW5qdWp1IHJhZG5lIHNhdGUgKG5hIHByaW1lciwgYWtvIHNlIHBsYcSHYSBzYW1vIHBvbGEgdnJlbWVuYSBwdXRvdmFuamEgS2xqdcSNID0+IHB1dG92YW5qZTsgU2FkcsW+YWogPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3ZfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnR8OlIHRpbGwgaW5zdMOkbGxuaW5nYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0dW0tbmF2aWdlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdWw6RsaiBhbGxhIGRhZ2FyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdQw6Ugc2VtZXN0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1NqdWtsZWRpZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVXBwZHJhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdBbm3DpHJrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdmEgdGlkZXIgw6RyIGludGUgdGlsbMOldG5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdPZ2lsdGlndCBmb3JtYXQhIFbDpG5saWdlbiBmeWxsIGkgZW4gdGlkIG1lZCBmb3JtYXRldCBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnT2dpbHRpZyB0aWQhIEV0dCBkeWduIGhhciBiYXJhIDI0IHRpbW1hci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfDlnZlcnRpZCAoVGltbWFyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnU2VtZXN0ZXIgKERhZ2FyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGw7ZyZWfDpWVuZGUgZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnTsOkc3Rrb21tYW5kZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1ZhciB2w6RubGlnIGZ5bGwgaSBkaW5hIGFyYmV0c3RpbW1hciEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JhcHBvcnRlcmluZyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0luc3TDpGxsbmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdWw6RubGlnZW4gdsOkbGogw6V0bWluc3RvbmUgZW4gZGFnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnVsOkbmxpZ2VuIHbDpGxqIGVuIGFubGVkbmluZyBmw7ZyIGZyw6VudmFybyEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3dfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdKZSB1bmF0YWthIGt1ZnV0YSBVaGFzaWJ1IHdhIE11ZGEga3dhIHNpa3UgeWEgbGVvPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdIYXJpcmkgcmVrb2RpIHlhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdOZW5kYSBrd2VueWUgbXBhbmdpbGlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ1VhYmlyaSB3YSB0YXJlaGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdTaWt1IHppc2l6b2t1d2EgbmEgbWFpbmdpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnQ2hhZ3VhIHNpa3Ugem90ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW5naXpvIGxhIHBhbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1RhZmFkaGFsaSBjaGFndWEgc2FiYWJ1IHlhIGt1dG9rdXdlcG8ga3dhIHNpa3UgemlsaXpvIGNoYWd1bGl3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0thdGlrYSBsaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0thdGlrYSBydWh1c2EgeWEgd2Fnb25qd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdLYXRpa2EgcnVodXNhIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdTZWhlbXUgemluYXpvdGFraXdhIHppbmEgYWxhbWEgIioiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnVW5hdGFraXdhIGt1amF6YSBtdWRhIHdhIGt1YW56YSBuYSBrdW1hbGl6YSBhdSBtdWRhIHVsaW90dW1pa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdNcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnS2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdNYW9uaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ011ZGEgaGFzaSBoYXVydWh1c2l3aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ011ZGEgdWxpb2ppcnVkaWEgaGF1cnVodXNpd2kuIE11ZGEgd2Ega3VhbnphIHVuYWZhbmFuYSBuYSBtdWRhIG13aW5naW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnTXV1bmRvIGJhdGlsaSEgVGFmYWRoYWxpIGluZ2l6YSBtdWRhIG5hIG11dW5kbyBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgaW5hcnVodXNpd2Ega2F0aWthIG11ZGEgd2Ega3VtYWxpemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTXVkYSBiYXRpbGkhIFNpa3UgaW5hIG1hc2FhIDI0IHR1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTXVkYSB3YSBrdW1hbGl6YSBsYXppbWEgdXdlIGJhYWRhIHlhIG11ZGEgd2Ega3VhbnphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ01hc2FhIHlhbGl5b2ppcnVkaWEgaGF5YXJ1aHVzaXdpLiBNdWRhIHdhIGt1bWFsaXphIHVuYWZhbmFuYSBtdWRhIG13aW5naW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTXVkYSBiYXRpbGkhIFNpa3UgaW5hIG1hc2FhIDI0IHR1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ011ZGEgaGFsYWxpIHVuYSBtYXNhYSB6YWlkaSB5YSBzaWZ1cmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdLaXBpbmRpIGJhdGlsaSEgVmlwaW5kaSBoYXNpIGhhdmlydWh1c2l3aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdPbmdlemEgc2FmdSBtb2phJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnVW5hd2V6YSBrdWNoYWd1YSBlbGVtZW50aSBtb2phIGthdGlrYSBjaGVraSBib2tzaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB3YWthdGkgdXBvIGxpa2l6byB5YSB3YWdvbmp3YT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdVbmEgdWhha2lrYSB1bGlmYW55YSBrYXppIHdha2F0aSB1cG8gbGlraXpvPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB3YWthdGkgdXBvIGxpa2l6byB5YSBtdWRhIHdhIG55b25nZXphPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdVbmEgdWhha2lrYSB1bGlmYW55YSBrYXppIHphaWRpIHlhIG1hc2FhIDE2Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTWFwaXRpbyB5YSBtd2V6aSB5YSB1YXJpZnUgd2EgbXVkYSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ011ZGEgd2EgbnlvZ25lemEgKE1hc2FhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdNdWRhIHdhIG55b25nZXphIChtd2V6aSBodXUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdNdWRhIHdhIG55b25nZXphIChqdW1sYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnTXVkYSB1bGlvYmFraSB3YSBsaWtpem8geWEgbXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdMaWtpem8gKHNpa3UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0xpa2l6byBpbGl5b2NodWt1bGl3YSAobXdlemkgaHV1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnTGlraXpvIGlsaXlvY2h1a3VsaXdhIChqdW1sYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnTGlraXpvIGlsaXlvYmFraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSAoc2lrdSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdMaWtpem8geWEgd2Fnb25qd2EgaWxpeW9jaHVrdWxpd2EgKG13ZXppIGh1dSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnTGlraXpvIHlhIHdhZ29uandhIGlsaXlvY2h1a3VsaXdhIChqdW1sYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNd2V6aSB1bGlvcGl0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTXdlemkgdWphbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnU2lrdSB6YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdNYXNhYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0p1bWxhIHlhIG1hc2FhIHlhIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnTWFwaXRpbyB5YSBtcmFkaSB3YSBtdHVtaWFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdNYXNhYSAoa3dhIG13ZXppKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnTWFzYWEgKG11ZGEgd290ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdKdW1sYSBrdXUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnVWFyaWZ1IHdhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ1VhYmlyaSB3YSBtd2V6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnTmVuZGEgdGFyZWhlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JpcG90aSB6YSBtdHVtaWFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnSnVtbGEgeWEgbXdlemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdKdW1sYSB5YSBtdWRhIHdvdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdMaWtpem8geWEgbXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0xpa2l6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnTGlraXpvIHlhIHdhZ29uandhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0xpa2l6byBpbGl5b2Jha2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmlwb3RpIHphIG1yYWRpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSaXBvdGkgeWEgbXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnTmVuZGEga3dlbnllIG1hcGl0aW8geWEgdWFyaWZ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnS3dhIHNhc2Egd2F0dW1pYWppIGFtaWxpZnUgdHUga2F0aWthIG1yYWRpIGh1dSB3YXRhb255ZXNod2EuIEt1YmFkaWxpc2hhIHRhYmlhIGhpaSwgdGFmYWRoYWxpIHNhc2lzaGEgbXBhbmdhbGlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdLd2Egc2FzYSB3YXR1bWlhamkgd290ZSB3YSBtdWRhIHVsaW9oZXNhYmlrYSB3YXRhb255ZXNod2EuIEt1YmFkaWxpc2hhIHRhYmlhIGhpaSwgdGFmYWRoYWxpIHNhc2lzaGEgbXBhbmdhbGlvLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdIYXJpcmkgVWhhc2lidSB3YSBNdWRhIGt3ZW55ZSBtaXBhbmdpbGlvIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnT25nZXphIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnTmVuZGEga3dlbnllIG1hcGl0aW8geWEgbXBhbmdpaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdPbmdlemEgbXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEgbXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1RheWFyaSBrdW5hIG1yYWRpIHdlbnllIGhpbGkgamluYS4gVGFmYWRoYWxpLCBjaGFndWEgamVuZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdIYXJpcmkgbWlwYW5naWxpbyB5YSBVaGFzdWJ1IHdhIE11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdPbmdlemEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdPcm9kaGEgeWEgbWlyYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ09yb2RoYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnT25nZXphIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnVGF5YXJpIGt1bmEga2F6aSB5ZW55ZSBoaWxpIGppbmEuIFRhZmFkaGFsaSBjaGFndWEgamVuZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnT3JvZGhhIHlhIG10dW1pYWppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ09ueWVzaGEgbXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdSdWh1c3UgdXRlbmdlbmV6YWppIHdhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnS3VhbnphIGt3YSBraXBlbmdlbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0t1aXNoYSBrd2Ega2lwZW5nZWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdTaWt1IHphIGxpa2l6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ01hc2FhIGt3YSB3aWtpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdNdWRhIHdhIG55b25nZXphIHVsaW9ydWh1c2l3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnVGFyZWhlIHlhIGt1YW56YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdUYWZhZGhhbGkgaW5naXphIHRhcmVoZSBoYWxhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdUYXJlaGUgeWEga3VtYWxpemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdNd2lzaG8gd2Ega2lwZW5nZWxlIGxhemltYSB1d2UgYmFhZGEgeWEgbXdhbnpvIHdhIGtpcGVuZ2VsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnU2lrdSB6YSBsaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnTWFzYWEgeWEgd2lraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ011ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0hha3VuYSB2aXBlbmdlbGUgdnlhIG11ZGEgdmlsaXZ5b3BhdGlrYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ09uZ2V6YSBraXBlbmdlbGUgY2hhIG11ZGEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnT255ZXNoYSBraXBlbmdlbGUgY2hhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdNdW9uZWthbm8gd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnU2lrdSBpbGl5b3BpdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdTaWt1IGluYXlvZndhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnSGFrdW5hIGRhdGEgemlsaXpvcGF0aWthbmEga3dhIHNpa3UgaGlpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1RhZmFkaGFsaSBpbmdpemEgbWFzc2FhIHlhIGthemkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luZ2l6byBsaW1lZmFuaWtpd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0tvc2Ega2F0aWthIGt1aW5naXphIHRhcmVoZSB6YWlkaSB5YSBtb2phISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdNYWluZ2l6byB5YWxpeW9mYW5pa2l3YSBrd2EgdGFyZWhlIHphaWRpIHlhIG1vamEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdJbmdpem8gbGEgdGFyZWhlIG5pIGJhdGlsaSEgVGFyZWhlIGltZWJhZGlsaXNod2EgbGVvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnVWFyaWZ1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnTXBhbmdpbGlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1RhZmFkaGFsaSBjaGFndWEgamFwbyBzaWt1IG1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0luZ2l6byBsYSBwYW1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdUYWZhZGhhbGkgY2hhZ3VhIHNhYmFidSB5YSBrdXRvIGt1d2VwbyEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdGdXRhIGluZ2l6byBsYSBVaGFzaWJ1IHdhIE11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdIYWtpa2kgaW5naXpvJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTW9kdWxpIHlhIHRhYXJpZmEga3dhIGtpb2xlc3VyYSBjaGEgd2FrYWxhIGt1b25hIGlkYWRpIHlhIHNpa3UgemEga2F6aSB6YSBtdHVtaWFqaSB6aXNpem8ga2FtaWxpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0ppbmEgbGEgY2hhZ3VvLW1zaW5naSBrd2Egdml0ZW5kbyB2aXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnSmluYSBsYSBjaGFndW8tbXNpbmdpIGt3YSBtaXJhZGkgbWlweWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdDaGFndW8tbXNpbmdpIGt3YSBtaXBhbmdpbGlvIHlhIHRhcmVoZSB5YSBrdW1hbGl6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQ2hhZ3VvLW1zaW5naSBrd2EgbWlwYW5naWxpbyB5YSB0YXJlaGUgeWEga3VhbnphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0NoYWd1by1tc2luZ2kga3dhIG1pcGFuZ2lsaW8geWEgbWFlbGV6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ2hhZ3VvLW1zaW5naSBsYSBzaWt1IHphIGxpa2l6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0NoYWd1by1tc2luZ2kgbGEgbXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQ2hhZ3VvLW1zaW5naSBsYSBtaXBhbmdpbGlvIHlhIHNpa3UgemEga2F3YWlkYSB6YSB3aWtpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIHZpdGVuZG8gdmlweWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnSGFsaSB5YSBjaGFndW8tbXNpbmdpIGt3YSBtaXJhZGkgbWlweWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnSGFsaSB5YSBjaGFndW8tbXNpbmdpIGt3YSB3YXR1bWlhamkgd2FweWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgbWlyYWRpIGFtYmF5byBtYW9uaSB5YW5haGl0YWppa2EuIEthbWEgUmVnRXhwIGluYWZhbmFuYSBrYXRpa2EgbXJhZGksIHVuYXRha2l3YSBrdXdla2EgbWFvbmkgcGlhLiBSZWdFeHAgaW5hdHVtaWEgcGFyYW1ldGEgeWEgc214JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdJbmFoYWtpa2kga2FtYSBtb2R1bGkgeWEgdGFrd2ltdSBpbmF3ZXphIGt1dGVuZ2VuZXphIHRhYXJpZmEgeWEgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnS3dhIHNpa3UgbmdhcGkgemlsaXpvcGl0YSB1bmF3ZXphIGt1aW5naXphIHZpdGVuZ28gdnlhIGthemkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ0thbWEgaW1ld2V6ZXNod2EsIHdhdHVtaWFqaSB3YWxpb3dla2EgbXVkYSB3YSBrYXppIGt3YSBtcmFkaSB1bGlvY2hhZ3VsaXdhIG5kaW8gd2F0YW9ueWVzaHdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0thbWEgaW1ld2V6ZXNod2EsIG10dW1pYWppIGFuYXJ1aHVzaXdhIGt1aW5naXphICJrd2VueWUgbGlraXpvIiwgImt3ZW55ZSBsaWtpem8geWEgd2Fnb25qd2EiLCAia3dlbnllIGxpa2l6byB5YSBzaWt1IHphIG55b25nZXphIiBrd2EgdGFyZWhlIHphaWRpIHlhIG1vamEga3dhIG1rdXB1by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdLaW1hIGNoYSBqdXUgY2hhIHNpa3UgemEga2F6aSBiYWFkYSB5YSB2aXRlbmdvIHZ5YSBrYXppIGt1aW5naXp3YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ0tpbWEgY2hhIGp1dSBjaGEgc2lrdSB6YSBrYXppIGJpbGEgeWEgdml0ZW5nbyB2eWEga2F6aSBrdWluZ2l6d2EgYW1iYXZ5byAgb255byBsaXRhb255ZXNod2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnTWFuZW5vIHlhIGthd2FpZGEgeWFuYXlvIGt3YW1pc2hhIG9yb2RoYSB5YSB2aXRlbmRvIGt3YSBtcmFkaSB1bGlvY2hhZ3VsaXdhLiBVZnVuZ3VvIHVuYSBtYW5lbm8geWEga2F3YWlkYSB5YSBtcmFkaSAobWlyYWRpKSwgbWF1ZGh1aSB5YW5hIG1hbmVubyB5YSBrYXdhaWRhIHlhIGtpdGVuZG8gKHZpdGVuZG8pLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnTWFuZW5vIHlhIGthd2FpZGEgeWEga3V6dWlhIG9yb2RoYSB5YSBtcmFkaSBrdWVuZGFuYSBuYSBtYWt1bmRpIHlhIHdhdHVtaWFqaS4gVWZ1bmd1byB1bmEgbWFuZW5vIHlhIGthd2FpZGEgeWEgbXJhZGkgKG1pcmFkaSksIG1hdWRodWkgeWFuYSBtYWt1bmRpIHlhbGl5b2dhd2FueXdhIGt3YSBhbGFtYSB5YSBta2F0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0luYWJhaW5pc2hhIGthbWEgbWFzYWEgeWEga2F6aSB5YW5hd2V6YSBrdWluZ2l6d2EgYmlsYSB5YSBtdWRhIHdhIGt1YW56YSBuYSBrdW1hbGl6YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnSGlpIG1vZHVsaSBpbmFpbmdpemEgVWhhc2lidSB3YSBNdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnSGlpIG1vZHVsaSB5YSB0YWFyaWZhIGluYXRvYSBvbnlvIGVuZGFwbyBrdW5hIHNpa3UgbnlpbmdpIHphIGthemkgYW1iYXpvIGhhemlqYWthbWlsaWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdVaGFzaWJ1IHdhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnSGFyaXJpIHVoYXNpYnUgd2EgbXVkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ01hcGl0aW8geWEgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1VhcmlmdSB3YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdNcGFuZ2lsaW8gd2EgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdNdW9uZWthbm8gd2EgdWhhc2lidSB3YSBtdWRhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVWhhc2lidSB3YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0l0YXR1bWlrYSBrYW1hIGJhYWRoaSB5YSB2aXRlbmRvIHZpdGFwdW5ndXphIG11ZGEgd2Ega2F6aSAobWZhbm8sIGthbWEgbnVzdSB5YSBtdWRhIHdhIGt1c2FmaXJpIHVtZWxpcHdhIFVmb25ndW89PiBrdXNhZmlyaTsgbWF1ZGh1aT0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6emhfQ05fVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfor7fnoa7orqTkvaDnnJ/nmoTluIzmnJvliKDpmaTov5nkuIDlpKnnmoTlt6Xml7bnrqHnkIborrDlvZXvvJ8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn57yW6L6R5pe26Ze06K6w5b2VJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn6L+b5YWl6K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ+aXpeacn+a1j+iniCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ+ayoeacieiusOW9leeahOW3peaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICfpgInmi6nmiYDmnInlt6Xml6XjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ+Wkp+mHj+iusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ+ivt+S4uuaJgOmAieaXtumXtOmAieaLqee8uuWLpOWOn+WboOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ+S8keWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAn55eF5YGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAn5Yqg54+t6LCD5LyRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn5qCH6K6wIioi55qE5a2X5q615Li65b+F5aGr44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn5L2g6ZyA6KaB5aGr5YaZ5byA5aeL5ZKM57uT5p2f5pe26Ze05oiW6ICF5pe26Ze05q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfpobnnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ+S7u+WKoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICflpIfms6gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAn6K+35re75Yqg5LiA5Liq6LaF6L+HOOS4quWtl+espueahOWkh+azqO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn5pe26Ze05LiN5YWB6K645Li66LSf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfkuI3lhYHorrjph43lpI3nmoTlt6XkvZzml7bpl7TjgILlvIDlp4vml7bpl7Tlt7LljLnphY3lhbbku5blrZjlnKjnmoTml7bmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ+agvOW8j+aXoOaViO+8geivt+aMiUhIOk1N5qC85byP6L6T5YWl5pe26Ze044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAw5Y+q5YWB6K646K6+572u5Li657uT5p2f5pe26Ze044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn5pe26Ze05peg5pWI77yB5LiA5aSp5Y+q5pyJMjTlsI/ml7bjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ+e7k+adn+aXtumXtOW6lOWkp+S6juW8gOWni+aXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ+S4jeWFgeiuuOmHjeWkjeeahOW3peS9nOaXtumXtOOAgue7k+adn+aXtumXtOW3suWMuemFjeWFtuS7luWtmOWcqOeahOaXtuauteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn5peg5pWI55qE5pe25q6177yB5LiA5aSp5Y+q5pyJMjTlsI/ml7bjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICfmnInmlYjml7bmrrXml7bplb/lupTlpKfkuo4w44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfml6DmlYjml7bmrrXvvIHml7bmrrXml7bplb/kuI3lhYHorrjkuLrotJ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICflop7liqDkuIDooYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICflj6rog73pgInmi6nkuIDkuKrlpI3pgInmoYblhYPntKDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ+S9oOehruWumuS9oOWcqOeXheWBh+acn+mXtOS7jeWcqOW3peS9nOWQl++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ+S9oOehruWumuS9oOWcqOS8keWBh+acn+mXtOS7jeWcqOW3peS9nOWQl++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn5L2g56Gu5a6a5L2g5Zyo5Yqg54+t6LCD5LyR5pyf6Ze05LuN5Zyo5bel5L2c5ZCX77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ+S9oOehruWumuS9oOW3peS9nOi2hei/hzE25bCP5pe25LqG5ZCX77yfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICflt6Xml7bmiqXlkYrmnIjluqbmpoLop4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ+WKoOePre+8iOWwj+aXtu+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfliqDnj63vvIjmnKzmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ+WKoOePre+8iOWQiOiuoe+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfliankvZnnmoTliqDnj63osIPkvJEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn5LyR5YGH77yI5aSp77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ+W3suS8keWBh++8iOacrOaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAn5bey5LyR5YGH77yI5ZCI6K6h77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ+WJqeS9meeahOWBh+acnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ+eXheWBh++8iOWkqe+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ+W3suS8keeXheWBh++8iOacrOaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICflt7LkvJHnl4XlgYfvvIjlkIjorqHvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfkuIrkuIDmnIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ+S4i+S4gOaciCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn5bel5L2c5pelJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICflt6XkvZzml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAn5bel5L2c5pe26Ze05ZCI6K6hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ+eUqOaIt+eahOmhueebruamguiniCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICflsI/ml7bvvIjmjInmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ+Wwj+aXtu+8iOiHquWFpeiBjOiuoeeul++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ+aAu+iuoSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICfml7bpl7TmiqXlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ+aMieaciOa1j+iniCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn6Lez6L2s5Yiw5pel5pyfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ+eUqOaIt+aKpeWRiic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn5oyJ5pyI5ZCI6K6hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAn6Ieq5YWl6IGM6K6h566X5ZCI6K6hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn5Yqg54+t6LCD5LyRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn5LyR5YGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfnl4XlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAn5Ymp5L2Z5YGH5pyfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ+mhueebruaKpeWRiic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn6aG555uu5oql5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ+i/m+WFpeaKpeWRiuamguiniCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ+W9k+WJjeS7heaYvuekuumhueebruS4reeahOa/gOa0u+eUqOaIt+OAguWmguimgeiwg+aVtOaYvuekuuWxnuaAp++8jOivt+abtOaWsOiuvue9ru+8mic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICflvZPliY3mmL7npLrmiYDmnInnmoTlt6Xml7bnrqHnkIbnlKjmiLfjgILlpoLopoHosIPmlbTmmL7npLrlsZ7mgKfvvIzor7fmm7TmlrDorr7nva7vvJonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAn57yW6L6R5bel5pe2566h55CG6aG555uu6K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn5paw5bu66aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn6L+b5YWl6K6+572u5qaC6KeIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAn5paw5bu66aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ+e8lui+kemhueebruiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5bey5a2Y5Zyo5ZCM5ZCN55qE6aG555uu77yM6K+36YCJ5oup5LiN5ZCM55qE5ZCN5a2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn57yW6L6R5bel5pe2566h55CG6K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAn5re75Yqg5Lu75YqhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAn5oyJ6aG555uu44CB5Lu75Yqh5oiW55So5oi36L+H5rukJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAn5peg5rOV5Yig6Zmk5bel5pe25ZGo5pyf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ+mhueebruWIl+ihqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICfku7vliqHliJfooagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfmt7vliqDku7vliqEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAn57yW6L6R5Lu75Yqh6K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICflt7LlrZjlnKjlkIzlkI3nmoTku7vliqHvvIzor7fpgInmi6nkuI3lkIznmoTlkI3lrZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn55So5oi35YiX6KGoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICfnlKjmiLforr7nva4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICflhYHorrjnlKjmiLfnnIvliLDliqDnj63ml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ+aYvuekuuWKoOePrSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAn5YWB6K6455So5oi35Yib5bu66aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICflhYHorrjliJvlu7rpobnnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ+aXtumXtOi3qOW6pic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICfml7bmrrXlvIDlp4snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ+aXtuautee7k+adnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn5LyR5YGH5aSp5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAn5q+P5ZGo5bCP5pe25pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICfmibnlh4bnmoTliqDnj60nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ+W8gOWni+aXpeacnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICfor7fmj5LlhaXmnInmlYjml6XmnJ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfnu5PmnZ/ml6XmnJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICfml7bmrrXnu5PmnZ/ml7bpl7TlupTlpKfkuo7ml7bmrrXlvIDlp4vml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ+e8uuWLpOWkqeaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICfmr4/lkajlt6XkvZzlsI/ml7bmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfliqDnj60nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ+ayoeacieaJvuWIsOaXtuauteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICflop7liqDml7bmrrUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn5p+l55yL5bel5pe26K6w5b2VJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAn5bGV56S6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ+WJjeS4gOWkqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ+WQjuS4gOWkqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfmsqHmnInmib7liLDov5nkuIDlpKnnmoTmlbDmja7jgIInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAn5peg5rOV5o+S5YWl5bel5L2c5Y2V5L2N77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfmnIDov5HnmoTpobnnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAn5peg5rOV5L+d5a2Y6K6+572u77yM5Zug5Li65LiA5aSp5Y+q5pyJMjTlsI/ml7bvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ+aXoOazleWIoOmZpOW3peS9nOWNleS9je+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ+i/meS4quaXpeacn+S4jeWPl+mZkOWItu+8jOS9huaYr+S9oOi/mOayoeacieaPkuWFpei/meS4gOWkqe+8jOaJgOS7peS9oOiOt+W+l+S6huS4gOS4qu+8iO+8ge+8ieacuuS8muadpeaPkuWFpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ+S4jeWujOaVtOeahOW3peS9nOaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICfor7fmj5LlhaXlt6XkvZzml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn5o+S5YWl5oiQ5Yqf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfmj5LlhaXlpJrkuKrml7bpl7Tml7blh7rnjrDplJnor6/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn5oiQ5Yqf5o+S5YWl6K6w5b2V44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICfovpPlhaXml7bpl7Tml6DmlYjvvIHml6XmnJ/mlLnkuLrlvZPliY3ml6XmnJ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAn5rKh5pyJ6YWN572u5pe26Ze05q6177yM5oiW5oyH5a6a55qE5pel5pyf5LiN5Zyo5a6a5LmJ55qE5pe26Ze05q615YaF44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICfor7fogZTns7vlt6Xml7bnrqHnkIblkZjmm7TmlrDmgqjnmoTml7bpl7TmrrXvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ+acgOWQjuiiq+mAieS4reeahOmhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICfmiYDmnInpobnnm64nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAn6aG555uu5oql5ZGK77ya6ZyA6KaB6aG555uuSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICfpobnnm67miqXlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn5oql5ZGKJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ+aXoOazleabtOaWsOeUqOaIt+iuvue9ru+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ+mhueebruW3sua3u+WKoO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAn6aG555uu5bey5pu05paw77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAn5Lu75Yqh5bey5re75Yqg77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfku7vliqHlt7Lmm7TmlrDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnVXNlcklE5peg5pWI77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ+aXoOazleaPkuWFpeeUqOaIt+aVsOaNru+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ+aXoOazlea3u+WKoOaXtumXtOaute+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn6K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfnlKjmiLflt7Lmm7TmlrDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfnlKjmiLflt7Lmt7vliqDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfmt7vliqDkuIDkuKrnlKjmiLfliLDlt6Xml7bnrqHnkIYuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfmt7vliqDnlKjmiLcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ+aXtuauteeKtuaAgSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAn6KeG5Zu+77ya6ZyA6KaBJXPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICfkuI3lrozmlbTnmoTlt6XkvZzml6UnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn6K+36Iez5bCR6YCJ5oup5LiA5aSp77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICflpKfph4/orrDlvZUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfor7fpgInmi6nnvLrluK3ljp/lm6DvvIEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICfliKDpmaTlt6Xml7bnrqHnkIborrDlvZUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICfnoa7orqTmj5LlhaUnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfmnI3liqHkurrlkZjnlYzpnaLpgJrnn6XmqKHlnZfvvIzmmL7npLrnlKjmiLfkuI3lrozmlbTnmoTlt6XkvZzml6XmlbDmja7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfmlrDmtLvliqjnmoTpu5jorqTlkI3np7DjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn5paw6aG555uu55qE6buY6K6k5ZCN56ew44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAn57uT5p2f5pel5pyf55qE6buY6K6k6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICflvIDlp4vml6XmnJ/nmoTpu5jorqTorr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICfmj4/ov7DnmoTpu5jorqTorr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ+S8keWBh+aXpeeahOm7mOiupOiuvue9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ+WKoOePreeahOm7mOiupOiuvue9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAn5ZGo5qCH5YeG5bel5L2c5pe26Ze055qE6buY6K6k6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfmlrDmtLvliqjnmoTpu5jorqTnirbmgIHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfmlrDpobnnm67nmoTpu5jorqTnirbmgIHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICfmlrDnlKjmiLfnmoTpu5jorqTnirbmgIHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAn5oyH5a6a5aSH5rOo5b+F5aGr55qE6aG555uu44CC5aaC5p6cUmVnRXhw5Yy56YWN6aG555uu77yM5L2g5Lmf6ZyA6KaB5re75Yqg5aSH5rOo44CCUmVnRXhw5L2/55Soc2145Y+C5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICfnoa7lrprnu5/orqHmqKHlnZfmmK/lkKbopoHnlJ/miJDlt6Xml7bnrqHnkIbkv6Hmga/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn57yW6L6R5bel5pe2566h55CG6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAn57yW6L6R5bel5pe26K6w5b2V44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ+S9oOWPr+S7peaPkuWFpeWkmuS5heS7peWJjeeahOW3peS9nOaVsOaNruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICflpoLmnpzlkK/nlKjvvIzliJnku4XmmL7npLrlnKjpgInlrprpobnnm67kuK3mnInlt6Xml7bmlbDmja7nmoTnlKjmiLfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ+WmguaenOWQr+eUqO+8jOWImee8lui+keinhuWbvuS4reeahOS4i+aLieWIl+ihqOWFg+e0oOWwhuS8muS/ruaUueS4uuiHquWKqOWujOaIkOWtl+auteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICflpoLmnpzlkK/nlKjvvIzliJnlj6/ku6Xkvb/nlKjkuYvliY3pobnnm67nmoTov4fmu6TlmajvvIjnlKjkuo7mm7/ku6PmnIDlkI7lkozlhajpg6jpobnnm67liJfooajvvInjgILku4XlnKhUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb27lkK/nlKjml7bvvIzlj6/ku6XlkK/nlKjor6Xlj4LmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+WmguaenOWQr+eUqO+8jOWImeWmguaenOWtmOWcqOS5i+WJjeeahOmhueebru+8jOWImeS5i+WJjemhueebrui/h+a7pOWZqOWwhuiiq+m7mOiupOa/gOa0u+OAguS7heWcqEVuYWJsZUF1dG9Db21wbGV0aW9u5ZKMVGltZUFjY291bnRpbmc6OlVzZUZpbHRlcuWQr+eUqOaXtu+8jOWPr+S7peWQr+eUqOivpeWPguaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn5aaC5p6c5ZCv55So77yM5YiZ55So5oi35Y+v5Lul5LiA5qyh5Zyo5aSa5Liq5pel5pyf5Lit6L6T5YWl4oCc5LyR5YGH4oCd77yM4oCc55eF5YGH4oCd77yMIuWKoOePreiwg+S8kSLjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICflt6XkvZzmlbDmja7mt7vliqDlkI7lhYHorrjnmoTmnIDlpKflt6Xml6XjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ+ayoeacieW3peS9nOaVsOaNruiusOW9leeahOW3peS9nOaXpeeahOacgOWkp+aVsOmHj++8iOWmguaenOi2hei/h++8jOWImeS8muaYvuekuuitpuWRiu+8ieOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfmpoLop4jjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICfpobnnm67lt6Xml7bmiqXlkYrjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ+mAieWumumhueebrueahOmZkOWItua0u+WKqOa4heWNleS9v+eUqOeahOato+WImeihqOi+vuW8j+OAgumUruWMheWQq+S6humhueebru+8iFByb2plY3Rz77yJ55qE5q2j5YiZ6KGo6L6+5byP77yM5YC85YyF5ZCr5LqG5rS75Yqo77yIQWN0aW9u77yJ55qE5q2j5YiZ6KGo6L6+5byP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ+eUqOaIt+e7hOeahOmZkOWItumhueebrua4heWNleS9v+eUqOeahOato+WImeihqOi+vuW8j+OAgktleeWMheWQq+S6humhueebru+8iFByb2plY3Rz77yJ55qE5q2j5YiZ6KGo6L6+5byP77yMQ29udGVudOWMheWQq+S6humAl+WPt+WIhumalOeahOe7hOa4heWNleOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAn5oyH5a6a5Zyo5rKh5pyJ5byA5aeL5ZKM57uT5p2f5pe26Ze055qE5oOF5Ya15LiL5piv5ZCm5Y+v5Lul5o+S5YWl5bel5pe25pWw5o2u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ+acrOaooeWdl+WKn+iDveaPkuWFpeWIsOW3peaXtueuoeeQhuS4reOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ+WmguacieacieWkquWkmuS4jeWujOaVtOeahOW3peaXpe+8jOivpemAmuefpeaooeWdl+S8muWPkeWHuuWRiuitpuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICflt6Xml7bnrqHnkIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn5bel5pe2566h55CG57yW6L6R44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICflt6Xml7bnrqHnkIbmpoLop4jjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICflt6Xml7bnrqHnkIbmiqXlkYrjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ+W3peaXtueuoeeQhuiuvue9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICflt6Xml7bnrqHnkIbmn6XnnIvjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ+W3peaXtueuoeeQhuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICflnKjkuIDkupvmtLvliqjlh4/lsJHlt6XkvZzlsI/ml7bmlbDnmoTml7blgJnkvb/nlKjvvIjlpoLvvJrlj6roirHotLnkuobkuIDljYrnmoTlt67ml4Xml7bpl7TvvIzliJlLZXk9PuW3ruaXhe+8m0NvbnRlbnQ9PjUw77yJ44CCJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nRWRpdDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBQcmVSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIHJldHVybiAxIGlmICEkU2VsZi0+e0FjY2Vzc1JvfTsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCksCiAgICApOwoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkWWVhciwKICAgICAgICBNb250aCA9PiAkTW9udGgsCiAgICAgICAgRGF5ICAgPT4gJERheSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkVXNlcnsgJFNlbGYtPntVc2VySUR9IH07CgogICAgbXkgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHJlZGlyZWN0IGlmIGluY29tcGxldGUgd29ya2luZyBkYXkgYXJlIG91dCBvZiByYW5nZQogICAgaWYgKAogICAgICAgICRJbmNvbXBsZXRlV29ya2luZ0RheXN7RW5mb3JjZUluc2VydH0KICAgICAgICAmJiAkU2VsZi0+e0FjdGlvbn0gbmUgJ0FnZW50VGltZUFjY291bnRpbmdFZGl0JwogICAgICAgICYmICRTZWxmLT57QWN0aW9ufSBuZSAnQWdlbnRDYWxlbmRhclNtYWxsJwogICAgICAgICkKICAgIHsKCiAgICAgICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQE1vbnRoQXJyYXkgPSAoCiAgICAgICAgJycsICAgICAnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICAgICAnQXByaWwnLCAgICdNYXknLAogICAgICAgICdKdW5lJywgJ0p1bHknLCAgICAnQXVndXN0JywgICAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLAogICAgICAgICdEZWNlbWJlcicsCiAgICApOwogICAgbXkgQFdlZWtkYXlBcnJheSA9ICggJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0JywgJ1N1bicsICk7CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwogICAgbXkgJERhdGVUaW1lT2JqZWN0Q3VycmVudCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNob3cgY29uZmlybWF0aW9uIGRpYWxvZyB0byBkZWxldGUgdGhlIGVudHJ5IG9mIHRoaXMgZGF5CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRGVsZXRlRGlhbG9nJyApICkgewoKICAgICAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCksCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1zCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFN0YXR1cyBZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBEYXRlCiAgICAgICAgaWYgKCAhJFBhcmFte1llYXJ9IHx8ICEkUGFyYW17TW9udGh9IHx8ICEkUGFyYW17RGF5fSApIHsKICAgICAgICAgICAgJFBhcmFte1llYXJ9ICA9ICRZZWFyOwogICAgICAgICAgICAkUGFyYW17TW9udGh9ID0gJE1vbnRoOwogICAgICAgICAgICAkUGFyYW17RGF5fSAgID0gJERheTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRQYXJhbXtZZWFyfSAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtZZWFyfSApOwogICAgICAgICAgICAkUGFyYW17TW9udGh9ID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICAgICAgICAgICRQYXJhbXtEYXl9ICAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtEYXl9ICk7CiAgICAgICAgfQoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBidWlsZCB0aGUgcmV0dXJuZWQgZGF0YSBzdHJ1Y3R1cmUKICAgICAgICBteSAlRGF0YSA9ICgKICAgICAgICAgICAgSFRNTCAgICAgICA9PiAkT3V0cHV0LAogICAgICAgICAgICBEaWFsb2dUeXBlID0+ICdDb25maXJtYXRpb24nLAogICAgICAgICk7CgogICAgICAgICMgcmV0dXJuIEpTT04tU3RyaW5nIGJlY2F1c2Ugb2YgQUpBWC1Nb2RlCiAgICAgICAgbXkgJE91dHB1dEpTT04gPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKAogICAgICAgICAgICBEYXRhID0+IFwlRGF0YSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZGVsZXRlIG9iamVjdCBmcm9tIGRhdGFiYXNlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0RlbGV0ZScgKSB7CiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERheSBNb250aCBZZWFyKSkgewogICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoCiAgICAgICAgICAgICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0RlbGV0ZSgKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgICAgICk7CiAgICB9CgogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBtYXNzIGVudHJ5CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ01hc3NFbnRyeScgKSB7CgogICAgICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlcyBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewogICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIHNwbGl0IHVwIGRhdGVzCiAgICAgICAgbXkgQERhdGVzID0gc3BsaXQgL1t8XS8sICRQYXJhbXtEYXRlc307CiAgICAgICAgbXkgJEluc2VydEVycm9yID0gMDsKCiAgICAgICAgIyBzYXZlIGVudHJpZXMgaW4gdGhlIGRiCiAgICAgICAgZm9yIG15ICREYXRlIChARGF0ZXMpIHsKCiAgICAgICAgICAgIG15ICggJFllYXIsICRNb250aCwgJERheSApID0gc3BsaXQgL1stXS8sICREYXRlOwoKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5ID0+ICRQYXJhbXtMZWF2ZURheX0gfHwgMCwKICAgICAgICAgICAgICAgICAgICBTaWNrICAgICA9PiAkUGFyYW17U2lja30gfHwgMCwKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSA9PiAkUGFyYW17T3ZlcnRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkSW5zZXJ0RXJyb3IgPSAxOwogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgIyByZWRpcmVjdCB0byBlZGl0IHNjcmVlbiB3aXRoIGxvZyBtZXNzYWdlCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O05vdGlmaWNhdGlvbj0nCiAgICAgICAgICAgICAgICAuICggJEluc2VydEVycm9yID8gJ0Vycm9yJyA6ICdTdWNjZXNzZnVsJyApLAogICAgICAgICk7CgogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgdGhlIHRpbWUgYWNjb3VudGluZyBlbGVtZW50cwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBwYXJhbXMKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdGF0dXMgWWVhciBNb250aCBEYXkgTm90aWZpY2F0aW9uKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgIH0KICAgICRQYXJhbXtSZWNvcmRzTnVtYmVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdSZWNvcmRzTnVtYmVyJyApIHx8IDg7CiAgICAkUGFyYW17SW5zZXJ0V29ya2luZ1VuaXRzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJbnNlcnRXb3JraW5nVW5pdHMnICk7CgogICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCksCiAgICApOwoKICAgICMgQ2hlY2sgRGF0ZQogICAgaWYgKCAhJFBhcmFte1llYXJ9IHx8ICEkUGFyYW17TW9udGh9IHx8ICEkUGFyYW17RGF5fSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgICAgICAkUGFyYW17RGF5fSAgID0gJERheTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtZZWFyfSAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtZZWFyfSApOwogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgICAgICAkUGFyYW17RGF5fSAgID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17RGF5fSApOwogICAgfQoKICAgICMgY2hlY2sgaWYgdGhlIGdpdmVuIGRhdGUgaXMgYSB2YWxpZCBkYXRlCiAgICAjIGlmIG5vdCB2YWxpZCwgc2V0IHRoZSBkYXRlIHRvIHRvZGF5CiAgICBteSAkRGF0ZVRpbWVWYWxpZCA9ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlZhbGlkYXRlKAogICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIEhvdXIgICAgID0+IDAsCiAgICAgICAgTWludXRlICAgPT4gMCwKICAgICAgICBTZWNvbmQgICA9PiAwLAogICAgICAgIFRpbWVab25lID0+ICdVVEMnLAogICAgKTsKCiAgICBpZiAoICEkRGF0ZVRpbWVWYWxpZCApIHsKICAgICAgICAkUGFyYW17WWVhcn0gICAgICAgID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSAgICAgICA9ICRNb250aDsKICAgICAgICAkUGFyYW17RGF5fSAgICAgICAgID0gJERheTsKICAgICAgICAkUGFyYW17J1dyb25nRGF0ZSd9ID0gMTsKICAgIH0KCiAgICBteSAlVXNlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgPT4gJFBhcmFte0RheX0sCiAgICApOwoKICAgICMgZm9yIGluaXRpYWwgdXNlLCB0aGUgZmlyc3QgYWdlbnQgd2l0aCBydy1yaWdodCB3aWxsIGJlIHJlZGlyZWN0ZWQKICAgICMgdG8gJ1NldHRpbmcnLCBzbyBoZSBjYW4gZG8gdGhlIGluaXRpYWwgc2V0dGluZ3MKICAgIGlmICggISRVc2VyeyAkU2VsZi0+e1VzZXJJRH0gfSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9GaXJzdFVzZXJSZWRpcmVjdCgpOwogICAgfQoKICAgIG15ICVJbmNvbXBsZXRlV29ya2luZ0RheXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE1heEFsbG93ZWRJbnNlcnREYXlzID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6TWF4QWxsb3dlZEluc2VydERheXMnKSB8fCAnMTAnOwogICAgKCAkUGFyYW17WWVhckFsbG93ZWR9LCAkUGFyYW17TW9udGhBbGxvd2VkfSwgJFBhcmFte0RheUFsbG93ZWR9ICkKICAgICAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoICRZZWFyLCAkTW9udGgsICREYXksIDAsIDAsIC0kTWF4QWxsb3dlZEluc2VydERheXMgKTsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3RHaXZlbiA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICBNb250aCA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICBEYXkgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgfQogICAgKTsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3RBbGxvd2VkID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhckFsbG93ZWR9LAogICAgICAgICAgICBNb250aCA9PiAkUGFyYW17TW9udGhBbGxvd2VkfSwKICAgICAgICAgICAgRGF5ICAgPT4gJFBhcmFte0RheUFsbG93ZWR9LAogICAgICAgICAgICB9CiAgICApOwoKICAgIGlmICggJERhdGVUaW1lT2JqZWN0R2l2ZW4tPkNvbXBhcmUoIERhdGVUaW1lT2JqZWN0ID0+ICREYXRlVGltZU9iamVjdEFsbG93ZWQgKSA8IDAgKSB7CiAgICAgICAgaWYgKCAhJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXsgJFBhcmFte1llYXJ9IH17ICRQYXJhbXtNb250aH0gfXsgJFBhcmFte0RheX0gfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICAgICAiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdWaWV3O1llYXI9JFBhcmFte1llYXJ9O01vbnRoPSRQYXJhbXtNb250aH07RGF5PSRQYXJhbXtEYXl9IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzdG9yZSBsYXN0IHNjcmVlbgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyktPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbicsCiAgICAgICAgVmFsdWUgPT4KICAgICAgICAgICAgIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgKTsKCiAgICAkUGFyYW17TW9udGhfdG9fVGV4dH0gPSAkTW9udGhBcnJheVsgJFBhcmFte01vbnRofSBdOwoKICAgICggJFBhcmFte1llYXJCYWNrfSwgJFBhcmFte01vbnRoQmFja30sICRQYXJhbXtEYXlCYWNrfSApCiAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9LCAwLCAwLCAtMSApOwogICAgKCAkUGFyYW17WWVhck5leHR9LCAkUGFyYW17TW9udGhOZXh0fSwgJFBhcmFte0RheU5leHR9ICkKICAgICAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0sIDAsIDAsIDEgKTsKCiAgICBteSAkUmVkdWNlVGltZVJlZiA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OlJlZHVjZVRpbWUnKTsKCiAgICAjIGhhc2hlcyB0byBzdG9yZSBzZXJ2ZXIgc2lkZSBlcnJvcnMKICAgIG15ICVFcnJvcnMgICAgICAgICAgPSAoKTsKICAgIG15ICVTZXJ2ZXJFcnJvckRhdGEgPSAoKTsKICAgIG15ICRFcnJvckluZGV4ICAgICAgPSAxOwoKICAgIG15ICVEYXRhOwogICAgbXkgJUFjdGlvbkxpc3QgPSAkU2VsZi0+X0FjdGlvbkxpc3QoKTsKCiAgICAjIEVkaXQgV29ya2luZyBVbml0cwogICAgaWYgKCAkUGFyYW17U3RhdHVzfSApIHsKCiAgICAgICAgIyBhcnJheXMgdG8gc2F2ZSBhbGwgc3RhcnQgYW5kIGVuZCB0aW1lcyBmb3Igc29tZSBjaGVja3MKICAgICAgICBteSAoIEBTdGFydFRpbWVzLCBARW5kVGltZXMgKTsKCiAgICAgICAgIyBkZWxldGUgcHJldmlvdXMgZW50cmllcyBmb3IgdGhpcyBkYXkgYW5kIHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0RlbGV0ZSgKICAgICAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBteSAlQ2hlY2tib3hDaGVjayA9ICgpOwogICAgICAgIGZvciBteSAkRWxlbWVudCAocXcoTGVhdmVEYXkgU2ljayBPdmVydGltZSkpIHsKICAgICAgICAgICAgbXkgJFZhbHVlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEVsZW1lbnQgKTsKICAgICAgICAgICAgaWYgKCRWYWx1ZSkgewogICAgICAgICAgICAgICAgJENoZWNrYm94Q2hlY2t7JEVsZW1lbnR9ID0gMTsKICAgICAgICAgICAgICAgICRQYXJhbXskRWxlbWVudH0gICAgICAgICA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUGFyYW17JEVsZW1lbnR9ID0gJycKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBtb3JlIHRoYW4gb25lIGNoZWNrIGJveCB3YXMgY2hlY2tlZCBpdCBpcyBhIHNlcnZlciBlcnJvcgogICAgICAgIGlmICggc2NhbGFyIGtleXMgJUNoZWNrYm94Q2hlY2sgPiAxICkgewogICAgICAgICAgICBmb3IgbXkgJENoZWNrYm94ICggc29ydCBrZXlzICVDaGVja2JveENoZWNrICkgewogICAgICAgICAgICAgICAgJEVycm9yc3sgJENoZWNrYm94IC4gJ0ludmFsaWQnIH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBpbnNlcnQgdmFsdWVzIChpZiBhbnkpCiAgICAgICAgICAgIGlmICggc2NhbGFyIGtleXMgJUNoZWNrYm94Q2hlY2sgPiAwICkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgICAgICAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCAgICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXkgPT4gJENoZWNrYm94Q2hlY2t7TGVhdmVEYXl9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFNpY2sgICAgID0+ICRDaGVja2JveENoZWNre1NpY2t9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lID0+ICRDaGVja2JveENoZWNre092ZXJ0aW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJyksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IGNoZWNrIGl0ZW0gb2JqZWN0CiAgICAgICAgbXkgJENoZWNrSXRlbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nKTsKCiAgICAgICAgSUQ6CiAgICAgICAgZm9yIG15ICRJRCAoIDEgLi4gJFBhcmFte1JlY29yZHNOdW1iZXJ9ICkgewoKICAgICAgICAgICAgIyBhcnJheXMgdG8gc2F2ZSB0aGUgc2VydmVyIGVycm9ycyBibG9jayB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcwogICAgICAgICAgICBteSAoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssIEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrICkgPSAoKTsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0SUQgQWN0aW9uSUQgUmVtYXJrIFN0YXJ0VGltZSBFbmRUaW1lIFBlcmlvZCkpIHsKICAgICAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAnWycgLiAkSUQgLiAnXScgKTsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFteyRQYXJhbWV0ZXJ9ICkgewogICAgICAgICAgICAgICAgICAgIG15ICRQYXJhbVJlZiA9IFwkUGFyYW17JFBhcmFtZXRlcn07CgogICAgICAgICAgICAgICAgICAgICMgZGVsZXRlIGxlYWRpbmcgYW5kIHRhaWxpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgJFBhcmFtUmVmID0gJENoZWNrSXRlbU9iamVjdC0+U3RyaW5nQ2xlYW4oCiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1JlZiA9PiAkUGFyYW1SZWYsCiAgICAgICAgICAgICAgICAgICAgICAgIFRyaW1MZWZ0ICA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICBUcmltUmlnaHQgPT4gMSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBuZXh0IElEIGlmICEkUGFyYW17UHJvamVjdElEfSAmJiAhJFBhcmFte0FjdGlvbklEfTsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIG1pc3NpbmcgdmFsdWVzCiAgICAgICAgICAgIGlmICggJFBhcmFte1Byb2plY3RJRH0gJiYgISRQYXJhbXtBY3Rpb25JRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtBY3Rpb25JREludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICEkUGFyYW17UHJvamVjdElEfSAmJiAkUGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UHJvamVjdElESW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNyZWF0ZSBhIHZhbGlkIHBlcmlvZAogICAgICAgICAgICBteSAkUGVyaW9kID0gJFBhcmFte1BlcmlvZH07CiAgICAgICAgICAgIGlmICggJFBlcmlvZCA9fiAvXihcZCspLChcZCspLyApIHsKICAgICAgICAgICAgICAgICRQZXJpb2QgPSAkMSAuICIuIiAuICQyOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjYWxsb3cgZm9ybWF0IGhoOm1tCiAgICAgICAgICAgIGVsc2lmICggJFBhcmFte1BlcmlvZH0gPX4gL14oXGQrKTooXGQrKS8gKSB7CiAgICAgICAgICAgICAgICAkUGVyaW9kID0gJDEgKyAkMiAvIDYwOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIHN0YXJ0IG9yIGVuZCB0aW1lcyBhcmUgbWlzc2luZywgZGVsZXRlIHRoZSBvdGhlciBlbnRyeQogICAgICAgICAgICBpZiAoICEkUGFyYW17U3RhcnRUaW1lfSB8fCAhJFBhcmFte0VuZFRpbWV9ICkgewogICAgICAgICAgICAgICAgJFBhcmFte1N0YXJ0VGltZX0gPSAnJzsKICAgICAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSAgID0gJyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkICc6MDAnIHRvIHRoZSB0aW1lLCBpZiBpdCBkb2Vzbid0IGhhdmUgaXQgeWV0CiAgICAgICAgICAgIGlmICggJFBhcmFte1N0YXJ0VGltZX0gJiYgJFBhcmFte1N0YXJ0VGltZX0gIX4gL14oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgJFBhcmFte1N0YXJ0VGltZX0gLj0gJzowMCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkUGFyYW17RW5kVGltZX0gJiYgJFBhcmFte0VuZFRpbWV9ICF+IC9eKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSAuPSAnOjAwJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoICRQYXJhbXtTdGFydFRpbWV9ID1+IC9eKFxkKyk6KFxkKykkLyApCiAgICAgICAgICAgICAgICAmJiAoICRQYXJhbXtFbmRUaW1lfSA9fiAvXihcZCspOihcZCspJC8gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkUGFyYW17U3RhcnRUaW1lfSA9fiAvXihcZCspOihcZCspJC87CiAgICAgICAgICAgICAgICBteSAkU3RhcnRUaW1lID0gJDEgKiA2MCArICQyOwogICAgICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9ID1+IC9eKFxkKyk6KFxkKykkLzsKICAgICAgICAgICAgICAgIG15ICRFbmRUaW1lID0gJDEgKiA2MCArICQyOwogICAgICAgICAgICAgICAgaWYgKCAkUmVkdWNlVGltZVJlZi0+eyAkQWN0aW9uTGlzdHsgJFBhcmFte0FjdGlvbklEfSB9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZCA9ICggJEVuZFRpbWUgLSAkU3RhcnRUaW1lICkgLyA2MAogICAgICAgICAgICAgICAgICAgICAgICAqICRSZWR1Y2VUaW1lUmVmLT57ICRBY3Rpb25MaXN0eyAkUGFyYW17QWN0aW9uSUR9IH0gfSAvIDEwMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRQZXJpb2QgPSAoICRFbmRUaW1lIC0gJFN0YXJ0VGltZSApIC8gNjA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBlbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUKICAgICAgICAgICAgICAgIGlmICggJEVuZFRpbWUgPD0gJFN0YXJ0VGltZSApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZUJlZm9yZVN0YXJ0VGltZVNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkU3RhcnRUaW1lc1skSURdID0gJFN0YXJ0VGltZTsKICAgICAgICAgICAgICAgICRFbmRUaW1lc1skSURdICAgPSAkRW5kVGltZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFte1N0YXJ0VGltZX0gJiYgJFBhcmFte1N0YXJ0VGltZX0gIX4gL14oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICggJFBhcmFte0VuZFRpbWV9ICYmICRQYXJhbXtFbmRUaW1lfSAhfiAvXihcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG5lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZAogICAgICAgICAgICBpZiAoICRQYXJhbXtTdGFydFRpbWV9ID1+IC9eLShcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lTmVnYXRpdmVTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkUGFyYW17RW5kVGltZX0gPX4gL14tKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQKICAgICAgICAgICAgUE9TSVRJT046CiAgICAgICAgICAgIGZvciAoIG15ICRQb3NpdGlvbiA9ICRJRCAtIDE7ICRQb3NpdGlvbiA+PSAxOyAkUG9zaXRpb24tLSApIHsKICAgICAgICAgICAgICAgIG5leHQgUE9TSVRJT04gaWYgIWRlZmluZWQgJFN0YXJ0VGltZXNbJFBvc2l0aW9uXTsKICAgICAgICAgICAgICAgIG5leHQgUE9TSVRJT04gaWYgIWRlZmluZWQgJFN0YXJ0VGltZXNbJElEXTsKCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFN0YXJ0VGltZXNbJFBvc2l0aW9uXSA+ICRTdGFydFRpbWVzWyRJRF0KICAgICAgICAgICAgICAgICAgICAmJiAkU3RhcnRUaW1lc1skUG9zaXRpb25dIDwgJEVuZFRpbWVzWyRJRF0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvci99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJEVuZFRpbWVzWyRQb3NpdGlvbl0gPiAkU3RhcnRUaW1lc1skSURdCiAgICAgICAgICAgICAgICAgICAgJiYgJEVuZFRpbWVzWyRQb3NpdGlvbl0gPCAkRW5kVGltZXNbJElEXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRFbmRUaW1lc1skSURdID4gJEVuZFRpbWVzWyRQb3NpdGlvbl0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIWdyZXAgey9eU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRTdGFydFRpbWVzWyRQb3NpdGlvbl0gPT0gJFN0YXJ0VGltZXNbJElEXSApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15TdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkRW5kVGltZXNbJFBvc2l0aW9uXSA9PSAkRW5kVGltZXNbJElEXSApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFN0YXJ0VGltZXNbJElEXSA+ICRTdGFydFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICAmJiAkU3RhcnRUaW1lc1skSURdIDwgJEVuZFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkRW5kVGltZXNbJElEXSA+ICRTdGFydFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICAmJiAkRW5kVGltZXNbJElEXSA8ICRFbmRUaW1lc1skUG9zaXRpb25dCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15FbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjICcyNDowMCcgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUKICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skSURdICYmICRTdGFydFRpbWVzWyRJRF0gPT0gMTQ0MCApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWUyNEhvdXJzJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyB0aW1lcyBzdXBlcmlvciB0byAyNDowMCBhcmUgbm90IGFsbG93ZWQKICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skSURdICYmICRTdGFydFRpbWVzWyRJRF0gPiAxNDQwICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZUludmFsaWQnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJEVuZFRpbWVzWyRJRF0gJiYgJEVuZFRpbWVzWyRJRF0gPiAxNDQwICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZUludmFsaWQnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCByZWZlcmVuY2UgdG8gdGhlIHNlcnZlciBlcnJvciBtZXNzYWdlcyB0byBiZSBzaG93bgogICAgICAgICAgICBpZiAoICRFcnJvcnN7JEVycm9ySW5kZXh9ICYmICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lU2VydmVyRXJyb3JCbG9ja30gPSBcQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2s7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lU2VydmVyRXJyb3JCbG9ja30gPSBcQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG92ZXJ3cml0ZSBwZXJpb2QgaWYgdGhlcmUgYXJlIHN0YXJ0IGFuZCBlbmQgdGltZXMKICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skSURdICYmICRFbmRUaW1lc1skSURdICkgewogICAgICAgICAgICAgICAgJFBlcmlvZCA9ICRFbmRUaW1lc1skSURdIC0gJFN0YXJ0VGltZXNbJElEXTsKCiAgICAgICAgICAgICAgICAjIGNvbnZlcnQgcGVyaW9kIGZyb20gbWludXRlcyB0byBob3VycwogICAgICAgICAgICAgICAgJFBlcmlvZCAvPSA2MDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBmb3IgZXJyb3JzIGluIHRoZSBwZXJpb2QKICAgICAgICAgICAgaWYgKCAkUGVyaW9kID09IDAgKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrLCAnWmVyb0hvdXJzUGVyaW9kU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OklucHV0SG91cnNXaXRob3V0U3RhcnRFbmRUaW1lJykKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICggJFBlcmlvZCA8IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQFBlcmlvZFNlcnZlckVycm9yQmxvY2ssICdOZWdhdGl2ZVBlcmlvZFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRQZXJpb2QgPiAyNCApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQFBlcmlvZFNlcnZlckVycm9yQmxvY2ssICdJbnZhbGlkSG91cnNQZXJpb2RTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrfSA9IFxAUGVyaW9kU2VydmVyRXJyb3JCbG9jazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igb24gdGhpcyByb3csIHNhdmUgYWxsIGRhdGEgaW4gdGhlIHNlcnZlciBlcnJvciBoYXNoCiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkRXJyb3JzeyRFcnJvckluZGV4fSApIHsKICAgICAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0SUQgQWN0aW9uSUQgUmVtYXJrIFN0YXJ0VGltZSBFbmRUaW1lKSkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9eyRQYXJhbWV0ZXJ9ID0gJFBhcmFteyRQYXJhbWV0ZXJ9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UGVyaW9kfSA9ICRQZXJpb2Q7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3RoZXJ3aXNlLCBzYXZlIHJvdyBvbiB0aGUgREIKICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBpbml0aWFsaXplIHRoZSBhcnJheSBvZiB3b3JraW5nIHVuaXRzCiAgICAgICAgICAgICAgICBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH0gPSAoKTsKCiAgICAgICAgICAgICAgICAjIHJlcGxhY2UgMjQ6MDAgZm9yIDIzOjU5OjU5IHRvIGJlIGEgdmFsaWQgZW50cnkgaW4gdGhlIERCCiAgICAgICAgICAgICAgICAkUGFyYW17RW5kVGltZX0gPSAkUGFyYW17RW5kVGltZX0gZXEgJzI0OjAwJyA/ICcyMzo1OTo1OScgOiAkUGFyYW17RW5kVGltZX07CgogICAgICAgICAgICAgICAgbXkgJVdvcmtpbmdVbml0ID0gKAogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUGFyYW17UHJvamVjdElEfSwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJFBhcmFte0FjdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJFBhcmFte1JlbWFya30sCiAgICAgICAgICAgICAgICAgICAgU3RhcnRUaW1lID0+ICRQYXJhbXtTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgICAgIEVuZFRpbWUgICA9PiAkUGFyYW17RW5kVGltZX0sCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICRQZXJpb2QsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcHVzaCBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH0sIFwlV29ya2luZ1VuaXQ7CgogICAgICAgICAgICAgICAgJERhdGF7WWVhcn0gICA9ICRQYXJhbXtZZWFyfTsKICAgICAgICAgICAgICAgICREYXRhe01vbnRofSAgPSAkUGFyYW17TW9udGh9OwogICAgICAgICAgICAgICAgJERhdGF7RGF5fSAgICA9ICRQYXJhbXtEYXl9OwogICAgICAgICAgICAgICAgJERhdGF7VXNlcklEfSA9ICRTZWxmLT57VXNlcklEfTsKCiAgICAgICAgICAgICAgICBpZiAoICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCglRGF0YSkgKSB7CgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpbmNyZW1lbnQgdGhlIGVycm9yIGluZGV4IGlmIHRoZXJlIHdhcyBhbiBlcnJvciBvbiB0aGlzIHJvdwogICAgICAgICAgICAkRXJyb3JJbmRleCsrIGlmICggZGVmaW5lZCAkRXJyb3JzeyRFcnJvckluZGV4fSApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCVTZXJ2ZXJFcnJvckRhdGEpIHsKICAgICAgICAgICAgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ID0gdW5kZWY7CiAgICAgICAgfQogICAgfQoKICAgICMgU2hvdyBXb3JraW5nIFVuaXRzCiAgICAjIGdldCBleGlzdGluZyB3b3JraW5nIHVuaXRzCiAgICAlRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IG51bWJlciBvZiB3b3JraW5nIHVuaXRzICg9cmVjb3JkcykKICAgICMgICAgaWYgYmlnZ2VyIHRoYW4gUmVjb3Jkc051bWJlciwgbW9yZSB0aGFuIHRoZSBudW1iZXIgb2YgZGVmYXVsdCByZWNvcmRzIHdlcmUgc2F2ZWQgZm9yCiAgICAjICAgIHRoaXMgZGF0ZQogICAgaWYgKCAkRGF0YXtXb3JraW5nVW5pdHN9ICkgewogICAgICAgIG15ICRXb3JraW5nVW5pdHNDb3VudCA9IEB7ICREYXRhe1dvcmtpbmdVbml0c30gfTsKICAgICAgICBpZiAoICRXb3JraW5nVW5pdHNDb3VudCA+ICRQYXJhbXtSZWNvcmRzTnVtYmVyfSApIHsKICAgICAgICAgICAgJFBhcmFte1JlY29yZHNOdW1iZXJ9ID0gJFdvcmtpbmdVbml0c0NvdW50OwogICAgICAgIH0KICAgIH0KCiAgICBteSAlRnJvbnRlbmQ7CgogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpJbnB1dEhvdXJzV2l0aG91dFN0YXJ0RW5kVGltZScpICkgewogICAgICAgICRQYXJhbXtQZXJpb2RCbG9ja30gICA9ICdVbml0SW5wdXRQZXJpb2QnOwogICAgICAgICRGcm9udGVuZHtQZXJpb2ROb3RlfSA9ICcqJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtQZXJpb2RCbG9ja30gICA9ICdVbml0UGVyaW9kV2l0aG91dElucHV0JzsKICAgICAgICAkRnJvbnRlbmR7UGVyaW9kTm90ZX0gPSAnJzsKICAgIH0KCiAgICBpZiAoICREYXRlVGltZU9iamVjdEN1cnJlbnQtPkNvbXBhcmUoIERhdGVUaW1lT2JqZWN0ID0+ICREYXRlVGltZU9iamVjdEdpdmVuICkgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VuaXRCbG9jaycsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgc2ljaywgbGVhdmUgZGF5IGFuZCBvdmVydGltZQogICAgJFBhcmFte1NpY2t9ICAgICA9ICREYXRhe1NpY2t9ICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsKICAgICRQYXJhbXtMZWF2ZURheX0gPSAkRGF0YXtMZWF2ZURheX0gPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJyc7CiAgICAkUGFyYW17T3ZlcnRpbWV9ID0gJERhdGF7T3ZlcnRpbWV9ID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnOwoKICAgICRQYXJhbXtUb3RhbH0gPSAkRGF0YXtUb3RhbH07CgogICAgIyBzZXQgYWN0aW9uIGxpc3QgYW5kIHJlbGF0ZWQgY29uc3RyYWludHMKICAgICMgZ2VuZXJhdGUgYSBKYXZhU2NyaXB0IEFycmF5IHdoaWNoIHdpbGwgYmUgb3V0cHV0IHRvIHRoZSB0ZW1wbGF0ZQogICAgbXkgQEFjdGlvbklEcyA9IHNvcnQgeyAkQWN0aW9uTGlzdHskYX0gY21wICRBY3Rpb25MaXN0eyRifSB9IGtleXMgJUFjdGlvbkxpc3Q7CiAgICBteSBASlNBY3Rpb25zOwogICAgZm9yIG15ICRBY3Rpb25JRCAoQEFjdGlvbklEcykgewogICAgICAgIHB1c2ggQEpTQWN0aW9ucywgWwogICAgICAgICAgICAkQWN0aW9uSUQsCiAgICAgICAgICAgICRBY3Rpb25MaXN0eyRBY3Rpb25JRH0KICAgICAgICBdOwogICAgfQoKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnQWN0aW9uTGlzdCcsCiAgICAgICAgVmFsdWUgPT4gXEBKU0FjdGlvbnMKICAgICk7CgogICAgbXkgJEFjdGlvbkxpc3RDb25zdHJhaW50cyA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkFjdGlvbkxpc3RDb25zdHJhaW50cycpOwogICAgbXkgQEpTQWN0aW9uTGlzdENvbnN0cmFpbnRzOwogICAgZm9yIG15ICRQcm9qZWN0TmFtZVJlZ0V4cCAoIHNvcnQga2V5cyAleyRBY3Rpb25MaXN0Q29uc3RyYWludHN9ICkgewogICAgICAgIG15ICRBY3Rpb25OYW1lUmVnRXhwID0gJEFjdGlvbkxpc3RDb25zdHJhaW50cy0+eyRQcm9qZWN0TmFtZVJlZ0V4cH07CiAgICAgICAgc3soWyciXFxdKX17XFwkMX1zbXhnIGZvciAoICRQcm9qZWN0TmFtZVJlZ0V4cCwgJEFjdGlvbk5hbWVSZWdFeHAgKTsKICAgICAgICBwdXNoIEBKU0FjdGlvbkxpc3RDb25zdHJhaW50cywgWwogICAgICAgICAgICAkUHJvamVjdE5hbWVSZWdFeHAsCiAgICAgICAgICAgICRBY3Rpb25OYW1lUmVnRXhwCiAgICAgICAgXTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ0FjdGlvbkxpc3RDb25zdHJhaW50cycsCiAgICAgICAgVmFsdWUgPT4gXEBKU0FjdGlvbkxpc3RDb25zdHJhaW50cwogICAgKTsKCiAgICAjIGJ1aWxkIGEgd29ya2luZyB1bml0IGFycmF5CiAgICBteSBAVW5pdHMgPSAodW5kZWYpOwogICAgaWYgKCAkRGF0YXtXb3JraW5nVW5pdHN9ICkgewogICAgICAgIHB1c2ggQFVuaXRzLCBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH0KICAgIH0KCiAgICAkRXJyb3JJbmRleCA9IDA7CgogICAgIyBidWlsZCB1bml0cwogICAgZm9yIG15ICRJRCAoIDEgLi4gJFBhcmFte1JlY29yZHNOdW1iZXJ9ICkgewogICAgICAgICRQYXJhbXtJRH0gPSAkSUQ7CiAgICAgICAgbXkgJFVuaXRSZWYgICA9ICRVbml0c1skSURdOwogICAgICAgIG15ICRTaG93RXJyb3IgPSAwOwoKICAgICAgICBpZiAoICEkVW5pdFJlZiApIHsKICAgICAgICAgICAgJEVycm9ySW5kZXgrKzsKICAgICAgICAgICAgJFNob3dFcnJvciA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBkYXRhIG9mIHByb2plY3RzCiAgICAgICAgbXkgJFByb2plY3RMaXN0ID0gJFNlbGYtPl9Qcm9qZWN0TGlzdCgKICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgICAgIHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1Byb2plY3RJRH0KICAgICAgICAgICAgICAgIHx8ICcnLAogICAgICAgICk7CgogICAgICAgICRQYXJhbXtQcm9qZWN0SUR9ID0gJFVuaXRSZWYtPntQcm9qZWN0SUR9CiAgICAgICAgICAgIHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1Byb2plY3RJRH0KICAgICAgICAgICAgfHwgJyc7CiAgICAgICAgJFBhcmFte1Byb2plY3ROYW1lfSA9ICcnOwoKICAgICAgICAjIHNldCBjb21tb24gcGFyYW1zIGZvciBwcm9qZWN0IHNlbGVjdGlvbgogICAgICAgIG15ICVQcm9qZWN0T3B0aW9uUGFyYW1zID0gKAogICAgICAgICAgICBOYW1lICAgICAgICA9PiAiUHJvamVjdElEWyRJRF0iLAogICAgICAgICAgICBJRCAgICAgICAgICA9PiAiUHJvamVjdElEJElEIiwKICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1Byb2plY3QgUHJvamVjdFNlbGVjdGlvbiAnCiAgICAgICAgICAgICAgICAuICggJEVycm9yc3skRXJyb3JJbmRleH17UHJvamVjdElESW52YWxpZH0gfHwgJycgKSwKICAgICAgICAgICAgT25DaGFuZ2UgPT4gIlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5GaWxsQWN0aW9uTGlzdCgkSUQpOyIsCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiUHJvamVjdCIpLAogICAgICAgICk7CgogICAgICAgIG15ICRFbmFibGVBdXRvQ29tcGxldGlvbiA9ICRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIikgfHwgMDsKICAgICAgICBteSAkQ2xhc3MgPSAkRW5hYmxlQXV0b0NvbXBsZXRpb24gPyAnIE1vZGVybml6ZScgOiAnJzsKCiAgICAgICAgIyBzZXQgcGFyYW1zIGZvciBtb2Rlcm4gaW5wdXRzCiAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7Q2xhc3N9IC49ICRDbGFzczsKCiAgICAgICAgaWYgKCAkRW5hYmxlQXV0b0NvbXBsZXRpb24gJiYgJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIikgKSB7CgogICAgICAgICAgICAjIGFkZCBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cwogICAgICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tEYXRhfSAgICA9ICRQcm9qZWN0TGlzdC0+e0FsbFByb2plY3RzfTsKICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RmlsdGVyc30gPSB7CiAgICAgICAgICAgICAgICBMYXN0UHJvamVjdHMgPT4gewogICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0xhc3QgUHJvamVjdHMnKSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZXMgPT4gJFByb2plY3RMaXN0LT57TGFzdFByb2plY3RzfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CgogICAgICAgICAgICAjIGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMsIGV4cGFuZCBmaWx0ZXIgZGlhbG9nCiAgICAgICAgICAgIGlmICggc2NhbGFyIEB7ICRQcm9qZWN0TGlzdC0+e0xhc3RQcm9qZWN0c30gfSA+IDEgKSB7CiAgICAgICAgICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tFeHBhbmRGaWx0ZXJzfSA9IDE7CgogICAgICAgICAgICAgICAgIyBtYWtlIHRoZSBmaWx0ZXIgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgJ0FjdGl2ZUZpbHRlcicgaXMgZW5hYmxlZAogICAgICAgICAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpBY3RpdmVGaWx0ZXIiKSApIHsKICAgICAgICAgICAgICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tGaWx0ZXJzfS0+e0xhc3RQcm9qZWN0c30tPntBY3RpdmV9ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIyBzZXQgcGFyYW1zIGZvciB0cmFkaXRpb25hbCBzZWxlY3RzIChhbmQgbW9kZXJuIGlucHV0IGZpZWxkcyBpZiBmaWx0ZXIgaXMgbm90IHVzZWQpCiAgICAgICAgICAgIG15IEBQcm9qZWN0cyA9ICggQHsgJFByb2plY3RMaXN0LT57TGFzdFByb2plY3RzfSB9LCBAeyAkUHJvamVjdExpc3QtPntBbGxQcm9qZWN0c30gfSApOwogICAgICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tEYXRhfSA9IFxAUHJvamVjdHM7CiAgICAgICAgfQoKICAgICAgICAjIGJ1aWxkIHByb2plY3RzIHNlbGVjdAogICAgICAgICRGcm9udGVuZHtQcm9qZWN0T3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAlUHJvamVjdE9wdGlvblBhcmFtcywKICAgICAgICApOwoKICAgICAgICAjIGFjdGlvbiBsaXN0IGluaXRpYWxseSBvbmx5IGNvbnRhaW5zIGVtcHR5IGFuZCBzZWxlY3RlZCBlbGVtZW50IGFzIHdlbGwgYXMgZWxlbWVudHMKICAgICAgICAjIGNvbmZpZ3VyZWQgZm9yIHNlbGVjdGVkIHByb2plY3QKICAgICAgICAjIGlmIG5vIGNvbnN0cmFpbnRzIGFyZSBjb25maWd1cmVkLCBhbGwgYWN0aW9ucyB3aWxsIGJlIGRpc3BsYXllZAogICAgICAgIG15ICRBY3Rpb25EYXRhID0gJFNlbGYtPl9BY3Rpb25MaXN0Q29uc3RyYWludHMoCiAgICAgICAgICAgIFByb2plY3RJRCA9PiAkVW5pdFJlZi0+e1Byb2plY3RJRH0gfHwgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH0tPntQcm9qZWN0SUR9LAogICAgICAgICAgICBQcm9qZWN0TGlzdCAgICAgICAgICAgPT4gJFByb2plY3RMaXN0LAogICAgICAgICAgICBBY3Rpb25MaXN0ICAgICAgICAgICAgPT4gXCVBY3Rpb25MaXN0LAogICAgICAgICAgICBBY3Rpb25MaXN0Q29uc3RyYWludHMgPT4gJEFjdGlvbkxpc3RDb25zdHJhaW50cywKICAgICAgICApOwogICAgICAgICRBY3Rpb25EYXRhLT57Jyd9ID0gJy0nOwoKICAgICAgICBpZiAoICRVbml0UmVmICYmICRVbml0UmVmLT57QWN0aW9uSUR9ICYmICRBY3Rpb25MaXN0eyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9ICkgewogICAgICAgICAgICAkQWN0aW9uRGF0YS0+eyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9ID0gJEFjdGlvbkxpc3R7ICRVbml0UmVmLT57QWN0aW9uSUR9IH07CiAgICAgICAgfQogICAgICAgIGVsc2lmICgKICAgICAgICAgICAgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH0KICAgICAgICAgICAgJiYgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17QWN0aW9uSUR9CiAgICAgICAgICAgICYmICRBY3Rpb25MaXN0eyAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0gfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkQWN0aW9uRGF0YS0+eyAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0gfQogICAgICAgICAgICAgICAgPSAkQWN0aW9uTGlzdHsgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17QWN0aW9uSUR9IH07CiAgICAgICAgfQoKICAgICAgICAkRnJvbnRlbmR7QWN0aW9uT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAoKICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gJEFjdGlvbkRhdGEsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgID0+ICRVbml0UmVmLT57QWN0aW9uSUR9IHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e0FjdGlvbklEfSB8fCAnJywKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gIkFjdGlvbklEWyRJRF0iLAogICAgICAgICAgICBJRCAgICAgICAgICA9PiAiQWN0aW9uSUQkSUQiLAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICAgICBDbGFzcyAgICAgICA9PiAnVmFsaWRhdGVfRGVwZW5kaW5nUmVxdWlyZWRBTkQgVmFsaWRhdGVfRGVwZW5kaW5nX1Byb2plY3RJRCcKICAgICAgICAgICAgICAgIC4gJElECiAgICAgICAgICAgICAgICAuICcgQWN0aW9uU2VsZWN0aW9uICcKICAgICAgICAgICAgICAgIC4gKCAkRXJyb3JzeyRFcnJvckluZGV4fXtBY3Rpb25JREludmFsaWR9IHx8ICcnICkKICAgICAgICAgICAgICAgIC4gJENsYXNzLAogICAgICAgICAgICBUaXRsZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlRhc2siKSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17UmVtYXJrfSA9ICRVbml0UmVmLT57UmVtYXJrfSB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtSZW1hcmt9IHx8ICcnOwoKICAgICAgICBteSAkUGVyaW9kOwogICAgICAgIGlmICgKICAgICAgICAgICAgKCAkVW5pdFJlZi0+e1BlcmlvZH0gJiYgJFVuaXRSZWYtPntQZXJpb2R9ID09IDAgKQogICAgICAgICAgICB8fCAoCiAgICAgICAgICAgICAgICBkZWZpbmVkICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1BlcmlvZH0KICAgICAgICAgICAgICAgICYmICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1BlcmlvZH0gPT0gMAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQZXJpb2QgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBlcmlvZCA9ICRVbml0UmVmLT57UGVyaW9kfSB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQZXJpb2R9IHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRUaW1lUGVyaW9kIChxdyhTdGFydFRpbWUgRW5kVGltZSkpIHsKICAgICAgICAgICAgaWYgKCRTaG93RXJyb3IpIHsKICAgICAgICAgICAgICAgICRQYXJhbXskVGltZVBlcmlvZH0gPSAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXskVGltZVBlcmlvZH0gLy8gJyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUGFyYW17JFRpbWVQZXJpb2R9ID0gJFVuaXRSZWYtPnskVGltZVBlcmlvZH0gLy8gJyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgKICAgICAgICAgICAgJFBlcmlvZAogICAgICAgICAgICAmJiAkUGFyYW17U3RhcnRUaW1lfSBlcSAnMDA6MDAnCiAgICAgICAgICAgICYmICRQYXJhbXtFbmRUaW1lfSBlcSAnMDA6MDAnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtTdGFydFRpbWV9ID0gJyc7CiAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSAgID0gJyc7CiAgICAgICAgfQoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVW5pdCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJUZyb250ZW5kLAogICAgICAgICAgICAgICAgJXsgJEVycm9yc3skRXJyb3JJbmRleH0gfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCBwcm9wZXIgc2VydmVyIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBzdGFydCBhbmQgZW5kIHRpbWVzCiAgICAgICAgbXkgJFNlcnZlckVycm9yQmxvY2tOYW1lOwogICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gKSB7CiAgICAgICAgICAgIGlmICggc2NhbGFyIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZVNlcnZlckVycm9yQmxvY2t9IH0gPiAwICkgewogICAgICAgICAgICAgICAgd2hpbGUgKCBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSA9IHNoaWZ0IEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZVNlcnZlckVycm9yQmxvY2t9IH07CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlcnZlckVycm9yQmxvY2tOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3InLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ICkgewogICAgICAgICAgICBpZiAoIHNjYWxhciBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lU2VydmVyRXJyb3JCbG9ja30gfSA+IDAgKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSA9IHNoaWZ0IEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9OwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdFbmRUaW1lR2VuZXJpY1NlcnZlckVycm9yJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJFBhcmFte1BlcmlvZEJsb2NrfSwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBQZXJpb2QgPT4gJFBlcmlvZCwKICAgICAgICAgICAgICAgIElEICAgICA9PiAkSUQsCiAgICAgICAgICAgICAgICAleyAkRXJyb3JzeyRFcnJvckluZGV4fSB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgYWRkIHByb3BlciBzZXJ2ZXIgZXJyb3IgbWVzc2FnZSBmb3IgdGhlIHBlcmlvZAogICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gKSB7CiAgICAgICAgICAgIGlmICggc2NhbGFyIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZFNlcnZlckVycm9yQmxvY2t9IH0gPiAwICkgewogICAgICAgICAgICAgICAgd2hpbGUgKCBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSA9IHNoaWZ0IEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZFNlcnZlckVycm9yQmxvY2t9IH07CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlcnZlckVycm9yQmxvY2tOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RHZW5lcmljU2VydmVyRXJyb3InLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZEdlbmVyaWNTZXJ2ZXJFcnJvcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyB2YWxpZGl0eSBjaGVjawogICAgICAgIGlmICgKICAgICAgICAgICAgJFBhcmFte0luc2VydFdvcmtpbmdVbml0c30KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntQcm9qZWN0SUR9CiAgICAgICAgICAgICYmICRVbml0UmVmLT57QWN0aW9uSUR9CiAgICAgICAgICAgICYmICRQYXJhbXtTaWNrfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICdTaWNrTGVhdmVNZXNzYWdlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAkUGFyYW17SW5zZXJ0V29ya2luZ1VuaXRzfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJFBhcmFte0xlYXZlRGF5fQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICdWYWNhdGlvbk1lc3NhZ2UnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9CiAgICAgICAgICAgICYmICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e0FjdGlvbklEfQogICAgICAgICAgICAmJiAkUGFyYW17T3ZlcnRpbWV9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtCbG9ja05hbWV9ID0gJ092ZXJ0aW1lTWVzc2FnZSc7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+Q29tcGFyZSggRGF0ZVRpbWVPYmplY3QgPT4gJERhdGVUaW1lT2JqZWN0R2l2ZW4gKSApIHsKICAgICAgICAkUGFyYW17VG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAoICRQYXJhbXtUb3RhbH0gfHwgMCApICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHZhbGlkaXR5IGNoZWNrcyBzdGFydAogICAgbXkgJEVycm9yTm90ZTsKICAgIGlmICggJFBhcmFte1RvdGFsfSAmJiAkUGFyYW17VG90YWx9ID4gMjQgKSB7CiAgICAgICAgJEVycm9yTm90ZSA9IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJyk7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9ICYmICRQYXJhbXtUb3RhbH0gJiYgJFBhcmFte1RvdGFsfSA+IDE2ICkgewogICAgICAgICRQYXJhbXtCbG9ja05hbWV9ID0gJ01vcmUxNkhvdXJzTWVzc2FnZSc7CiAgICB9CiAgICBpZiAoJEVycm9yTm90ZSkgewogICAgICAgIGlmICgKICAgICAgICAgICAgISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgICAgICAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRQYXJhbXtCbG9ja05hbWV9ICYmICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgIEtleSAgID0+ICdCbG9ja05hbWUnLAogICAgICAgICAgICBWYWx1ZSA9PiAkUGFyYW17QmxvY2tOYW1lfSwKICAgICAgICApOwogICAgfQoKICAgICRQYXJhbXtEYXRlfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkRGF0ZVNlbGVjdGlvbigKICAgICAgICAlUGFyYW0sCiAgICAgICAgVmFsaWRhdGUgPT4gMSwKICAgICAgICBQcmVmaXggICA9PiAnJywKICAgICAgICBGb3JtYXQgICA9PiAnRGF0ZUlucHV0Rm9ybWF0JywKICAgICk7CgogICAgaWYgKCAkRGF0ZVRpbWVPYmplY3RHaXZlbi0+Q29tcGFyZSggRGF0ZVRpbWVPYmplY3QgPT4gJERhdGVUaW1lT2JqZWN0QWxsb3dlZCApIDwgMCApIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17ICRQYXJhbXtZZWFyfSB9eyAkUGFyYW17TW9udGh9IH17ICRQYXJhbXtEYXl9IH0KICAgICAgICAgICAgJiYgISRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlYWRvbmx5JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uID0+CiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgKICAgICAgICAgICAgICAgICAgICAgICAgJ1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCcKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGluY29tcGxldGUgd29ya2luZyBkYXlzCiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdDsKICAgICVJbmNvbXBsZXRlV29ya2luZ0RheXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgZm9yIG15ICRZZWFySUQgKCBzb3J0IGtleXMgJXsgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfSB9ICkgewogICAgICAgIGZvciBteSAkTW9udGhJRCAoIHNvcnQga2V5cyAleyAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyRZZWFySUR9IH0gKSB7CiAgICAgICAgICAgIGZvciBteSAkRGF5SUQgKAogICAgICAgICAgICAgICAgc29ydCBrZXlzICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH17JE1vbnRoSUR9IH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c0xpc3R7IiRZZWFySUQtJE1vbnRoSUQtJERheUlEIn0gPSAiJFllYXJJRC0kTW9udGhJRC0kRGF5SUQiOwogICAgICAgICAgICAgICAgJFBhcmFte0luY29tcGxldGV9ID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIFNob3cgdGV4dCwgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgYXJlIGF2YWlsYWJsZQogICAgaWYgKCAkUGFyYW17SW5jb21wbGV0ZX0gKSB7CgogICAgICAgICMgaWYgbWFzcyBlbnRyeSBvcHRpb24gaXMgZW5hYmxlZCwgc2hvdyBsaXN0IG9mIHdvcmtpbmcgZGF5cwogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6QWxsb3dNYXNzRW50cnlGb3JVc2VyIikgKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJFdvcmtpbmdEYXlzICggc29ydCBrZXlzICVJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0ICkgewoKICAgICAgICAgICAgICAgIG15ICggJFllYXIsICRNb250aCwgJERheSApID0gc3BsaXQoIC8tLywgJEluY29tcGxldGVXb3JraW5nRGF5c0xpc3R7JFdvcmtpbmdEYXlzfSApOwogICAgICAgICAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0V29ya2luZ0RheSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoID0+ICRNb250aCwKICAgICAgICAgICAgICAgICAgICAgICAgRGF5ICAgPT4gJERheSwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXknLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBEYXRlICAgID0+ICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyRXb3JraW5nRGF5c30sCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGVIUiAgPT4gJERhdGVUaW1lT2JqZWN0V29ya2luZ0RheS0+VG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgV2Vla2RheSA9PiAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2Vla1RvTmFtZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciA9PiAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2VlayggJFllYXIsICRNb250aCwgJERheSApCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlIHNob3cgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgYXMgYSBkcm9wLWRvd24KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgY3VycmVudCBkYXkgaXMgaW5jb21wbGV0ZQogICAgICAgICAgICAjIGlmIHllcywgc2VsZWN0IHRoZSBjdXJyZW50IGRheSBpbiB0aGUgZHJvcC1kb3duCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIHNlbGVjdCB0aGUgZW1wdHkgZWxlbWVudAogICAgICAgICAgICBteSAkU2VsZWN0ZWRJRDsKCiAgICAgICAgICAgIGlmICggJEluY29tcGxldGVXb3JraW5nRGF5c0xpc3R7IiRQYXJhbXtZZWFyfS0kUGFyYW17TW9udGh9LSRQYXJhbXtEYXl9In0gKSB7CiAgICAgICAgICAgICAgICAkU2VsZWN0ZWRJRCA9ICIkUGFyYW17WWVhcn0tJFBhcmFte01vbnRofS0kUGFyYW17RGF5fSI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRJbmNvbXBsZVdvcmtpbmdEYXlzU2VsZWN0ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0LAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRTZWxlY3RlZElELAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICJJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0IiwKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgVGl0bGUgPT4KICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIkluY29tcGxldGUgV29ya2luZyBEYXlzIiksCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnSW5jb21wbGV0ZVdvcmtpbmdEYXlzJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEluY29tcGxldGVXb3JraW5nRGF5c1NlbGVjdCA9PiAkSW5jb21wbGVXb3JraW5nRGF5c1NlbGVjdCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBteSAkVmFjYXRpb25DaGVjayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VmFjYXRpb25DaGVjaygKICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBDYWxlbmRhciA9PiAkVXNlckRhdGF7Q2FsZW5kYXJ9LAogICAgKTsKCiAgICAkUGFyYW17V2Vla2RheX0KICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpLT5EYXlPZldlZWsoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gKTsKCiAgICAjIGdldCB3b3JraW5nIGRheXMgb2YgdGhlIHVzZXIncyBjYWxlbmRhcgogICAgbXkgJENhbGVuZGFyTmFtZSA9ICdUaW1lV29ya2luZ0hvdXJzJzsKICAgICRDYWxlbmRhck5hbWUgLj0gJFVzZXJEYXRhe0NhbGVuZGFyfSA/ICI6OkNhbGVuZGFyJFVzZXJEYXRhe0NhbGVuZGFyfSIgOiAnJzsKICAgIG15ICRDYWxlbmRhcldvcmtpbmdIb3VycyA9ICRDb25maWdPYmplY3QtPkdldCgkQ2FsZW5kYXJOYW1lKTsKCiAgICAjIHNob3cgIm90aGVyIHRpbWVzIiBibG9jaywgaWYgbmVjZXNzYXJ5CiAgICBpZiAoCiAgICAgICAgQHsgJENhbGVuZGFyV29ya2luZ0hvdXJzLT57ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSAtIDEgXSB9IH0KICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICApCiAgICB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ090aGVyVGltZXMnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICVGcm9udGVuZCwKICAgICAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkUGFyYW17V2Vla2RheV90b19UZXh0fSA9ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSAtIDEgXTsKCiAgICAjIGludGVncmF0ZSB0aGUgaGFuZGxpbmcgZm9yIHJlcXVpcmVkIHJlbWFya3MgaW4gcmVsYXRpb24gdG8gcHJvamVjdHMKICAgICRQYXJhbXtSZW1hcmtSZWdFeHB9ID0gJFNlbGYtPl9Qcm9qZWN0MlJlbWFya1JlZ0V4cCgpOwogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdSZW1hcmtSZWdFeHAnLAogICAgICAgIFZhbHVlID0+ICRQYXJhbXtSZW1hcmtSZWdFeHB9LAogICAgKTsKCiAgICAjIGJ1aWxkIG91dHB1dAogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiAnRWRpdCcsCiAgICApOwoKICAgIGlmICggISRJbmNvbXBsZXRlV29ya2luZ0RheXN7RW5mb3JjZUluc2VydH0gKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UHJvamVjdCcsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CgogICAgICAgICMgc2hvdyBjcmVhdGUgcHJvamVjdCBsaW5rLCBpZiBhbGxvd2VkCiAgICAgICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAkVXNlckRhdGF7Q3JlYXRlUHJvamVjdH0gKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ3JlYXRlUHJvamVjdCcsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgaWYgKCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze1dhcm5pbmd9ICkgewogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgIEluZm8gICAgID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJyksCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoJEVycm9yTm90ZSkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvICAgICA9PiAkRXJyb3JOb3RlLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoIGRlZmluZWQgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ICkKICAgIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1N1Y2Nlc3NmdWwgaW5zZXJ0IScpLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IG1hc3MgZW50cnkgbm90aWZpY2F0aW9uCiAgICBpZiAoICRQYXJhbXtOb3RpZmljYXRpb259IGVxICdFcnJvcicgKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gICAgID0+IFRyYW5zbGF0YWJsZSgnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzIScpLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtOb3RpZmljYXRpb259IGVxICdTdWNjZXNzZnVsJyApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzIScpLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IG5vdGlmaWNhdGlvbiBpZiB3cm9uZyBkYXRlIHdhcyBzZWxlY3RlZAogICAgaWYgKCAkUGFyYW17V3JvbmdEYXRlfSApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyAgICAgPT4gVHJhbnNsYXRhYmxlKCdFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJyksCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgKTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ1llYXInLAogICAgICAgIFZhbHVlID0+ICRQYXJhbXtZZWFyfSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ01vbnRoJywKICAgICAgICBWYWx1ZSA9PiAkUGFyYW17TW9udGh9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnRGF5JywKICAgICAgICBWYWx1ZSA9PiAkUGFyYW17RGF5fSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cgp9CgpzdWIgX0ZpcnN0VXNlclJlZGlyZWN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBGb3IgaW5pdGlhbCB1c2FnZSwgdGhlIGZpcnN0IGFnZW50IHdpdGggJ3J3JyByaWdodHMgd2lsbCBiZSByZWRpcmVjdGVkIHRvICdTZXR0aW5nJy4gVGhlbiB0aGV5IGNhbiBjb25maWd1cmUKICAgICMgICBpbml0aWFsIHNldHRpbmdzIGZvciB0aGUgdGltZSBhY2NvdW50aW5nIGZlYXR1cmUuCgogICAgIyBEZWZpbmUgYWN0aW9uIGFuZCBnZXQgaXRzIGZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24uCiAgICBteSAkQWN0aW9uID0gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJzsKICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259OwoKICAgICMgR2V0IGdyb3VwIG5hbWVzIGZyb20gY29uZmlnLgogICAgbXkgQEdyb3VwTmFtZXMgPSBAeyAkQ29uZmlnLT57R3JvdXB9IHx8IFtdIH07CgogICAgbXkgJFBlcm1pc3Npb24gPSAwOwoKICAgICMgSWYgYWNjZXNzIGlzIHJlc3RyaWN0ZWQsIGFsbG93IGFjY2VzcyBvbmx5IGlmIHVzZXIgaGFzIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIGluIGNvbmZpZ3VyZWQgZ3JvdXAocykuCiAgICBpZiAoQEdyb3VwTmFtZXMpIHsKCiAgICAgICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgICAgICMgR2V0IHVzZXIgZ3JvdXBzLCB3aGVyZSB0aGUgdXNlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zLgogICAgICAgIG15ICVHcm91cHMgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgVHlwZSAgID0+ICdydycsCiAgICAgICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICAgICAgKTsKCiAgICAgICAgR1JPVVA6CiAgICAgICAgZm9yIG15ICRHcm91cE5hbWUgKEBHcm91cE5hbWVzKSB7CiAgICAgICAgICAgIG5leHQgR1JPVVAgaWYgISRHcm91cE5hbWU7CgogICAgICAgICAgICAjIEdldCB0aGUgZ3JvdXAgSUQuCiAgICAgICAgICAgIG15ICRHcm91cElEID0gJEdyb3VwT2JqZWN0LT5Hcm91cExvb2t1cCgKICAgICAgICAgICAgICAgIEdyb3VwID0+ICRHcm91cE5hbWUsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgR1JPVVAgaWYgISRHcm91cElEOwoKICAgICAgICAgICAgIyBTdG9wIGNoZWNraW5nIGlmIG1lbWJlcnNoaXAgaW4gYXQgbGVhc3Qgb25lIGdyb3VwIGlzIGZvdW5kLgogICAgICAgICAgICBpZiAoICRHcm91cHN7JEdyb3VwSUR9ICkgewogICAgICAgICAgICAgICAgJFBlcm1pc3Npb24gPSAxOwogICAgICAgICAgICAgICAgbGFzdCBHUk9VUDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIE90aGVyd2lzZSwgYWx3YXlzIGFsbG93IGFjY2Vzcy4KICAgIGVsc2UgewogICAgICAgICRQZXJtaXNzaW9uID0gMTsKICAgIH0KCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kQWN0aW9uIiApIGlmICRQZXJtaXNzaW9uOwoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLicpLAogICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzIScpLAogICAgKTsKfQoKc3ViIF9BY3Rpb25MaXN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgbXkgJUFjdGlvbkxpc3Q7CiAgICBteSAlQWN0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyktPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgIyBnZXQgYWN0aW9uIHNldHRpbmdzCiAgICBBQ1RJT05JRDoKICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJUFjdGlvbiApIHsKICAgICAgICBuZXh0IEFDVElPTklEIGlmICEkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9uU3RhdHVzfTsKICAgICAgICBuZXh0IEFDVElPTklEIGlmICEkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9ufTsKICAgICAgICAkQWN0aW9uTGlzdHskQWN0aW9uSUR9ID0gJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvbn07CiAgICB9CiAgICAkQWN0aW9uTGlzdHsnJ30gPSAnJzsKCiAgICByZXR1cm4gJUFjdGlvbkxpc3Q7Cn0KCnN1YiBfQWN0aW9uTGlzdENvbnN0cmFpbnRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUxpc3Q7CiAgICBpZiAoICRQYXJhbXtQcm9qZWN0SUR9ICYmIGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3RDb25zdHJhaW50c30gfSApIHsKICAgICAgICBteSAkUHJvamVjdE5hbWU7CgogICAgICAgIFBST0pFQ1Q6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0ICggQHsgJFBhcmFte1Byb2plY3RMaXN0fS0+e0FsbFByb2plY3RzfSB9ICkgewogICAgICAgICAgICBpZiAoICRQcm9qZWN0LT57S2V5fSBlcSAkUGFyYW17UHJvamVjdElEfSApIHsKICAgICAgICAgICAgICAgICRQcm9qZWN0TmFtZSA9ICRQcm9qZWN0LT57VmFsdWV9OwogICAgICAgICAgICAgICAgbGFzdCBQUk9KRUNUOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoIGRlZmluZWQoJFByb2plY3ROYW1lKSApIHsKCiAgICAgICAgICAgICMgbG9vcCBvdmVyIGFjdGlvbnMgdG8gZmluZCBtYXRjaGVzIGZvciBjb25maWd1cmVkIHByb2plY3QKICAgICAgICAgICAgIyBhbmQgYWN0aW9uIHJlZy1leHAgcGFpcnMKICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQga2V5cyAleyAkUGFyYW17QWN0aW9uTGlzdH0gfSApIHsKCiAgICAgICAgICAgICAgICBteSAkQWN0aW9uTmFtZSA9ICRQYXJhbXtBY3Rpb25MaXN0fS0+eyRBY3Rpb25JRH07CgogICAgICAgICAgICAgICAgUFJPSkVDVE5BTUVSRUdFWFA6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFByb2plY3ROYW1lUmVnRXhwICggc29ydCBrZXlzICV7ICRQYXJhbXtBY3Rpb25MaXN0Q29uc3RyYWludHN9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJEFjdGlvbk5hbWVSZWdFeHAgPSAkUGFyYW17QWN0aW9uTGlzdENvbnN0cmFpbnRzfS0+eyRQcm9qZWN0TmFtZVJlZ0V4cH07CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAkUHJvamVjdE5hbWUgPX4gbXskUHJvamVjdE5hbWVSZWdFeHB9c214CiAgICAgICAgICAgICAgICAgICAgICAgICYmICRBY3Rpb25OYW1lID1+IG17JEFjdGlvbk5hbWVSZWdFeHB9c214CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMaXN0eyRBY3Rpb25JRH0gPSAkQWN0aW9uTmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBQUk9KRUNUTkFNRVJFR0VYUDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBhbGwgYXZhaWxhYmxlIGFjdGlvbnMgd2lsbCBiZSBhZGRlZCBpZiBubyBhY3Rpb24gd2FzIGFkZGVkIGFib3ZlIChwb3NzaWJsZSBtaXNjb25maWd1cmF0aW9uKQogICAgaWYgKCAha2V5cyAlTGlzdCApIHsKICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICV7ICRQYXJhbXtBY3Rpb25MaXN0fSB9ICkgewogICAgICAgICAgICBteSAkQWN0aW9uTmFtZSA9ICRQYXJhbXtBY3Rpb25MaXN0fS0+eyRBY3Rpb25JRH07CiAgICAgICAgICAgICRMaXN0eyRBY3Rpb25JRH0gPSAkQWN0aW9uTmFtZTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIFwlTGlzdDsKfQoKc3ViIF9Qcm9qZWN0TGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgZ2V0IHByb2plY3Qgc2V0dGluZ3MKICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoCiAgICAgICAgU3RhdHVzID0+ICd2YWxpZCcsCiAgICApOwoKICAgIGlmICggISRTZWxmLT57TGFzdFByb2plY3RzUmVmfSApIHsKCiAgICAgICAgIyBnZXQgdGhlIGxhc3QgcHJvamVjdHMKICAgICAgICBteSBATGFzdFByb2plY3RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5MYXN0UHJvamVjdHNPZlVzZXIoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgdGhlIGZhdm9yaXRlcwogICAgICAgICV7ICRTZWxmLT57TGFzdFByb2plY3RzUmVmfSB9ID0gbWFwIHsgJF8gPT4gMSB9IEBMYXN0UHJvamVjdHM7CiAgICB9CgogICAgbXkgQExhc3RQcm9qZWN0cyA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICcnLAogICAgICAgICAgICBWYWx1ZSA9PiAnLScsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgdGhlIHNlcGFyYXRvcgogICAgUFJPSkVDVElEOgogICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgIHNvcnQgeyAkUHJvamVjdHtQcm9qZWN0fXskYX0gY21wICRQcm9qZWN0e1Byb2plY3R9eyRifSB9CiAgICAgICAga2V5cyAleyAkUHJvamVjdHtQcm9qZWN0fSB9CiAgICAgICAgKQogICAgewogICAgICAgIG5leHQgUFJPSkVDVElEIGlmICEkU2VsZi0+e0xhc3RQcm9qZWN0c1JlZn0tPnskUHJvamVjdElEfTsKICAgICAgICBteSAlSGFzaCA9ICgKICAgICAgICAgICAgS2V5ICAgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgVmFsdWUgPT4gJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH0sCiAgICAgICAgKTsKICAgICAgICBwdXNoIEBMYXN0UHJvamVjdHMsIFwlSGFzaDsKICAgIH0KCiAgICBATGFzdFByb2plY3RzID0gJFNlbGYtPl9Qcm9qZWN0TGlzdENvbnN0cmFpbnRzKAogICAgICAgIExpc3QgICAgICAgPT4gXEBMYXN0UHJvamVjdHMsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17U2VsZWN0ZWRJRH0gfHwgJycsCiAgICApOwoKICAgIG15IEBBbGxQcm9qZWN0czsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgY2hlY2sgaWYgQXV0b0NvbXBsZXRpb24gaXMgZGlzYWJsZWQKICAgICMgaW4gdGhpcyBjYXNlIGEgc2VwYXJhdG9yIGlzIG5lZWRlZCBiZXR3ZWVuIHR3byBsaXN0cyBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsKQogICAgaWYgKAogICAgICAgICEkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiIpCiAgICAgICAgfHwgISRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciIpCiAgICAgICAgKQogICAgewogICAgICAgIGlmICggc2NhbGFyIEBMYXN0UHJvamVjdHMgPiAxICkgewoKICAgICAgICAgICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAgICAgICAgICMgYWRkIGxhc3QgcHJvamVjdHMgc2VwYXJhdG9yIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3QKICAgICAgICAgICAgbXkgJExhc3RQcm9qZWN0c1N0ciA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cycpOwoKICAgICAgICAgICAgdW5zaGlmdCBATGFzdFByb2plY3RzLCB7CiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnMCcsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAiLS0tJExhc3RQcm9qZWN0c1N0ci0tLSIsCiAgICAgICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgIyBhZGQgYWxsIHByb2plY3RzIHNlcGFyYXRvciByaWdodCBhZnRlciB0aGUgbGFzdCBzZWxlY3RlZCBwcm9qZWN0cyBsaXN0CiAgICAgICAgICAgIG15ICRBbGxQcm9qZWN0c1N0ciA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQWxsIFByb2plY3RzJyk7CgogICAgICAgICAgICBwdXNoIEBMYXN0UHJvamVjdHMsIHsKICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICcwJywKICAgICAgICAgICAgICAgIFZhbHVlICAgID0+ICItLS0kQWxsUHJvamVjdHNTdHItLS0iLAogICAgICAgICAgICAgICAgRGlzYWJsZWQgPT4gMSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBAQWxsUHJvamVjdHMgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICcnLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJy0nLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBhZGQgYWxsIGFsbG93ZWQgcHJvamVjdHMgdG8gdGhlIGxpc3QKICAgIFBST0pFQ1RJRDoKICAgIGZvciBteSAkUHJvamVjdElEICgKICAgICAgICBzb3J0IHsgJFByb2plY3R7UHJvamVjdH17JGF9IGNtcCAkUHJvamVjdHtQcm9qZWN0fXskYn0gfQogICAgICAgIGtleXMgJXsgJFByb2plY3R7UHJvamVjdH0gfQogICAgICAgICkKICAgIHsKICAgICAgICBuZXh0IFBST0pFQ1RJRCBpZiAhJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH07CiAgICAgICAgbXkgJUhhc2ggPSAoCiAgICAgICAgICAgIEtleSAgID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgIFZhbHVlID0+ICRQcm9qZWN0e1Byb2plY3R9eyRQcm9qZWN0SUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAkUGFyYW17U2VsZWN0ZWRJRH0gJiYgJFBhcmFte1NlbGVjdGVkSUR9IGVxICRQcm9qZWN0SUQgKSB7CiAgICAgICAgICAgICRIYXNoe1NlbGVjdGVkfSA9IDE7CiAgICAgICAgfQoKICAgICAgICBwdXNoIEBBbGxQcm9qZWN0cywgXCVIYXNoOwogICAgfQoKICAgIEBBbGxQcm9qZWN0cyA9ICRTZWxmLT5fUHJvamVjdExpc3RDb25zdHJhaW50cygKICAgICAgICBMaXN0ICAgICAgID0+IFxAQWxsUHJvamVjdHMsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17U2VsZWN0ZWRJRH0gfHwgJycsCiAgICApOwoKICAgIG15ICVQcm9qZWN0cyA9ICgKICAgICAgICBMYXN0UHJvamVjdHMgPT4gXEBMYXN0UHJvamVjdHMsCiAgICAgICAgQWxsUHJvamVjdHMgID0+IFxAQWxsUHJvamVjdHMsCiAgICApOwoKICAgIHJldHVybiBcJVByb2plY3RzOwp9CgpzdWIgX1Byb2plY3RMaXN0Q29uc3RyYWludHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATGlzdDsKICAgIG15ICRQcm9qZWN0Q291bnQgICAgICAgICAgID0gMDsKICAgIG15ICRQcm9qZWN0TGlzdENvbnN0cmFpbnRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdUaW1lQWNjb3VudGluZzo6UHJvamVjdExpc3RDb25zdHJhaW50cycpOwoKICAgIGlmICgga2V5cyAleyRQcm9qZWN0TGlzdENvbnN0cmFpbnRzfSApIHsKCiAgICAgICAgIyBnZXQgZ3JvdXBzIG9mIGN1cnJlbnQgdXNlcgogICAgICAgIG15ICVHcm91cHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ3JvJywKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICApOwogICAgICAgICVHcm91cHMgPSBtYXAgeyAkR3JvdXBzeyRffSA9PiAxIH0ga2V5cyAlR3JvdXBzOwoKICAgICAgICAjIGdldCBwcm9qZWN0IGxpc3QgY29uc3RyYWludHMKICAgICAgICBteSAlUHJvamVjdFJlZ2V4OwogICAgICAgIGZvciBteSAkUHJvamVjdFJlZ2V4ICggc29ydCBrZXlzICV7JFByb2plY3RMaXN0Q29uc3RyYWludHN9ICkgewogICAgICAgICAgICBmb3IgbXkgJFByb2plY3RHcm91cCAoIHNwbGl0IC8sXHMqLywgJFByb2plY3RMaXN0Q29uc3RyYWludHMtPnskUHJvamVjdFJlZ2V4fSApIHsKICAgICAgICAgICAgICAgIGlmICggJEdyb3Vwc3skUHJvamVjdEdyb3VwfSApIHsKICAgICAgICAgICAgICAgICAgICAkUHJvamVjdFJlZ2V4eyRQcm9qZWN0UmVnZXh9ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBteSBAUHJvamVjdFJlZ2V4ID0ga2V5cyAlUHJvamVjdFJlZ2V4OwoKICAgICAgICAjIHJlZHVjZSBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIGNvbmZpZ3VyYXRpb24KICAgICAgICBpZiAoIHJlZiggJFBhcmFte0xpc3R9ICkgJiYgQFByb2plY3RSZWdleCApIHsKCiAgICAgICAgICAgIG15ICRFbGVtZW50Q291bnQgPSAwOwoKICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0ICggQHsgJFBhcmFte0xpc3R9IH0gKSB7CiAgICAgICAgICAgICAgICBteSAkUHJvamVjdE5hbWUgPSAkUHJvamVjdC0+e1ZhbHVlfTsKCiAgICAgICAgICAgICAgICAjIGVtcHR5IGZpcnN0IGVsZW1lbnQsIGxhc3QgcHJvamVjdHMgc2VwYXJhdG9yIGFuZCBjdXJyZW50bHkgc2VsZWN0ZWQgcHJvamVjdAogICAgICAgICAgICAgICAgaWYgKCAhJEVsZW1lbnRDb3VudCB8fCAhJFByb2plY3QtPntLZXl9IHx8ICRQcm9qZWN0LT57S2V5fSBlcSAkUGFyYW17U2VsZWN0ZWRJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBATGlzdCwgJFByb2plY3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBQUk9KRUNUUkVHRVhQOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkUHJvamVjdFJlZ2V4IChAUHJvamVjdFJlZ2V4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJFByb2plY3ROYW1lID1+IG17JFByb2plY3RSZWdleH1zbXggKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBMaXN0LCAkUHJvamVjdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQcm9qZWN0Q291bnQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgUFJPSkVDVFJFR0VYUDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRFbGVtZW50Q291bnQrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBmdWxsIHByb2plY3QgbGlzdCBpZiBjb25zdHJhaW50cyByZXN1bHRlZCBpbiBlbXB0eSBwcm9qZWN0IGxpc3Qgb3IgaWYgY29uc3RyYWludHMgYXJlbid0CiAgICAjIGNvbmZpZ3VyZWQgKHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24pCiAgICBpZiAoICEkUHJvamVjdENvdW50ICkgewogICAgICAgIEBMaXN0ID0gQHsgJFBhcmFte0xpc3R9IH07CiAgICB9CgogICAgcmV0dXJuIEBMaXN0Owp9CgojIGludGVncmF0ZSB0aGUgaGFuZGxpbmcgZm9yIHJlcXVpcmVkIHJlbWFya3MgaW4gcmVsYXRpb24gdG8gcHJvamVjdHMKCnN1YiBfUHJvamVjdDJSZW1hcmtSZWdFeHAgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICBteSBAUHJvamVjdHMyUmVtYXJrID0gKCk7CiAgICBteSAlUHJvamVjdERhdGEgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyktPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJywKICAgICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgcmV0dXJuICcnIGlmICEkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpQcm9qZWN0MlJlbWFya1JlZ0V4cCcpOwoKICAgIG15ICRQcm9qZWN0MlJlbWFya1JlZ0V4cCA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OlByb2plY3QyUmVtYXJrUmVnRXhwJyk7CgogICAgZm9yIG15ICRQcm9qZWN0SUQgKCBzb3J0IGtleXMgJXsgJFByb2plY3REYXRhe1Byb2plY3R9IH0gKSB7CiAgICAgICAgaWYgKCAkUHJvamVjdERhdGF7UHJvamVjdH17JFByb2plY3RJRH0gPX4gbXskUHJvamVjdDJSZW1hcmtSZWdFeHB9c214ICkgewogICAgICAgICAgICBwdXNoIEBQcm9qZWN0czJSZW1hcmssICRQcm9qZWN0SUQ7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBqb2luICd8JywgQFByb2plY3RzMlJlbWFyazsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICAkU2VsZi0+e1RpbWVab25lfSA9ICRQYXJhbXtUaW1lWm9uZX0KICAgICAgICB8fCAkUGFyYW17VXNlclRpbWVab25lfQogICAgICAgIHx8ICREYXRlVGltZU9iamVjdC0+T1RSU1RpbWVab25lR2V0KCk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQE1vbnRoQXJyYXkgPSAoCiAgICAgICAgJycsICAgICAnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICAgICAnQXByaWwnLCAgICdNYXknLAogICAgICAgICdKdW5lJywgJ0p1bHknLCAgICAnQXVndXN0JywgICAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLAogICAgICAgICdEZWNlbWJlcicsCiAgICApOwogICAgbXkgQFdlZWtkYXlBcnJheSA9ICggJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0JywgJ1N1bicsICk7CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICREYXRlVGltZU9iamVjdEN1cnJlbnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBvdmVydmlldyBhYm91dCB0aGUgdXNlcnMgdGltZSBhY2NvdW50aW5nCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJEN1cnJlbnREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpLAogICAgKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdGF0dXMgRGF5IE1vbnRoIFllYXIgVXNlcklEIFByb2plY3RTdGF0dXNTaG93KSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KICAgICRQYXJhbXtBY3Rpb259ID0gJ0FnZW50VGltZUFjY291bnRpbmdFZGl0JzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkUGFyYW17VXNlcklEfSA9ICRTZWxmLT57VXNlcklEfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGlmICggJFBhcmFte1VzZXJJRH0gIT0gJFNlbGYtPntVc2VySUR9ICYmICEkU2VsZi0+e0FjY2Vzc1J3fSApIHsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICAkUGFyYW17QWN0aW9ufSA9ICdBZ2VudFRpbWVBY2NvdW50aW5nVmlldyc7CiAgICB9CiAgICBpZiAoICRQYXJhbXtVc2VySUR9ICE9ICRTZWxmLT57VXNlcklEfSApIHsKICAgICAgICBteSAlU2hvd25Vc2VycyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEKICAgICAgICApOwogICAgICAgICRQYXJhbXtVc2VyfSA9ICRTaG93blVzZXJzeyAkUGFyYW17VXNlcklEfSB9OwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVc2VyJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgICMgQ2hlY2sgRGF0ZQogICAgaWYgKCAhJFBhcmFte1llYXJ9IHx8ICEkUGFyYW17TW9udGh9ICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ID0gJE1vbnRoOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgfQoKICAgICMgc3RvcmUgbGFzdCBzY3JlZW4KICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW4nLAogICAgICAgIFZhbHVlID0+CiAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1llYXI9JFBhcmFte1llYXJ9O01vbnRoPSRQYXJhbXtNb250aH0iLAogICAgKTsKCiAgICAkUGFyYW17TW9udGhfdG9fVGV4dH0gPSAkTW9udGhBcnJheVsgJFBhcmFte01vbnRofSBdOwoKICAgICMgY3JlYXRlIG9uZSBiYXNlIG9iamVjdAogICAgbXkgJERhdGVUaW1lT2JqZWN0R2l2ZW4gPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgRGF5ICAgPT4gMSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3ROZXh0ID0gJERhdGVUaW1lT2JqZWN0R2l2ZW4tPkNsb25lKCk7CiAgICBteSAkRGF0ZVRpbWVPYmplY3RQcmV2ID0gJERhdGVUaW1lT2JqZWN0R2l2ZW4tPkNsb25lKCk7CiAgICBteSAkRGF0ZVBhcmFtc0N1cnJlbnQgID0gJERhdGVUaW1lT2JqZWN0R2l2ZW4tPkdldCgpOwoKICAgICMgY2FsY3VsYXRlIHRoZSBuZXh0IG1vbnRoCiAgICAkRGF0ZVRpbWVPYmplY3ROZXh0LT5BZGQoCiAgICAgICAgTW9udGhzID0+IDEsCiAgICApOwoKICAgIG15ICREYXRlUGFyYW1zTmV4dCA9ICREYXRlVGltZU9iamVjdE5leHQtPkdldCgpOwoKICAgICRQYXJhbXtZZWFyTmV4dH0gID0gJERhdGVQYXJhbXNOZXh0LT57WWVhcn07CiAgICAkUGFyYW17TW9udGhOZXh0fSA9ICREYXRlUGFyYW1zTmV4dC0+e01vbnRofTsKICAgICRQYXJhbXtEYXlOZXh0fSAgID0gJERhdGVQYXJhbXNOZXh0LT57RGF5fTsKCiAgICAjIGNhbGN1bGF0ZSB0aGUgbmV4dCBtb250aAogICAgJERhdGVUaW1lT2JqZWN0UHJldi0+U3VidHJhY3QoCiAgICAgICAgTW9udGhzID0+IDEsCiAgICApOwoKICAgIG15ICREYXRlUGFyYW1zQmFjayA9ICREYXRlVGltZU9iamVjdFByZXYtPkdldCgpOwogICAgJFBhcmFte1llYXJCYWNrfSAgPSAkRGF0ZVBhcmFtc0JhY2stPntZZWFyfTsKICAgICRQYXJhbXtNb250aEJhY2t9ID0gJERhdGVQYXJhbXNCYWNrLT57TW9udGh9OwogICAgJFBhcmFte0RheUJhY2t9ICAgPSAkRGF0ZVBhcmFtc0JhY2stPntEYXl9OwoKICAgICMgT3ZlcnZpZXcgcGVyIGRheQogICAgbXkgJExhc3REYXlPZk1vbnRoID0gJERhdGVUaW1lT2JqZWN0R2l2ZW4tPkxhc3REYXlPZk1vbnRoR2V0KCk7CiAgICBteSAkRGF5c09mTW9udGggICAgPSAkTGFzdERheU9mTW9udGgtPntEYXl9OwoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGZvciBteSAkRGF5ICggMSAuLiAkRGF5c09mTW9udGggKSB7CiAgICAgICAgJFBhcmFte0RheX0gPSBzcHJpbnRmKCAiJTAyZCIsICREYXkgKTsKCiAgICAgICAgJFBhcmFte1dlZWtkYXl9ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXlPZldlZWsoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gKTsKCiAgICAgICAgbXkgJFZhY2F0aW9uQ2hlY2sgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gJFVzZXJEYXRhe0NhbGVuZGFyfSwKICAgICAgICApOwoKICAgICAgICBteSAkRGF0ZSA9IHNwcmludGYoICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJERheSApOwogICAgICAgIG15ICREYXRlVGltZU9iamVjdFN0YXJ0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJERhdGUgLiAnIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIG15ICREYXlTdGFydFRpbWUgPSAkRGF0ZVRpbWVPYmplY3RTdGFydC0+VG9FcG9jaCgpOwoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3RTdG9wID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJERhdGUgLiAnIDIzOjU5OjU5JywKICAgICAgICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIG15ICREYXlTdG9wVGltZSA9ICREYXRlVGltZU9iamVjdFN0b3AtPlRvRXBvY2goKTsKCiAgICAgICAgIyBhZGQgdGltZSB6b25lIHRvIGNhbGN1bGF0aW9uCiAgICAgICAgbXkgJFVzZXJDYWxlbmRhciA9ICRVc2VyRGF0YXtDYWxlbmRhcn0gfHwgJyc7CiAgICAgICAgbXkgJFpvbmUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoICJUaW1lWm9uZTo6Q2FsZW5kYXIiIC4gJFVzZXJDYWxlbmRhciApOwogICAgICAgIGlmICgkWm9uZSkgewogICAgICAgICAgICBteSAkWm9uZVNlY29uZHMgPSAkWm9uZSAqIDYwICogNjA7CiAgICAgICAgICAgICREYXlTdGFydFRpbWUgPSAkRGF5U3RhcnRUaW1lIC0gJFpvbmVTZWNvbmRzOwogICAgICAgICAgICAkRGF5U3RvcFRpbWUgID0gJERheVN0b3BUaW1lIC0gJFpvbmVTZWNvbmRzOwogICAgICAgIH0KCiAgICAgICAgbXkgJFRoaXNEYXlXb3JraW5nVGltZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1RpbWUoCiAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAkRGF5U3RhcnRUaW1lLAogICAgICAgICAgICBTdG9wVGltZSAgPT4gJERheVN0b3BUaW1lLAogICAgICAgICAgICBDYWxlbmRhciAgPT4gJFVzZXJDYWxlbmRhciwKICAgICAgICApIHx8ICcwJzsKCiAgICAgICAgaWYgKCAkUGFyYW17WWVhcn0gZXEgJFllYXIgJiYgJFBhcmFte01vbnRofSBlcSAkTW9udGggJiYgJEN1cnJlbnREYXkgZXEgJERheSApIHsKICAgICAgICAgICAgJFBhcmFte0NsYXNzfSA9ICdBY3RpdmUnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoJFZhY2F0aW9uQ2hlY2spIHsKICAgICAgICAgICAgJFBhcmFte0NsYXNzfSAgID0gJ1ZhY2F0aW9uJzsKICAgICAgICAgICAgJFBhcmFte0NvbW1lbnR9ID0gJFZhY2F0aW9uQ2hlY2s7CiAgICAgICAgfQogICAgICAgIGVsc2lmICgkVGhpc0RheVdvcmtpbmdUaW1lKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gPSAnV29ya2luZ0RheSc7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkUGFyYW17Q2xhc3N9ID0gJ05vbldvcmtpbmdEYXknOwogICAgICAgIH0KCiAgICAgICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICRQYXJhbXtDb21tZW50fSA9ICREYXRhe1NpY2t9CiAgICAgICAgICAgID8gVHJhbnNsYXRhYmxlKCdTaWNrIGxlYXZlJykKICAgICAgICAgICAgOiAkRGF0YXtMZWF2ZURheX0gPyBUcmFuc2xhdGFibGUoJ09uIHZhY2F0aW9uJykKICAgICAgICAgICAgOiAkRGF0YXtPdmVydGltZX0gPyBUcmFuc2xhdGFibGUoJ09uIG92ZXJ0aW1lIGxlYXZlJykKICAgICAgICAgICAgOiAgICAgICAgICAgICAgICAgICAnJzsKCiAgICAgICAgJFBhcmFte1dvcmtpbmdIb3Vyc30gPSAkRGF0YXtUb3RhbH0gPyBzcHJpbnRmKCAiJS4yZiIsICREYXRhe1RvdGFsfSApIDogJyc7CgogICAgICAgICRQYXJhbXtXZWVrZGF5X3RvX1RleHR9ID0gJFdlZWtkYXlBcnJheVsgJFBhcmFte1dlZWtkYXl9IC0gMSBdOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdSb3cnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICAgICAgJFBhcmFte0NvbW1lbnR9ID0gJyc7CiAgICB9CgogICAgbXkgJVVzZXJSZXBvcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICApOwogICAgZm9yIG15ICRSZXBvcnRFbGVtZW50ICgKICAgICAgICBxdyhUYXJnZXRTdGF0ZSBUYXJnZXRTdGF0ZVRvdGFsIFdvcmtpbmdIb3Vyc1RvdGFsIFdvcmtpbmdIb3VycwogICAgICAgIE92ZXJ0aW1lIE92ZXJ0aW1lVG90YWwgT3ZlcnRpbWVVbnRpbCBMZWF2ZURheSBMZWF2ZURheVRvdGFsCiAgICAgICAgTGVhdmVEYXlSZW1haW5pbmcgU2ljayBTaWNrVG90YWwgU2lja1JlbWFpbmluZykKICAgICAgICApCiAgICB7CiAgICAgICAgJFVzZXJSZXBvcnR7ICRQYXJhbXtVc2VySUR9IH17JFJlcG9ydEVsZW1lbnR9IHx8PSAwOwogICAgICAgICRQYXJhbXskUmVwb3J0RWxlbWVudH0gPSBzcHJpbnRmKCAiJS4yZiIsICRVc2VyUmVwb3J0eyAkUGFyYW17VXNlcklEfSB9eyRSZXBvcnRFbGVtZW50fSApOwogICAgfQoKICAgIGlmICggJFVzZXJEYXRhe1Nob3dPdmVydGltZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ0aW1lJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBPdmVydmlldyBwZXIgcHJvamVjdCBhbmQgYWN0aW9uCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoIFwlUHJvamVjdERhdGEgKSApIHsKCiAgICAgICAgIyBzaG93IHRoZSByZXBvcnQgc29ydCBieSBwcm9qZWN0cwogICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gfHwgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAndmFsaWQnICkgewogICAgICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9ID0gJ2FsbCc7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyApIHsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICd2YWxpZCc7CiAgICAgICAgfQoKICAgICAgICAkUGFyYW17U2hvd1Byb2plY3RzfSA9ICdTaG93ICcgLiAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IC4gJyBwcm9qZWN0cyc7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0VGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CgogICAgICAgIFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgICAgIHNvcnQgeyAkUHJvamVjdERhdGF7JGF9e05hbWV9IGNtcCAkUHJvamVjdERhdGF7JGJ9e05hbWV9IH0ga2V5cyAlUHJvamVjdERhdGEKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJFByb2plY3RSZWYgPSAkUHJvamVjdERhdGF7JFByb2plY3RJRH07CiAgICAgICAgICAgIG15ICRBY3Rpb25zUmVmID0gJFByb2plY3RSZWYtPntBY3Rpb25zfTsKCiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSA9ICcnOwogICAgICAgICAgICAkUGFyYW17U3RhdHVzfSA9ICRQcm9qZWN0UmVmLT57U3RhdHVzfSA/ICcnIDogJ3Bhc3Npdic7CgogICAgICAgICAgICBteSAkVG90YWwgICAgICA9IDA7CiAgICAgICAgICAgIG15ICRUb3RhbFRvdGFsID0gMDsKCiAgICAgICAgICAgIG5leHQgUFJPSkVDVElEIGlmICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgJiYgJFBhcmFte1N0YXR1c307CgogICAgICAgICAgICBpZiAoJEFjdGlvbnNSZWYpIHsKICAgICAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKAogICAgICAgICAgICAgICAgICAgIHNvcnQgeyAkQWN0aW9uc1JlZi0+eyRhfXtOYW1lfSBjbXAgJEFjdGlvbnNSZWYtPnskYn17TmFtZX0gfQogICAgICAgICAgICAgICAgICAgIGtleXMgJXskQWN0aW9uc1JlZn0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbXkgJEFjdGlvblJlZiA9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfTsKCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte0FjdGlvbn0gICAgID0gJEFjdGlvblJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJEFjdGlvblJlZi0+e1Blck1vbnRofSB8fCAwICk7CiAgICAgICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57VG90YWx9IHx8IDAgKTsKICAgICAgICAgICAgICAgICAgICAkVG90YWwgICAgICArPSAkUGFyYW17SG91cnN9OwogICAgICAgICAgICAgICAgICAgICRUb3RhbFRvdGFsICs9ICRQYXJhbXtIb3Vyc1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9ID0gJFByb2plY3RSZWYtPntOYW1lfTsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFByb2plY3REZXNjcmlwdGlvbiA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkUHJvamVjdFJlZi0+e0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXdMaW5lICAgICAgICA9PiA1MCwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3dTcGFuID0+ICggMSArIHNjYWxhciBrZXlzICV7JEFjdGlvbnNSZWZ9ICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzICA9PiAkUGFyYW17U3RhdHVzfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFByb2plY3REZXNjcmlwdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdERlc2NyaXB0aW9uJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICRQcm9qZWN0RGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcGVyc29ucyB3aG8gYXJlIGFsbG93ZWQgdG8gc2VlIHRoZSBjcmVhdGUgb2JqZWN0IGxpbmsgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFsbG93ZWQgdG8gc2VlIHRoZSBwcm9qZWN0IHJlcG9ydGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdExpbmsnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgPT4gJFByb2plY3RSZWYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0Tm9MaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsgUHJvamVjdCA9PiAkUHJvamVjdFJlZi0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgTm93IHNob3cgcm93IHdpdGggdG90YWwgcmVzdWx0IG9mIGFsbCBhY3Rpb25zIG9mIHRoaXMgcHJvamVjdAogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWwgKTsKICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFRvdGFsVG90YWwgKTsKICAgICAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSAgICAgICs9ICRUb3RhbDsKICAgICAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICs9ICRUb3RhbFRvdGFsOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uVG90YWwnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICggZGVmaW5lZCggJFBhcmFte1RvdGFsSG91cnN9ICkgKSB7CiAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnN9ICk7CiAgICAgICAgfQogICAgICAgIGlmICggZGVmaW5lZCggJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKSApIHsKICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICk7CiAgICAgICAgfQogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdHcmFuZFRvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnT3ZlcnZpZXcnKSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3JwogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfQ2hlY2tWYWxpZGl0eVVzZXJQZXJpb2RzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUVycm9ycyA9ICgpOwogICAgbXkgJUdldFBhcmFtOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICBmb3IgKCBteSAkUGVyaW9kID0gMTsgJFBlcmlvZCA8PSAkUGFyYW17UGVyaW9kfTsgJFBlcmlvZCsrICkgewoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMpKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfQogICAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyIC4gIlskUGVyaW9kXSIgKTsKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFteyRQYXJhbWV0ZXJ9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3sgJFBhcmFtZXRlciAuICctJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRQYXJhbWV0ZXIgLiAnLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdNaXNzaW5nVmFsdWUnOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG15ICggJFllYXIsICRNb250aCwgJERheSApID0gc3BsaXQoICctJywgJEdldFBhcmFte0RhdGVTdGFydH0gKTsKICAgICAgICBteSAkU3RhcnREYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICREYXksCiAgICAgICAgICAgIEhvdXIgICA9PiAwLAogICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgKTsKICAgICAgICAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlRW5kfSApOwogICAgICAgIG15ICRFbmREYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICREYXksCiAgICAgICAgICAgIEhvdXIgICA9PiAwLAogICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkU3RhcnREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0ludmFsaWQnOwogICAgICAgIH0KICAgICAgICBpZiAoICEkRW5kRGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0ludmFsaWQnOwogICAgICAgIH0KICAgICAgICBpZiAoICRTdGFydERhdGUgJiYgJEVuZERhdGUgJiYgJFN0YXJ0RGF0ZSA+PSAkRW5kRGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0JlZm9yZURhdGVTdGFydCc7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlRXJyb3JzOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgJFNlbGYtPntUaW1lWm9uZX0gPSAkUGFyYW17VGltZVpvbmV9CiAgICAgICAgfHwgJFBhcmFte1VzZXJUaW1lWm9uZX0KICAgICAgICB8fCAkRGF0ZVRpbWVPYmplY3QtPk9UUlNUaW1lWm9uZUdldCgpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBNb250aEFycmF5ID0gKAogICAgICAgICcnLCAgICAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAgICAgJ0FwcmlsJywgICAnTWF5JywKICAgICAgICAnSnVuZScsICdKdWx5JywgICAgJ0F1Z3VzdCcsICAgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywKICAgICAgICAnRGVjZW1iZXInLAogICAgKTsKICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKICAgIG15ICREYXRlVGltZU9iamVjdEN1cnJlbnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHRpbWUgYWNjb3VudGluZyBwcm9qZWN0IHJlcG9ydGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdSZXBvcnRpbmdQcm9qZWN0JyApIHsKCiAgICAgICAgbXkgJENvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiVGltZUFjY291bnRpbmc6OkZyb250ZW5kOjokU2VsZi0+e1N1YmFjdGlvbn0iKTsKCiAgICAgICAgbXkgJUZyb250ZW5kID0gKCk7CgogICAgICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgICRQYXJhbXtQcm9qZWN0SUR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2plY3RJRCcgKTsKCiAgICAgICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICAgICAgaWYgKCAhJFBhcmFte1Byb2plY3RJRH0gKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnKQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJUFjdGlvbiAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CiAgICAgICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgICAgICRQYXJhbXtQcm9qZWN0fSA9ICRQcm9qZWN0e1Byb2plY3R9LT57ICRQYXJhbXtQcm9qZWN0SUR9IH07CgogICAgICAgICMgZ2V0IHN5c3RlbSB1c2VycwogICAgICAgIG15ICVTaG93blVzZXJzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDAKICAgICAgICApOwoKICAgICAgICAkUGFyYW17U2hvd09ubHlBY3RpdmVVc2Vyc30gPSAkQ29uZmlnLT57U2hvd09ubHlBY3RpdmVVc2Vyc307CgogICAgICAgIGlmICggJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ICkgewoKICAgICAgICAgICAgIyBnZXQgcmVnaXN0ZXJlZCB1c2VycwogICAgICAgICAgICBteSAlUmVnaXN0ZXJlZFVzZXJzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKICAgICAgICAgICAgIyByZWR1Y2Ugc2hvd24gdXNlcnMgdG8gb25seSB0aGUgb25lcyB0aGF0IGFyZSByZWdpc3RlcmVkIGluIHRpbWUgYWNjb3VudGluZwogICAgICAgICAgICAlU2hvd25Vc2VycyA9IG1hcCB7ICRfID0+ICRTaG93blVzZXJzeyRffSB9IGtleXMgJVJlZ2lzdGVyZWRVc2VyczsKICAgICAgICB9CgogICAgICAgICMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIFByb2plY3RBY3Rpb25SZXBvcnRpbmcgaXMgbm90IHJld29ya2VkCiAgICAgICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJEN1cnJlbnREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICAgICApOwogICAgICAgIG15ICVQcm9qZWN0RGF0YSA9ICgpOwogICAgICAgIG15ICVQcm9qZWN0VGltZSA9ICgpOwoKICAgICAgICBteSBAVXNlcldoaXRlTGlzdDsKCiAgICAgICAgIyBPbmx5IG9uZSBmdW5jdGlvbiBzaG91bGQgYmUgZW5vdWdoCiAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJVNob3duVXNlcnMgKSB7CgogICAgICAgICAgICAjIE92ZXJ2aWV3IHBlciBwcm9qZWN0IGFuZCBhY3Rpb24KICAgICAgICAgICAgIyBSRU1BUks6IFRoaXMgaXMgdGhlIHdyb25nIGZ1bmN0aW9uIHRvIGdldCB0aGlzIGluZm9ybWF0aW9uCiAgICAgICAgICAgICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEFjdGlvblJlcG9ydGluZygKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAkUHJvamVjdERhdGF7ICRQYXJhbXtQcm9qZWN0SUR9IH0gKSB7CiAgICAgICAgICAgICAgICBteSAkVXNlclRvdGFsSG91cnNJblByb2plY3Q7CiAgICAgICAgICAgICAgICBteSAkQWN0aW9uc1JlZiA9ICRQcm9qZWN0RGF0YXsgJFBhcmFte1Byb2plY3RJRH0gfS0+e0FjdGlvbnN9OwogICAgICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQga2V5cyAleyRBY3Rpb25zUmVmfSApIHsKICAgICAgICAgICAgICAgICAgICAkUHJvamVjdFRpbWV7JEFjdGlvbklEfS0+eyRVc2VySUR9LT57SG91cnN9ID0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9LT57VG90YWx9OwoKICAgICAgICAgICAgICAgICAgICAjIHJlbWVtYmVyIHRoZSBzdW0gb2YgYWxsIGhvdXJzIG9mIGFsbCB0YXNrcwogICAgICAgICAgICAgICAgICAgICRVc2VyVG90YWxIb3Vyc0luUHJvamVjdCArPSAkQWN0aW9uc1JlZi0+eyRBY3Rpb25JRH0tPntUb3RhbH0gfHwgMDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHJlbWVtYmVyIG9ubHkgdGhlIHVzZXJzIHRoYXQgaGFzIGJlZW4gYWRkZWQgaG91cnMgdG8gdGhpcyBwcm9qZWN0CiAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFVzZXJUb3RhbEhvdXJzSW5Qcm9qZWN0ICYmICRVc2VyVG90YWxIb3Vyc0luUHJvamVjdCA+IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAVXNlcldoaXRlTGlzdCwgJFVzZXJJRDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAkUGFyYW17U2hvd09ubHlBY3RpdmVVc2Vyc30gKSB7CgogICAgICAgICAgICAjIHJlZHVjZSBzaG93biB1c2VycyB0byBvbmx5IHRoZSBvbmVzIHRoYXQgYXJlIGFjdGl2ZSBpbiB0aGUgcHJvamVjdCAoYnkgYWRkaW5nIGhvdXJzKQogICAgICAgICAgICAlU2hvd25Vc2VycyA9IG1hcCB7ICRfID0+ICRTaG93blVzZXJzeyRffSB9IEBVc2VyV2hpdGVMaXN0OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlU2hvd25Vc2VycyApICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vVXNlckRhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyVGFibGUnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2hvdyB0aGUgaGVhZGVyIGxpbmUKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IHsgJFNob3duVXNlcnN7JGF9IGNtcCAkU2hvd25Vc2Vyc3skYn0gfSBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlck5hbWUnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyBVc2VyID0+ICRTaG93blVzZXJzeyRVc2VySUR9IH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGJldHRlciBzb2x1dGlvbiBmb3Igc29ydCBhY3Rpb25zIG5lY2Vzc2FyeQogICAgICAgICAgICBteSAlTmV3QWN0aW9uID0gKCk7CiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJVByb2plY3RUaW1lICkgewogICAgICAgICAgICAgICAgJE5ld0FjdGlvbnskQWN0aW9uSUR9ID0gJEFjdGlvbnskQWN0aW9uSUR9LT57QWN0aW9ufTsKICAgICAgICAgICAgfQogICAgICAgICAgICAlQWN0aW9uID0gJU5ld0FjdGlvbjsKCiAgICAgICAgICAgICMgc2hvdyB0aGUgcmVzdWx0cwogICAgICAgICAgICBteSAlVG90YWwgPSAoKTsKICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQgeyAkQWN0aW9ueyRhfSBjbXAgJEFjdGlvbnskYn0gfSBrZXlzICVBY3Rpb24gKSB7CiAgICAgICAgICAgICAgICBteSAkVG90YWxIb3VycyA9IDA7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb24nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvbnskQWN0aW9uSUR9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IHsgJFNob3duVXNlcnN7JGF9IGNtcCAkU2hvd25Vc2Vyc3skYn0gfSBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICAgICAgICAgICRUb3RhbEhvdXJzICs9ICRQcm9qZWN0VGltZXskQWN0aW9uSUR9eyRVc2VySUR9e0hvdXJzfSB8fCAwOwogICAgICAgICAgICAgICAgICAgICRUb3RhbHskVXNlcklEfSArPSAkUHJvamVjdFRpbWV7JEFjdGlvbklEfXskVXNlcklEfXtIb3Vyc30gfHwgMDsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSG91cnMgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKCAiJS4yZiIsICRQcm9qZWN0VGltZXskQWN0aW9uSUR9eyRVc2VySUR9e0hvdXJzfSB8fCAwICksCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIFRvdGFsCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgSG91cnMgPT4gc3ByaW50ZiggIiUuMmYiLCAkVG90YWxIb3VycyApLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRQYXJhbXtUb3RhbEFsbH0gPSAwOwogICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkU2hvd25Vc2Vyc3skYX0gY21wICRTaG93blVzZXJzeyRifSB9IGtleXMgJVNob3duVXNlcnMgKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17VG90YWxBbGx9ICs9ICRUb3RhbHskVXNlcklEfTsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJUb3RhbCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFRvdGFsID0+IHNwcmludGYoICIlLjJmIiwgJFRvdGFseyRVc2VySUR9ICksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRvdGFsQWxsJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIFRvdGFsQWxsID0+IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsQWxsfSApLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgbXkgQFByb2plY3RIaXN0b3J5QXJyYXkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RIaXN0b3J5KAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFBhcmFte1Byb2plY3RJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhSXNBcnJheVJlZldpdGhEYXRhKCBcQFByb2plY3RIaXN0b3J5QXJyYXkgKSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb1Byb2plY3REYXRhRm91bmRNc2cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdFRhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAlRnJvbnRlbmQKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJFJvdyAoQFByb2plY3RIaXN0b3J5QXJyYXkpIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXIgICA9PiAkUm93LT57VXNlcn0sCiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAkUm93LT57QWN0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgUmVtYXJrID0+ICRSb3ctPntSZW1hcmt9IHx8ICctLScsCiAgICAgICAgICAgICAgICAgICAgICAgIFBlcmlvZCA9PiBzcHJpbnRmKCAiJS4yZiIsICRSb3ctPntQZXJpb2R9ICksCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGUgICA9PiAkUm93LT57RGF0ZX0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2hvdyB0aGUgdG90YWwgc3VtIG9mIGhvdXJzIGF0IHRoZSBlbmQgb2YgdGhlIGhpc3RvcnkgbGlzdAogICAgICAgICAgICAjIEkgYWxzbyBjYW4gdXNlICRQYXJhbXtUb3RhbEFsbH0KICAgICAgICAgICAgbXkgJFByb2plY3RUb3RhbEhvdXJzID0gc3ByaW50ZigKICAgICAgICAgICAgICAgICIlLjJmIiwKICAgICAgICAgICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFRvdGFsSG91cnMoCiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQYXJhbXtQcm9qZWN0SUR9LAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnSGlzdG9yeVRvdGFsJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEhpc3RvcnlUb3RhbCA9PiAkUHJvamVjdFRvdGFsSG91cnMgfHwgMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGJ1aWxkIG91dHB1dAogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnUmVwb3J0aW5nIFByb2plY3QnKSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICVGcm9udGVuZCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdCcsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyB0aW1lIGFjY291bnRpbmcgcmVwb3J0aW5nCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgbXkgJUZyb250ZW5kICAgPSAoKTsKICAgIG15ICVTaG93blVzZXJzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAwCiAgICApOwogICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJEN1cnJlbnREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpLAogICAgKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUnd9ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIE1vbnRoIFllYXIgUHJvamVjdFN0YXR1c1Nob3cpKSB7CiAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwogICAgfQoKICAgICMgQ2hlY2sgRGF0ZQogICAgaWYgKCAhJFBhcmFte1llYXJ9IHx8ICEkUGFyYW17TW9udGh9ICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ID0gJE1vbnRoOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgfQoKICAgICMgc3RvcmUgbGFzdCBzY3JlZW4KICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW4nLAogICAgICAgIFZhbHVlID0+CiAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1llYXI9JFBhcmFte1llYXJ9O01vbnRoPSRQYXJhbXtNb250aH0iLAogICAgKTsKCiAgICAkUGFyYW17TW9udGhfdG9fVGV4dH0gPSAkTW9udGhBcnJheVsgJFBhcmFte01vbnRofSBdOwoKICAgIG15ICVNb250aCA9ICgpOwogICAgZm9yIG15ICRJRCAoIDEgLi4gMTIgKSB7CiAgICAgICAgJE1vbnRoeyBzcHJpbnRmKCAiJTAyZCIsICRJRCApIH0gPSAkTW9udGhBcnJheVskSURdOwogICAgfQoKICAgICRGcm9udGVuZHtNb250aE9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiBcJU1vbnRoLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtNb250aH0gfHwgJycsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ01vbnRoJywKICAgICAgICBTb3J0ICAgICAgICA9PiAnTnVtZXJpY0tleScsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBUaXRsZSAgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIk1vbnRoIiksCiAgICApOwoKICAgIG15IEBZZWFyID0gKCAkWWVhciAtIDQgLi4gJFllYXIgKyAxICk7CgogICAgJEZyb250ZW5ke1llYXJPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXEBZZWFyLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtZZWFyfSB8fCAnJywKICAgICAgICBOYW1lICAgICAgICA9PiAnWWVhcicsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICBUaXRsZSAgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlllYXIiKSwKICAgICk7CgogICAgKCAkUGFyYW17WWVhckJhY2t9LCAkUGFyYW17TW9udGhCYWNrfSwgJFBhcmFte0RheUJhY2t9ICkKICAgICAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgMSwgMCwgLTEsIDAgKTsKICAgICggJFBhcmFte1llYXJOZXh0fSwgJFBhcmFte01vbnRoTmV4dH0sICRQYXJhbXtEYXlOZXh0fSApCiAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sIDEsIDAsIDEsIDAgKTsKCiAgICBteSAlVXNlclJlcG9ydCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclJlcG9ydGluZygKICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJVVzZXJCYXNpY3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlU2hvd25Vc2VycyApIHx8ICFJc0hhc2hSZWZXaXRoRGF0YSggXCVVc2VyUmVwb3J0ICkgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vVXNlckRhdGFGb3VuZE1zZycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRhYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKCiAgICAgICAgVVNFUklEOgogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgbmV4dCBVU0VSSUQgaWYgISRVc2VyUmVwb3J0eyRVc2VySUR9OwoKICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKAogICAgICAgICAgICAgICAgcXcoTGVhdmVEYXkgT3ZlcnRpbWUgV29ya2luZ0hvdXJzIFNpY2sgTGVhdmVEYXlSZW1haW5pbmcgT3ZlcnRpbWVUb3RhbCkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gc3ByaW50ZiggIiUuMmYiLCAoICRVc2VyUmVwb3J0eyRVc2VySUR9eyRQYXJhbWV0ZXJ9IHx8IDAgKSApOwogICAgICAgICAgICAgICAgJFBhcmFteyAnVG90YWwnIC4gJFBhcmFtZXRlciB9ICs9ICRQYXJhbXskUGFyYW1ldGVyfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBTaG93IE92ZXJ0aW1lIGlmIGFsbG93ZWQKICAgICAgICAgICAgaWYgKCAhJFVzZXJCYXNpY3N7JFVzZXJJRH17U2hvd092ZXJ0aW1lfSApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtPdmVydGltZX0gICAgICA9ICcnOwogICAgICAgICAgICAgICAgJFBhcmFte092ZXJ0aW1lVG90YWx9ID0gJyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRQYXJhbXtVc2VyfSAgID0gJFNob3duVXNlcnN7JFVzZXJJRH07CiAgICAgICAgICAgICRQYXJhbXtVc2VySUR9ID0gJFVzZXJJRDsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKAogICAgICAgICAgICBxdyhUb3RhbExlYXZlRGF5IFRvdGFsT3ZlcnRpbWUgVG90YWxXb3JraW5nSG91cnMKICAgICAgICAgICAgVG90YWxTaWNrIFRvdGFsTGVhdmVEYXlSZW1haW5pbmcgVG90YWxPdmVydGltZVRvdGFsKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSBzcHJpbnRmKCAiJS4yZiIsICggJFBhcmFteyRQYXJhbWV0ZXJ9ICkgfHwgMCApOwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJHcmFuZFRvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyB0aGUgcmVwb3J0IHNvcnQgYnkgcHJvamVjdHMKICAgIGlmICggISRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gfHwgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAndmFsaWQnICkgewogICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gPSAnYWxsJzsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyApIHsKICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9ID0gJ3ZhbGlkJzsKICAgIH0KCiAgICAkUGFyYW17U2hvd1Byb2plY3RzfSA9ICdTaG93ICcgLiAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IC4gJyBwcm9qZWN0cyc7CgogICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0QWN0aW9uUmVwb3J0aW5nKAogICAgICAgIFllYXIgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCA9PiAkUGFyYW17TW9udGh9LAogICAgKTsKCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggXCVQcm9qZWN0RGF0YSApICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1Byb2plY3REYXRhRm91bmRNc2cnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNMaW5rQ2xhc3N9ID0gJ0hpZGRlbic7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdFRhYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBSRU1BUks6IG1lcmdlIHRoaXMgcHJvamVjdCByZXBvcnRpbmcgbGlzdCB3aXRoIHRoZSBsaXN0IGluIG92ZXJ2aWV3CiAgICAgICAgUFJPSkVDVElEOgogICAgICAgIGZvciBteSAkUHJvamVjdElEICgKICAgICAgICAgICAgc29ydCB7ICRQcm9qZWN0RGF0YXskYX0tPntOYW1lfSBjbXAgJFByb2plY3REYXRheyRifS0+e05hbWV9IH0KICAgICAgICAgICAga2V5cyAlUHJvamVjdERhdGEKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJFByb2plY3RSZWYgPSAkUHJvamVjdERhdGF7JFByb2plY3RJRH07CiAgICAgICAgICAgIG15ICRBY3Rpb25zUmVmID0gJFByb2plY3RSZWYtPntBY3Rpb25zfTsKCiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSA9ICcnOwogICAgICAgICAgICAkUGFyYW17U3RhdHVzfSA9ICRQcm9qZWN0UmVmLT57U3RhdHVzfSA/ICcnIDogJ3Bhc3Npdic7CgogICAgICAgICAgICBteSAkVG90YWwgICAgICA9IDA7CiAgICAgICAgICAgIG15ICRUb3RhbFRvdGFsID0gMDsKCiAgICAgICAgICAgIG5leHQgUFJPSkVDVElEIGlmICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgJiYgJFBhcmFte1N0YXR1c307CgogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICgKICAgICAgICAgICAgICAgIHNvcnQgeyAkQWN0aW9uc1JlZi0+eyRhfS0+e05hbWV9IGNtcCAkQWN0aW9uc1JlZi0+eyRifS0+e05hbWV9IH0KICAgICAgICAgICAgICAgIGtleXMgJXskQWN0aW9uc1JlZn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbXkgJEFjdGlvblJlZiA9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfTsKCiAgICAgICAgICAgICAgICAkUGFyYW17UHJvamVjdElEfSAgPSAkUHJvamVjdElEOwogICAgICAgICAgICAgICAgJFBhcmFte0FjdGlvbn0gICAgID0gJEFjdGlvblJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57UGVyTW9udGh9IHx8IDAgKTsKICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJEFjdGlvblJlZi0+e1RvdGFsfSB8fCAwICk7CiAgICAgICAgICAgICAgICAkVG90YWwgICAgICArPSAkUGFyYW17SG91cnN9OwogICAgICAgICAgICAgICAgJFRvdGFsVG90YWwgKz0gJFBhcmFte0hvdXJzVG90YWx9OwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICEkUGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9ID0gJFByb2plY3RSZWYtPntOYW1lfTsKICAgICAgICAgICAgICAgICAgICBteSAkUHJvamVjdERlc2NyaXB0aW9uID0gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCAgICAgICAgICAgPT4gJFByb2plY3RSZWYtPntEZXNjcmlwdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIE5ld0xpbmUgICAgICAgID0+IDUwLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0JywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3dTcGFuICAgICAgICAgICAgPT4gKCAxICsgc2NhbGFyIGtleXMgJXskQWN0aW9uc1JlZn0gKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cyAgICAgICAgICAgICA9PiAkUGFyYW17U3RhdHVzfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAkUHJvamVjdERlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0UmVmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgICAgICAgICAgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkUGFyYW17SG91cnN9ICAgICAgPSBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbCApOwogICAgICAgICAgICAkUGFyYW17SG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbFRvdGFsICk7CiAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSAgICAgICs9ICRUb3RhbDsKICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKz0gJFRvdGFsVG90YWw7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uVG90YWwnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkUGFyYW17VG90YWxIb3Vyc30gICAgICB8fD0gMDsKICAgICAgICAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSB8fD0gMDsKCiAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ICAgICAgPSBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEhvdXJzfSApOwogICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSApOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdEdyYW5kVG90YWwnLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwogICAgfQoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnUmVwb3J0aW5nJyksCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkUGFyYW1PYmplY3QgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRMb2dPYmplY3QgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgIyBleHByZXNzaW9uIGFkZCB0aW1lIHBlcmlvZCB3YXMgcHJlc3NlZAogICAgaWYgKAogICAgICAgICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBZGRQZXJpb2QnICkKICAgICAgICB8fCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU3VibWl0VXNlckRhdGEnICkKICAgICAgICApCiAgICB7CgogICAgICAgIG15ICVHZXRQYXJhbSA9ICgpOwoKICAgICAgICAkR2V0UGFyYW17VXNlcklEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VySUQnICk7CiAgICAgICAgbXkgJFBlcmlvZHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KAogICAgICAgICAgICBVc2VySUQgPT4gJEdldFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayB2YWxpZGl0eSBvZiBwZXJpb2RzCiAgICAgICAgbXkgJUVycm9ycyA9ICRTZWxmLT5fQ2hlY2tWYWxpZGl0eVVzZXJQZXJpb2RzKAogICAgICAgICAgICBQZXJpb2QgPT4gJFBlcmlvZHMsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiB0aGUgcGVyaW9kIGRhdGEgaXMgT0sKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBnZXQgYWxsIHBhcmFtZXRlcnMKICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFN1YmFjdGlvbiBEZXNjcmlwdGlvbiBDYWxlbmRhcikpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU2hvd092ZXJ0aW1lIENyZWF0ZVByb2plY3QpKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgMDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJFBlcmlvZCA9IDE7CiAgICAgICAgICAgIG15ICVQZXJpb2REYXRhOwoKICAgICAgICAgICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TaW5nbGVVc2VyU2V0dGluZ3NHZXQoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJEdldFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IHBhcmFtZXRlcnMgZm9yIGFsbCByZWdpc3RlcmVkIHBlcmlvZHMKICAgICAgICAgICAgd2hpbGUgKCAkVXNlckRhdGF7JFBlcmlvZH0gKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoV2Vla2x5SG91cnMgT3ZlcnRpbWUgRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzKSkgewogICAgICAgICAgICAgICAgICAgICRQZXJpb2REYXRheyRQZXJpb2R9eyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciAuICJbJFBlcmlvZF0iICkKICAgICAgICAgICAgICAgICAgICAgICAgfHwgJFVzZXJEYXRheyRQZXJpb2R9eyRQYXJhbWV0ZXJ9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFBlcmlvZERhdGF7JFBlcmlvZH17VXNlclN0YXR1c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAiUGVyaW9kU3RhdHVzWyRQZXJpb2RdIiApIHx8IDA7CiAgICAgICAgICAgICAgICAkUGVyaW9kKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJEdldFBhcmFte1BlcmlvZH0gPSBcJVBlcmlvZERhdGE7CgogICAgICAgICAgICAjIHVwZGF0ZSBwZXJpb2RzCiAgICAgICAgICAgIGlmICggISRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKCVHZXRQYXJhbSkgKSB7CgogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJyksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBZGRQZXJpb2QnICkgKSB7CgogICAgICAgICAgICAgICAgIyBzaG93IHRoZSBlZGl0IHRpbWUgc2V0dGluZ3MgYWdhaW4sIGJ1dCBub3cgd2l0aCBhIG5ldyBlbXB0eSB0aW1lIHBlcmlvZCBsaW5lCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICAgICAgICAgIkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZztTdWJhY3Rpb249JEdldFBhcmFte1N1YmFjdGlvbn07VXNlcklEPSRHZXRQYXJhbXtVc2VySUR9OyIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiTmV3VGltZVBlcmlvZD0xIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBzaG93IHRoZSBvdmVydmlldyBvZiB0YXNrcyBhbmQgdXNlcnMKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nO1VzZXI9JFNlbGYtPntTdWJhY3Rpb259IiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIHByb2plY3QKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkUHJvamVjdCcgKSB7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fUHJvamVjdFNldHRpbmdzRWRpdCggQWN0aW9uID0+ICdBZGRQcm9qZWN0JyApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCBwcm9qZWN0IGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRQcm9qZWN0QWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAkUHJvamVjdElEOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CgogICAgICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoUHJvamVjdCBQcm9qZWN0RGVzY3JpcHRpb24pKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgICAgICB9CiAgICAgICAgJEdldFBhcmFte1Byb2plY3RTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2plY3RTdGF0dXMnICkKICAgICAgICAgICAgfHwgJzAnOwoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGlmICggISRHZXRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0SW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEVycm9yVHlwZX0gPSAnUHJvamVjdE1pc3NpbmdWYWx1ZSc7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjaGVjayB0aGF0IHRoZSBuYW1lIGlzIHVuaXF1ZQogICAgICAgICAgICBteSAlRXhpc3RpbmdQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICAgICAgUHJvamVjdCA9PiAkR2V0UGFyYW17UHJvamVjdH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICglRXhpc3RpbmdQcm9qZWN0KSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEVycm9yVHlwZX0gPSAnUHJvamVjdER1cGxpY2F0ZU5hbWUnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIGFkZCBwcm9qZWN0CiAgICAgICAgICAgICRQcm9qZWN0SUQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkUHJvamVjdElEKSB7CgogICAgICAgICAgICAgICAgIyBidWlsZCB0aGUgb3V0cHV0CiAgICAgICAgICAgICAgICAkU2VsZi0+X1NldHRpbmdPdmVydmlldygpOwogICAgICAgICAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnUHJvamVjdCBhZGRlZCEnKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4geyVHZXRQYXJhbX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fUHJvamVjdFNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGRQcm9qZWN0JywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgcHJvamVjdAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0UHJvamVjdCcgKSB7CiAgICAgICAgbXkgJElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApOwoKICAgICAgICAjIGdldCBwcm9qZWN0IGRhdGEKICAgICAgICBteSAlUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgSUQgPT4gJElELAogICAgICAgICk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1Byb2plY3RTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnRWRpdFByb2plY3QnLAogICAgICAgICAgICAlUHJvamVjdCwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHByb2plY3QgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRQcm9qZWN0QWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAoICVHZXRQYXJhbSwgJUVycm9ycyApOwoKICAgICAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICAgICAgJEdldFBhcmFte0lEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKSB8fCAnJzsKICAgICAgICAkR2V0UGFyYW17UHJvamVjdFN0YXR1c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUHJvamVjdFN0YXR1cycgKQogICAgICAgICAgICB8fCAnMCc7CiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFByb2plY3QgUHJvamVjdERlc2NyaXB0aW9uKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGlmICggISRHZXRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0SW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgbmFtZSBpcyB1bmlxdWUKICAgICAgICAgICAgbXkgJUV4aXN0aW5nUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgIFByb2plY3QgPT4gJEdldFBhcmFte1Byb2plY3R9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBpZiB0aGUgcHJvamVjdCBuYW1lIGlzIGZvdW5kLCBjaGVjayB0aGF0IHRoZSBJRCBpcyBkaWZmZXJlbnQKICAgICAgICAgICAgaWYgKCAlRXhpc3RpbmdQcm9qZWN0ICYmICRFeGlzdGluZ1Byb2plY3R7SUR9IG5lICRHZXRQYXJhbXtJRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEVycm9yVHlwZX0gPSAnUHJvamVjdER1cGxpY2F0ZU5hbWUnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIGVkaXQgcHJvamVjdAogICAgICAgICAgICBpZiAoICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzVXBkYXRlKCVHZXRQYXJhbSkgKSB7CgogICAgICAgICAgICAgICAgJFNlbGYtPl9TZXR0aW5nT3ZlcnZpZXcoKTsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1Byb2plY3QgdXBkYXRlZCEnKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyB3ZW50IHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJE5vdGUKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgIEluZm8gICAgID0+ICROb3RlLAogICAgICAgICAgICApCiAgICAgICAgICAgIDogJyc7CiAgICAgICAgJFNlbGYtPl9Qcm9qZWN0U2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0VkaXRQcm9qZWN0JywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIHRhc2sKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkVGFzaycgKSB7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fVGFza1NldHRpbmdzRWRpdCggQWN0aW9uID0+ICdBZGRUYXNrJyApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQgdGFzayBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkVGFza0FjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICROb3RlID0gJyc7CiAgICAgICAgbXkgJFRhc2tJRDsKICAgICAgICBteSAoICVHZXRQYXJhbSwgJUVycm9ycyApOwoKICAgICAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICAgICAgJEdldFBhcmFte1Rhc2t9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rhc2snICkgfHwgJyc7CiAgICAgICAgJEdldFBhcmFte1Rhc2tTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rhc2tTdGF0dXMnICkKICAgICAgICAgICAgfHwgJzAnOwoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGlmICggISRHZXRQYXJhbXtUYXNrfSApIHsKICAgICAgICAgICAgJEVycm9yc3tUYXNrSW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7VGFza0Vycm9yVHlwZX0gPSAnVGFza01pc3NpbmdWYWx1ZSc7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjaGVjayB0aGF0IHRoZSBuYW1lIGlzIHVuaXF1ZQogICAgICAgICAgICBteSAlRXhpc3RpbmdUYXNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJEdldFBhcmFte1Rhc2t9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoJUV4aXN0aW5nVGFzaykgewogICAgICAgICAgICAgICAgJEVycm9yc3tUYXNrSW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Rhc2tFcnJvclR5cGV9ID0gJ1Rhc2tEdXBsaWNhdGVOYW1lJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBhZGQgdGFzawogICAgICAgICAgICAkVGFza0lEID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkR2V0UGFyYW17VGFza30sCiAgICAgICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gJEdldFBhcmFte1Rhc2tTdGF0dXN9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRUYXNrSUQpIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIHRoZSBvdXRwdXQKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdUYXNrIGFkZGVkIScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyB3ZW50IHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJE5vdGUKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgIEluZm8gICAgID0+ICROb3RlLAogICAgICAgICAgICApCiAgICAgICAgICAgIDogJyc7CiAgICAgICAgJFNlbGYtPl9UYXNrU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZFRhc2snLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCB0YXNrCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRUYXNrJyApIHsKICAgICAgICBteSAkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWN0aW9uSUQnICkgfHwgJyc7CgogICAgICAgICMgZ2V0IHByb2plY3QgZGF0YQogICAgICAgIG15ICVUYXNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIElEID0+ICRJRCwKICAgICAgICApOwoKICAgICAgICBteSAlVGFza0RhdGEgPSAoCiAgICAgICAgICAgIFRhc2sgICAgICAgPT4gJFRhc2t7QWN0aW9ufSwKICAgICAgICAgICAgVGFza1N0YXR1cyA9PiAkVGFza3tBY3Rpb25TdGF0dXN9LAogICAgICAgICk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1Rhc2tTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiAgID0+ICdFZGl0VGFzaycsCiAgICAgICAgICAgIEFjdGlvbklEID0+ICRJRCwKICAgICAgICAgICAgJVRhc2tEYXRhLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgcHJvamVjdCBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFRhc2tBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CgogICAgICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgICAgICAkR2V0UGFyYW17QWN0aW9uSUR9ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWN0aW9uSUQnICkgICB8fCAnJzsKICAgICAgICAkR2V0UGFyYW17VGFza1N0YXR1c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVGFza1N0YXR1cycgKSB8fCAnMCc7CiAgICAgICAgJEdldFBhcmFte1Rhc2t9ICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rhc2snICkgICAgICAgfHwgJyc7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1Rhc2t9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Rhc2tJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjaGVjayB0aGF0IHRoZSBuYW1lIGlzIHVuaXF1ZQogICAgICAgICAgICBteSAlRXhpc3RpbmdUYXNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJEdldFBhcmFte1Rhc2t9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBpZiB0aGUgdGFzayBuYW1lIGlzIGZvdW5kLCBjaGVjayB0aGF0IHRoZSBJRCBpcyBkaWZmZXJlbnQKICAgICAgICAgICAgaWYgKCAlRXhpc3RpbmdUYXNrICYmICRFeGlzdGluZ1Rhc2t7SUR9IG5lICRHZXRQYXJhbXtBY3Rpb25JRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Rhc2tJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7VGFza0Vycm9yVHlwZX0gPSAnVGFza0R1cGxpY2F0ZU5hbWUnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIGVkaXQgYWN0aW9uICh0YXNrKQogICAgICAgICAgICBteSAkQWN0aW9uVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgICAgIEFjdGlvbklEICAgICA9PiAkR2V0UGFyYW17QWN0aW9uSUR9LAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRHZXRQYXJhbXtUYXNrfSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkR2V0UGFyYW17VGFza1N0YXR1c30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJEFjdGlvblVwZGF0ZSkgewogICAgICAgICAgICAgICAgJFNlbGYtPl9TZXR0aW5nT3ZlcnZpZXcoKTsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1Rhc2sgdXBkYXRlZCEnKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyB3ZW50IHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJE5vdGUKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgIEluZm8gICAgID0+ICROb3RlLAogICAgICAgICAgICApCiAgICAgICAgICAgIDogJyc7CiAgICAgICAgJFNlbGYtPl9UYXNrU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0VkaXRUYXNrJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIHVzZXIKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkVXNlcicgKSB7CgogICAgICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgICAgICBteSAkTmV3VXNlcklEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ05ld1VzZXJJRCcgKQogICAgICAgICAgICB8fCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcklEJyApCiAgICAgICAgICAgIHx8ICcnOwogICAgICAgIGlmICggISROZXdVc2VySUQgKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkTmV3VGltZVBlcmlvZCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOZXdUaW1lUGVyaW9kJyApOwoKICAgICAgICBteSAkTGFzdFBlcmlvZE51bWJlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkTmV3VXNlcklELAogICAgICAgICk7CgogICAgICAgIG15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkTmV3VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIgKyAxLAogICAgICAgICk7CgogICAgICAgICMgaWYgaXQgaXMgbm90IGFuIGFjdGlvbiBhYm91dCBhZGRpbmcgYSBuZXcgdGltZSBwZXJpb2QKICAgICAgICBpZiAoICEkTmV3VGltZVBlcmlvZCAmJiAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICVVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICBVc2VySUQgPT4gJE5ld1VzZXJJRCwKICAgICAgICApOwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1VzZXJTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAnQWRkVXNlcicsCiAgICAgICAgICAgIFN1YmFjdGlvbiA9PiAnQWRkVXNlcicsCiAgICAgICAgICAgICVVc2VyLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgdXNlciBzZXR0aW5ncwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0VXNlcicgKSB7CiAgICAgICAgbXkgJElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZXJJRCcgKSB8fCAnJzsKICAgICAgICBpZiAoICEkSUQgKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkTmV3VGltZVBlcmlvZCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOZXdUaW1lUGVyaW9kJyApOwogICAgICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRJRCwKICAgICAgICApOwoKICAgICAgICAjIGlmIGl0IGlzIGFuIGFjdGlvbiBhYm91dCBhZGRpbmcgYSBuZXcgdGltZSBwZXJpb2QsIGluc2VydCBpdAogICAgICAgIGlmICgkTmV3VGltZVBlcmlvZCkgewogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRJRCwKICAgICAgICAgICAgICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciArIDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewoKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAlRXJyb3JzID0gKCk7CgogICAgICAgIGlmICgKICAgICAgICAgICAgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZFBlcmlvZCcgKQogICAgICAgICAgICB8fCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU3VibWl0VXNlckRhdGEnICkKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgY2hlY2sgdmFsaWRpdHkgb2YgcGVyaW9kcwogICAgICAgICAgICAlRXJyb3JzID0gJFNlbGYtPl9DaGVja1ZhbGlkaXR5VXNlclBlcmlvZHMoCiAgICAgICAgICAgICAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCB1c2VyIGRhdGEKICAgICAgICBteSAlVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRJRCwKICAgICAgICApOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9Vc2VyU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ0VkaXRVc2VyJywKICAgICAgICAgICAgU3ViYWN0aW9uID0+ICdFZGl0VXNlcicsCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkSUQsCiAgICAgICAgICAgIEVycm9ycyAgICA9PiBcJUVycm9ycywKICAgICAgICAgICAgUGVyaW9kcyAgID0+ICRMYXN0UGVyaW9kTnVtYmVyLAogICAgICAgICAgICAlVXNlciwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzZXR0aW5ncyBmb3IgaGFuZGxpbmcgdGltZSBhY2NvdW50aW5nCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICMgZ2V0IHVzZXIgZGF0YQogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgaWYgKCAhJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICYmICEkU2VsZi0+e0FjY2Vzc1J3fSApIHsKCiAgICAgICAgIyByZXR1cm4gbm8gcGVybWlzc2lvbiBzY3JlZW4KICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgdGhlIHVzZXIgYWN0aW9uIHRvIHNob3cgYSBtZXNzYWdlIGlmIGFuIHVzZXIgd2FzIHVwZGF0ZWQgb3IgYWRkZWQKICAgIG15ICROb3RlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZXInICk7CgogICAgIyBidWlsZCBvdXRwdXQKICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnU2V0dGluZycpLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgc2hvdyBhIG5vdGlmaWNhdGlvbiBtZXNzYWdlIGlmIHByb3BlcgogICAgaWYgKCROb3RlKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTm90ZSBlcSAnRWRpdFVzZXInCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVXNlciB1cGRhdGVkIScpLAogICAgICAgICAgICApCiAgICAgICAgICAgIDogJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVXNlciBhZGRlZCEnKSwKICAgICAgICAgICAgKTsKICAgIH0KCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJwogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cgp9CgpzdWIgX0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVFcnJvcnMgPSAoKTsKICAgIG15ICVHZXRQYXJhbTsKCiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICBmb3IgKCBteSAkUGVyaW9kID0gMTsgJFBlcmlvZCA8PSAkUGFyYW17UGVyaW9kfTsgJFBlcmlvZCsrICkgewoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMpKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfQogICAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyIC4gIlskUGVyaW9kXSIgKTsKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFteyRQYXJhbWV0ZXJ9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3sgJFBhcmFtZXRlciAuICctJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRQYXJhbWV0ZXIgLiAnLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdNaXNzaW5nVmFsdWUnOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG15ICggJFllYXIsICRNb250aCwgJERheSApID0gc3BsaXQoICctJywgJEdldFBhcmFte0RhdGVTdGFydH0gKTsKICAgICAgICBteSAkU3RhcnREYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICREYXksCiAgICAgICAgICAgIEhvdXIgICA9PiAwLAogICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgKTsKICAgICAgICAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlRW5kfSApOwogICAgICAgIG15ICRFbmREYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICREYXksCiAgICAgICAgICAgIEhvdXIgICA9PiAwLAogICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkU3RhcnREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0ludmFsaWQnOwogICAgICAgIH0KICAgICAgICBpZiAoICEkRW5kRGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0ludmFsaWQnOwogICAgICAgIH0KICAgICAgICBpZiAoICRTdGFydERhdGUgJiYgJEVuZERhdGUgJiYgJFN0YXJ0RGF0ZSA+PSAkRW5kRGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0JlZm9yZURhdGVTdGFydCc7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlRXJyb3JzOwp9CgpzdWIgX1Byb2plY3RTZXR0aW5nc0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25MaXN0UHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25TZXR0aW5nT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgZGVmaW5lIHN0YXR1cyBsaXN0CiAgICBteSAlU3RhdHVzTGlzdCA9ICgKICAgICAgICAxID0+IFRyYW5zbGF0YWJsZSgndmFsaWQnKSwKICAgICAgICAwID0+IFRyYW5zbGF0YWJsZSgnaW52YWxpZCcpLAogICAgKTsKCiAgICBteSAkUHJvamVjdFN0YXR1cyA9IDE7CiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1Byb2plY3RTdGF0dXN9ICkgewogICAgICAgICRQcm9qZWN0U3RhdHVzID0gJFBhcmFte1Byb2plY3RTdGF0dXN9CiAgICB9CgogICAgJFBhcmFte1N0YXR1c09wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICBTZWxlY3RlZElEID0+ICRQcm9qZWN0U3RhdHVzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1Byb2plY3RTdGF0dXMnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3VXBkYXRlUHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIHNob3dzIGhlYWRlcgogICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnRWRpdFByb2plY3QnICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJFZGl0UHJvamVjdCcsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJBZGRQcm9qZWN0JywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBzZXJ2ZXIgZXJyb3IgbWVzc2FnZSAoaWYgYW55KSBmb3IgdGhlIHByb2plY3QgbmFtZQogICAgaWYgKCAkUGFyYW17UHJvamVjdEVycm9yVHlwZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJFBhcmFte1Byb2plY3RFcnJvclR5cGV9LAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfU2V0dGluZ092ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVByb2plY3QgPSAoKTsKICAgIG15ICVEYXRhICAgID0gKCk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGJ1aWxkIG91dHB1dAogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25MaXN0U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25BZGRQcm9qZWN0JywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAjIGhhc2ggdG8gc2F2ZSByZWdpc3RlcmVkIHVzZXJzCiAgICBteSAlVXNlcjsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgIGlmICggJFNlbGYtPntBY2Nlc3NSd30gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZFRhc2snLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgIG15ICVTaG93blVzZXJzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiByZWdpc3RlcmVkIHVzZXJzIChpZiBhbnkpCiAgICAgICAgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7CgogICAgICAgIFVTRVJJTkZPOgogICAgICAgIGZvciBteSAkVXNlckluZm8gKCBzb3J0IHsgJFNob3duVXNlcnN7JGF9IGNtcCAkU2hvd25Vc2Vyc3skYn0gfSBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICBuZXh0IFVTRVJJTkZPIGlmICEkVXNlcnskVXNlckluZm99OwoKICAgICAgICAgICAgIyBkZWxldGUgYWxyZWFkeSByZWdpc3RlcmVkIHVzZXIgZnJvbSB0aGUgJ25ldycgbGlzdAogICAgICAgICAgICBkZWxldGUgJFNob3duVXNlcnN7JFVzZXJJbmZvfTsKICAgICAgICB9CgogICAgICAgICRTaG93blVzZXJzeyctJ30gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIkFkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uIik7CgogICAgICAgIGlmICggc2NhbGFyIGtleXMgJVNob3duVXNlcnMgPiAxICkgewogICAgICAgICAgICBteSAkTmV3VXNlck9wdGlvbiA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlU2hvd25Vc2VycywKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAnJywKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnTmV3VXNlcklEJywKICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJOZXcgVXNlciIpLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZFVzZXInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmV3VXNlck9wdGlvbiA9PiAkTmV3VXNlck9wdGlvbiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgU2hvdyBwcm9qZWN0IGRhdGEKICAgICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFByb2plY3QnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCd2YWxpZCcpLAogICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdpbnZhbGlkJyksCiAgICApOwoKICAgICMgc2hvdyBsaXN0IG9mIGF2YWlsYWJsZSBwcm9qZWN0cyAoaWYgYW55KQogICAgaWYgKCAkUHJvamVjdHtQcm9qZWN0fSApIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0UHJvamVjdFRhYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgICAgIHNvcnQgeyAkUHJvamVjdHtQcm9qZWN0fXskYX0gY21wICRQcm9qZWN0e1Byb2plY3R9eyRifSB9CiAgICAgICAgICAgIGtleXMgJXsgJFByb2plY3R7UHJvamVjdH0gfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gICAgICAgICAgICA9ICRQcm9qZWN0e1Byb2plY3R9eyRQcm9qZWN0SUR9OwogICAgICAgICAgICAkUGFyYW17UHJvamVjdERlc2NyaXB0aW9ufSA9ICRQcm9qZWN0e1Byb2plY3REZXNjcmlwdGlvbn17JFByb2plY3RJRH07CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0SUR9ICAgICAgICAgID0gJFByb2plY3RJRDsKICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gICAgICAgICAgICAgPSAkU3RhdHVzTGlzdHsgJFByb2plY3R7UHJvamVjdFN0YXR1c317JFByb2plY3RJRH0gfTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRQcm9qZWN0Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3RoZXJ3aXNlLCBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9Qcm9qZWN0RGF0YUZvdW5kTXNnJywKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFNlbGYtPntBY2Nlc3NSd30gKSB7CgogICAgICAgICMgU2hvdyBhY3Rpb24gZGF0YQogICAgICAgIG15ICVBY3Rpb24gPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFNldHRpbmcnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGxpc3Qgb2YgYXZhaWxhYmxlIHRhc2tzL2FjdGlvbnMgKGlmIGFueSkKICAgICAgICBpZiAoJUFjdGlvbikgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFNldHRpbmdUYWJsZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQgeyAkQWN0aW9ueyRhfXtBY3Rpb259IGNtcCAkQWN0aW9ueyRifXtBY3Rpb259IH0ga2V5cyAlQWN0aW9uICkgewogICAgICAgICAgICAgICAgJFBhcmFte0FjdGlvbn0gICA9ICRBY3Rpb257JEFjdGlvbklEfXtBY3Rpb259OwogICAgICAgICAgICAgICAgJFBhcmFte0FjdGlvbklEfSA9ICRBY3Rpb25JRDsKICAgICAgICAgICAgICAgICRQYXJhbXtTdGF0dXN9ICAgPSAkU3RhdHVzTGlzdHsgJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvblN0YXR1c30gfTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFNldHRpbmdSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSwgc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vU2V0dGluZ0RhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzaG93IHVzZXIgZGF0YQogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFVzZXInLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGxpc3Qgb2YgcmVnaXN0ZXJlZCB1c2VycyAoaWYgYW55KQogICAgICAgIGlmICglVXNlcikgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFVzZXJUYWJsZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IHsgJFVzZXJ7JGF9IGNtcCAkVXNlcnskYn0gfSBrZXlzICVVc2VyICkgewoKICAgICAgICAgICAgICAgICMgZ2V0IG1pc3NpbmcgdXNlciBkYXRhCiAgICAgICAgICAgICAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbXkgJVVzZXJHZW5lcmFsRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJFBhcmFte1VzZXJ9ICAgICAgID0gIiRVc2VyR2VuZXJhbERhdGF7VXNlckZ1bGxuYW1lfSAoJFVzZXJHZW5lcmFsRGF0YXtVc2VyTG9naW59KSI7CiAgICAgICAgICAgICAgICAkUGFyYW17VXNlcklEfSAgICAgPSAkVXNlcklEOwogICAgICAgICAgICAgICAgJFBhcmFte0NvbW1lbnR9ICAgID0gJFVzZXJEYXRhe0Rlc2NyaXB0aW9ufTsKICAgICAgICAgICAgICAgICRQYXJhbXtDYWxlbmRhck5vfSA9ICRVc2VyRGF0YXtDYWxlbmRhcn07CiAgICAgICAgICAgICAgICAkUGFyYW17Q2FsZW5kYXJ9ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoCiAgICAgICAgICAgICAgICAgICAgIlRpbWVab25lOjpDYWxlbmRhciIKICAgICAgICAgICAgICAgICAgICAgICAgLiAoICRQYXJhbXtDYWxlbmRhck5vfSB8fCAnJyApIC4gIk5hbWUiCiAgICAgICAgICAgICAgICApIHx8ICdEZWZhdWx0JzsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFVzZXJSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSwgc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vVXNlckRhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9UYXNrU2V0dGluZ3NFZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCd2YWxpZCcpLAogICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdpbnZhbGlkJyksCiAgICApOwoKICAgIG15ICRUYXNrU3RhdHVzID0gMTsKICAgIGlmICggZGVmaW5lZCAkUGFyYW17VGFza1N0YXR1c30gKSB7CiAgICAgICAgJFRhc2tTdGF0dXMgPSAkUGFyYW17VGFza1N0YXR1c30KICAgIH0KCiAgICAkUGFyYW17U3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVTdGF0dXNMaXN0LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFRhc2tTdGF0dXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnVGFza1N0YXR1cycsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGVUYXNrJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgc2hvd3MgaGVhZGVyCiAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdFZGl0VGFzaycgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckVkaXRUYXNrJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckFkZFRhc2snLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHNlcnZlciBlcnJvciBtZXNzYWdlIChpZiBhbnkpIGZvciB0aGUgdGFzayBuYW1lCiAgICBpZiAoICRQYXJhbXtUYXNrRXJyb3JUeXBlfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkUGFyYW17VGFza0Vycm9yVHlwZX0sCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9Vc2VyU2V0dGluZ3NFZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGVzY3JpcHRpb24gU2hvd092ZXJ0aW1lIENyZWF0ZVByb2plY3QgQ2FsZW5kYXIpKSB7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwogICAgfQoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU2V0dGluZycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25MaXN0U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25PdmVydmlld1NldHRpbmcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnUmVmZXJlbmNlJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAjIGRlZmluZSBzdGF0dXMgbGlzdAogICAgbXkgJVN0YXR1c0xpc3QgPSAoCiAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ3ZhbGlkJyksCiAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ2ludmFsaWQnKSwKICAgICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBmaWxsIHVwIHRoZSBjYWxlbmRhciBsaXN0CiAgICBteSAkQ2FsZW5kYXJMaXN0UmVmID0geyAwID0+ICdEZWZhdWx0JyB9OwogICAgbXkgJENhbGVuZGFySW5kZXggPSAxOwogICAgd2hpbGUgKCAkQ29uZmlnT2JqZWN0LT5HZXQoICJUaW1lWm9uZTo6Q2FsZW5kYXIiIC4gJENhbGVuZGFySW5kZXggLiAiTmFtZSIgKSApIHsKICAgICAgICAkQ2FsZW5kYXJMaXN0UmVmLT57JENhbGVuZGFySW5kZXh9ID0gJENvbmZpZ09iamVjdC0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICRDYWxlbmRhckluZGV4IC4gIk5hbWUiICk7CiAgICAgICAgJENhbGVuZGFySW5kZXgrKzsKICAgIH0KCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCB1c2VyIGRhdGEKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICRQYXJhbXtDYWxlbmRhck9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiAkQ2FsZW5kYXJMaXN0UmVmLAogICAgICAgIE5hbWUgICAgICAgID0+ICdDYWxlbmRhcicsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBTZWxlY3RlZElEICA9PiAkR2V0UGFyYW17Q2FsZW5kYXJ9IHx8ICRVc2VyRGF0YXtDYWxlbmRhcn0gfHwgMCwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJFBhcmFte0Rlc2NyaXB0aW9ufSA9ICRHZXRQYXJhbXtEZXNjcmlwdGlvbn0gfHwgJFVzZXJEYXRhe0Rlc2NyaXB0aW9ufSB8fCAnJzsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZVVzZXInLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFNob3dPdmVydGltZSA9PiAoICRHZXRQYXJhbXtTaG93T3ZlcnRpbWV9IHx8ICRVc2VyRGF0YXtTaG93T3ZlcnRpbWV9ICkKICAgICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInCiAgICAgICAgICAgIDogJycsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gKCAkR2V0UGFyYW17Q3JlYXRlUHJvamVjdH0gfHwgJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICkKICAgICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInCiAgICAgICAgICAgIDogJycsCiAgICAgICAgICAgIH0KICAgICk7CgogICAgIyBpZiB0aGVyZSBhcmUgZXJyb3JzIHRvIHNob3cKICAgIGlmICggJFBhcmFte0Vycm9yc30gJiYgJXsgJFBhcmFte0Vycm9yc30gfSApIHsKCiAgICAgICAgIyBzaG93IGFsbCBleGlzdGluZyBwZXJpb2RzCiAgICAgICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJFBhcmFte1BlcmlvZHN9OyAkUGVyaW9kKysgKSB7CgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzIFdlZWtseUhvdXJzIE92ZXJ0aW1lIFBlcmlvZFN0YXR1cyApKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAiJFBhcmFtZXRlclxbJFBlcmlvZFxdIiApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkUGFyYW17JFBlcmlvZH17UGVyaW9kU3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICA9PiBcJVN0YXR1c0xpc3QsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtQZXJpb2RTdGF0dXN9IHx8ICRQYXJhbXskUGVyaW9kfXtQZXJpb2RTdGF0dXN9LAogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAiUGVyaW9kU3RhdHVzWyRQZXJpb2RdIiwKICAgICAgICAgICAgICAgIElEICAgICAgICAgPT4gIlBlcmlvZFN0YXR1cy0kUGVyaW9kIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJQZXJpb2QgU3RhdHVzIiksCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RPdmVydmlld1JvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgICAgICAgID0+ICRQZXJpb2QsCiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0SW52YWxpZCA9PiAkUGFyYW17RXJyb3JzfS0+eyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZEludmFsaWQgPT4gJFBhcmFte0Vycm9yc30tPnsgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXNJbnZhbGlkID0+ICRQYXJhbXtFcnJvcnN9LT57ICdMZWF2ZURheXMtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfQogICAgICAgICAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICAgICAgICAgPT4gJEdldFBhcmFte0RhdGVTdGFydH0sCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgICAgICAgID0+ICRHZXRQYXJhbXtEYXRlRW5kfSwKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICAgICAgICAgPT4gJEdldFBhcmFte0xlYXZlRGF5c30sCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgICAgICAgID0+ICRHZXRQYXJhbXtXZWVrbHlIb3Vyc30sCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgICAgICAgID0+ICRHZXRQYXJhbXtPdmVydGltZX0sCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kU3RhdHVzT3B0aW9uID0+ICRQYXJhbXskUGVyaW9kfXtQZXJpb2RTdGF0dXNPcHRpb259LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRGF0ZVN0YXJ0JwogICAgICAgICAgICAgICAgICAgIC4gKAogICAgICAgICAgICAgICAgICAgICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9CiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICdNaXNzaW5nVmFsdWUnCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIERhdGEgPT4geyBQZXJpb2QgPT4gJFBlcmlvZCB9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RhdGVFbmQnCiAgICAgICAgICAgICAgICAgICAgLiAoICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSB8fCAnTWlzc2luZ1ZhbHVlJyApLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7IFBlcmlvZCA9PiAkUGVyaW9kIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgbXkgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgc2hvdyB1c2VyIGRhdGEKICAgICAgICBpZiAoJVVzZXIpIHsKICAgICAgICAgICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgKCBteSAkUGVyaW9kID0gMTsgJFBlcmlvZCA8PSAkTGFzdFBlcmlvZE51bWJlcjsgJFBlcmlvZCsrICkgewogICAgICAgICAgICAgICAgbXkgJVBlcmlvZFBhcmFtID0gKCk7CgogICAgICAgICAgICAgICAgIyBnZXQgYWxsIG5lZWRlZCBkYXRhIHRvIGRpc3BsYXkKICAgICAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMgV2Vla2x5SG91cnMgT3ZlcnRpbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFVzZXJ7JFBlcmlvZH17JFBhcmFtZXRlcn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkUGVyaW9kUGFyYW17UGVyaW9kfSA9ICRQZXJpb2Q7CgogICAgICAgICAgICAgICAgJFBlcmlvZFBhcmFte1BlcmlvZFN0YXR1c09wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEID0+ICRVc2VyeyRQZXJpb2R9e1VzZXJTdGF0dXN9LAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gIlBlcmlvZFN0YXR1c1skUGVyaW9kXSIsCiAgICAgICAgICAgICAgICAgICAgSUQgICAgICAgICA9PiAiUGVyaW9kU3RhdHVzLSRQZXJpb2QiLAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJQZXJpb2QgU3RhdHVzIiksCiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUGVyaW9kT3ZlcnZpZXdSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gXCVQZXJpb2RQYXJhbSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZE92ZXJ2aWV3Um93Tm9EYXRhJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nVmlldzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgJFNlbGYtPntUaW1lWm9uZX0gPSAkUGFyYW17VGltZVpvbmV9CiAgICAgICAgfHwgJFBhcmFte1VzZXJUaW1lWm9uZX0KICAgICAgICB8fCAkRGF0ZVRpbWVPYmplY3QtPk9UUlNUaW1lWm9uZUdldCgpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBNb250aEFycmF5ID0gKAogICAgICAgICcnLCAgICAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAgICAgJ0FwcmlsJywgICAnTWF5JywKICAgICAgICAnSnVuZScsICdKdWx5JywgICAgJ0F1Z3VzdCcsICAgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywKICAgICAgICAnRGVjZW1iZXInLAogICAgKTsKICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHZpZXcgb2xkZXIgZGF5IGluc2VydHMKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBwYXJhbXMKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXkgTW9udGggWWVhciBVc2VySUQpKSB7CiAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwogICAgfQoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgZm9yIG15ICROZWVkZWQgKHF3KERheSBNb250aCBZZWFyKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnVmlldzogTmVlZCAlcyEnLCAkTmVlZGVkICksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZm9ybWF0IHRoZSBkYXRlIHBhcnRzCiAgICAkUGFyYW17WWVhcn0gID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17WWVhcn0gKTsKICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgICRQYXJhbXtEYXl9ICAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtEYXl9ICk7CgogICAgIyBpZiBubyBVc2VySUQgcG9zdGVkIHVzZSB0aGUgY3VycmVudCB1c2VyCiAgICAkUGFyYW17VXNlcklEfSB8fD0gJFNlbGYtPntVc2VySUR9OwoKICAgICMgZ2V0IHRpbWUgYW5kIHRpbWVhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJERhdGVUaW1lT2JqZWN0Q3VycmVudCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgZ2V0IGN1cnJlbnQgZGF0ZSBhbmQgdGltZQogICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCksCiAgICApOwoKICAgIG15ICRNYXhBbGxvd2VkSW5zZXJ0RGF5cyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVGltZUFjY291bnRpbmc6Ok1heEFsbG93ZWRJbnNlcnREYXlzJykgfHwgJzEwJzsKICAgICggJFBhcmFte1llYXJBbGxvd2VkfSwgJFBhcmFte01vbnRoQWxsb3dlZH0sICRQYXJhbXtEYXlBbGxvd2VkfSApCiAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKCAkWWVhciwgJE1vbnRoLCAkRGF5LCAwLCAwLCAtJE1heEFsbG93ZWRJbnNlcnREYXlzICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0R2l2ZW4gPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgRGF5ICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgIH0KICAgICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0QWxsb3dlZCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJBbGxvd2VkfSwKICAgICAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRoQWxsb3dlZH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXlBbGxvd2VkfSwKICAgICAgICAgICAgfQogICAgKTsKCiAgICBpZiAoCiAgICAgICAgJERhdGVUaW1lT2JqZWN0R2l2ZW4tPkNvbXBhcmUoIERhdGVUaW1lT2JqZWN0ID0+ICREYXRlVGltZU9iamVjdEFsbG93ZWQgKQogICAgICAgID4gMAogICAgICAgICYmICRQYXJhbXtVc2VySUR9ID09ICRTZWxmLT57VXNlcklEfQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O1llYXI9JFBhcmFte1llYXJ9O01vbnRoPSRQYXJhbXtNb250aH07RGF5PSRQYXJhbXtEYXl9IiwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyB0aGUgbmFtaW5nIG9mIHRoZSBhZ2VudCB3aGljaCB0aW1lIGFjY291bnRpbmcgaXMgdmlzaXRlZAogICAgaWYgKCAkUGFyYW17VXNlcklEfSAhPSAkU2VsZi0+e1VzZXJJRH0gKSB7CiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17VXNlcn0gPSAkU2hvd25Vc2Vyc3sgJFBhcmFte1VzZXJJRH0gfTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkUGFyYW17V2Vla2RheX0gICAgICAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF5T2ZXZWVrKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9ICk7CiAgICAkUGFyYW17V2Vla2RheV90b19UZXh0fSA9ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSAtIDEgXTsKICAgICRQYXJhbXtNb250aF90b19UZXh0fSAgID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICAjIFZhbHVlcyBmb3IgdGhlIGxpbmsgaWNvbnMgPD4KICAgICggJFBhcmFte1llYXJCYWNrfSwgJFBhcmFte01vbnRoQmFja30sICRQYXJhbXtEYXlCYWNrfSApCiAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9LCAwLCAwLCAtMSApOwogICAgKCAkUGFyYW17WWVhck5leHR9LCAkUGFyYW17TW9udGhOZXh0fSwgJFBhcmFte0RheU5leHR9ICkKICAgICAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0sIDAsIDAsIDEgKTsKCiAgICAkUGFyYW17RGF0ZVNlbGVjdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgJVBhcmFtLAogICAgICAgIFByZWZpeCAgID0+ICcnLAogICAgICAgIEZvcm1hdCAgID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgICAgIFZhbGlkYXRlID0+IDEsCiAgICAgICAgQ2xhc3MgICAgPT4gJFBhcmFte0Vycm9yc30tPntEYXRlSW52YWxpZH0sCiAgICApOwoKICAgICMgU2hvdyBXb3JraW5nIFVuaXRzCiAgICAjIGdldCBleGlzdGluZyB3b3JraW5nIHVuaXRzCiAgICBteSAlRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgJFBhcmFte0RhdGV9ID0gJERhdGF7RGF0ZX07CgogICAgIyBnZXQgcHJvamVjdCBhbmQgYWN0aW9uIHNldHRpbmdzCiAgICBteSAlUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCk7CiAgICBteSAlQWN0aW9uICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICAjIGdldCBzaWNrLCBsZWF2ZSBkYXkgYW5kIG92ZXJ0aW1lCiAgICAkUGFyYW17U2lja30gICAgID0gJERhdGF7U2lja30gICAgID8gJ2NoZWNrZWQnIDogJyc7CiAgICAkUGFyYW17TGVhdmVEYXl9ID0gJERhdGF7TGVhdmVEYXl9ID8gJ2NoZWNrZWQnIDogJyc7CiAgICAkUGFyYW17T3ZlcnRpbWV9ID0gJERhdGF7T3ZlcnRpbWV9ID8gJ2NoZWNrZWQnIDogJyc7CgogICAgIyBvbmx5IHNob3cgdGhlIHVuaXQgYmxvY2sgaWYgdGhlcmUgaXMgc29tZSBkYXRhCiAgICBteSAkVW5pdHNSZWYgPSAkRGF0YXtXb3JraW5nVW5pdHN9OwogICAgaWYgKCAkVW5pdHNSZWYtPlswXSApIHsKCiAgICAgICAgZm9yIG15ICRVbml0UmVmICggQHskVW5pdHNSZWZ9ICkgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdVbml0JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIFByb2plY3QgICA9PiAkUHJvamVjdHtQcm9qZWN0fXsgJFVuaXRSZWYtPntQcm9qZWN0SUR9IH0sCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uICAgID0+ICRBY3Rpb257ICRVbml0UmVmLT57QWN0aW9uSUR9IH17QWN0aW9ufSwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJFVuaXRSZWYtPntSZW1hcmt9LAogICAgICAgICAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAkVW5pdFJlZi0+e1N0YXJ0VGltZX0sCiAgICAgICAgICAgICAgICAgICAgRW5kVGltZSAgID0+ICRVbml0UmVmLT57RW5kVGltZX0sCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICRVbml0UmVmLT57UGVyaW9kfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVG90YWwnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFRvdGFsID0+IHNwcmludGYoICIlLjJmIiwgJERhdGF7VG90YWx9ICksCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb0RhdGFGb3VuZCcsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtTaWNrfSB8fCAkUGFyYW17TGVhdmVEYXl9IHx8ICRQYXJhbXtPdmVydGltZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ090aGVyVGltZXMnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFNpY2sgICAgID0+ICRQYXJhbXtTaWNrfSwKICAgICAgICAgICAgICAgIExlYXZlRGF5ID0+ICRQYXJhbXtMZWF2ZURheX0sCiAgICAgICAgICAgICAgICBPdmVydGltZSA9PiAkUGFyYW17T3ZlcnRpbWV9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJFZhY2F0aW9uID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIENhbGVuZGFyID0+ICRVc2VyRGF0YXtDYWxlbmRhcn0sCiAgICApOwoKICAgIGlmICgkVmFjYXRpb24pIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVmFjYXRpb24nLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFZhY2F0aW9uID0+ICRWYWNhdGlvbiwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgcHJlc2VudGF0aW9uCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICdWaWV3JywKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIFczMDBweCI+CiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJZZWFyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuWWVhciB8IGh0bWwgJV0KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJNb250aCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5Nb250aCkgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiRGF5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuRGF5IHwgaHRtbCAlXQogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8cCBjbGFzcz0iU3BhY2luZ1RvcCBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/IikgfCBodG1sICVdCjwvcD4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIFJlY29yZCIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdPdmVydmlldztZZWFyPVslIERhdGEuWWVhciB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgdXJpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ3JlYXRlUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWdlYXIiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ3JlYXRlUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXRlIE5hdmlnYXRpb24iKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9IlZhbGlkYXRlIiBuYW1lPSJEYXRlU2VsZWN0aW9uIiBpZD0iRGF0ZVNlbGVjdGlvbkZvcm0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iRWRpdCIgLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkRhdGUgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTmF2aWdhdGlvblNlbGVjdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gSW5saW5lIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNvbXBsZXRlV29ya2luZ0RheXMiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXlzIHdpdGhvdXQgZW50cmllcyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIFslIERhdGEuSW5jb21wbGV0ZVdvcmtpbmdEYXlzU2VsZWN0ICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkluY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeSIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRheXMgd2l0aG91dCBlbnRyaWVzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIEluY29tcGxldGVXb3JraW5nRGF5cyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggaWQ9IlNlbGVjdEFsbERheXMiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IkluY29tcGxldGVXb3JraW5nRGF5LUFsbCIgbmFtZT0iSW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsIiAvPjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJEYXRlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgIFslIFJlbmRlckJsb2NrU3RhcnQoIkluY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeVNpbmdsZURheSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iVzEwcGMiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IkluY29tcGxldGVXb3JraW5nRGF5LVslIERhdGEuRGF0ZSB8IGh0bWwgJV0iIG5hbWU9IkluY29tcGxldGVXb3JraW5nRGF5LVslIERhdGEuRGF0ZSB8IGh0bWwgJV0iIC8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48bGFiZWwgZm9yPSJJbmNvbXBsZXRlV29ya2luZ0RheS1bJSBEYXRhLkRhdGUgfCBodG1sICVdIj5bJSBEYXRhLkRhdGVIUiB8IExvY2FsaXplKCJEYXRlIikgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5XZWVrZGF5KSB8IGh0bWwgJV08L2xhYmVsPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlcxMHBjIj48YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhciB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgdXJpICVdO0RheT1bJSBEYXRhLkRheSB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWVkaXQiPjwvaT48L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICBbJSBSZW5kZXJCbG9ja0VuZCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzTWFzc0VudHJ5U2luZ2xlRGF5IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KCiAgICAgICAgICAgICAgICA8IS0tIDx1bCBjbGFzcz0iSW5jb21wbGV0ZVdvcmtpbmdEYXlzIj4KICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9IlNlbGVjdEFsbERheXMiPjxsYWJlbCBmb3I9IkluY29tcGxldGVXb3JraW5nRGF5LUFsbCI+PGVtPlslIFRyYW5zbGF0ZSgiU2VsZWN0IGFsbCBkYXlzIikgfCBodG1sICVdPC9lbT48L2xhYmVsPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPiAtIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPiAtLT4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBpZD0iTWFzc0VudHJ5IiBuYW1lPSJNYXNzRW50cnkiIGNsYXNzPSJTcGFjaW5nVG9wU21hbGwiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iTWFzc0VudHJ5IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkRhdGVzIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkxlYXZlRGF5IiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlNpY2siIHZhbHVlPSIiIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iT3ZlcnRpbWUiIHZhbHVlPSIiIC8+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9Ik1hc3NFbnRyeVN1Ym1pdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUtbyI+IDwvaT5bJSBUcmFuc2xhdGUoIk1hc3MgZW50cnkiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPGRpdiBpZD0iTWFzc0VudHJ5Q29uZmlybURpYWxvZyIgY2xhc3M9IkhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzIikgfCBodG1sICVdLjwvaDI+CiAgICAgICAgICAgICAgICAgICAgPHVsIGlkPSJNYXNzRW50cnlDb25maXJtUmFkaW8iPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9InJhZGlvIiBkYXRhLWFic2VuY2U9IkxlYXZlRGF5IiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtTGVhdmVEYXkiIC8+PGxhYmVsIGZvcj0iQ29uZmlybUxlYXZlRGF5Ij5bJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9InJhZGlvIiBkYXRhLWFic2VuY2U9IlNpY2siIG5hbWU9IkFic2VuY2VbXSIgaWQ9IkNvbmZpcm1TaWNrIiAvPjxsYWJlbCBmb3I9IkNvbmZpcm1TaWNrIj5bJSBUcmFuc2xhdGUoIk9uIHNpY2sgbGVhdmUiKSB8IGh0bWwgJV08L2xhYmVsPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48aW5wdXQgdHlwZT0icmFkaW8iIGRhdGEtYWJzZW5jZT0iT3ZlcnRpbWUiIG5hbWU9IkFic2VuY2VbXSIgaWQ9IkNvbmZpcm1PdmVydGltZSIgLz48bGFiZWwgZm9yPSJDb25maXJtT3ZlcnRpbWUiPlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV08L2xhYmVsPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkluY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeSIpICVdCgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlJlZmVyZW5jZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlJlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSBcIipcIi4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIllvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSIpIHwgaHRtbCAlXTogWyUgVHJhbnNsYXRlKERhdGEuV2Vla2RheV90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyIHwgaHRtbCAlXS1bJSBEYXRhLk1vbnRoIHwgaHRtbCAlXS1bJSBEYXRhLkRheSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBIb3Jpem9udGFsU2Nyb2xsIj4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJXb3JraW5nVW5pdHMiIGlkPSJXb3JraW5nVW5pdHMiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkVkaXQiIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUmVjb3Jkc051bWJlciIgaWQ9IlJlY29yZHNOdW1iZXIiIHZhbHVlPSJbJSBEYXRhLlJlY29yZHNOdW1iZXIgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN0YXR1cyIgdmFsdWU9IkFjdGlvbiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJZZWFyIiB2YWx1ZT0iWyUgRGF0YS5ZZWFyIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJNb250aCIgdmFsdWU9IlslIERhdGEuTW9udGggfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkRheSIgdmFsdWU9IlslIERhdGEuRGF5IHwgaHRtbCAlXSIgLz4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVW5pdEJsb2NrIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBOb0hvdmVyIEhpZ2hDZWxscyIgaWQ9Ikluc2VydFdvcmtpbmdIb3VycyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSZW1hcmsiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlN0YXJ0IikgfCBodG1sICVdIChISDpNTSk8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkVuZCIpIHwgaHRtbCAlXSAoSEg6TU0pPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+WyUgRGF0YS5QZXJpb2ROb3RlIHwgaHRtbCAlXTwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJQZXJpb2QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iV29ya2luZ0hvdXJzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJvamVjdE9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0SURbJSBEYXRhLklEIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvamVjdElEWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbWJvX1Byb2plY3RJRFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb21ib19Qcm9qZWN0SURbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5BY3Rpb25PcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQWN0aW9uSURbJSBEYXRhLklEIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQWN0aW9uSURbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ29tYm9fQWN0aW9uSURbJSBEYXRhLklEIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ29tYm9fQWN0aW9uSURbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlJlbWFya1tbJSBEYXRhLklEIHwgaHRtbCAlXV0iIGlkPSJSZW1hcmtbJSBEYXRhLklEIHwgaHRtbCAlXSIgY2xhc3M9IlZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1JlbWFyayBbJSBEYXRhLlJlbWFya0ludmFsaWQgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5SZW1hcmsgfCBodG1sICVdIiBzaXplPSIzNSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtYXJrIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSZW1hcmtbJSBEYXRhLklEIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJlbWFya1slIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iU3RhcnRUaW1lW1slIERhdGEuSUQgfCBodG1sICVdXSIgaWQ9IlN0YXJ0VGltZVslIERhdGEuSUQgfCBodG1sICVdIiBjbGFzcz0iU3RhcnRUaW1lIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1N0YXJ0VGltZSBbJSBEYXRhLlN0YXJ0VGltZVJlcXVpcmVkIHwgaHRtbCAlXSBbJSBEYXRhLlN0YXJ0VGltZUludmFsaWQgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5TdGFydFRpbWUgfCBodG1sICVdIiBzaXplPSI3IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTdGFydCBUaW1lIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTdGFydFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIllvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU3RhcnRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZUdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXJ0VGltZU5lZ2F0aXZlU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lTmVnYXRpdmVTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXJ0VGltZUludmFsaWRGb3JtYXRTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWUyNEhvdXJzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lMjRIb3VycyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXJ0VGltZUludmFsaWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZUludmFsaWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkVuZFRpbWVbWyUgRGF0YS5JRCB8IGh0bWwgJV1dIiBpZD0iRW5kVGltZVslIERhdGEuSUQgfCBodG1sICVdIiBjbGFzcz0iRW5kVGltZSBWYWxpZGF0ZV9EZXBlbmRpbmdSZXF1aXJlZEFORCBWYWxpZGF0ZV9EZXBlbmRpbmdfU3RhcnRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV0gWyUgRGF0YS5FbmRUaW1lUmVxdWlyZWQgfCBodG1sICVdIFslIERhdGEuRW5kVGltZUludmFsaWQgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5FbmRUaW1lIHwgaHRtbCAlXSIgc2l6ZT0iNyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRW5kIFRpbWUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkVuZFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIllvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRW5kVGltZVslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZUdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZUdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkVuZFRpbWVCZWZvcmVTdGFydFRpbWVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkVuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbmRUaW1lQmVmb3JlU3RhcnRUaW1lU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lTmVnYXRpdmVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIk5lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbmRUaW1lTmVnYXRpdmVTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlJlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkVuZFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZUludmFsaWRGb3JtYXRTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkVuZFRpbWVJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbmRUaW1lSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXRJbnB1dFBlcmlvZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUGVyaW9kW1slIERhdGEuSUQgfCBodG1sICVdXSIgaWQ9IlBlcmlvZFslIERhdGEuSUQgfCBodG1sICVdIiBjbGFzcz0iUGVyaW9kIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1BlcmlvZCBWYWxpZGF0ZV9UaW1lVW5pdHMgWyUgRGF0YS5QZXJpb2RSZXF1aXJlZCB8IGh0bWwgJV0gWyUgRGF0YS5QZXJpb2RJbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuUGVyaW9kIHwgaHRtbCAlXSIgc2l6ZT0iNyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUGVyaW9kIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQZXJpb2RbJSBEYXRhLklEIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIllvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGVyaW9kWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQZXJpb2RHZW5lcmljU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlBlcmlvZEdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkludmFsaWRIb3Vyc1BlcmlvZFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkludmFsaWRIb3Vyc1BlcmlvZFNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiWmVyb0hvdXJzUGVyaW9kU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlplcm9Ib3Vyc1BlcmlvZFNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiTmVnYXRpdmVQZXJpb2RTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJOZWdhdGl2ZVBlcmlvZFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0SW5wdXRQZXJpb2QiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0UGVyaW9kV2l0aG91dElucHV0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5QZXJpb2QgfCBodG1sICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlVuaXRQZXJpb2RXaXRob3V0SW5wdXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVuaXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0iUmlnaHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFBsdXMiIHR5cGU9ImJ1dHRvbiIgaWQ9Ik1vcmVJbnB1dEZpZWxkcyIgbmFtZT0iTW9yZUlucHV0RmllbGRzIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCBvbmUgcm93IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVW5pdEJsb2NrIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+PC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdOjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJUb3RhbEhvdXJzIj5bJSBEYXRhLlRvdGFsIHwgaHRtbCAlXTwvc3Bhbj48L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVhZG9ubHkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuRGVzY3JpcHRpb24pIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVhZG9ubHkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrU3RhcnQoIk90aGVyVGltZXMiKSAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AgQWJzZW5jZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGlkPSJMZWF2ZURheSIgbmFtZT0iTGVhdmVEYXkiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdIiBjbGFzcz0iWyUgRGF0YS5MZWF2ZURheUludmFsaWQgJV0iIFslIERhdGEuTGVhdmVEYXkgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTGVhdmVEYXkiPlslIFRyYW5zbGF0ZSgiT24gdmFjYXRpb24iKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJMZWF2ZURheVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIllvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgaWQ9IlNpY2siIG5hbWU9IlNpY2siIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIHNpY2sgbGVhdmUiKSB8IGh0bWwgJV0iIGNsYXNzPSJbJSBEYXRhLlNpY2tJbnZhbGlkICVdIiBbJSBEYXRhLlNpY2sgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2ljayI+WyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU2lja1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIllvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgaWQ9Ik92ZXJ0aW1lIiBuYW1lPSJPdmVydGltZSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV0iIGNsYXNzPSJbJSBEYXRhLk92ZXJ0aW1lSW52YWxpZCAlXSIgWyUgRGF0YS5PdmVydGltZSAlXSAvPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJPdmVydGltZSI+WyUgVHJhbnNsYXRlKCJPbiBvdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik92ZXJ0aW1lU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEiKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3RoZXJUaW1lcyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2VudGVyIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgbmFtZT0iSW5zZXJ0V29ya2luZ1VuaXRzIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9IkRlbGV0ZVRpbWVBY2NvdW50aW5nRW50cnkiIGhyZWY9IiMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdOyI+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KCjxwIGlkPSJTaWNrTGVhdmVNZXNzYWdlIiBjbGFzcz0iSGlkZGVuIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8iKSB8IGh0bWwgJV0KPC9wPgoKPHAgaWQ9IlZhY2F0aW9uTWVzc2FnZSIgY2xhc3M9IkhpZGRlbiBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyIpIHwgaHRtbCAlXQo8L3A+Cgo8cCBpZD0iT3ZlcnRpbWVNZXNzYWdlIiBjbGFzcz0iSGlkZGVuIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/IikgfCBodG1sICVdCjwvcD4KCjxwIGlkPSJNb3JlMTZIb3Vyc01lc3NhZ2UiIGNsYXNzPSJIaWRkZW4gQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/IikgfCBodG1sICVdCjwvcD4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIj4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlRpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXciKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyTGFzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ0aW1lIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgKEhvdXJzKSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJPdmVydGltZSAodGhpcyBtb250aCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLk92ZXJ0aW1lIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgKHRvdGFsKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuT3ZlcnRpbWVVbnRpbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlJlbWFpbmluZyBvdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuT3ZlcnRpbWVUb3RhbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnRpbWUiKSAlXQoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVmFjYXRpb24gKERheXMpIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuTGVhdmVEYXkgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiB0YWtlbiAodG90YWwpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5MZWF2ZURheVRvdGFsIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUmVtYWluaW5nIHZhY2F0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5MZWF2ZURheVJlbWFpbmluZyB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiU2ljayBMZWF2ZSAoRGF5cykiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlNpY2sgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJTaWNrIGxlYXZlIHRha2VuICh0b3RhbCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlNpY2tUb3RhbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiT3ZlcnZpZXciKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIC0gWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJBZGRpdGlvbmFsSW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlByZXZpb3VzIG1vbnRoIikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhckJhY2sgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aEJhY2sgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJOZXh0IG1vbnRoIikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLk1vbnRoX3RvX1RleHQpIHwgaHRtbCAlXSBbJSBEYXRhLlllYXIgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRheSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV2Vla2RheSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV29ya2luZyBIb3VycyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IlslIERhdGEuQ2xhc3MgfCBodG1sICVdIE1hc3RlckFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGaXhlZCBEYXkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRGF0YS5BY3Rpb24gfCB1cmkgJV07WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXkgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIiBjbGFzcz0iTWFzdGVyQWN0aW9uTGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkRheSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGaXhlZCBXZWVrZGF5Ij5bJSBUcmFuc2xhdGUoRGF0YS5XZWVrZGF5X3RvX1RleHQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLkNvbW1lbnQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Xb3JraW5nSG91cnMgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCBSaWdodCI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIHdvcmtlZCBob3VycyIpIHwgaHRtbCAlXTo8L3N0cm9uZz4gWyUgRGF0YS5Xb3JraW5nSG91cnMgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0VGFibGUiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVXNlcidzIHByb2plY3Qgb3ZlcnZpZXciKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtQcm9qZWN0U3RhdHVzU2hvdz1bJSBEYXRhLlByb2plY3RTdGF0dXNTaG93IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWyUgVHJhbnNsYXRlKERhdGEuU2hvd1Byb2plY3RzKSB8IGh0bWwgJV0pCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBOb0hvdmVyIEhpZ2hDZWxscyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAobW9udGhseSkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIChMaWZldGltZSkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgcm93c3Bhbj0iWyUgRGF0YS5Sb3dTcGFuICVdIiBjbGFzcz0iUm93U3BhbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3ROb0xpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3QgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3ROb0xpbmsiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0TGluayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nO1N1YmFjdGlvbj1SZXBvcnRpbmdQcm9qZWN0O1Byb2plY3RJRD1bJSBEYXRhLlByb2plY3RJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3QgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdExpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N0cm9uZz4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdERlc2NyaXB0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz5bJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdERlc2NyaXB0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnNUb3RhbCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3Vyc1RvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uVG90YWwiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiR3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkdyYW5kVG90YWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj48c3Ryb25nPlslIFRyYW5zbGF0ZSgiR3JhbmQgdG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0VGFibGUiKSAlXQogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiVGltZSByZXBvcnRpbmciKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZShEYXRhLk1vbnRoX3RvX1RleHQpIHwgaHRtbCAlXSBbJSBEYXRhLlllYXIgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJNb250aCBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTW9udGhTZWxlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyBMZWZ0IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQcmV2aW91cyBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJCYWNrIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhCYWNrIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJOZXh0IG1vbnRoIikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5bJSBUcmFuc2xhdGUoRGF0YS5Nb250aF90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyICVdPC9zdHJvbmc+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJjb21wb3NlIiBpZD0iRGF0ZVNlbGVjdGlvbkZvcm0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgICAgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iUmVwb3J0aW5nIiAvPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuTW9udGhPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlllYXJPcHRpb24gJV0KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJOYXZpZ2F0aW9uU2VsZWN0IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCIgYWNjZXNza2V5PSJnIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtYXJyb3ctY2lyY2xlLW8tcmlnaHQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIGRhdGUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJVc2VyIHJlcG9ydHMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBIb3Jpem9udGFsU2Nyb2xsIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyVGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZCBjbGFzcz0iVHdvUm93cyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIiIGNvbHNwYW49IjQiPlslIFRyYW5zbGF0ZSgiTW9udGhseSB0b3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNlbnRlciIgY29sc3Bhbj0iMiI+WyUgVHJhbnNsYXRlKCJMaWZldGltZSB0b3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV29ya2luZyBIb3VycyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJPdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTaWNrIGxlYXZlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhY2F0aW9uIHJlbWFpbmluZyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9Ik1hc3RlckFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdPdmVydmlldztZZWFyPVslIERhdGEuWWVhciB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlVzZXIgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuV29ya2luZ0hvdXJzIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLk92ZXJ0aW1lIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkxlYXZlRGF5IHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLlNpY2sgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuT3ZlcnRpbWVUb3RhbCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5MZWF2ZURheVJlbWFpbmluZyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXJHcmFuZFRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJHcmFuZFRvdGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsV29ya2luZ0hvdXJzIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxPdmVydGltZSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsTGVhdmVEYXkgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbFNpY2sgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbE92ZXJ0aW1lVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbExlYXZlRGF5UmVtYWluaW5nIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyR3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiBbJSBSZW5kZXJCbG9ja0VuZCgiVXNlclRhYmxlIikgJV0KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUHJvamVjdCByZXBvcnRzIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IlslIERhdGEuUHJvamVjdFN0YXR1c0xpbmtDbGFzcyAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtQcm9qZWN0U3RhdHVzU2hvdz1bJSBEYXRhLlByb2plY3RTdGF0dXNTaG93IHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgKFslIFRyYW5zbGF0ZShEYXRhLlNob3dQcm9qZWN0cykgfCBodG1sICVdKQogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBIb3Jpem9udGFsU2Nyb2xsIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vUHJvamVjdERhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vUHJvamVjdERhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0VGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiSG91cnMgKG1vbnRobHkpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIChMaWZldGltZSkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9Ik1hc3RlckFjdGlvbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHJvd3NwYW49IlslIERhdGEuUm93U3BhbiAlXSIgY2xhc3M9IlJvd1NwYW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1SZXBvcnRpbmdQcm9qZWN0O1Byb2plY3RJRD1bJSBEYXRhLlByb2plY3RJRCB8IHVyaSAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N0cm9uZz4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdERlc2NyaXB0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlslIERhdGEuUHJvamVjdERlc2NyaXB0aW9uICVdClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0RGVzY3JpcHRpb24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkhvdXJzIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnNUb3RhbCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvblRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSG91cnMgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLkhvdXJzVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uVG90YWwiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdEdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj48c3Ryb25nPlslIFRyYW5zbGF0ZSgiR3JhbmQgdG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxIb3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxIb3Vyc1RvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3RHcmFuZFRvdGFsIikgJV0KICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0VGFibGUiKSAlXQoKICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiUHJvamVjdCByZXBvcnQiKSB8IGh0bWwgJV06IFslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiSGludCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KWyUgSUYgRGF0YS5TaG93T25seUFjdGl2ZVVzZXJzID09ICcxJyAlXQogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluU3lzQ29uZmlnO1N1YmFjdGlvbj1FZGl0O1N5c0NvbmZpZ0dyb3VwPVRpbWVBY2NvdW50aW5nO1N5c0NvbmZpZ1N1Ykdyb3VwPUZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291dG5pbmc6OlZpZXdSZXBvcnRpbmdQcm9qZWN0Ij5TaG93T25seUFjdGl2ZVVzZXJzPC9hPgogICAgICAgICAgICAgICAgPC9wPgpbJSBFTFNFICVdCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluU3lzQ29uZmlnO1N1YmFjdGlvbj1FZGl0O1N5c0NvbmZpZ0dyb3VwPVRpbWVBY2NvdW50aW5nO1N5c0NvbmZpZ1N1Ykdyb3VwPUZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291dG5pbmc6OlZpZXdSZXBvcnRpbmdQcm9qZWN0Ij5TaG93T25seUFjdGl2ZVVzZXJzPC9hPgogICAgICAgICAgICAgICAgPC9wPgpbJSBFTkQgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUHJvamVjdCByZXBvcnQiKSB8IGh0bWwgJV06IFslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIERhdGFUYWJsZU5vSGlnaGxpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgRGF0YS5Vc2VyIHwgaHRtbCAlXTwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV08L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnMgfCBodG1sICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJHcmFuZFRvdGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyVG90YWwiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyVG90YWxBbGwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsQWxsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyVG90YWxBbGwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXJUYWJsZSIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpc3RvcnkiKSB8IGh0bWwgJV06IFslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIERhdGFUYWJsZU5vSGlnaGxpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRhdGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVXNlciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlJlbWFyayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQZXJpb2QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5EYXRlIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5Vc2VyIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlJlbWFyayB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5QZXJpb2QgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhpc3RvcnlUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5IaXN0b3J5VG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkhpc3RvcnlUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0VGFibGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkxpc3RQcm9qZWN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZFByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iQWRkUHJvamVjdCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCBwcm9qZWN0IikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkUHJvamVjdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25TZXR0aW5nT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uU2V0dGluZ092ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uTGlzdFByb2plY3QiKSAlXQogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZVByb2plY3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFkZFByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWRkIFByb2plY3QiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyQWRkUHJvamVjdCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckVkaXRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkVkaXQgUHJvamVjdCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDI+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJFZGl0UHJvamVjdCIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBuYW1lPSJQcm9qZWN0VXBkYXRlIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iWyUgRGF0YS5BY3Rpb24gfCBodG1sICVdQWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJJRCIgdmFsdWU9IlslIERhdGEuSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUHJvamVjdCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJQcm9qZWN0IiBpZD0iUHJvamVjdCIgdmFsdWU9IlslIERhdGEuUHJvamVjdCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLlByb2plY3RJbnZhbGlkIHwgaHRtbCAlXSIgbWF4bGVuZ3RoPSI1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvamVjdEVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0TWlzc2luZ1ZhbHVlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3REdXBsaWNhdGVOYW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3REdXBsaWNhdGVOYW1lIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJQcm9qZWN0RGVzY3JpcHRpb24iPlslIFRyYW5zbGF0ZSgiRGVzY3JpcHRpb24iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlByb2plY3REZXNjcmlwdGlvbiIgaWQ9IlByb2plY3REZXNjcmlwdGlvbiIgdmFsdWU9IlslIERhdGEuUHJvamVjdERlc2NyaXB0aW9uIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjE1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJvamVjdFN0YXR1cyI+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0dXNPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIGlkPSJTdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVQcm9qZWN0IikgJV0KICAgIDwvZGl2Pgo8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZXR0aW5nIikgJV0KPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJGaXJzdCI+CiAgICA8aDEgY2xhc3M9IkhlYWRlciI+WyUgVHJhbnNsYXRlKCJFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25MaXN0U2V0dGluZyIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFByb2plY3QiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgcHJvamVjdCIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFByb2plY3QiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRUYXNrIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFRhc2siLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCB0YXNrIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCB0YXNrIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkVGFzayIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZFVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGlkPSJBY3Rpb25BZGRVc2VyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFVzZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmV3VXNlck9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlld1NldHRpbmciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXdTZXR0aW5nIikgJV0KCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3RTZXR0aW5nIikgJV0KCiAgICBbJSBJRiAhRW52KCJTdWJhY3Rpb24iKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIikgfCBodG1sICVdIiB2YWx1ZT0iIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2VycyIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICBbJSBFTkQgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlJlZmVyZW5jZSIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUmVmZXJlbmNlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhIFwiKlwiLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJSZWZlcmVuY2UiKSAlXQoKICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFByb2plY3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj48YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUHJvamVjdCBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iUHJvamVjdHMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXMzNwYyI+WyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzMzcGMiPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFByb2plY3RSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgWyUgSUYgRGF0YS5TdGF0dXMgPT0gJ2ludmFsaWQnJV1jbGFzcz0iSW52YWxpZCJbJSBFTkQgJV0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1FZGl0UHJvamVjdDtJRD1bJSBEYXRhLlByb2plY3RJRCB8IHVyaSAlXSI+WyUgRGF0YS5Qcm9qZWN0IHwgaHRtbCAlXTwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHRpdGxlPSJbJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiB8IGh0bWwgJV0iPlslIERhdGEuUHJvamVjdERlc2NyaXB0aW9uIHwgdHJ1bmNhdGUoNDApIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuU3RhdHVzKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFByb2plY3QiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+PGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlRhc2sgTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vU2V0dGluZ0RhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vU2V0dGluZ0RhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFNldHRpbmdUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlRhc2tzIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzMzcGMiPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuU3RhdHVzID09ICdpbnZhbGlkJyVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249RWRpdFRhc2s7QWN0aW9uSUQ9WyUgRGF0YS5BY3Rpb25JRCB8IHVyaSAlXSI+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuU3RhdHVzKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nUm93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFNldHRpbmciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdVcGRhdGVUYXNrIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZGRUYXNrIikgJV0KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBUYXNrIikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFkZFRhc2siKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJFZGl0VGFzayIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFRhc2sgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRWRpdFRhc2siKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iVGFza1VwZGF0ZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXUFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uSUQiIHZhbHVlPSJbJSBEYXRhLkFjdGlvbklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRhc2siPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVGFzayIgaWQ9IlRhc2siIHZhbHVlPSJbJSBEYXRhLlRhc2sgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5UYXNrSW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRhc2tFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIlRhc2tNaXNzaW5nVmFsdWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGFza1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGFza01pc3NpbmdWYWx1ZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUYXNrRHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUYXNrU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJUYXNrRHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUYXNrU3RhdHVzIj5bJSBUcmFuc2xhdGUoIlN0YXR1cyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlN0YXR1c09wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgaWQ9IlN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSI+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1VwZGF0ZVRhc2siKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRVc2VyIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+PGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlVzZXIgTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFVzZXJUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlVzZXJzIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzMzcGMiPlslIFRyYW5zbGF0ZSgiVXNlciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlczM3BjIj5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ2FsZW5kYXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRVc2VyUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249RWRpdFVzZXI7VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIj5bJSBEYXRhLlVzZXIgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5Db21tZW50ICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5DYWxlbmRhcikgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0VXNlclJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFVzZXJUYWJsZSIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRVc2VyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3VXBkYXRlVXNlciIpICVdCiAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iVXNlclVwZGF0ZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iWyUgRGF0YS5TdWJhY3Rpb24gfCBodG1sICVdIiAvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlVzZXJJRCIgdmFsdWU9IlslIERhdGEuVXNlcklEIHwgaHRtbCAlXSIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBZGRQZXJpb2QiIHZhbHVlPSIiIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3VibWl0VXNlckRhdGEiIHZhbHVlPSIiIC8+CgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJVc2VyIFNldHRpbmdzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5hbWUiPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXSAoWyUgVHJhbnNsYXRlKCJVc2VybmFtZSIpIHwgaHRtbCAlXSk6PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5Vc2VyRnVsbG5hbWUgfCBodG1sICVdIChbJSBEYXRhLlVzZXJMb2dpbiB8IGh0bWwgJV0pPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJEZXNjcmlwdGlvbiI+WyUgVHJhbnNsYXRlKCJEZXNjcmlwdGlvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkRlc2NyaXB0aW9uIiBpZD0iRGVzY3JpcHRpb24iIGNsYXNzPSJXNTBwYyIgdmFsdWU9IlslIERhdGEuRGVzY3JpcHRpb24gfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2hvd092ZXJ0aW1lIj5bJSBUcmFuc2xhdGUoIlVzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iU2hvd092ZXJ0aW1lIiBpZD0iU2hvd092ZXJ0aW1lIiB2YWx1ZT0iMSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBPdmVydGltZSIpIHwgaHRtbCAlXSIgWyUgRGF0YS5TaG93T3ZlcnRpbWUgJV0gLz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNyZWF0ZVByb2plY3QiPlslIFRyYW5zbGF0ZSgiVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IkNyZWF0ZVByb2plY3QiIGlkPSJDcmVhdGVQcm9qZWN0IiB2YWx1ZT0iMSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiQWxsb3cgcHJvamVjdCBjcmVhdGlvbiIpIHwgaHRtbCAlXSIgWyUgRGF0YS5DcmVhdGVQcm9qZWN0ICVdIC8+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDYWxlbmRhciI+WyUgVHJhbnNsYXRlKCJDYWxlbmRhciIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DYWxlbmRhck9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVGltZSBTcGFucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBOb0hvdmVyIFRpbWVBY2NvdW50aW5nVGFibGUiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiUGVyaW9kIEJlZ2luIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlBlcmlvZCBFbmQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiRGF5cyBvZiBWYWNhdGlvbiIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyBwZXIgV2VlayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJBdXRob3JpemVkIE92ZXJ0aW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlN0YXR1cyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlBlcmlvZE92ZXJ2aWV3Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXSIgbmFtZT0iRGF0ZVN0YXJ0W1slIERhdGEuUGVyaW9kIHwgaHRtbCAlXV0iIHZhbHVlPSJbJSBEYXRhLkRhdGVTdGFydCB8IGh0bWwgJV0iIGNsYXNzPSIgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5EYXRlU3RhcnRJbnZhbGlkIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU3RhcnQgRGF0ZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlU3RhcnQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlU3RhcnRJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlU3RhcnQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlU3RhcnRJbnZhbGlkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZVN0YXJ0TWlzc2luZ1ZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlU3RhcnQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRGF0ZVN0YXJ0TWlzc2luZ1ZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJEYXRlRW5kLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXSIgbmFtZT0iRGF0ZUVuZFtbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5EYXRlRW5kIHwgaHRtbCAlXSIgY2xhc3M9IiBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkRhdGVFbmRJbnZhbGlkIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRW5kIERhdGUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkRhdGVFbmRJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlRW5kLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRGF0ZUVuZEludmFsaWQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlRW5kTWlzc2luZ1ZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlRW5kLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVFbmRNaXNzaW5nVmFsdWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlRW5kQmVmb3JlRGF0ZVN0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlRW5kLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVFbmRCZWZvcmVEYXRlU3RhcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkxlYXZlRGF5cy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkxlYXZlRGF5c1tbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5MZWF2ZURheXMgfCBodG1sICVdIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5MZWF2ZURheXNJbnZhbGlkIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTGVhdmUgRGF5cyIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJMZWF2ZURheXMtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxlYXZlRGF5cy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iV2Vla2x5SG91cnMtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBuYW1lPSJXZWVrbHlIb3Vyc1tbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5XZWVrbHlIb3VycyB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIldlZWtseSBIb3VycyIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJPdmVydGltZS1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9Ik92ZXJ0aW1lW1slIERhdGEuUGVyaW9kIHwgaHRtbCAlXV0iIHZhbHVlPSJbJSBEYXRhLk92ZXJ0aW1lIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUGVyaW9kU3RhdHVzT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUGVyaW9kT3ZlcnZpZXdSb3ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUGVyaW9kT3ZlcnZpZXdSb3dOb0RhdGEiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyB0aW1lIHBlcmlvZHMgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUGVyaW9kT3ZlcnZpZXdSb3dOb0RhdGEiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJBZGQgdGltZSBwZXJpb2QiKSB8IGh0bWwgJV0iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCB0aW1lIHBlcmlvZCIpIHwgaHRtbCAlXSIgaWQ9IkFkZFBlcmlvZCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gUGx1cyBTcGFjaW5nVG9wU21hbGwiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPiBbJSBUcmFuc2xhdGUoIkFkZCB0aW1lIHBlcmlvZCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIiBpZD0iU3VibWl0VXNlckRhdGEiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSI+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZm9ybT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlVXNlciIpICVdCiAgICA8L2Rpdj4KPC9kaXY+CgpbJSBSZW5kZXJCbG9ja0VuZCgiU2V0dGluZyIpICVdCg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiVmlldyBUaW1lIFJlY29yZCIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyIikgJV0KICAgICAgICAtIFslIFRyYW5zbGF0ZSgiVmlldyBvZiAiKSB8IGh0bWwgJV0gWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlciIpICVdCiAgICA8L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTW9udGhTZWxlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUHJldmlvdXMgZGF5IikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhckJhY2sgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aEJhY2sgfCB1cmkgJV07RGF5PVslIERhdGEuRGF5QmFjayB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTmV4dCBkYXkiKSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyTmV4dCB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoTmV4dCB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXlOZXh0IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuWWVhciB8IGh0bWwgJV0tWyUgRGF0YS5Nb250aCB8IGh0bWwgJV0tWyUgRGF0YS5EYXkgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJEYXRlU2VsZWN0aW9uIiBjbGFzcz0iVmFsaWRhdGUiIGlkPSJEYXRlU2VsZWN0aW9uRm9ybSI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJWaWV3IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlVzZXJJRCIgICAgdmFsdWU9IlslIERhdGEuVXNlcklEIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkRhdGVTZWxlY3Rpb24gJV0KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJOYXZpZ2F0aW9uU2VsZWN0IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBkYXRlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSIpIHwgaHRtbCAlXTogWyUgVHJhbnNsYXRlKERhdGEuV2Vla2RheV90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5EYXRlIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIERhdGFUYWJsZU5vSGlnaGxpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlByb2plY3QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSZW1hcmsiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhcnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRW5kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlBlcmlvZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5Qcm9qZWN0IHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlJlbWFyayB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5TdGFydFRpbWUgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuRW5kVGltZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5QZXJpb2QgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVuaXQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV06PC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgoKICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRvdGFsIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjYiPlslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuIikgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vRGF0YUZvdW5kIikgJV0KCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdGhlclRpbWVzIikgJV0KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iLTIiIGlkPSJMZWF2ZURheSIgbmFtZT0iTGVhdmVEYXkiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdIiBbJSBEYXRhLkxlYXZlRGF5ICVdIGRpc2FibGVkIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTGVhdmVEYXkiPlslIFRyYW5zbGF0ZSgiT24gdmFjYXRpb24iKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Ii0xIiBpZD0iU2ljayIgbmFtZT0iU2ljayIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXSIgWyUgRGF0YS5TaWNrICVdIGRpc2FibGVkIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2ljayI+WyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSItMyIgaWQ9Ik92ZXJ0aW1lIiBuYW1lPSJPdmVydGltZSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV0iIFslIERhdGEuT3ZlcnRpbWUgJV0gZGlzYWJsZWQgLz4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJPdmVydGltZSI+WyUgVHJhbnNsYXRlKCJPbiBvdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk90aGVyVGltZXMiKSAlXQoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVmFjYXRpb24iKSAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWNhdGlvbiB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlZhY2F0aW9uIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5vdGlmaWNhdGlvbjo6VGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBVc2VySUQgcGFyYW0KICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREYXRlVGltZU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgbXkgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICREYXRlVGltZVNldHRpbmdzLT57WWVhcn0sCiAgICAgICAgTW9udGggPT4gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH0sCiAgICAgICAgRGF5ICAgPT4gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9LAogICAgKTsKICAgIGlmICggJFVzZXJ7ICRTZWxmLT57VXNlcklEfSB9ICkgewogICAgICAgIG15ICVJbmNvbXBsZXRlV29ya2luZ0RheXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyByZWRpcmVjdCBpZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5IGFyZSBvdXQgb2YgcmFuZ2UKICAgICAgICBpZiAoICRJbmNvbXBsZXRlV29ya2luZ0RheXN7V2FybmluZ30gKSB7CgogICAgICAgICAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT5Ob3RpZnkoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICcnOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6OkluY29tcGxldGVXb3JraW5nRGF5czsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBEZWZpbmUgYWN0aW9uIGFuZCBnZXQgaXRzIGZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24uCiAgICBteSAkQWN0aW9uID0gJ0FnZW50VGltZUFjY291bnRpbmdFZGl0JzsKICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259OwoKICAgICMgRG8gbm90IHNob3cgaWNvbiBpZiBmcm9udGVuZCBtb2R1bGUgaXMgbm90IHJlZ2lzdGVyZWQuCiAgICByZXR1cm4gaWYgISRDb25maWc7CgogICAgIyBHZXQgZ3JvdXAgbmFtZXMgZnJvbSBjb25maWcuCiAgICBteSBAR3JvdXBOYW1lcyA9IEB7ICRDb25maWctPntHcm91cH0gfHwgW10gfTsKCiAgICAjIElmIGFjY2VzcyBpcyByZXN0cmljdGVkLCBhbGxvdyBhY2Nlc3Mgb25seSBpZiB1c2VyIGhhcyBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucyBpbiBjb25maWd1cmVkIGdyb3VwKHMpLgogICAgaWYgKEBHcm91cE5hbWVzKSB7CgogICAgICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICAgICAjIEdldCB1c2VyIGdyb3Vwcywgd2hlcmUgdGhlIHVzZXIgaGFzIHRoZSBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucy4KICAgICAgICBteSAlR3JvdXBMaXN0ID0gJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIFR5cGUgICA9PiAncncnLAogICAgICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgICk7CgogICAgICAgIG15ICRQZXJtaXNzaW9uID0gMDsKCiAgICAgICAgR1JPVVA6CiAgICAgICAgZm9yIG15ICRHcm91cE5hbWUgKEBHcm91cE5hbWVzKSB7CiAgICAgICAgICAgIG5leHQgR1JPVVAgaWYgISRHcm91cE5hbWU7CgogICAgICAgICAgICAjIEdldCB0aGUgZ3JvdXAgSUQuCiAgICAgICAgICAgIG15ICRHcm91cElEID0gJEdyb3VwT2JqZWN0LT5Hcm91cExvb2t1cCgKICAgICAgICAgICAgICAgIEdyb3VwID0+ICRHcm91cE5hbWUsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgR1JPVVAgaWYgISRHcm91cElEOwoKICAgICAgICAgICAgIyBTdG9wIGNoZWNraW5nIGlmIG1lbWJlcnNoaXAgaW4gYXQgbGVhc3Qgb25lIGdyb3VwIGlzIGZvdW5kLgogICAgICAgICAgICBpZiAoICRHcm91cExpc3R7JEdyb3VwSUR9ICkgewogICAgICAgICAgICAgICAgJFBlcm1pc3Npb24gPSAxOwogICAgICAgICAgICAgICAgbGFzdCBHUk9VUDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBEZW55IGFjY2VzcyBpZiB0aGUgYWdlbnQgZG9lc24ndCBoYXZlIHRoZSBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucy4KICAgICAgICByZXR1cm4gaWYgISRQZXJtaXNzaW9uOwogICAgfQoKICAgIG15ICREYXRlVGltZU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgbXkgJVVzZXJDdXJyZW50UGVyaW9kID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9LAogICAgICAgIE1vbnRoID0+ICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9LAogICAgICAgIERheSAgID0+ICREYXRlVGltZVNldHRpbmdzLT57RGF5fSwKICAgICk7CgogICAgIyBEZW55IGFjY2VzcywgaWYgdXNlciBoYXMgbm8gdmFsaWQgcGVyaW9kLgogICAgcmV0dXJuIGlmICEkVXNlckN1cnJlbnRQZXJpb2R7ICRTZWxmLT57VXNlcklEfSB9OwoKICAgICMgR2V0IHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuCiAgICBteSAkQ291bnQgICAgICAgICAgICAgICAgID0gMDsKICAgIG15ICVJbmNvbXBsZXRlV29ya2luZ0RheXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgWUVBUklEOgogICAgZm9yIG15ICRZZWFySUQgKCBzb3J0IGtleXMgJXsgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfSB9ICkgewoKICAgICAgICBuZXh0IFlFQVJJRCBpZiAhJFllYXJJRDsKICAgICAgICBuZXh0IFlFQVJJRCBpZiAhJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXskWWVhcklEfTsKICAgICAgICBuZXh0IFlFQVJJRCBpZiByZWYgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXskWWVhcklEfSBuZSAnSEFTSCc7CgogICAgICAgICMgRXh0cmFjdCB5ZWFyLgogICAgICAgIG15ICVZZWFyID0gJXsgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXskWWVhcklEfSB9OwoKICAgICAgICBNT05USDoKICAgICAgICBmb3IgbXkgJE1vbnRoSUQgKCBzb3J0IGtleXMgJVllYXIgKSB7CgogICAgICAgICAgICBuZXh0IE1PTlRIIGlmICEkTW9udGhJRDsKICAgICAgICAgICAgbmV4dCBNT05USCBpZiAhJFllYXJ7JE1vbnRoSUR9OwogICAgICAgICAgICBuZXh0IE1PTlRIIGlmIHJlZiAkWWVhcnskTW9udGhJRH0gbmUgJ0hBU0gnOwoKICAgICAgICAgICAgIyBleHRyYWN0IG1vbnRoCiAgICAgICAgICAgIG15ICVNb250aCA9ICV7ICRZZWFyeyRNb250aElEfSB9OwoKICAgICAgICAgICAgJENvdW50ICs9IHNjYWxhciBrZXlzICVNb250aDsKICAgICAgICB9CiAgICB9CgogICAgIyBSZW1vdmUgY3VycmVudCBkYXkgYmVjYXVzZSBpdCBtYWtlcyBubyBzZW5zZSB0byBzaG93IHRoZSBjdXJyZW50IGRheSBhcyBpbmNvbXBsZXRlLgogICAgaWYgKCAkQ291bnQgPiAwICkgewogICAgICAgICRDb3VudC0tOwogICAgfQoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBHZXQgdG9vbGJhciBvYmplY3QgcGFyYW1ldGVycy4KICAgIG15ICRDbGFzcyA9ICRQYXJhbXtDb25maWd9LT57Q3NzQ2xhc3N9OwogICAgbXkgJFRleHQgID0gVHJhbnNsYXRhYmxlKCdJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cycpOwogICAgbXkgJFVSTCAgID0gJExheW91dE9iamVjdC0+e0Jhc2VsaW5rfTsKICAgIG15ICRJY29uICA9ICRQYXJhbXtDb25maWd9LT57SWNvbn07CgogICAgcmV0dXJuICgpIGlmICEkQ291bnQ7CgogICAgbXkgJVJldHVybiA9ICgKICAgICAgICAxMDAwODEwID0+IHsKICAgICAgICAgICAgQmxvY2sgICAgICAgPT4gJ1Rvb2xCYXJJdGVtJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJFRleHQsCiAgICAgICAgICAgIENvdW50ICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICBJY29uICAgICAgICA9PiAkSWNvbiwKICAgICAgICAgICAgTGluayAgICAgICAgPT4gJFVSTCAuICdBY3Rpb249JyAuICRBY3Rpb24sCiAgICAgICAgICAgIEFjY2Vzc0tleSAgID0+ICcnLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAlUmV0dXJuOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxvcHRpb24gdmFsdWU9Int7IFZhbHVlIH19IiB7eyAic2VsZWN0ZWQiIGlmIFNlbGVjdGVkIH19Pnt7IFRleHQgfX08L29wdGlvbj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxzcGFuIGNsYXNzPSJBSkFYTG9hZGVyIj48L3NwYW4+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpEYXRlVGltZTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KCBJc0hhc2hSZWZXaXRoRGF0YSApOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nIC0gdGltZSBhY2NvdW50aW5nIGxpYgoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgdGltZSBhY2NvdW50aW5nIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBVc2VyQ3VycmVudFBlcmlvZEdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSBjdXJyZW50IHBlcmlvZCBkYXRhIG9mIHRoZSBzcGVjaWZpZWQgdXNlcgoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoID0+ICcxMicsCiAgICAgICAgRGF5ICAgPT4gJzI0JywKICAgICk7CgpUaGUgcmV0dXJuZWQgaGFzaCBjb250YWlucyB0aGUgZm9sbG93aW5nIGVsZW1lbnRzOgoKICAgICVVc2VyRGF0YSA9ICgKICAgICAgICAxID0+IHsKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgPT4gMTIzLAogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAwNS0xMi0yNCcsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDA1LTEyLTI0JywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gNDAuNCwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gMTIsCiAgICAgICAgICAgIE92ZXJUaW1lICAgID0+IDM0LAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFVzZXJDdXJyZW50UGVyaW9kR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBmb3IgbXkgJE5lZWRlZFBhcmFtIChxdyhZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZFBhcmFtfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJDdXJyZW50UGVyaW9kR2V0OiBOZWVkICROZWVkZWRQYXJhbSEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGJ1aWxkIGRhdGUgc3RyaW5nIGZvciBnaXZlbiBwYXJhbXMKICAgIG15ICREYXRlID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQgMDA6MDA6MDAiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9OwoKICAgICMgY2hlY2sgY2FjaGUKICAgIGlmICggJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9ICkgewoKICAgICAgICByZXR1cm4gJXsgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9IH07CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgV0hFUkUgZGF0ZV9zdGFydCA8PSA/CiAgICAgICAgICAgICAgICBBTkQgZGF0ZV9lbmQgID49ID8KICAgICAgICAgICAgICAgIEFORCBzdGF0dXMgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCREYXRlLCBcJERhdGUsIFwxLCBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRVc2VyUmVmID0gewogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQZXJpb2QgICAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICksCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+IHN1YnN0ciggJFJvd1szXSwgMCwgMTAgKSwKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJvd1s0XSwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJFJvd1s1XSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJFJvd1s2XSwKICAgICAgICB9OwogICAgICAgICREYXRheyAkUm93WzBdIH0gPSAkVXNlclJlZjsKICAgIH0KCiAgICAjIGNoZWNrIGZvciB2YWxpZCB1c2VyIGRhdGEKICAgIHJldHVybiBpZiAhJURhdGE7CgogICAgIyBzdG9yZSB1c2VyIGRhdGEgaW4gY2FjaGUKICAgICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9eyREYXRlfSA9IFwlRGF0YTsKCiAgICByZXR1cm4gJURhdGE7Cn0KCj1oZWFkMiBVc2VyUmVwb3J0aW5nKCkKCnJldHVybnMgYSBoYXNoIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgbGVhdmUgZGF5cywgb3ZlcnRpbWVzLAp3b3JraW5nIGhvdXJzIGV0Yy4gb2YgYWxsIHVzZXJzCgogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoID0+ICcxMicsCiAgICAgICAgRGF5ICAgPT4gJzEyJywgICAgICAjIE9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJSZXBvcnRpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsb2cgb2JqZWN0CiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgZm9yIG15ICROZWVkZWRQYXJhbSAocXcoWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWRQYXJhbX0gJiYgJE5lZWRlZFBhcmFtIG5lICdEYXknICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJSZXBvcnRpbmc6IE5lZWQgJE5lZWRlZFBhcmFtISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayB2YWxpZCBkYXRlIHZhbHVlcwogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXl9IHx8IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkRGF0ZVRpbWVPYmplY3Q7CgogICAgIyBnZXQgZGF5cyBvZiBtb250aCBpZiBub3QgcHJvdmlkZWQKICAgIG15ICRMYXN0RGF5T2ZNb250aCA9ICREYXRlVGltZU9iamVjdC0+TGFzdERheU9mTW9udGhHZXQoKTsKICAgICRQYXJhbXtEYXl9IHx8PSAkTGFzdERheU9mTW9udGgtPntEYXl9OwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRTZWxmLT5Vc2VyQ3VycmVudFBlcmlvZEdldCglUGFyYW0pOwogICAgbXkgJFllYXJTdGFydCAgICAgICAgID0gMTk3MDsKICAgIG15ICRNb250aFN0YXJ0ICAgICAgICA9IDE7CiAgICBteSAkRGF5U3RhcnQgICAgICAgICAgPSAxOwogICAgbXkgJFllYXJFbmQgICAgICAgICAgID0gJFBhcmFte1llYXJ9OwogICAgbXkgJE1vbnRoRW5kICAgICAgICAgID0gJFBhcmFte01vbnRofTsKICAgIG15ICREYXlFbmQgICAgICAgICAgICA9ICRQYXJhbXtEYXl9OwoKICAgIG15ICVEYXRhOwoKICAgIFVTRVJJRDoKICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVVc2VyQ3VycmVudFBlcmlvZCApIHsKCiAgICAgICAgaWYgKCAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9ID1+IG17IFxBIChcZHs0fSktKFxkezJ9KS0oXGR7Mn0pIH14bXMgKSB7CiAgICAgICAgICAgICRZZWFyU3RhcnQgID0gJDE7CiAgICAgICAgICAgICRNb250aFN0YXJ0ID0gJDI7CiAgICAgICAgICAgICREYXlTdGFydCAgID0gJDM7CiAgICAgICAgfQoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyU3RhcnQsCiAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGhTdGFydCwKICAgICAgICAgICAgICAgIERheSAgID0+ICREYXlTdGFydCwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkRGF0ZVRpbWVPYmplY3QgKSB7CgogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdVc2VyUmVwb3J0aW5nOiBJbnZhbGlkIHN0YXJ0IGRhdGUgZm9yIHVzZXIgJwogICAgICAgICAgICAgICAgICAgIC4gIiRVc2VySUQ6ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtEYXRlU3RhcnR9IiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgVVNFUklEOwogICAgICAgIH0KCiAgICAgICAgbXkgJUN1cnJlbnRVc2VyRGF0YSA9ICgKICAgICAgICAgICAgTGVhdmVEYXRlICAgICAgICA9PiAwLAogICAgICAgICAgICBTaWNrICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVGFyZ2V0U3RhdGUgICAgICA9PiAwLAogICAgICAgICAgICBMZWF2ZURheVRvdGFsICAgID0+IDAsCiAgICAgICAgICAgIFNpY2tUb3RhbCAgICAgICAgPT4gMCwKICAgICAgICAgICAgU2lja1RvdGFsICAgICAgICA9PiAwLAogICAgICAgICAgICBUYXJnZXRTdGF0ZVRvdGFsID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENhbGVuZGFyID0geyAkU2VsZi0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKSB9LT57Q2FsZW5kYXJ9OwoKICAgICAgICBZRUFSOgogICAgICAgIGZvciBteSAkWWVhciAoICRZZWFyU3RhcnQgLi4gJFllYXJFbmQgKSB7CgogICAgICAgICAgICBteSAkTW9udGhTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCA/ICRNb250aFN0YXJ0IDogMTsKICAgICAgICAgICAgbXkgJE1vbnRoRW5kUG9pbnQgICA9ICRZZWFyID09ICRZZWFyRW5kICAgPyAkTW9udGhFbmQgICA6IDEyOwoKICAgICAgICAgICAgTU9OVEg6CiAgICAgICAgICAgIGZvciBteSAkTW9udGggKCAkTW9udGhTdGFydFBvaW50IC4uICRNb250aEVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgIG15ICREYXlTdGFydFBvaW50ID0KICAgICAgICAgICAgICAgICAgICAkWWVhciA9PSAkWWVhclN0YXJ0ICYmICRNb250aCA9PSAkTW9udGhTdGFydAogICAgICAgICAgICAgICAgICAgID8gJERheVN0YXJ0CiAgICAgICAgICAgICAgICAgICAgOiAxCiAgICAgICAgICAgICAgICAgICAgOwoKICAgICAgICAgICAgICAgIG15ICREYXlFbmRQb2ludDsKCiAgICAgICAgICAgICAgICBpZiAoICRZZWFyID09ICRZZWFyRW5kICYmICRNb250aCA9PSAkTW9udGhFbmQgKSB7CiAgICAgICAgICAgICAgICAgICAgJERheUVuZFBvaW50ID0gJERheUVuZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICREYXlFbmRQb2ludCA9ICRTZWxmLT5EYXlzSW5Nb250aCggJFllYXIsICRNb250aCApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERBWToKICAgICAgICAgICAgICAgIGZvciBteSAkRGF5ICggJERheVN0YXJ0UG9pbnQgLi4gJERheUVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAkU2VsZi0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBteSAkTGVhdmVEYXkgICAgPSAwOwogICAgICAgICAgICAgICAgICAgIG15ICRTaWNrICAgICAgICA9IDA7CiAgICAgICAgICAgICAgICAgICAgbXkgJE92ZXJ0aW1lICAgID0gMDsKICAgICAgICAgICAgICAgICAgICBteSAkVGFyZ2V0U3RhdGUgPSAwOwoKICAgICAgICAgICAgICAgICAgICBpZiAoICRXb3JraW5nVW5pdHtMZWF2ZURheX0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlUb3RhbH0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgJExlYXZlRGF5ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkV29ya2luZ1VuaXR7U2lja30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7U2lja1RvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkU2ljayA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFdvcmtpbmdVbml0e092ZXJ0aW1lfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkT3ZlcnRpbWUgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICBteSAkVmFjYXRpb25DaGVjayA9ICRTZWxmLT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciA9PiAkQ2FsZW5kYXIgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBteSAkV2Vla2RheSA9ICRTZWxmLT5EYXlPZldlZWsoICRZZWFyLCAkTW9udGgsICREYXkgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRXZWVrZGF5ICE9IDYKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJFdlZWtkYXkgIT0gNwogICAgICAgICAgICAgICAgICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgJiYgISRTaWNrCiAgICAgICAgICAgICAgICAgICAgICAgICYmICEkTGVhdmVEYXkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtUYXJnZXRTdGF0ZVRvdGFsfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKz0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e1dlZWtseUhvdXJzfSAvIDU7CiAgICAgICAgICAgICAgICAgICAgICAgICRUYXJnZXRTdGF0ZSA9ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtXZWVrbHlIb3Vyc30gLyA1OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTW9udGggPT0gJE1vbnRoRW5kICYmICRZZWFyID09ICRZZWFyRW5kICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlfSAgKz0gJFRhcmdldFN0YXRlOwogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1dvcmtpbmdIb3Vyc30gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtMZWF2ZURheX0gICAgICs9ICRMZWF2ZURheTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtTaWNrfSAgICAgICAgICs9ICRTaWNrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZX0gICAgICA9ICRDdXJyZW50VXNlckRhdGF7V29ya2luZ0hvdXJzfSAtICRDdXJyZW50VXNlckRhdGF7VGFyZ2V0U3RhdGV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVUb3RhbH0gPSAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH17T3ZlcnRpbWV9CiAgICAgICAgICAgICsgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0KICAgICAgICAgICAgLSAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlVG90YWx9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVVbnRpbH0gICAgID0gJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSAtICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlSZW1haW5pbmd9ID0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e0xlYXZlRGF5c30gLSAkQ3VycmVudFVzZXJEYXRhe0xlYXZlRGF5VG90YWx9OwoKICAgICAgICAkRGF0YXskVXNlcklEfSA9IFwlQ3VycmVudFVzZXJEYXRhOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFByb2plY3RTZXR0aW5nc0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIGFsbCB0aGUgcHJvamVjdHMnIGRhdGEKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJyB8fCAnaW52YWxpZCcsIG9wdGlvbmFsIGRlZmF1bHQgdmFsaWQgJiYgaW52YWxpZAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0U2V0dGluZ3NHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkV2hlcmUgPSAnJzsKICAgIGlmICggJFBhcmFte1N0YXR1c30gKSB7CiAgICAgICAgJFdoZXJlID0gJyBXSEVSRSBzdGF0dXMgPSAnOwogICAgICAgICRXaGVyZSAuPSAkUGFyYW17U3RhdHVzfSBlcSAnaW52YWxpZCcgPyAiJzAnIiA6ICInMSciOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIgogICAgICAgICAgICBTRUxFQ1QgaWQsIHByb2plY3QsIGRlc2NyaXB0aW9uLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICAkV2hlcmUiLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRJRCA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7UHJvamVjdH17JElEfSAgICAgICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtQcm9qZWN0RGVzY3JpcHRpb259eyRJRH0gPSAkUm93WzJdOwogICAgICAgICREYXRhe1Byb2plY3RTdGF0dXN9eyRJRH0gICAgICA9ICRSb3dbM107CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgUHJvamVjdEdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSByZXF1ZXN0ZWQgcHJvamVjdCBkYXRhCgogICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KCBJRCA9PiAyICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCiAgICBvcgoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCggUHJvamVjdCA9PiAnaW50ZXJuYWwnICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIElEICAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0R2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtJRH0gJiYgISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgSUQgb3IgcHJvamVjdCBuYW1lIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJVByb2plY3Q7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgSUQKICAgIGlmICggJFBhcmFte0lEfSApIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBwcm9qZWN0LCBkZXNjcmlwdGlvbiwgc3RhdHVzCiAgICAgICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19wcm9qZWN0CiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJRH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVByb2plY3QgPSAoCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFBhcmFte0lEfSwKICAgICAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAkRGF0YVsyXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIHRhc2sgbmFtZQogICAgZWxzZSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgaWQsIGRlc2NyaXB0aW9uLCBzdGF0dXMKICAgICAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgICAgIFdIRVJFIHByb2plY3QgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17UHJvamVjdH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVByb2plY3QgPSAoCiAgICAgICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFBhcmFte1Byb2plY3R9LAogICAgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+ICREYXRhWzBdLAogICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICREYXRhWzFdLAogICAgICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+ICREYXRhWzJdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJVByb2plY3Q7Cn0KCj1oZWFkMiBQcm9qZWN0U2V0dGluZ3NJbnNlcnQoKQoKaW5zZXJ0cyBhIG5ldyBwcm9qZWN0IGluIHRoZSBkYgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLCAgICAjIG9wdGlvbmFsCiAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdkZXNjcmlwdGlvbicsICMgb3B0aW9uYWwKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSB8fCAwLCAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICByZXR1cm5zIElEIG9mIGNyZWF0ZWQgcHJvamVjdAoKPWN1dAoKc3ViIFByb2plY3RTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtQcm9qZWN0fSB8fD0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3ROYW1lJyk7CiAgICAkUGFyYW17UHJvamVjdERlc2NyaXB0aW9ufSB8fD0gJyc7CgogICAgaWYgKCAkUGFyYW17UHJvamVjdFN0YXR1c30gbmUgJzAnICYmICRQYXJhbXtQcm9qZWN0U3RhdHVzfSBuZSAnMScgKSB7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3RTdGF0dXMnKTsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgaW5zZXJ0IHByb2plY3QgcmVjb3JkCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3Byb2plY3QgKHByb2plY3QsIGRlc2NyaXB0aW9uLCBzdGF0dXMpCiAgICAgICAgICAgIFZBTFVFUyAoPywgPywgPyknLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1Byb2plY3R9LCBcJFBhcmFte1Byb2plY3REZXNjcmlwdGlvbn0sIFwkUGFyYW17UHJvamVjdFN0YXR1c30gXSwKICAgICk7CgogICAgIyBnZXQgaWQgb2YgbmV3bHkgY3JlYXRlZCBwcm9qZWN0IHJlY29yZAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgV0hFUkUgcHJvamVjdCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtQcm9qZWN0fSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICRQcm9qZWN0SUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUHJvamVjdElEID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJFByb2plY3RJRDsKfQoKPWhlYWQyIFByb2plY3RTZXR0aW5nc1VwZGF0ZSgpCgp1cGRhdGVzIGEgcHJvamVjdAoKICAgIG15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NVcGRhdGUoCiAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+IDEyMywKICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJ2ludGVybmFsJywKICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ2Rlc2NyaXB0aW9uJywKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgUHJvamVjdFNldHRpbmdzVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhJRCBQcm9qZWN0KSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgU1FMCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgU0VUIHByb2plY3QgPSA/LCBkZXNjcmlwdGlvbiA9ID8sIHN0YXR1cyA9ID8KICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtQcm9qZWN0fSwgXCRQYXJhbXtQcm9qZWN0RGVzY3JpcHRpb259LCBcJFBhcmFte1Byb2plY3RTdGF0dXN9LCBcJFBhcmFte0lEfSwKICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEFjdGlvblNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggYWxsIHRoZSBhY3Rpb25zIHNldHRpbmdzCgogICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7Cgo9Y3V0CgpzdWIgQWN0aW9uU2V0dGluZ3NHZXQgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgaWQsIGFjdGlvbiwgc3RhdHVzCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtBY3Rpb259ICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9e0FjdGlvblN0YXR1c30gPSAkUm93WzJdOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIEFjdGlvbkdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSByZXF1ZXN0ZWQgYWN0aW9uICh0YXNrKSBkYXRhCgogICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCggSUQgPT4gMiApOwoKVGhpcyByZXR1cm5zIHNvbWV0aGluZyBsaWtlOgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICgKICAgICAgICBBY3Rpb24gICAgICAgPT4gJ015IHRhc2snLAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgKTsKCiAgICBvcgoKICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoIEFjdGlvbiA9PiAnTXkgdGFzaycgKTsKClRoaXMgcmV0dXJucyBzb21ldGhpbmcgbGlrZToKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QgPSAoCiAgICAgICAgSUQgICAgICAgICAgID0+IDIsCiAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFjdGlvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17SUR9ICYmICEkUGFyYW17QWN0aW9ufSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgSUQgb3IgQWN0aW9uIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJVRhc2s7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgSUQKICAgIGlmICggJFBhcmFte0lEfSApIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBhY3Rpb24sIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uCiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJRH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVRhc2sgPSAoCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgPT4gJFBhcmFte0lEfSwKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIHRhc2sgbmFtZQogICAgZWxzZSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgaWQsIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uCiAgICAgICAgICAgICAgICBXSEVSRSBhY3Rpb24gPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17QWN0aW9ufSBdLAogICAgICAgICk7CiAgICAgICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAlVGFzayA9ICgKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICAgICAgICAgIElEICAgICAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVUYXNrOwp9Cgo9aGVhZDIgQWN0aW9uU2V0dGluZ3NJbnNlcnQoKQoKaW5zZXJ0cyBhIG5ldyBhY3Rpb24gaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICBBY3Rpb24gICAgICAgPT4gJ21lZXRpbmcnLCAgICMgb3B0aW9uYWwKICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSB8fCAwLCAgICAgICMgb3B0aW9uYWwKICAgICk7Cgo9Y3V0CgpzdWIgQWN0aW9uU2V0dGluZ3NJbnNlcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAkUGFyYW17QWN0aW9ufSB8fD0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvbk5hbWUnKSB8fCAnJzsKICAgIGlmICggJFBhcmFte0FjdGlvblN0YXR1c30gbmUgJzAnICYmICRQYXJhbXtBY3Rpb25TdGF0dXN9IG5lICcxJyApIHsKICAgICAgICAkUGFyYW17QWN0aW9uU3RhdHVzfSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRBY3Rpb25TdGF0dXMnKTsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgaW5zZXJ0CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX2FjdGlvbiAoYWN0aW9uLCBzdGF0dXMpCiAgICAgICAgICAgIFZBTFVFUyAoPywgPyknLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0FjdGlvbn0sIFwkUGFyYW17QWN0aW9uU3RhdHVzfSwgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBBY3Rpb25TZXR0aW5nc1VwZGF0ZSgpCgp1cGRhdGVzIGFuIGFjdGlvbiAodGFzaykKCiAgICBteSAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgQWN0aW9uSUQgICAgID0+IDEyMywKICAgICAgICBBY3Rpb24gICAgICAgPT4gJ2ludGVybmFsJywKICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQWN0aW9uU2V0dGluZ3NVcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KEFjdGlvbklEIEFjdGlvbikpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNRTAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgVVBEQVRFIHRpbWVfYWNjb3VudGluZ19hY3Rpb24KICAgICAgICAgICAgU0VUIGFjdGlvbiA9ID8sIHN0YXR1cyA9ID8KICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtBY3Rpb259LCBcJFBhcmFte0FjdGlvblN0YXR1c30sIFwkUGFyYW17QWN0aW9uSUR9CiAgICAgICAgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBVc2VyTGlzdCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB1c2VyIGRhdGEgb2YgYWxsIHVzZXJzCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKPWN1dAoKc3ViIFVzZXJMaXN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkLCBkZXNjcmlwdGlvbiwgc2hvd19vdmVydGltZSwgY3JlYXRlX3Byb2plY3QsIGNhbGVuZGFyCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRheyAkUm93WzBdIH17VXNlcklEfSAgICAgICAgPSAkUm93WzBdOwogICAgICAgICREYXRheyAkUm93WzBdIH17RGVzY3JpcHRpb259ICAgPSAkUm93WzFdOwogICAgICAgICREYXRheyAkUm93WzBdIH17U2hvd092ZXJ0aW1lfSAgPSAkUm93WzJdOwogICAgICAgICREYXRheyAkUm93WzBdIH17Q3JlYXRlUHJvamVjdH0gPSAkUm93WzNdOwogICAgICAgICREYXRheyAkUm93WzBdIH17Q2FsZW5kYXJ9ICAgICAgPSAkUm93WzRdOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFVzZXJHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgdXNlciBkYXRhIG9mIG9uZSB1c2VyCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAxNSwKICAgICk7Cgo9Y3V0CgpzdWIgVXNlckdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIGRhdGEKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnVXNlckdldDogTmVlZCBVc2VySUQhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBkZXNjcmlwdGlvbiwgc2hvd19vdmVydGltZSwgY3JlYXRlX3Byb2plY3QsIGNhbGVuZGFyCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXtVc2VySUR9ICAgICAgICA9ICRQYXJhbXtVc2VySUR9OwogICAgICAgICREYXRhe0Rlc2NyaXB0aW9ufSAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtTaG93T3ZlcnRpbWV9ICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7Q3JlYXRlUHJvamVjdH0gPSAkUm93WzJdOwogICAgICAgICREYXRhe0NhbGVuZGFyfSAgICAgID0gJFJvd1szXTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1oZWFkMiBVc2VyU2V0dGluZ3NHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgY29tcGxldGUgdXNlciBwZXJpb2QgZGF0YSBmb3IgYWxsIHVzZXJzCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NHZXQoKTsKCnJldHVybnM6CiAgICAlVXNlckRhdGEgPSAoCiAgICAgICAgMyA9PiB7CiAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIjIwMTUtMTItMzEiLAogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIjIwMTUtMDEtMDEiLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gIjIzLjAwIiwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICIwLjAwIiwKICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAzLAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICI0MC4wMCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIDIgPT4gewogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIjIwMTUtMTItMzEiLAogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIjIwMTUtMDEtMDEiLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gIjIzLjAwIiwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICIwLjAwIiwKICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDIsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAzLAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICIzMi4wMCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICA0ID0+IHsKICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiMjAxNS0xMi0zMSIsCiAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiMjAxNS0wMS0wMSIsCiAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAiMjMuMDAiLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gIjAuMDAiLAogICAgICAgICAgICAgICAgUGVyaW9kICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDQsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gIjQwLjAwIiwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfTsKCj1jdXQKCnN1YiBVc2VyU2V0dGluZ3NHZXQgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUsIHN0YXR1cwogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17VXNlcklEfSAgICAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17UGVyaW9kfSAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17RGF0ZVN0YXJ0fSAgID0gc3Vic3RyKCAkUm93WzJdLCAwLCAxMCApOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtEYXRlRW5kfSAgICAgPSBzdWJzdHIoICRSb3dbM10sIDAsIDEwICk7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1dlZWtseUhvdXJzfSA9ICRSb3dbNF07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e0xlYXZlRGF5c30gICA9ICRSb3dbNV07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e092ZXJ0aW1lfSAgICA9ICRSb3dbNl07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1VzZXJTdGF0dXN9ICA9ICRSb3dbN107CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgU2luZ2xlVXNlclNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIHJlcXVlc3RlZCB1c2VyJ3MgcGVyaW9kIGRhdGEKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCggVXNlcklEID0+IDEgKTsKCj1jdXQKCnN1YiBTaW5nbGVVc2VyU2V0dGluZ3NHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgdXNlcl9pZCwgcHJlZmVyZW5jZV9wZXJpb2QsIGRhdGVfc3RhcnQsIGRhdGVfZW5kLCB3ZWVrbHlfaG91cnMsIGxlYXZlX2RheXMsCiAgICAgICAgICAgICAgICBvdmVydGltZSwgc3RhdHVzCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kIFdIRVJFIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtVc2VySUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVVc2VyRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1VzZXJJRH0gICAgICA9ICRSb3dbMF07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17UGVyaW9kfSAgICAgID0gJFJvd1sxXTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtEYXRlU3RhcnR9ICAgPSBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICk7CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17RGF0ZUVuZH0gICAgID0gc3Vic3RyKCAkUm93WzNdLCAwLCAxMCApOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1dlZWtseUhvdXJzfSA9ICRSb3dbNF07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17TGVhdmVEYXlzfSAgID0gJFJvd1s1XTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtPdmVydGltZX0gICAgPSAkUm93WzZdOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1VzZXJTdGF0dXN9ICA9ICRSb3dbN107CiAgICB9CgogICAgcmV0dXJuICVVc2VyRGF0YTsKfQoKPWhlYWQyIFVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCkKCnJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgbGFzdCByZWdpc3RlcmVkIHBlcmlvZCBmb3IgdGhlIHNwZWNpZmllZCB1c2VyCgogICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCBVc2VySUQgPT4gMSApOwoKPWN1dAoKc3ViIFVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIG1heChwcmVmZXJlbmNlX3BlcmlvZCkKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpOwogICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkUm93WzBdIHx8IDA7CgogICAgcmV0dXJuICRMYXN0UGVyaW9kTnVtYmVyOwp9Cgo9aGVhZDIgVXNlclNldHRpbmdzSW5zZXJ0KCkKCmluc2VydCBuZXcgdXNlciBkYXRhIGluIHRoZSBkYgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgIFVzZXJJRCAgICAgICA9PiAnMicsCiAgICAgICAgUGVyaW9kICAgICAgID0+ICcyJywKICAgICk7Cgo9Y3V0CgpzdWIgVXNlclNldHRpbmdzSW5zZXJ0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyAoVXNlcklEIFBlcmlvZCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgdXNlciBleGlzdHMKICAgIGlmICggISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSApICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVXNlcklEICRQYXJhbXtVc2VySUR9IGRvZXMgbm90IGV4aXN0ISIKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgJFBhcmFte1dlZWtseUhvdXJzfSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyV2Vla2x5SG91cnMnKQogICAgICAgIHx8ICc0MCc7CiAgICAkUGFyYW17TGVhdmVEYXlzfSAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckxlYXZlRGF5cycpIHx8ICcyNSc7CiAgICAkUGFyYW17VXNlclN0YXR1c30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlclN0YXR1cycpICAgIHx8ICcxJzsKICAgICRQYXJhbXtPdmVydGltZX0gICA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyT3ZlcnRpbWUnKSAgfHwgJzAnOwogICAgJFBhcmFte0RhdGVFbmR9ICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEYXRlRW5kJykKICAgICAgICB8fCAnMjAxNy0xMi0zMSc7CiAgICAkUGFyYW17RGF0ZVN0YXJ0fSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZVN0YXJ0JykKICAgICAgICB8fCAnMjAxNy0wMS0wMSc7CiAgICAkUGFyYW17RGVzY3JpcHRpb259ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEZXNjcmlwdGlvbicpCiAgICAgICAgfHwgJ1B1dCB5b3VyIGRlc2NyaXB0aW9uIGhlcmUuJzsKCiAgICAkUGFyYW17RGF0ZVN0YXJ0fSAuPSAnIDAwOjAwOjAwJzsKICAgICRQYXJhbXtEYXRlRW5kfSAgIC49ICcgMDA6MDA6MDAnOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBkZWxldGUgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J307CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIGluc2VydAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIElOU0VSVCBJTlRPIHRpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCAodXNlcl9pZCwgcHJlZmVyZW5jZV9wZXJpb2QsIGRhdGVfc3RhcnQsCiAgICAgICAgICAgICAgICBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLCBvdmVydGltZSwgc3RhdHVzKQogICAgICAgICAgICBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8sID8pJywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtVc2VySUR9LCAgICAgIFwkUGFyYW17UGVyaW9kfSwgICAgXCRQYXJhbXtEYXRlU3RhcnR9LCBcJFBhcmFte0RhdGVFbmR9LAogICAgICAgICAgICBcJFBhcmFte1dlZWtseUhvdXJzfSwgXCRQYXJhbXtMZWF2ZURheXN9LCBcJFBhcmFte092ZXJ0aW1lfSwgIFwkUGFyYW17VXNlclN0YXR1c30sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBzZWxlY3QgVXNlcklECiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcgogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1VzZXJJRH0sIF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJFVzZXJJRDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRVc2VySUQgPSAkUm93WzBdOwogICAgfQoKICAgIGlmICggIWRlZmluZWQgJFVzZXJJRCApIHsKCiAgICAgICAgIyBkYiBpbnNlcnQKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfdXNlciAodXNlcl9pZCwgZGVzY3JpcHRpb24pCiAgICAgICAgICAgICAgICBWQUxVRVMgKD8sID8pJywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17VXNlcklEfSwgXCRQYXJhbXtEZXNjcmlwdGlvbn0sIF0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFVzZXJTZXR0aW5nc1VwZGF0ZSgpCgp1cGRhdGVzIHVzZXIgZGF0YSBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU29tZSBUZXh0JywKICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEgfHwgMCwKICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEgfHwgMCwKICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICAgPT4gJzIwMTUtMTItMTInLAogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgID0+ICcyMDE1LTEyLTMxJywKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzICA9PiAnMzgnLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgID0+ICcyNScsCiAgICAgICAgICAgICAgICBPdmVydGltZSAgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgICA9PiAxIHx8IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIDIgPT4gewogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgID0+ICcyMDE1LTEyLTEyJywKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgICA9PiAnMjAxNS0xMi0zMScsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyAgPT4gJzM4JywKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICAgPT4gMSB8fCAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICAzID0+IC4uLi4uLgogICAgICAgIH0KICAgICk7Cgo9Y3V0CgpzdWIgVXNlclNldHRpbmdzVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGRlbGV0ZSAkU2VsZi0+eydDYWNoZTo6VXNlckN1cnJlbnRQZXJpb2RHZXQnfTsKCiAgICBteSAkVXNlcklEID0gJFBhcmFte1VzZXJJRH07CgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17UGVyaW9kfS0+ezF9e0RhdGVTdGFydH0gJiYgIWRlZmluZWQgJFBhcmFte1BlcmlvZH0tPnsxfXtEYXRlRW5kfSApIHsKCiAgICAgICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVXNlclNldHRpbmdVcGRhdGU6IE5vIGRhdGEgZm9yIHVzZXIgaWQgJFVzZXJJRCEiCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IHZhbHVlcwogICAgJFBhcmFte1Nob3dPdmVydGltZX0gIHx8PSAwOwogICAgJFBhcmFte0NyZWF0ZVByb2plY3R9IHx8PSAwOwogICAgJFBhcmFte0NhbGVuZGFyfSAgICAgIHx8PSAwOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgU0VUIGRlc2NyaXB0aW9uID0gPywgc2hvd19vdmVydGltZSA9ID8sIGNyZWF0ZV9wcm9qZWN0ID0gPywgY2FsZW5kYXIgPSA/CiAgICAgICAgICAgIFdIRVJFIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtEZXNjcmlwdGlvbn0sIFwkUGFyYW17U2hvd092ZXJ0aW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtDcmVhdGVQcm9qZWN0fSwgXCRQYXJhbXtDYWxlbmRhcn0sIFwkUGFyYW17VXNlcklEfQogICAgICAgIF0sCiAgICApOwoKICAgICMgdXBkYXRlIGFsbCBwZXJpb2RzCiAgICBmb3IgbXkgJFBlcmlvZCAoIHNvcnQga2V5cyAleyAkUGFyYW17UGVyaW9kfSB9ICkgewoKICAgICAgICAjIGRiIGluc2VydAogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFVQREFURSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgICAgIFNFVCBsZWF2ZV9kYXlzID0gPywgZGF0ZV9zdGFydCA9ID8sIGRhdGVfZW5kID0gPywgb3ZlcnRpbWUgPSA/LCB3ZWVrbHlfaG91cnMgPSA/LAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ID8KICAgICAgICAgICAgICAgIFdIRVJFIHVzZXJfaWQgPSA/CiAgICAgICAgICAgICAgICAgICAgQU5EIHByZWZlcmVuY2VfcGVyaW9kID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17TGVhdmVEYXlzfSwgICBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtEYXRlU3RhcnR9LAogICAgICAgICAgICAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17RGF0ZUVuZH0sICAgICBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtPdmVydGltZX0sCiAgICAgICAgICAgICAgICBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtXZWVrbHlIb3Vyc30sIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e1VzZXJTdGF0dXN9LAogICAgICAgICAgICAgICAgXCRVc2VySUQsIFwkUGVyaW9kLAogICAgICAgICAgICAgICAgXQogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBXb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFuZAp0aGUgaW5mb3JtYXRpb24gaWYgdGhlIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFyZSBpbiB0aGUgYWxsb3dlZApyYW5nZS4KCiAgICBteSAlV29ya2luZ1VuaXRzQ2hlY2sgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgV29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVEYXRhICAgICAgICAgICAgICAgID0gKCk7CiAgICBteSAkV29ya2luZ1VuaXRJRCAgICAgICA9IDA7CiAgICBteSAlQ29tcGxldGVXb3JraW5nRGF5cyA9ICgpOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkRGF0ZVRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICgKICAgICAgICAkRGF0ZVRpbWVTZXR0aW5ncy0+e1NlY29uZH0sCiAgICAgICAgJERhdGVUaW1lU2V0dGluZ3MtPntNaW51dGV9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57SG91cn0sCiAgICAgICAgJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57WWVhcn0sCiAgICApOwoKICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNlcklEfTsKCiAgICAjIFRPRE86IFNlYXJjaCBvbmx5IGluIHRoZSBDdXJyZW50VXNlclBlcmlvZAogICAgIyBUT0RPOiBTZWFyY2ggb25seSB3b3JraW5nIHVuaXRzIHdoZXJlIGFjdGlvbl9pZCBhbmQgcHJvamVjdF9pZCBpcyB0cnVlCgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIERJU1RJTkNUIHRpbWVfc3RhcnQKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFVzZXJJRCBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBpZiAoICRSb3dbMF0gPX4gL14oXGQrKS0oXGQrKS0oXGQrKS8gKSB7CiAgICAgICAgICAgICRDb21wbGV0ZVdvcmtpbmdEYXlzeyQxfXskMn17JDN9ID0gMTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJVVzZXJDdXJyZW50UGVyaW9kID0gJFNlbGYtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgIE1vbnRoID0+ICRNb250aCwKICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgKTsKCiAgICBteSAkV29ya2luZ0RheXMgPSAwOwogICAgbXkgJFllYXJTdGFydCAgID0gMTk3MDsKICAgIG15ICRNb250aFN0YXJ0ICA9IDE7CiAgICBteSAkRGF5U3RhcnQgICAgPSAxOwogICAgbXkgJFllYXJFbmQgICAgID0gJFllYXI7CiAgICBteSAkTW9udGhFbmQgICAgPSAkTW9udGg7CiAgICBteSAkRGF5RW5kICAgICAgPSAkRGF5OwoKICAgIGlmICgKICAgICAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9CiAgICAgICAgJiYgJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9LT57RGF0ZVN0YXJ0fSA9fiAvXihcZCspLShcZCspLShcZCspLwogICAgICAgICkKICAgIHsKICAgICAgICAkWWVhclN0YXJ0ICA9ICQxOwogICAgICAgICRNb250aFN0YXJ0ID0gJDI7CiAgICAgICAgJERheVN0YXJ0ICAgPSAkMzsKICAgIH0KCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkQ2FsZW5kYXIgPSB7ICRTZWxmLT5Vc2VyR2V0KCBVc2VySUQgPT4gJFVzZXJJRCApIH0tPntDYWxlbmRhcn07CgogICAgZm9yIG15ICRZZWFyICggJFllYXJTdGFydCAuLiAkWWVhckVuZCApIHsKCiAgICAgICAgbXkgJE1vbnRoU3RhcnRQb2ludCA9ICRZZWFyID09ICRZZWFyU3RhcnQgPyAkTW9udGhTdGFydCA6IDE7CiAgICAgICAgbXkgJE1vbnRoRW5kUG9pbnQgICA9ICRZZWFyID09ICRZZWFyRW5kICAgPyAkTW9udGhFbmQgICA6IDEyOwoKICAgICAgICBmb3IgbXkgJE1vbnRoICggJE1vbnRoU3RhcnRQb2ludCAuLiAkTW9udGhFbmRQb2ludCApIHsKCiAgICAgICAgICAgIG15ICREYXlTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCAmJiAkTW9udGggPT0gJE1vbnRoU3RhcnQgPyAkRGF5U3RhcnQgOiAxOwoKICAgICAgICAgICAgbXkgJERheUVuZFBvaW50OwogICAgICAgICAgICBpZiAoICRZZWFyID09ICRZZWFyRW5kICYmICRNb250aCA9PSAkTW9udGhFbmQgKSB7CiAgICAgICAgICAgICAgICAkRGF5RW5kUG9pbnQgPSAkRGF5RW5kOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJERheUVuZFBvaW50ID0gJFNlbGYtPkRheXNJbk1vbnRoKCAkWWVhciwgJE1vbnRoICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRNb250aFN0cmluZyA9IHNwcmludGYgIiUwMmQiLCAkTW9udGg7CgogICAgICAgICAgICBmb3IgbXkgJERheSAoICREYXlTdGFydFBvaW50IC4uICREYXlFbmRQb2ludCApIHsKCiAgICAgICAgICAgICAgICBteSAkVmFjYXRpb25DaGVjayA9ICRTZWxmLT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgIENhbGVuZGFyID0+ICRDYWxlbmRhciB8fCAnJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBHZXQgY2FsZW5kYXIgdGltZXpvbmUgb3IgdXNlIHRoZSBvbmUgb2YgdGltZS1hY2NvdW50aW5nIG9iamVjdC4KICAgICAgICAgICAgICAgIG15ICRUaW1lWm9uZSA9ICRDb25maWdPYmplY3QtPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAoICRDYWxlbmRhciB8fCAnJyApICkKICAgICAgICAgICAgICAgICAgICB8fCAkU2VsZi0+e1RpbWVab25lfTsKCiAgICAgICAgICAgICAgICBteSAkRGF5U3RhcnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBIb3VyICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBNaW51dGUgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBTZWNvbmQgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZSA9PiAkVGltZVpvbmUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJERheVN0b3BUaW1lID0gJERheVN0YXJ0VGltZS0+Q2xvbmUoKTsKICAgICAgICAgICAgICAgICREYXlTdG9wVGltZS0+U2V0KAogICAgICAgICAgICAgICAgICAgIEhvdXIgICA9PiAyMywKICAgICAgICAgICAgICAgICAgICBNaW51dGUgPT4gNTksCiAgICAgICAgICAgICAgICAgICAgU2Vjb25kID0+IDU5LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIENvbnZlcnQgdG8gdGhlIHRpbWV6b25lIG9mIHRpbWUtYWNjb3VudGluZyBvYmplY3QuCiAgICAgICAgICAgICAgICAkRGF5U3RhcnRUaW1lLT5Ub1RpbWVab25lKAogICAgICAgICAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICREYXlTdG9wVGltZS0+VG9UaW1lWm9uZSgKICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBDb252ZXJ0IHRvIGVwb2Nocy4KICAgICAgICAgICAgICAgICREYXlTdGFydFRpbWUgPSAkRGF5U3RhcnRUaW1lLT5Ub0Vwb2NoKCk7CiAgICAgICAgICAgICAgICAkRGF5U3RvcFRpbWUgID0gJERheVN0b3BUaW1lLT5Ub0Vwb2NoKCk7CgogICAgICAgICAgICAgICAgIyBPTEQgQ09ERQoKICAgICAgICAgICAgICAgICNteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgIyAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICMgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgIyAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgIyAgICAgICAgRGF5ICAgPT4gJERheSwKICAgICAgICAgICAgICAgICMgICAgfSwKICAgICAgICAgICAgICAgICMpOwoKICAgICAgICAgICAgICAgICNteSAkRGF0ZSA9IHNwcmludGYgIiUwNGQtJTAyZC0lMDJkIiwgJFllYXIsICRNb250aCwgJERheTsKCiAgICAgICAgICAgICAgICAjbXkgJERhdGVUaW1lT2JqZWN0U3RhcnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgIyAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICMgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgIFN0cmluZyA9PiAkRGF0ZSAuICcgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgIyAgICB9LAogICAgICAgICAgICAgICAgIyk7CiAgICAgICAgICAgICAgICAjbXkgJERheVN0YXJ0VGltZSA9ICREYXRlVGltZU9iamVjdFN0YXJ0LT5Ub0Vwb2NoKCk7CgogICAgICAgICAgICAgICAgI215ICREYXRlVGltZU9iamVjdFN0b3AgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgIyAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICMgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgIFN0cmluZyA9PiAkRGF0ZSAuICcgMjM6NTk6NTknLAogICAgICAgICAgICAgICAgIyAgICB9LAogICAgICAgICAgICAgICAgIyk7CiAgICAgICAgICAgICAgICAjbXkgJERheVN0b3BUaW1lID0gJERhdGVUaW1lT2JqZWN0U3RvcC0+VG9FcG9jaCgpOwoKICAgICAgICAgICAgICAgICMgYWRkIHRpbWUgem9uZSB0byBjYWxjdWxhdGlvbgogICAgICAgICAgICAgICAgI215ICRab25lID0gJENvbmZpZ09iamVjdC0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICggJENhbGVuZGFyIHx8ICcnICkgKTsKICAgICAgICAgICAgICAgICNpZiAoJFpvbmUpIHsKICAgICAgICAgICAgICAgICMgICAgbXkgJFpvbmVTZWNvbmRzID0gJFpvbmUgKiA2MCAqIDYwOwogICAgICAgICAgICAgICAgIyAgICAkRGF5U3RhcnRUaW1lID0gJERheVN0YXJ0VGltZSAtICRab25lU2Vjb25kczsKICAgICAgICAgICAgICAgICMgICAgJERheVN0b3BUaW1lICA9ICREYXlTdG9wVGltZSAtICRab25lU2Vjb25kczsKICAgICAgICAgICAgICAgICN9CgogICAgICAgICAgICAgICAgIyBFTkQKCiAgICAgICAgICAgICAgICBteSAkVGhpc0RheVdvcmtpbmdUaW1lID0gJFNlbGYtPldvcmtpbmdUaW1lKAogICAgICAgICAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAkRGF5U3RhcnRUaW1lLAogICAgICAgICAgICAgICAgICAgIFN0b3BUaW1lICA9PiAkRGF5U3RvcFRpbWUsCiAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgID0+ICRDYWxlbmRhciB8fCAnJywKICAgICAgICAgICAgICAgICkgfHwgJzAnOwoKICAgICAgICAgICAgICAgIG15ICREYXlTdHJpbmcgPSBzcHJpbnRmICIlMDJkIiwgJERheTsKCiAgICAgICAgICAgICAgICBpZiAoICRUaGlzRGF5V29ya2luZ1RpbWUgJiYgISRWYWNhdGlvbkNoZWNrICkgewogICAgICAgICAgICAgICAgICAgICRXb3JraW5nRGF5cyArPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRUaGlzRGF5V29ya2luZ1RpbWUKICAgICAgICAgICAgICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICAgICAgICAgICAgICAmJiAhJENvbXBsZXRlV29ya2luZ0RheXN7JFllYXJ9eyRNb250aFN0cmluZ317JERheVN0cmluZ30KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9eyRNb250aFN0cmluZ317JERheVN0cmluZ30gPSAkV29ya2luZ0RheXM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBteSAkTWF4SW50ZXJ2YWxsT2ZJbmNvbXBsZXRlRGF5cyA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cycpIHx8ICc1JzsKICAgIG15ICRNYXhJbnRlcnZhbGxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZwogICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZycpCiAgICAgICAgfHwgJzMnOwogICAgZm9yIG15ICRZZWFyICggc29ydCBrZXlzICV7ICREYXRhe0luY29tcGxldGV9IH0gKSB7CgogICAgICAgIGZvciBteSAkTW9udGggKCBzb3J0IGtleXMgJXsgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9IH0gKSB7CgogICAgICAgICAgICBmb3IgbXkgJERheSAoIHNvcnQga2V5cyAleyAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn17JE1vbnRofSB9ICkgewoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn17JE1vbnRofXskRGF5fQogICAgICAgICAgICAgICAgICAgIDwgJFdvcmtpbmdEYXlzIC0gJE1heEludGVydmFsbE9mSW5jb21wbGV0ZURheXMKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7RW5mb3JjZUluc2VydH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAgICAgICAgICREYXRhe0luY29tcGxldGV9eyRZZWFyfXskTW9udGh9eyREYXl9CiAgICAgICAgICAgICAgICAgICAgPCAkV29ya2luZ0RheXMgLSAkTWF4SW50ZXJ2YWxsT2ZJbmNvbXBsZXRlRGF5c0JlZm9yZVdhcm5pbmcKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7V2FybmluZ30gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFdvcmtpbmdVbml0c0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB3b3JraW5nIHVuaXRzIGRhdGEKCiAgICBteSAlV29ya2luZ1VuaXRzRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgIFllYXIgICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggID0+ICc3JywKICAgICAgICBEYXkgICAgPT4gJzEzJywKICAgICAgICBVc2VySUQgPT4gJzEyMycsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREYXRlICAgICAgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CiAgICBteSAkRGF0ZVN0YXJ0ID0gJERhdGUgLiAiIDAwOjAwOjAwIjsKICAgIG15ICREYXRlU3RvcCAgPSAkRGF0ZSAuICIgMjM6NTk6NTkiOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBhc2sgdGhlIGRhdGFiYXNlCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LCB0aW1lX2VuZCwgcGVyaW9kCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHRpbWVfc3RhcnQgPj0gPwogICAgICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPD0gPwogICAgICAgICAgICAgICAgQU5EIHVzZXJfaWQgPSA/CiAgICAgICAgICAgIE9SREVSIGJ5IGlkJywKICAgICAgICBCaW5kID0+IFsgXCREYXRlU3RhcnQsIFwkRGF0ZVN0b3AsIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICBteSAlRGF0YSA9ICgKICAgICAgICBUb3RhbCA9PiAwLAogICAgICAgIERhdGUgID0+ICREYXRlLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAkUm93WzRdICF+IG17XiAoLis/KSBccyAoXGQrOlxkKykgOiAoXGQrKSB9eG1zOwoKICAgICAgICAjIGNoZWNrIGlmIGl0IGlzIGEgc3BlY2lhbCB3b3JraW5nIHVuaXQKICAgICAgICBpZiAoICRSb3dbMV0gPT0gLTEgKSB7CiAgICAgICAgICAgIG15ICRBY3Rpb25JRCA9ICRSb3dbMl07CgogICAgICAgICAgICAkRGF0YXtTaWNrfSAgICAgPSAkQWN0aW9uSUQgPT0gLTEgPyAxIDogMDsKICAgICAgICAgICAgJERhdGF7TGVhdmVEYXl9ID0gJEFjdGlvbklEID09IC0yID8gMSA6IDA7CiAgICAgICAgICAgICREYXRhe092ZXJ0aW1lfSA9ICRBY3Rpb25JRCA9PSAtMyA/IDEgOiAwOwoKICAgICAgICAgICAgbmV4dCBST1c7CiAgICAgICAgfQoKICAgICAgICBteSAkU3RhcnRUaW1lID0gJDI7CiAgICAgICAgbXkgJEVuZFRpbWUgICA9ICcnOwogICAgICAgIGlmICggJFJvd1s1XSA9fiBte14oLis/KVxzKFxkKzpcZCspOihcZCspfXhtcyApIHsKICAgICAgICAgICAgJEVuZFRpbWUgPSAkMjsKCiAgICAgICAgICAgICMgcmVwbGFjZSAyMzo1OTo1OSB3aXRoIDI0OjAwCiAgICAgICAgICAgIGlmICggJEVuZFRpbWUgZXEgJzIzOjU5JyAmJiAkMyBlcSAnNTknICkgewogICAgICAgICAgICAgICAgJEVuZFRpbWUgPSAnMjQ6MDAnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAoCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFJvd1sxXSwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRSb3dbMl0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAkUm93WzNdLAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJFN0YXJ0VGltZSwKICAgICAgICAgICAgRW5kVGltZSAgID0+ICRFbmRUaW1lLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gZGVmaW5lZCggJFJvd1s2XSApID8gc3ByaW50ZiggIiUuMmYiLCAkUm93WzZdICkgOiAwLAogICAgICAgICk7CgogICAgICAgICMgb25seSBjb3VudCBjb21wbGV0ZSB3b3JraW5nIHVuaXRzCiAgICAgICAgaWYgKCAkUm93WzFdICYmICRSb3dbMl0gKSB7CiAgICAgICAgICAgICREYXRhe1RvdGFsfSArPSAkV29ya2luZ1VuaXR7UGVyaW9kfTsKICAgICAgICB9CgogICAgICAgIHB1c2ggQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9LCBcJVdvcmtpbmdVbml0OwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFdvcmtpbmdVbml0c0luc2VydCgpCgppbnNlcnQgd29ya2luZyB1bml0cyBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICBZZWFyICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggPT4gJzA3JywKICAgICAgICBEYXkgICA9PiAnMDInLAogICAgICAgIExlYXZlRGF5ID0+IDEsIHx8IDAKICAgICAgICBTaWNrICAgICA9PiAxLCB8fCAwCiAgICAgICAgT3ZlcnRpbWUgPT4gMSwgfHwgMAogICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAxLAogICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+IDIzLAogICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTb21lVGV4dCcsCiAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJzc6MzAnLAogICAgICAgICAgICAgICAgRW5kVGltZSAgID0+ICcxMTowMCcsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzguNScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsgLi4uLi4uIH0sCiAgICAgICAgXSwKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBXb3JraW5nVW5pdHNJbnNlcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoWWVhciBNb250aCBEYXkgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIldvcmtpbmdVbml0c0luc2VydDogTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERhdGUgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CgogICAgIyBhZGQgc3BlY2lhbCB0aW1lIHdvcmtpbmcgdW5pdHMKICAgIG15ICVTcGVjaWFsQWN0aW9uID0gKAogICAgICAgICdTaWNrJyAgICAgPT4gJy0xJywKICAgICAgICAnTGVhdmVEYXknID0+ICctMicsCiAgICAgICAgJ092ZXJ0aW1lJyA9PiAnLTMnLAogICAgKTsKCiAgICBFTEVNRU5UOgogICAgZm9yIG15ICRFbGVtZW50IChxdyhMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewoKICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRQYXJhbXskRWxlbWVudH07CgogICAgICAgIG15ICVVbml0ID0gKAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gLTEsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkU3BlY2lhbEFjdGlvbnskRWxlbWVudH0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAnJywKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICcnLAogICAgICAgICAgICBFbmRUaW1lICAgPT4gJycsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAwLAogICAgICAgICk7CgogICAgICAgIHB1c2ggQHsgJFBhcmFte1dvcmtpbmdVbml0c30gfSwgXCVVbml0OwogICAgfQoKICAgICMgaW5zZXJ0IG5ldyB3b3JraW5nIHVuaXRzCiAgICBVTklUUkVGOgogICAgZm9yIG15ICRVbml0UmVmICggQHsgJFBhcmFte1dvcmtpbmdVbml0c30gfSApIHsKCiAgICAgICAgbXkgJFN0YXJ0VGltZSA9ICREYXRlIC4gJyAnIC4gKCAkVW5pdFJlZi0+e1N0YXJ0VGltZX0gfHwgJzAwOjAwJyApIC4gJzowMCc7CiAgICAgICAgbXkgJEVuZFRpbWUgICA9ICREYXRlIC4gJyAnIC4gKCAkVW5pdFJlZi0+e0VuZFRpbWV9ICAgfHwgJzAwOjAwJyApIC4gJzowMCc7CgogICAgICAgICMgJycgZG9lcyBub3Qgd29yayBpbiBpbnRlZ2VyIGZpZWxkIG9mIFBvc3RncmVTUUwKICAgICAgICAkVW5pdFJlZi0+e1Byb2plY3RJRH0gfHw9IDA7CiAgICAgICAgJFVuaXRSZWYtPntBY3Rpb25JRH0gIHx8PSAwOwogICAgICAgICRVbml0UmVmLT57UGVyaW9kfSAgICB8fD0gMDsKCiAgICAgICAgIyBidWlsZCBEUUwKICAgICAgICBteSAkU1FMID0gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfdGFibGUgKHVzZXJfaWQsIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LAogICAgICAgICAgICAgICAgdGltZV9lbmQsIHBlcmlvZCwgY3JlYXRlZCApCiAgICAgICAgICAgIFZBTFVFUyAgKCA/LCA/LCA/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCknOwogICAgICAgIG15ICRCaW5kID0gWwogICAgICAgICAgICBcJFBhcmFte1VzZXJJRH0sIFwkVW5pdFJlZi0+e1Byb2plY3RJRH0sIFwkVW5pdFJlZi0+e0FjdGlvbklEfSwKICAgICAgICAgICAgXCRVbml0UmVmLT57UmVtYXJrfSwgXCRTdGFydFRpbWUsIFwkRW5kVGltZSwgXCRVbml0UmVmLT57UGVyaW9kfSwKICAgICAgICBdOwoKICAgICAgICAjIGRiIGluc2VydAogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgICAgIEJpbmQgPT4gJEJpbmQKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgV29ya2luZ1VuaXRzRGVsZXRlKCkKCmRlbGV0ZXMgd29ya2luZyB1bml0cyBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0RlbGV0ZSgKICAgICAgICBZZWFyICAgPT4gJzIwMTUnLAogICAgICAgIE1vbnRoICA9PiAnNycsCiAgICAgICAgRGF5ICAgID0+ICcxMycsCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgV29ya2luZ1VuaXRzRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3KFllYXIgTW9udGggRGF5IFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJXb3JraW5nVW5pdHNJbnNlcnQ6IE5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREYXRlICAgICAgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CiAgICBteSAkU3RhcnRUaW1lID0gJERhdGUgLiAnIDAwOjAwOjAwJzsKICAgIG15ICRFbmRUaW1lICAgPSAkRGF0ZSAuICcgMjM6NTk6NTknOwoKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIERFTEVURSBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB0aW1lX3N0YXJ0ID49ID8KICAgICAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0IDw9ID8KICAgICAgICAgICAgICAgIEFORCB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkU3RhcnRUaW1lLCBcJEVuZFRpbWUsIFwkUGFyYW17VXNlcklEfSwgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nKCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGhvdXJzIGRlcGVuZGVudCBwcm9qZWN0IGFuZCBhY3Rpb24gZGF0YQoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEFjdGlvblJlcG9ydGluZygKICAgICAgICBZZWFyICA9PiAyMDA1LAogICAgICAgIE1vbnRoID0+IDcsCiAgICAgICAgVXNlcklEID0+IDEyMywgIyBvcHRpb25hbDsgbm8gVXNlcklEIG1lYW5zICdvZiBhbGwgdXNlcnMnCiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RBY3Rpb25SZXBvcnRpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhZZWFyIE1vbnRoKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXskUGFyYW1ldGVyfSApIHx8ICcnOwogICAgICAgIGlmICggISRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlByb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgJFBhcmFtZXRlciEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgaG91cnMgcGVyIG1vbnRoCiAgICBteSAkRGF5c0luTW9udGggPSAkU2VsZi0+RGF5c0luTW9udGgoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSApOwogICAgbXkgJERhdGVTdHJpbmcgPSAkUGFyYW17WWVhcn0gLiAiLSIgLiBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIG15ICRTUUxEYXRlID0gIiREYXRlU3RyaW5nLSREYXlzSW5Nb250aCAyMzo1OTo1OSI7CgogICAgbXkgJFNRTCA9ICcKICAgICAgICBTRUxFQ1QgcHJvamVjdF9pZCwgYWN0aW9uX2lkLCBwZXJpb2QKICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgIFdIRVJFIHByb2plY3RfaWQgIT0gLTEKICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPD0gPyc7CiAgICBteSBAQmluZCA9ICggXCRTUUxEYXRlICk7CgogICAgaWYgKCAkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkU1FMIC49ICcgQU5EIHVzZXJfaWQgPSA/JzsKICAgICAgICBwdXNoIEBCaW5kLCBcJFBhcmFte1VzZXJJRH07CiAgICB9CgogICAgIyB0b3RhbCBob3VycwogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbmV4dCBST1cgaWYgISRSb3dbMl07CgogICAgICAgICREYXRheyAkUm93WzBdIH0tPntBY3Rpb25zfS0+eyAkUm93WzFdIH0tPntUb3RhbH0gKz0gJFJvd1syXTsKICAgIH0KCiAgICBteSAkU1FMRGF0ZVN0YXJ0ID0gIiREYXRlU3RyaW5nLTAxIDAwOjAwOjAwIjsKCiAgICAkU1FMID0gJwogICAgICAgIFNFTEVDVCBwcm9qZWN0X2lkLCBhY3Rpb25faWQsIHBlcmlvZAogICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgV0hFUkUgcHJvamVjdF9pZCAhPSAtMQogICAgICAgICAgICBBTkQgdGltZV9zdGFydCA+PSA/CiAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0IDw9ID8nOwogICAgQEJpbmQgPSAoIFwkU1FMRGF0ZVN0YXJ0LCBcJFNRTERhdGUgKTsKCiAgICBpZiAoICRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRTUUwgLj0gJyBBTkQgdXNlcl9pZCA9ID8nOwogICAgICAgIHB1c2ggQEJpbmQsIFwkUGFyYW17VXNlcklEfTsKICAgIH0KCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gXEBCaW5kLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbmV4dCBST1cgaWYgISRSb3dbMl07CgogICAgICAgICREYXRheyAkUm93WzBdIH0tPntBY3Rpb25zfS0+eyAkUm93WzFdIH0tPntQZXJNb250aH0gKz0gJFJvd1syXTsKICAgIH0KCiAgICAjIGFkZCByZWFkYWJsZSBjb21wb25lbnRzCiAgICBteSAlUHJvamVjdCA9ICRTZWxmLT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKICAgIG15ICVBY3Rpb24gID0gJFNlbGYtPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgZm9yIG15ICRQcm9qZWN0SUQgKCBzb3J0IGtleXMgJURhdGEgKSB7CgogICAgICAgICREYXRheyRQcm9qZWN0SUR9LT57TmFtZX0gICAgICAgID0gJFByb2plY3R7UHJvamVjdH0tPnskUHJvamVjdElEfSB8fCAnJzsKICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e1N0YXR1c30gICAgICA9ICRQcm9qZWN0e1Byb2plY3RTdGF0dXN9LT57JFByb2plY3RJRH07CiAgICAgICAgJERhdGF7JFByb2plY3RJRH0tPntEZXNjcmlwdGlvbn0gPSAkUHJvamVjdHtQcm9qZWN0RGVzY3JpcHRpb259LT57JFByb2plY3RJRH07CgogICAgICAgIG15ICRBY3Rpb25zUmVmID0gJERhdGF7JFByb2plY3RJRH0tPntBY3Rpb25zfTsKCiAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQga2V5cyAleyRBY3Rpb25zUmVmfSApIHsKICAgICAgICAgICAgJERhdGF7JFByb2plY3RJRH0tPntBY3Rpb25zfS0+eyRBY3Rpb25JRH0tPntOYW1lfSA9ICRBY3Rpb257JEFjdGlvbklEfS0+e0FjdGlvbn0gfHwgJyc7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFByb2plY3RUb3RhbEhvdXJzKCkKCnJldHVybnMgdGhlIHN1bSBvZiBhbGwgaG91cnMgcmVsYXRlZCB0byBhIHByb2plY3QKCiAgICBteSAkUHJvamVjdFRvdGFsSG91cnMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RUb3RhbEhvdXJzKAogICAgICAgIFByb2plY3RJRCAgPT4gMTUsCiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RUb3RhbEhvdXJzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW0KICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnUHJvamVjdEFjdGlvblJlcG9ydGluZzogTmVlZCBQcm9qZWN0SUQhJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgYXNrIHRoZSBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIFNVTShwZXJpb2QpCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHByb2plY3RfaWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17UHJvamVjdElEfSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJFRvdGFsID0gMDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRUb3RhbCA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuICRUb3RhbDsKfQoKPWhlYWQyIFByb2plY3RIaXN0b3J5KCkKCnJldHVybnMgYW4gYXJyYXkgd2l0aCBhbGwgV29ya2luZ1VuaXRzIHJlbGF0ZWQgdG8gYSBwcm9qZWN0CgogICAgbXkgQFByb2plY3RIaXN0b3J5QXJyYXkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RIaXN0b3J5KAogICAgICAgIFByb2plY3RJRCAgPT4gMTUsCiAgICApOwoKVGhpcyB3b3VsZCByZXR1cm4KCiAgICBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICgKICAgICAgICB7CiAgICAgICAgICAgIElEICAgICAgICA9PiA5OTksCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAxNSwKICAgICAgICAgICAgVXNlciAgICAgID0+ICdUb20nLAogICAgICAgICAgICBBY3Rpb25JRCAgPT4gNiwKICAgICAgICAgICAgQWN0aW9uICAgID0+ICdtaXNjJywKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdyZW1hcmsnLAogICAgICAgICAgICBUaW1lU3RhcnQgPT4gJzc6MDAnLAogICAgICAgICAgICBUaW1lRW5kICAgPT4gJzE4OjAwJywKICAgICAgICAgICAgRGF0ZSAgICAgID0+ICcyMDA4LTEwLTMxJywgIyB0aGUgZGF0ZSBvZiB0aGUgd29ya2luZyB1bml0CiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAxMSwKICAgICAgICAgICAgQ3JlYXRlZCAgID0+ICcyMDA4LTExLTAxJywgIyB0aGUgaW5zZXJ0IHRpbWUgb2YgdGhlIHdvcmtpbmcgdW5pdAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBJRCAgICAgICAgPT4gOTk5LAogICAgICAgICAgICBVc2VySUQgICAgPT4gMTYsCiAgICAgICAgICAgIFVzZXIgICAgICA9PiAnTWFuZScsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiA3LAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ2RldmVsb3BtZW50JywKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdyZW1hcmsnLAogICAgICAgICAgICBUaW1lU3RhcnQgPT4gJzc6MDAnLAogICAgICAgICAgICBUaW1lRW5kICAgPT4gJzE4OjAwJywKICAgICAgICAgICAgUGVyaW9kICAgID0+IDExLAogICAgICAgICAgICBEYXRlICAgICAgPT4gJzIwMDgtMTEtMDMnLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJzIwMDgtMTEtMDMnLAogICAgICAgIH0KICAgICk7Cgo9Y3V0CgpzdWIgUHJvamVjdEhpc3RvcnkgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBwYXJhbQogICAgaWYgKCAhJFBhcmFte1Byb2plY3RJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdQcm9qZWN0QWN0aW9uUmVwb3J0aW5nOiBOZWVkIFByb2plY3RJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2FsbCBhY3Rpb24gZGF0YSB0byBnZXQgdGhlIHJlYWRhYmxlIG5hbWUgb2YgdGhlIGFjdGlvbgogICAgbXkgJUFjdGlvbkRhdGEgPSAkU2VsZi0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICAjIGdldCB1c2VyIGxpc3QKICAgIG15ICVTaG93blVzZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxpc3QoCiAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBhc2sgdGhlIGRhdGFiYXNlCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkLCB1c2VyX2lkLCBhY3Rpb25faWQsIHJlbWFyaywgdGltZV9zdGFydCwgdGltZV9lbmQsIHBlcmlvZCwgY3JlYXRlZAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSBwcm9qZWN0X2lkID0gPwogICAgICAgICAgICBPUkRFUiBCWSB0aW1lX3N0YXJ0JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtQcm9qZWN0SUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQERhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbXkgJFVzZXJSZWYgPSB7CiAgICAgICAgICAgIElEICAgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgVXNlciAgICAgID0+ICRTaG93blVzZXJzeyAkUm93WzFdIH0sCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkUm93WzJdLAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJEFjdGlvbkRhdGF7ICRSb3dbMl0gfXtBY3Rpb259LAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJFJvd1szXSB8fCAnJywKICAgICAgICAgICAgVGltZVN0YXJ0ID0+ICRSb3dbNF0sCiAgICAgICAgICAgIFRpbWVFbmQgICA9PiAkUm93WzVdLAogICAgICAgICAgICBEYXRlICAgICAgPT4gJFJvd1s0XSwKICAgICAgICAgICAgUGVyaW9kICAgID0+ICRSb3dbNl0sCiAgICAgICAgICAgIENyZWF0ZWQgICA9PiAkUm93WzddLAogICAgICAgIH07CiAgICAgICAgJFVzZXJSZWYtPntEYXRlfSA9fiBzeyhcZFxkXGRcZC1cZFxkLVxkXGQpIFxzIC4rIH17JDF9eG1zOwoKICAgICAgICBwdXNoIEBEYXRhLCAkVXNlclJlZjsKICAgIH0KCiAgICByZXR1cm4gQERhdGE7Cn0KCj1oZWFkMiBMYXN0UHJvamVjdHNPZlVzZXIoKQoKcmV0dXJucyBhbiBhcnJheSB3aXRoIHRoZSBsYXN0IHByb2plY3RzIG9mIHRoZSBjdXJyZW50IHVzZXIKCiAgICBteSBATGFzdFByb2plY3RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5MYXN0UHJvamVjdHNPZlVzZXIoCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgTGFzdFByb2plY3RzT2ZVc2VyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIFVzZXJJRCIKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgIyBJIGRvbid0IHVzZSBkaXN0aW5jdCBiZWNhdXNlIG9mIE9SREVSIEJZIHByb2JsZW1zIG9mIFBvc3RncmVTUUwKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBwcm9qZWN0X2lkIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHVzZXJfaWQgPSA/CiAgICAgICAgICAgICAgICBBTkQgcHJvamVjdF9pZCA8PiAtMQogICAgICAgICAgICBPUkRFUiBCWSB0aW1lX3N0YXJ0IERFU0MnLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgTGltaXQgPT4gNDAsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJVByb2plY3RzOwogICAgbXkgJENvdW50ZXIgPSAwOwogICAgUk9XOgogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CgogICAgICAgIG5leHQgUk9XIGlmICRDb3VudGVyID4gNzsKICAgICAgICBuZXh0IFJPVyBpZiAkUHJvamVjdHN7ICRSb3dbMF0gfTsKCiAgICAgICAgJFByb2plY3RzeyAkUm93WzBdIH0gPSAxOwogICAgICAgICRDb3VudGVyKys7CiAgICB9CgogICAgcmV0dXJuIGtleXMgJVByb2plY3RzOwp9Cgo9aGVhZDIgRGF5T2ZXZWVrKCkKClN1YnN0aXR1dGUgZm9yIERhdGU6OlBjYWxjOjpEYXlfb2ZfV2VlaygpIHdoaWNoIHVzZXMgS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lLgoKPWN1dAoKc3ViIERheU9mV2VlayB7CiAgICBteSAoICRTZWxmLCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICAgID0+ICREYXksCiAgICAgICAgICAgIFRpbWVab25lID0+ICdmbG9hdGluZycsCiAgICAgICAgfSwKICAgICk7CgogICAgaWYgKCAhJERhdGVUaW1lT2JqZWN0ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAiZXJyb3IiLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3IgY3JlYXRpbmcgRGF0ZVRpbWUgb2JqZWN0LiIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREYXRlVGltZVZhbHVlcyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgcmV0dXJuICREYXRlVGltZVZhbHVlcy0+e0RheU9mV2Vla307Cn0KCj1oZWFkMiBBZGREZWx0YVlNRCgpCgpTdWJzdGl0dXRlIGZvciBEYXRlOjpQY2FsYzo6QWRkX0RlbHRhX1lNRCgpIHdoaWNoIHVzZXMgS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lLgoKPWN1dAoKc3ViIEFkZERlbHRhWU1EIHsKICAgIG15ICggJFNlbGYsICRZZWFyLCAkTW9udGgsICREYXksICRZZWFyc1RvQWRkLCAkTW9udGhzVG9BZGQsICREYXlzVG9BZGQgKSA9IEBfOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgVGltZVpvbmUgPT4gJ2Zsb2F0aW5nJywKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICEkRGF0ZVRpbWVPYmplY3QgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICJlcnJvciIsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBjcmVhdGluZyBEYXRlVGltZSBvYmplY3QuIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gKCAkWWVhciwgJE1vbnRoLCAkRGF5LCApOwogICAgfQoKICAgICREYXRlVGltZU9iamVjdC0+QWRkKAogICAgICAgIFllYXJzICA9PiAkWWVhcnNUb0FkZCAgfHwgMCwKICAgICAgICBNb250aHMgPT4gJE1vbnRoc1RvQWRkIHx8IDAsCiAgICAgICAgRGF5cyAgID0+ICREYXlzVG9BZGQgICB8fCAwLAogICAgKTsKICAgIG15ICREYXRlVGltZVZhbHVlcyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgcmV0dXJuICgKICAgICAgICAkRGF0ZVRpbWVWYWx1ZXMtPntZZWFyfSwKICAgICAgICAkRGF0ZVRpbWVWYWx1ZXMtPntNb250aH0sCiAgICAgICAgJERhdGVUaW1lVmFsdWVzLT57RGF5fSwKICAgICk7Cn0KCj1oZWFkMiBEYXlzSW5Nb250aCgpCgpTdWJzdGl0dXRlIGZvciBEYXRlOjpQY2FsYzo6RGF5c19pbl9Nb250aCgpIHdoaWNoIHVzZXMgS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lLgoKPWN1dAoKc3ViIERheXNJbk1vbnRoIHsKICAgIG15ICggJFNlbGYsICRZZWFyLCAkTW9udGggKSA9IEBfOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgICAgPT4gMSwKICAgICAgICAgICAgVGltZVpvbmUgPT4gJ2Zsb2F0aW5nJywKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICEkRGF0ZVRpbWVPYmplY3QgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICJlcnJvciIsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBjcmVhdGluZyBEYXRlVGltZSBvYmplY3QuIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJExhc3REYXlPZk1vbnRoID0gJERhdGVUaW1lT2JqZWN0LT5MYXN0RGF5T2ZNb250aEdldCgpOwoKICAgIHJldHVybiAkTGFzdERheU9mTW9udGgtPntEYXl9Owp9Cgo9aGVhZDIgVmFjYXRpb25DaGVjaygpCgpjaGVjayBpZiB0aGUgc2VsZWN0ZWQgZGF5IGlzIGEgdmFjYXRpb24gKGl0IGRvZXMgbm90IG1hdHRlciBpZiB5b3UKaW5zZXJ0IDAxIG9yIDEgZm9yIG1vbnRoIG9yIGRheSBpbiB0aGUgZnVuY3Rpb24gb3IgaW4gdGhlIFN5c0NvbmZpZykKCnJldHVybnMgKHRydWUpIHZhY2F0aW9uIGRheSBpZiBleGlzdHMsIHJldHVybnMgZmFsc2UgaWYgZGF0ZSBpcyBubwp2YWNhdGlvbiBkYXkKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgWWVhciAgICAgPT4gMjAwNSwKICAgICAgICBNb250aCAgICA9PiA3IHx8ICcwNycsCiAgICAgICAgRGF5ICAgICAgPT4gMTMsCiAgICApOwoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VmFjYXRpb25DaGVjaygKICAgICAgICBZZWFyICAgICA9PiAyMDA1LAogICAgICAgIE1vbnRoICAgID0+IDcgfHwgJzA3JywKICAgICAgICBEYXkgICAgICA9PiAxMywKICAgICAgICBDYWxlbmRhciA9PiAzLCAjICcnIGlzIGRlZmF1bHQ7IDAgaXMgaGFuZGxlZCBsaWtlICcnCiAgICApOwoKPWN1dAoKc3ViIFZhY2F0aW9uQ2hlY2sgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIHJlcXVpcmVkIHBhcmFtcwogICAgZm9yIChxdyhZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JF99ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVmFjYXRpb25DaGVjazogTmVlZCAkXyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICB9LAogICAgKTsKICAgIGlmICggISREYXRlVGltZU9iamVjdCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIGNyZWF0aW5nIERhdGVUaW1lIG9iamVjdC4iLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiAkRGF0ZVRpbWVPYmplY3QtPklzVmFjYXRpb25EYXkoCiAgICAgICAgQ2FsZW5kYXIgPT4gJFBhcmFte0NhbGVuZGFyfSwKICAgICk7Cn0KCj1oZWFkMiBXb3JraW5nVGltZSgpCgpnZXQgdGhlIHdvcmtpbmcgdGltZSBpbiBzZWNvbmRzIGJldHdlZW4gdGhlc2UgbG9jYWwgc3lzdGVtIHRpbWVzLgoKICAgIG15ICRXb3JraW5nVGltZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1RpbWUoCiAgICAgICAgU3RhcnRUaW1lID0+ICRDcmVhdGVkLAogICAgICAgIFN0b3BUaW1lICA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgKTsKCiAgICBteSAkV29ya2luZ1RpbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdUaW1lKAogICAgICAgIFN0YXJ0VGltZSA9PiAkQ3JlYXRlZCwKICAgICAgICBTdG9wVGltZSAgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICAgICBDYWxlbmRhciAgPT4gMywgIyAnJyBpcyBkZWZhdWx0CiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdUaW1lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciAocXcoU3RhcnRUaW1lIFN0b3BUaW1lKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRffSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJF8hIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMCBpZiAkUGFyYW17U3RhcnRUaW1lfSA+PSAkUGFyYW17U3RvcFRpbWV9OwoKICAgIG15ICRTdGFydERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBFcG9jaCAgICA9PiAkUGFyYW17U3RhcnRUaW1lfSwKICAgICAgICAgICAgVGltZVpvbmUgPT4gJFNlbGYtPntUaW1lWm9uZX0sCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJFN0b3BEYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgRXBvY2ggICAgPT4gJFBhcmFte1N0b3BUaW1lfSwKICAgICAgICAgICAgVGltZVpvbmUgPT4gJFNlbGYtPntUaW1lWm9uZX0sCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJERlbHRhID0gJFN0YXJ0RGF0ZVRpbWVPYmplY3QtPkRlbHRhKAogICAgICAgIERhdGVUaW1lT2JqZWN0ID0+ICRTdG9wRGF0ZVRpbWVPYmplY3QsCiAgICAgICAgRm9yV29ya2luZ1RpbWUgPT4gMSwKICAgICAgICBDYWxlbmRhciAgICAgICA9PiAkUGFyYW17Q2FsZW5kYXJ9LAogICAgKTsKCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkRGVsdGEpICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3IgY2FsY3VsYXRpbmcgd29ya2luZyB0aW1lLicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuICREZWx0YS0+e0Fic29sdXRlU2Vjb25kc307Cn0KCj1oZWFkMiBTeXN0ZW1UaW1lMkRhdGUoKQoKY29udmVydHMgYSBzeXN0ZW0gdGltZSB0byBhIHN0cnVjdHVyZWQgZGF0ZSBhcnJheS4KCiAgICBteSAoJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIsICRXZWVrRGF5KSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgokV2Vla0RheSBpcyB0aGUgZGF5IG9mIHRoZSB3ZWVrLCB3aXRoIDAgaW5kaWNhdGluZyBTdW5kYXkgYW5kIDMgaW5kaWNhdGluZyBXZWRuZXNkYXkuCgo9Y3V0CgpzdWIgU3lzdGVtVGltZTJEYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1N5c3RlbVRpbWV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBTeXN0ZW1UaW1lIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBFcG9jaCA9PiAkUGFyYW17U3lzdGVtVGltZX0sCiAgICAgICAgfSwKICAgICk7CgogICAgJERhdGVUaW1lT2JqZWN0LT5Ub1RpbWVab25lKCBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSApOwoKICAgIG15ICREYXRlVGltZVZhbHVlcyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgbXkgJFllYXIgID0gJERhdGVUaW1lVmFsdWVzLT57WWVhcn07CiAgICBteSAkTW9udGggPSBzcHJpbnRmICIlMDJkIiwgJERhdGVUaW1lVmFsdWVzLT57TW9udGh9OwogICAgbXkgJERheSAgID0gc3ByaW50ZiAiJTAyZCIsICREYXRlVGltZVZhbHVlcy0+e0RheX07CiAgICBteSAkSG91ciAgPSBzcHJpbnRmICIlMDJkIiwgJERhdGVUaW1lVmFsdWVzLT57SG91cn07CiAgICBteSAkTWluICAgPSBzcHJpbnRmICIlMDJkIiwgJERhdGVUaW1lVmFsdWVzLT57TWludXRlfTsKICAgIG15ICRTZWMgICA9IHNwcmludGYgIiUwMmQiLCAkRGF0ZVRpbWVWYWx1ZXMtPntTZWNvbmR9OwoKICAgIG15ICRXRGF5ID0gJERhdGVUaW1lVmFsdWVzLT57RGF5T2ZXZWVrfSA9PSA3ID8gMCA6ICREYXRlVGltZVZhbHVlcy0+e0RheU9mV2Vla307CgogICAgcmV0dXJuICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIsICRXRGF5ICk7Cn0KCj1oZWFkMiBEYXlPZldlZWtUb05hbWUoKQoKQ29udmVydCBhIGRheSBudW1iZXIgaW50byB0aGUgZGF5IG5hbWUKCiAgICBteSAkRGF5TmFtZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF5T2ZXZWVrVG9OYW1lKAogICAgICAgIE51bWJlciA9PiAxICMgd2lsbCByZXR1cm4gJ01vbmRheScKICAgICk7Cgo9Y3V0CgpzdWIgRGF5T2ZXZWVrVG9OYW1lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggIWRlZmluZWQgJFBhcmFte051bWJlcn0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIE51bWJlciEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15IEBEYXlOYW1lcyA9ICgKICAgICAgICAnTW9uZGF5JywKICAgICAgICAnVHVlc2RheScsCiAgICAgICAgJ1dlZG5lc2RheScsCiAgICAgICAgJ1RodXJzZGF5JywKICAgICAgICAnRnJpZGF5JywKICAgICAgICAnU2F0dXJkYXknLAogICAgICAgICdTdW5kYXknCiAgICApOwoKICAgIHJldHVybiAkRGF5TmFtZXNbICRQYXJhbXtOdW1iZXJ9IF07Cn0KCj1oZWFkMiBEYXRlMlN5c3RlbVRpbWUoKQoKY29udmVydHMgYSBzdHJ1Y3R1cmVkIGRhdGUgYXJyYXkgdG8gc3lzdGVtIHRpbWUgb2YgT1RSUy4KCiAgICBteSAkU3lzdGVtVGltZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgIFllYXIgICA9PiAyMDA0LAogICAgICAgIE1vbnRoICA9PiA4LAogICAgICAgIERheSAgICA9PiAxNCwKICAgICAgICBIb3VyICAgPT4gMjIsCiAgICAgICAgTWludXRlID0+IDQ1LAogICAgICAgIFNlY29uZCA9PiAwLAogICAgKTsKCj1jdXQKCnN1YiBEYXRlMlN5c3RlbVRpbWUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIChxdyhZZWFyIE1vbnRoIERheSBIb3VyIE1pbnV0ZSBTZWNvbmQpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JF99ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkXyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICEkRGF0ZVRpbWVPYmplY3QgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICJJbnZhbGlkIERhdGUgJyRQYXJhbXtZZWFyfS0kUGFyYW17TW9udGh9LSRQYXJhbXtEYXl9ICRQYXJhbXtIb3VyfTokUGFyYW17TWludXRlfTokUGFyYW17U2Vjb25kfSchIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkU3lzdGVtVGltZSA9ICREYXRlVGltZU9iamVjdC0+VG9FcG9jaCgpOwoKICAgIHJldHVybiAkU3lzdGVtVGltZTsKfQoKPWhlYWQyIFRpbWVTdGFtcDJTeXN0ZW1UaW1lKCkKCmNvbnZlcnRzIGEgZ2l2ZW4gdGltZSBzdGFtcCB0byBsb2NhbCBzeXN0ZW0gdGltZS4KCiAgICBteSAkU3lzdGVtVGltZSA9ICRUaW1lT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICBTdHJpbmcgPT4gJzIwMDQtMDgtMTQgMjI6NDU6MDAnLAogICAgKTsKCj1jdXQKCnN1YiBUaW1lU3RhbXAyU3lzdGVtVGltZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17U3RyaW5nfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgU3RyaW5nIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJFN5c3RlbVRpbWUgPSAwOwoKICAgICMgbWF0Y2ggaXNvIGRhdGUgZm9ybWF0CiAgICBpZiAoICRQYXJhbXtTdHJpbmd9ID1+IC8oXGR7NH0pLShcZHsxLDJ9KS0oXGR7MSwyfSlccyhcZHsxLDJ9KTooXGR7MSwyfSk6KFxkezEsMn0pLyApIHsKICAgICAgICAkU3lzdGVtVGltZSA9ICRTZWxmLT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkMSwKICAgICAgICAgICAgTW9udGggID0+ICQyLAogICAgICAgICAgICBEYXkgICAgPT4gJDMsCiAgICAgICAgICAgIEhvdXIgICA9PiAkNCwKICAgICAgICAgICAgTWludXRlID0+ICQ1LAogICAgICAgICAgICBTZWNvbmQgPT4gJDYsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1hdGNoIGlzbyBkYXRlIGZvcm1hdCAod3JvbmcgZm9ybWF0KQogICAgZWxzaWYgKCAkUGFyYW17U3RyaW5nfSA9fiAvKFxkezEsMn0pLShcZHsxLDJ9KS0oXGR7NH0pXHMoXGR7MSwyfSk6KFxkezEsMn0pOihcZHsxLDJ9KS8gKSB7CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU2VsZi0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJDMsCiAgICAgICAgICAgIE1vbnRoICA9PiAkMiwKICAgICAgICAgICAgRGF5ICAgID0+ICQxLAogICAgICAgICAgICBIb3VyICAgPT4gJDQsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAkNSwKICAgICAgICAgICAgU2Vjb25kID0+ICQ2LAogICAgICAgICk7CiAgICB9CgogICAgIyBtYXRjaCBldXJvIHRpbWUgZm9ybWF0CiAgICBlbHNpZiAoICRQYXJhbXtTdHJpbmd9ID1+IC8oXGR7MSwyfSlcLihcZHsxLDJ9KVwuKFxkezR9KVxzKFxkezEsMn0pOihcZHsxLDJ9KTooXGR7MSwyfSkvICkgewogICAgICAgICRTeXN0ZW1UaW1lID0gJFNlbGYtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICQzLAogICAgICAgICAgICBNb250aCAgPT4gJDIsCiAgICAgICAgICAgIERheSAgICA9PiAkMSwKICAgICAgICAgICAgSG91ciAgID0+ICQ0LAogICAgICAgICAgICBNaW51dGUgPT4gJDUsCiAgICAgICAgICAgIFNlY29uZCA9PiAkNiwKICAgICAgICApOwogICAgfQoKICAgICMgbWF0Y2ggeXl5eS1tbS1kZFRoaDptbTpzcyt0dDp6eiB0aW1lIGZvcm1hdAogICAgZWxzaWYgKAogICAgICAgICRQYXJhbXtTdHJpbmd9CiAgICAgICAgPX4gLyhcZHs0fSktKFxkezEsMn0pLShcZHsxLDJ9KVQoXGR7MSwyfSk6KFxkezEsMn0pOihcZHsxLDJ9KShcK3xcLSkoKFxkezEsMn0pOihcZHsxLDJ9KSkvaQogICAgICAgICkKICAgIHsKICAgICAgICAkU3lzdGVtVGltZSA9ICRTZWxmLT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkMSwKICAgICAgICAgICAgTW9udGggID0+ICQyLAogICAgICAgICAgICBEYXkgICAgPT4gJDMsCiAgICAgICAgICAgIEhvdXIgICA9PiAkNCwKICAgICAgICAgICAgTWludXRlID0+ICQ1LAogICAgICAgICAgICBTZWNvbmQgPT4gJDYsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1hdGNoIG1haWwgdGltZSBmb3JtYXQKICAgIGVsc2lmICgKICAgICAgICAkUGFyYW17U3RyaW5nfQogICAgICAgID1+IC8oKC4uLiksXHMrfCkoXGR7MSwyfSlccyguLi4pXHMoXGR7NH0pXHMoXGR7MSwyfSk6KFxkezEsMn0pOihcZHsxLDJ9KVxzKChcK3xcLSkoXGR7Mn0pKFxkezJ9KXwuLi4pLwogICAgICAgICkKICAgIHsKICAgICAgICBteSBATW9udGhNYXAgICAgPSBxdy9KYW4gRmViIE1hciBBcHIgTWF5IEp1biBKdWwgQXVnIFNlcCBPY3QgTm92IERlYy87CiAgICAgICAgbXkgJE1vbnRoICAgICAgID0gMTsKICAgICAgICBteSAkTW9udGhTdHJpbmcgPSAkNDsKICAgICAgICBmb3IgbXkgJE1vbnRoQ291bnQgKCAwIC4uICQjTW9udGhNYXAgKSB7CiAgICAgICAgICAgIGlmICggJE1vbnRoU3RyaW5nID1+IC8kTW9udGhNYXBbJE1vbnRoQ291bnRdL2kgKSB7CiAgICAgICAgICAgICAgICAkTW9udGggPSAkTW9udGhDb3VudCArIDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU2VsZi0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJDUsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkMywKICAgICAgICAgICAgSG91ciAgID0+ICQ2LAogICAgICAgICAgICBNaW51dGUgPT4gJDcsCiAgICAgICAgICAgIFNlY29uZCA9PiAkOCwKICAgICAgICApOyAgICAjICsgJFNlbGYtPntUaW1lU2VjRGlmZn07CiAgICB9CiAgICBlbHNpZiAoICAgICMgbWF0Y2ggeXl5eS1tbS1kZFRoaDptbTpzc1oKICAgICAgICAkUGFyYW17U3RyaW5nfSA9fiAvKFxkezR9KS0oXGR7MSwyfSktKFxkezEsMn0pVChcZHsxLDJ9KTooXGR7MSwyfSk6KFxkezEsMn0pWiQvCiAgICAgICAgKQogICAgewogICAgICAgICRTeXN0ZW1UaW1lID0gJFNlbGYtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICQxLAogICAgICAgICAgICBNb250aCAgPT4gJDIsCiAgICAgICAgICAgIERheSAgICA9PiAkMywKICAgICAgICAgICAgSG91ciAgID0+ICQ0LAogICAgICAgICAgICBNaW51dGUgPT4gJDUsCiAgICAgICAgICAgIFNlY29uZCA9PiAkNiwKICAgICAgICApOwogICAgfQoKICAgICMgcmV0dXJuIGVycm9yCiAgICBpZiAoICFkZWZpbmVkICRTeXN0ZW1UaW1lICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiSW52YWxpZCBEYXRlICckUGFyYW17U3RyaW5nfSchIiwKICAgICAgICApOwogICAgfQoKICAgICMgcmV0dXJuIHN5c3RlbSB0aW1lCiAgICByZXR1cm4gJFN5c3RlbVRpbWU7Cgp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlN0YXRzOjpEeW5hbWljOjpUaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgR2V0T2JqZWN0TmFtZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAnVGltZUFjY291bnRpbmcnOwp9CgpzdWIgR2V0T2JqZWN0QXR0cmlidXRlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREYXRlVGltZU9iamVjdEN1cnJlbnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICAjIHNldCBwcmVkZWZpbmVkIHN0YXJ0IHRpbWUKICAgIG15ICRUaW1lU3RhbXAgPSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCk7CiAgICBteSAoJERhdGUpID0gc3BsaXQgL1xzKy8sICRUaW1lU3RhbXA7CiAgICBteSAkVG9kYXkgPSBzcHJpbnRmICIlcyAyMzo1OTo1OSIsICREYXRlOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgZ2V0IHByb2plY3QgbGlzdAogICAgbXkgJVByb2plY3RMaXN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoCiAgICAgICAgU3RhdHVzID0+ICd2YWxpZCcsCiAgICApOwoKICAgICMgZ2V0IGFjdGlvbiBsaXN0CiAgICBteSAlQWN0aW9uTGlzdFNvdXJjZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKICAgIG15ICVBY3Rpb25MaXN0OwoKICAgIGZvciBteSAkQWN0aW9uICggc29ydCBrZXlzICVBY3Rpb25MaXN0U291cmNlICkgewogICAgICAgICRBY3Rpb25MaXN0eyRBY3Rpb259ID0gJEFjdGlvbkxpc3RTb3VyY2V7JEFjdGlvbn0tPntBY3Rpb259OwogICAgfQoKICAgICMgZ2V0IHVzZXIgbGlzdAogICAgbXkgJVVzZXJMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxpc3QoCiAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwoKICAgIG15IEBBdHRyaWJ1dGVzID0gKAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1Byb2plY3QnKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnUHJvamVjdCcsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ011bHRpU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDAsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gJFByb2plY3RMaXN0e1Byb2plY3R9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnVXNlcicpLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMCwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdVc2VyJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMCwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiBcJVVzZXJMaXN0LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnU29ydCBzZXF1ZW5jZScpLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMSwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAwLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdTb3J0U2VxdWVuY2UnLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMSwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICBVcCAgID0+ICdhc2NlbmRpbmcnLAogICAgICAgICAgICAgICAgRG93biA9PiAnZGVzY2VuZGluZycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdUYXNrJyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1Byb2plY3RBY3Rpb24nLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdNdWx0aVNlbGVjdEZpZWxkJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAwLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IFwlQWN0aW9uTGlzdCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1BlcmlvZCcpLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMCwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdQZXJpb2QnLAogICAgICAgICAgICBUaW1lUGVyaW9kRm9ybWF0ID0+ICdEYXRlSW5wdXRGb3JtYXQnLCAgICAgICAgIyAnRGF0ZUlucHV0Rm9ybWF0TG9uZycsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ1RpbWUnLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIFRpbWVTdGFydCA9PiAnVGltZUFjY291bnRpbmdQZXJpb2RTdGFydCcsCiAgICAgICAgICAgICAgICBUaW1lU3RvcCAgPT4gJ1RpbWVBY2NvdW50aW5nUGVyaW9kU3RvcCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIEBBdHRyaWJ1dGVzOwp9CgpzdWIgR2V0SGVhZGVyTGluZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwogICAgbXkgQEhlYWRlckxpbmUgPSAoIiIpOwoKICAgICMgVXNlcnMgYXMgWC12YWx1ZQogICAgaWYgKCAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9ICYmICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gZXEgJ1VzZXInICkgewoKICAgICAgICAjIHVzZXIgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBteSBAVXNlcklEcyA9IEB7ICRQYXJhbXtYVmFsdWV9LT57U2VsZWN0ZWRWYWx1ZXN9IH07CgogICAgICAgICMgZ2V0IHVzZXIgb2JqZWN0CiAgICAgICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzZWxlY3RlZCB1c2VycwogICAgICAgIFVTRVJJRDoKICAgICAgICBmb3IgbXkgJFVzZXJJRCAoQFVzZXJJRHMpIHsKICAgICAgICAgICAgbXkgJFVzZXJOYW1lID0gJFVzZXJPYmplY3QtPlVzZXJOYW1lKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBIZWFkZXJMaW5lLCAkVXNlck5hbWU7CiAgICAgICAgfQogICAgfQoKICAgICMgUHJvamVjdHMgYXMgWC12YWx1ZQogICAgZWxzZSB7CiAgICAgICAgIyBwcm9qZWN0cyBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIG15IEBQcm9qZWN0SURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzZWxlY3RlZCBwcm9qZWN0cwogICAgICAgIFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoQFByb2plY3RJRHMpIHsKICAgICAgICAgICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICAgICAgSUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHB1c2ggQEhlYWRlckxpbmUsICRQcm9qZWN0RGF0YXtQcm9qZWN0fTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIFxASGVhZGVyTGluZTsKfQoKc3ViIEdldFN0YXRUYWJsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwogICAgbXkgQFN0YXRBcnJheTsKICAgIG15IEBVc2VySURzOwoKICAgICMgVXNlcnMgYXMgWC12YWx1ZQogICAgaWYgKCAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9ICYmICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gZXEgJ1VzZXInICkgewoKICAgICAgICAjIHVzZXIgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBAVXNlcklEcyA9IEB7ICRQYXJhbXtYVmFsdWV9LT57U2VsZWN0ZWRWYWx1ZXN9IH07CgogICAgICAgICMgZ2V0IHN0YXQgZGF0YQogICAgICAgIG15ICRTdGF0RGF0YSA9ICRTZWxmLT5fR2V0U3RhdERhdGEoCiAgICAgICAgICAgIFBhcmFtICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgVXNlcklEcyA9PiBcQFVzZXJJRHMsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBzdGF0IGRhdGEKICAgICAgICByZXR1cm4gaWYgISRTdGF0RGF0YTsKICAgICAgICByZXR1cm4gaWYgcmVmICRTdGF0RGF0YSBuZSAnQVJSQVknOwoKICAgICAgICBteSBAUmF3U3RhdEFycmF5ID0gQHskU3RhdERhdGF9OwogICAgICAgIHJldHVybiBpZiAhQFJhd1N0YXRBcnJheTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGdldCBsaXN0IG9mIG5lZWRlZCBkYXRhCiAgICAgICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKICAgICAgICBteSAlUHJvamVjdExpc3QgPSAleyAkUHJvamVjdERhdGF7UHJvamVjdH0gfHwge30gfTsKCiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CiAgICAgICAgbXkgJUFjdGlvbkxpc3QgPSBtYXAgeyAoICRfID0+ICRBY3Rpb25EYXRheyRffS0+e0FjdGlvbn0gKSB9IGtleXMgJUFjdGlvbkRhdGE7CgogICAgICAgIG15IEBTb3J0ZWRQcm9qZWN0SURzID0gc29ydCB7ICRQcm9qZWN0TGlzdHskYX0gY21wICRQcm9qZWN0TGlzdHskYn0gfSBrZXlzICVQcm9qZWN0TGlzdDsKICAgICAgICBteSBAU29ydGVkQWN0aW9uSURzICA9IHNvcnQgeyAkQWN0aW9uTGlzdHskYX0gY21wICRBY3Rpb25MaXN0eyRifSB9IGtleXMgJUFjdGlvbkxpc3Q7CgogICAgICAgICMgcmUtc29ydCBwcm9qZWN0cyBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc2VxdWVuY2UKICAgICAgICBpZiAoCiAgICAgICAgICAgIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1ZhbHVlU2VyaWVzfSApCiAgICAgICAgICAgICYmICRQYXJhbXtWYWx1ZVNlcmllc30tPlswXS0+e1NlbGVjdGVkVmFsdWVzfS0+WzBdIGVxICdEb3duJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBAU29ydGVkUHJvamVjdElEcyA9IHJldmVyc2UgQFNvcnRlZFByb2plY3RJRHM7CiAgICAgICAgfQoKICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgcHJvamVjdCBsaXN0CiAgICAgICAgU09SVEVEUFJPSkVDVElEOgogICAgICAgIGZvciBteSAkU29ydGVkUHJvamVjdElEIChAU29ydGVkUHJvamVjdElEcykgewoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9CiAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRQcm9qZWN0SUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9IHx8IFtdIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBTT1JURURQUk9KRUNUSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IHRoZSBjdXJyZW50IHByb2plY3QgZGF0YSBvZiBjdXJyZW50IHByb2plY3QKICAgICAgICAgICAgbXkgQFByb2plY3RTdGF0RGF0YSA9IGdyZXAgeyAkXy0+e1Byb2plY3RJRH0gPT0gJFNvcnRlZFByb2plY3RJRCB9IEBSYXdTdGF0QXJyYXk7CgogICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgYWN0aW9uIGxpc3QKICAgICAgICAgICAgU09SVEVEQUNUSU9OSUQ6CiAgICAgICAgICAgIGZvciBteSAkU29ydGVkQWN0aW9uSUQgKEBTb3J0ZWRBY3Rpb25JRHMpIHsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259CiAgICAgICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkQWN0aW9uSUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IHx8IFtdIH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBTT1JURURBQ1RJT05JRDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGdldCB0aGUgY3VycmVudCBhY3Rpb24gb3V0IG9mIHRoZSBjdXJyZW50IHByb2plY3QKICAgICAgICAgICAgICAgIG15IEBBY3Rpb25TdGF0RGF0YSA9IGdyZXAgeyAkXy0+e0FjdGlvbklEfSA9PSAkU29ydGVkQWN0aW9uSUQgfSBAUHJvamVjdFN0YXREYXRhOwoKICAgICAgICAgICAgICAgIG15IEBSb3dEYXRhOwoKICAgICAgICAgICAgICAgICMgYWRkIGRlc2NyaXB0aXZlIGZpcnN0IGNvbHVtbgogICAgICAgICAgICAgICAgbXkgJFJvd0xhYmVsID0gIiRQcm9qZWN0TGlzdHskU29ydGVkUHJvamVjdElEfTo6JEFjdGlvbkxpc3R7JFNvcnRlZEFjdGlvbklEfSI7CiAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCAkUm93TGFiZWw7CgogICAgICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgdXNlcnMKICAgICAgICAgICAgICAgIFVTRVJJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlcklEIChAVXNlcklEcykgewoKICAgICAgICAgICAgICAgICAgICAjIGF0IGxlYXN0IGdldCAnMCcgZm9yIHVzZXIgZGF0YQogICAgICAgICAgICAgICAgICAgIG15ICRVc2VyUGVyaW9kU3VtID0gMDsKCiAgICAgICAgICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgcGVyaW9kIGRhdGEgb2YgdXNlcgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkUGVyaW9kRGF0YSAoIGdyZXAgeyAkXy0+e1VzZXJJRH0gPT0gJFVzZXJJRCB9IEBBY3Rpb25TdGF0RGF0YSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFVzZXJQZXJpb2RTdW0gKz0gJFBlcmlvZERhdGEtPntQZXJpb2R9OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBzYWZlIHVzZXIgZGF0YSB0byByb3cgZGF0YQogICAgICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRVc2VyUGVyaW9kU3VtOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc3RvcmUgY3VycmVudCByb3cgdG8gZ2xvYmFsIHN0YXQgYXJyYXkKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXRBcnJheSwgXEBSb3dEYXRhOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgUHJvamVjdHMgYXMgWC12YWx1ZQogICAgZWxzZSB7CgogICAgICAgICMgcHJvamVjdHMgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBteSBAUHJvamVjdElEcyA9IEB7ICRQYXJhbXtYVmFsdWV9LT57U2VsZWN0ZWRWYWx1ZXN9IH07CgogICAgICAgICMgZ2V0IHVzZXIgb2JqZWN0CiAgICAgICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICAgICAjIHdlIG5lZWQgdG8gZ2V0IGFsbCB1c2VycwogICAgICAgIG15ICVVc2VySURzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnU2hvcnQnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIEBVc2VySURzID0ga2V5cyAlVXNlcklEczsKCiAgICAgICAgIyBnZXQgY2FsY3VsYXRlZCBzdGF0cyBkYXRhCiAgICAgICAgbXkgJFN0YXREYXRhID0gJFNlbGYtPl9HZXRTdGF0RGF0YSgKICAgICAgICAgICAgUGFyYW0gICA9PiBcJVBhcmFtLAogICAgICAgICAgICBVc2VySURzID0+IFxAVXNlcklEcywKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIHN0YXQgZGF0YQogICAgICAgIHJldHVybiBpZiAhJFN0YXREYXRhOwogICAgICAgIHJldHVybiBpZiByZWYgJFN0YXREYXRhIG5lICdBUlJBWSc7CgogICAgICAgIG15IEBSYXdTdGF0QXJyYXkgPSBAeyRTdGF0RGF0YX07CiAgICAgICAgcmV0dXJuIGlmICFAUmF3U3RhdEFycmF5OwoKICAgICAgICAjIGdldCBsaXN0IG9mIG5lZWRlZCBkYXRhCiAgICAgICAgbXkgJVVzZXJMaXN0ID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgQFNvcnRlZFVzZXJJRHMgPSBzb3J0IHsgJFVzZXJMaXN0eyRhfSBjbXAgJFVzZXJMaXN0eyRifSB9IGtleXMgJVVzZXJMaXN0OwoKICAgICAgICAjIHJlLXNvcnQgdXNlcnMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHNlcXVlbmNlCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtWYWx1ZVNlcmllc30gKQogICAgICAgICAgICAmJiAkUGFyYW17VmFsdWVTZXJpZXN9LT5bMF0tPntTZWxlY3RlZFZhbHVlc30tPlswXSBlcSAnRG93bicKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgQFNvcnRlZFVzZXJJRHMgPSByZXZlcnNlIEBTb3J0ZWRVc2VySURzOwogICAgICAgIH0KCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIHVzZXIgbGlzdAogICAgICAgIFNPUlRFRFVTRVJJRDoKICAgICAgICBmb3IgbXkgJFNvcnRlZFVzZXJJRCAoQFNvcnRlZFVzZXJJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgdXNlcnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntVc2VyfQogICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkVXNlcklEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntVc2VyfSB8fCBbXSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgU09SVEVEVVNFUklEOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCB0aGUgY3VycmVudCB1c2VyIGRhdGEgb2YgY3VycmVudCB1c2VyCiAgICAgICAgICAgIG15IEBVc2VyU3RhdERhdGEgPSBncmVwIHsgJF8tPntVc2VySUR9ID09ICRTb3J0ZWRVc2VySUQgfSBAUmF3U3RhdEFycmF5OwoKICAgICAgICAgICAgbXkgQFJvd0RhdGE7CgogICAgICAgICAgICAjIGFkZCBkZXNjcmlwdGl2ZSBmaXJzdCBjb2x1bW4KICAgICAgICAgICAgbXkgJFJvd0xhYmVsID0gJFVzZXJMaXN0eyRTb3J0ZWRVc2VySUR9OwogICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCAkUm93TGFiZWw7CgogICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICBQUk9KRUNUSUQ6CiAgICAgICAgICAgIGZvciBteSAkUHJvamVjdElEIChAUHJvamVjdElEcykgewoKICAgICAgICAgICAgICAgICMgYXQgbGVhc3QgZ2V0ICcwJyBmb3IgdXNlciBkYXRhCiAgICAgICAgICAgICAgICBteSAkUHJvamVjdFBlcmlvZFN1bSA9IDA7CgogICAgICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgcGVyaW9kIGRhdGEgb2YgdXNlcgogICAgICAgICAgICAgICAgZm9yIG15ICRQZXJpb2REYXRhICggZ3JlcCB7ICRfLT57UHJvamVjdElEfSA9PSAkUHJvamVjdElEIH0gQFVzZXJTdGF0RGF0YSApIHsKICAgICAgICAgICAgICAgICAgICAkUHJvamVjdFBlcmlvZFN1bSArPSAkUGVyaW9kRGF0YS0+e1BlcmlvZH07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBzYWZlIHVzZXIgZGF0YSB0byByb3cgZGF0YQogICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFByb2plY3RQZXJpb2RTdW07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc3RvcmUgY3VycmVudCByb3cgdG8gZ2xvYmFsIHN0YXQgYXJyYXkKICAgICAgICAgICAgcHVzaCBAU3RhdEFycmF5LCBcQFJvd0RhdGE7CiAgICAgICAgfQoKICAgIH0KCiAgICByZXR1cm4gQFN0YXRBcnJheTsKfQoKc3ViIEdldFN0YXRUYWJsZVByZXZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBAU3RhdEFycmF5OwogICAgbXkgQFVzZXJJRHM7CgogICAgIyBVc2VycyBhcyBYLXZhbHVlCiAgICBpZiAoICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gJiYgJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSBlcSAnVXNlcicgKSB7CgogICAgICAgICMgdXNlciBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIEBVc2VySURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGdldCBsaXN0IG9mIG5lZWRlZCBkYXRhCiAgICAgICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKICAgICAgICBteSAlUHJvamVjdExpc3QgPSAleyAkUHJvamVjdERhdGF7UHJvamVjdH0gfHwge30gfTsKCiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CiAgICAgICAgbXkgJUFjdGlvbkxpc3QgPSBtYXAgeyAoICRfID0+ICRBY3Rpb25EYXRheyRffS0+e0FjdGlvbn0gKSB9IGtleXMgJUFjdGlvbkRhdGE7CgogICAgICAgIG15IEBTb3J0ZWRQcm9qZWN0SURzID0gc29ydCB7ICRQcm9qZWN0TGlzdHskYX0gY21wICRQcm9qZWN0TGlzdHskYn0gfSBrZXlzICVQcm9qZWN0TGlzdDsKICAgICAgICBteSBAU29ydGVkQWN0aW9uSURzICA9IHNvcnQgeyAkQWN0aW9uTGlzdHskYX0gY21wICRBY3Rpb25MaXN0eyRifSB9IGtleXMgJUFjdGlvbkxpc3Q7CgogICAgICAgICMgcmUtc29ydCBwcm9qZWN0cyBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc2VxdWVuY2UKICAgICAgICBpZiAoCiAgICAgICAgICAgIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1ZhbHVlU2VyaWVzfSApCiAgICAgICAgICAgICYmICRQYXJhbXtWYWx1ZVNlcmllc30tPlswXS0+e1NlbGVjdGVkVmFsdWVzfS0+WzBdIGVxICdEb3duJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBAU29ydGVkUHJvamVjdElEcyA9IHJldmVyc2UgQFNvcnRlZFByb2plY3RJRHM7CiAgICAgICAgfQoKICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgcHJvamVjdCBsaXN0CiAgICAgICAgU09SVEVEUFJPSkVDVElEOgogICAgICAgIGZvciBteSAkU29ydGVkUHJvamVjdElEIChAU29ydGVkUHJvamVjdElEcykgewoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9CiAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRQcm9qZWN0SUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9IHx8IFtdIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBTT1JURURQUk9KRUNUSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCBhY3Rpb24gbGlzdAogICAgICAgICAgICBTT1JURURBQ1RJT05JRDoKICAgICAgICAgICAgZm9yIG15ICRTb3J0ZWRBY3Rpb25JRCAoQFNvcnRlZEFjdGlvbklEcykgewoKICAgICAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0KICAgICAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRBY3Rpb25JRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0gfHwgW10gfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IFNPUlRFREFDVElPTklEOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15IEBSb3dEYXRhOwoKICAgICAgICAgICAgICAgICMgYWRkIGRlc2NyaXB0aXZlIGZpcnN0IGNvbHVtbgogICAgICAgICAgICAgICAgbXkgJFJvd0xhYmVsID0gIiRQcm9qZWN0TGlzdHskU29ydGVkUHJvamVjdElEfTo6JEFjdGlvbkxpc3R7JFNvcnRlZEFjdGlvbklEfSI7CiAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCAkUm93TGFiZWw7CgogICAgICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgdXNlcnMKICAgICAgICAgICAgICAgIFVTRVJJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlcklEIChAVXNlcklEcykgewoKICAgICAgICAgICAgICAgICAgICAjIHNhZmUgdXNlciBkYXRhIHRvIHJvdyBkYXRhCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgaW50IHJhbmQgNTA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBzdG9yZSBjdXJyZW50IHJvdyB0byBnbG9iYWwgc3RhdCBhcnJheQogICAgICAgICAgICAgICAgcHVzaCBAU3RhdEFycmF5LCBcQFJvd0RhdGE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBQcm9qZWN0cyBhcyBYLXZhbHVlCiAgICBlbHNlIHsKCiAgICAgICAgIyBwcm9qZWN0cyBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIG15IEBQcm9qZWN0SURzID0gQHsgJFBhcmFte1hWYWx1ZX17U2VsZWN0ZWRWYWx1ZXN9IH07CgogICAgICAgICMgZ2V0IHVzZXIgb2JqZWN0CiAgICAgICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICAgICAjIHdlIG5lZWQgdG8gZ2V0IGFsbCB1c2VycwogICAgICAgIG15ICVVc2VySURzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnU2hvcnQnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIEBVc2VySURzID0ga2V5cyAlVXNlcklEczsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBuZWVkZWQgZGF0YQogICAgICAgIG15ICVVc2VyTGlzdCA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15IEBTb3J0ZWRVc2VySURzID0gc29ydCB7ICRVc2VyTGlzdHskYX0gY21wICRVc2VyTGlzdHskYn0gfSBrZXlzICVVc2VyTGlzdDsKCiAgICAgICAgIyByZS1zb3J0IHVzZXJzIGRlcGVuZGluZyBvbiBzZWxlY3RlZCBzZXF1ZW5jZQogICAgICAgIGlmICgKICAgICAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWVTZXJpZXN9ICkKICAgICAgICAgICAgJiYgJFBhcmFte1ZhbHVlU2VyaWVzfS0+WzBdLT57U2VsZWN0ZWRWYWx1ZXN9LT5bMF0gZXEgJ0Rvd24nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIEBTb3J0ZWRVc2VySURzID0gcmV2ZXJzZSBAU29ydGVkVXNlcklEczsKICAgICAgICB9CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCB1c2VyIGxpc3QKICAgICAgICBTT1JURURVU0VSSUQ6CiAgICAgICAgZm9yIG15ICRTb3J0ZWRVc2VySUQgKEBTb3J0ZWRVc2VySURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIHVzZXJzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VXNlcn0KICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZFVzZXJJRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VXNlcn0gfHwgW10gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFNPUlRFRFVTRVJJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgQFJvd0RhdGE7CgogICAgICAgICAgICAjIGFkZCBkZXNjcmlwdGl2ZSBmaXJzdCBjb2x1bW4KICAgICAgICAgICAgbXkgJFJvd0xhYmVsID0gJFVzZXJMaXN0eyRTb3J0ZWRVc2VySUR9OwogICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCAkUm93TGFiZWw7CgogICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICBQUk9KRUNUSUQ6CiAgICAgICAgICAgIGZvciBteSAkUHJvamVjdElEIChAUHJvamVjdElEcykgewoKICAgICAgICAgICAgICAgICMgc2FmZSB1c2VyIGRhdGEgdG8gcm93IGRhdGEKICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsIGludCByYW5kIDUwOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHN0b3JlIGN1cnJlbnQgcm93IHRvIGdsb2JhbCBzdGF0IGFycmF5CiAgICAgICAgICAgIHB1c2ggQFN0YXRBcnJheSwgXEBSb3dEYXRhOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gQFN0YXRBcnJheTsKfQoKc3ViIEV4cG9ydFdyYXBwZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgd3JhcCBpZHMgdG8gdXNlZCBzcGVsbGluZwogICAgZm9yIG15ICRVc2UgKHF3KFVzZUFzVmFsdWVTZXJpZXMgVXNlQXNSZXN0cmljdGlvbiBVc2VBc1h2YWx1ZSkpIHsKCiAgICAgICAgRUxFTUVOVDoKICAgICAgICBmb3IgbXkgJEVsZW1lbnQgKCBAeyAkUGFyYW17JFVzZX0gfSApIHsKICAgICAgICAgICAgbmV4dCBFTEVNRU5UIGlmICEkRWxlbWVudDsKICAgICAgICAgICAgbmV4dCBFTEVNRU5UIGlmICEkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIG15ICRFbGVtZW50TmFtZSA9ICRFbGVtZW50LT57RWxlbWVudH07CiAgICAgICAgICAgIG15ICRWYWx1ZXMgICAgICA9ICRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgaWYgKCAkRWxlbWVudE5hbWUgZXEgJ1VzZXInICkgewoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJElELT57Q29udGVudH0KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEVsZW1lbnROYW1lIGVxICdQcm9qZWN0JyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJVRtcFByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICAgICAgICAgICAgICBJRCA9PiAkSUQtPntDb250ZW50fQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkVG1wUHJvamVjdERhdGF7UHJvamVjdH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRWxlbWVudE5hbWUgZXEgJ1Byb2plY3RBY3Rpb24nICkgewoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAlVG1wQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBJRCA9PiAkSUQtPntDb250ZW50fQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkVG1wQWN0aW9uRGF0YXtBY3Rpb259OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIFwlUGFyYW07Cn0KCnN1YiBJbXBvcnRXcmFwcGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIHdyYXAgdXNlZCBzcGVsbGluZyB0byBpZHMKICAgIGZvciBteSAkVXNlIChxdyhVc2VBc1ZhbHVlU2VyaWVzIFVzZUFzUmVzdHJpY3Rpb24gVXNlQXNYdmFsdWUpKSB7CiAgICAgICAgRUxFTUVOVDoKICAgICAgICBmb3IgbXkgJEVsZW1lbnQgKCBAeyAkUGFyYW17JFVzZX0gfSApIHsKICAgICAgICAgICAgbmV4dCBFTEVNRU5UIGlmICEkRWxlbWVudDsKICAgICAgICAgICAgbmV4dCBFTEVNRU5UIGlmICEkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIG15ICRFbGVtZW50TmFtZSA9ICRFbGVtZW50LT57RWxlbWVudH07CiAgICAgICAgICAgIG15ICRWYWx1ZXMgICAgICA9ICRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgaWYgKCAkRWxlbWVudE5hbWUgZXEgJ1VzZXInICkgewoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAkVXNlcklEID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkSUQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBpZiAoJFVzZXJJRCkgewogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRVc2VySUQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkltcG9ydDogQ2FuJyBmaW5kIHRoZSB1c2VyICRJRC0+e0NvbnRlbnR9ISIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJElEID0gdW5kZWY7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEVsZW1lbnROYW1lIGVxICdQcm9qZWN0JyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3QgPT4gJElELT57Q29udGVudH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoICRQcm9qZWN0e0lEfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkUHJvamVjdHtJRH07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkltcG9ydDogQ2FuJyBmaW5kIHByb2plY3QgJElELT57Q29udGVudH0hIgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkSUQgPSB1bmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRWxlbWVudE5hbWUgZXEgJ1Byb2plY3RBY3Rpb24nICkgewogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICVBY3Rpb24gPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICRJRC0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkQWN0aW9ue0lEfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkQWN0aW9ue0lEfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW1wb3J0OiBDYW4nIGZpbmQgYWN0aW9uICRJRC0+e0NvbnRlbnR9ISIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJElEID0gdW5kZWY7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIFwlUGFyYW07Cn0KCnN1YiBHZXRFeHRlbmRlZFRpdGxlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdGFydH0gfHwgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntUaW1lQWNjb3VudGluZ1BlcmlvZFN0b3B9OwoKICAgIG15ICVEYXRlSW5kZXhUb05hbWUgPSAoCiAgICAgICAgJ1NlY29uZCcgPT4gMCwKICAgICAgICAnTWludXRlJyA9PiAxLAogICAgICAgICdIb3VyJyAgID0+IDIsCiAgICAgICAgJ0RheScgICAgPT4gMywKICAgICAgICAnTW9udGgnICA9PiA0LAogICAgICAgICdZZWFyJyAgID0+IDUsCiAgICApOwoKICAgIG15ICVQcmV2aW91c01vbnRoRGF0ZXMgPSAkU2VsZi0+X0dldFByZXZpb3VzTW9udGhEYXRlcygKICAgICAgICBEYXRlSW5kZXhUb05hbWUgPT4gXCVEYXRlSW5kZXhUb05hbWUsCiAgICApOwoKICAgIG15ICRTdGFydERhdGUgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCAwMDowMDowMCIsICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzBdLAogICAgICAgICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzFdLCAkUHJldmlvdXNNb250aERhdGVze05ld1N0YXJ0RGF0ZX0tPlsyXTsKICAgIG15ICRTdG9wRGF0ZSA9IHNwcmludGYgIiUwNGQtJTAyZC0lMDJkIDAwOjAwOjAwIiwgJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlswXSwKICAgICAgICAkUHJldmlvdXNNb250aERhdGVze05ld1N0b3BEYXRlfS0+WzFdLCAkUHJldmlvdXNNb250aERhdGVze05ld1N0b3BEYXRlfS0+WzJdOwoKICAgIHJldHVybiAiJFN0YXJ0RGF0ZS0kU3RvcERhdGUiOwp9CgpzdWIgX0dldFN0YXREYXRhIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFJldHVybjsKICAgIG15IEBVc2VySURzID0gQHsgJFBhcmFte1VzZXJJRHN9IHx8IFtdIH07CgogICAgbXkgJURhdGVJbmRleFRvTmFtZSA9ICgKICAgICAgICAnU2Vjb25kJyA9PiAwLAogICAgICAgICdNaW51dGUnID0+IDEsCiAgICAgICAgJ0hvdXInICAgPT4gMiwKICAgICAgICAnRGF5JyAgICA9PiAzLAogICAgICAgICdNb250aCcgID0+IDQsCiAgICAgICAgJ1llYXInICAgPT4gNSwKICAgICk7CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyBsb29waW5nIG92ZXIgYWxsIG9yIHNlbGVjdGVkIHVzZXJzCiAgICBmb3IgbXkgJFVzZXJJRCAoQFVzZXJJRHMpIHsKCiAgICAgICAgbXkgJFN0YXJ0RGF0ZTsKICAgICAgICBteSAkU3RvcERhdGU7CgogICAgICAgICMgY2hlY2sgaWYgdGltZSBwZXJpb2QgaGFzIGJlZW4gc2VsZWN0ZWQKICAgICAgICBpZiAoICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdGFydH0gKSB7CgogICAgICAgICAgICAjIGdldCBVTklYIHRpbWUtc3RhbXAgb2Ygc3RhcnQgYW5kIGVuZCB2YWx1ZXMKICAgICAgICAgICAgJFN0YXJ0RGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntUaW1lQWNjb3VudGluZ1BlcmlvZFN0YXJ0fSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFN0b3BEYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1RpbWVBY2NvdW50aW5nUGVyaW9kU3RvcH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBJTVBPUlRBTlQ6CiAgICAgICAgICAgICMgSWYgbm8gdGltZSBwZXJpb2QgaGFkIGJlZW4gc2VsZWN0ZWQgcHJldmlvdXMgbW9udGggd2lsbCBiZSB1c2VkIGFzIHBlcmlvZCEKICAgICAgICAgICAgbXkgJVByZXZpb3VzTW9udGhEYXRlcyA9ICRTZWxmLT5fR2V0UHJldmlvdXNNb250aERhdGVzKAogICAgICAgICAgICAgICAgRGF0ZUluZGV4VG9OYW1lID0+IFwlRGF0ZUluZGV4VG9OYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBDYWxjdWxhdGUgVU5JWCB0aW1lc3RhbXBzIGZvciBzdGFydCBhbmQgc3RvcCBkYXRlLgogICAgICAgICAgICAkU3RhcnREYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdGFydERhdGV9LT5bMF0sCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdGFydERhdGV9LT5bMV0sCiAgICAgICAgICAgICAgICBEYXkgICAgPT4gJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdGFydERhdGV9LT5bMl0sCiAgICAgICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTdG9wRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICAgICAgWWVhciAgID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RvcERhdGV9LT5bMF0sCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlsxXSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkUHJldmlvdXNNb250aERhdGVze05ld1N0b3BEYXRlfS0+WzJdLAogICAgICAgICAgICAgICAgSG91ciAgID0+IDIzLAogICAgICAgICAgICAgICAgTWludXRlID0+IDU5LAogICAgICAgICAgICAgICAgU2Vjb25kID0+IDU5LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBjYWxjdWxhdGUgbnVtYmVyIG9mIGRheXMgd2l0aGluIHRoZSBnaXZlbiByYW5nZQogICAgICAgIG15ICREYXlzID0gaW50KCAoICRTdG9wRGF0ZSAtICRTdGFydERhdGUgKSAvIDg2NDAwICkgKyAxOwoKICAgICAgICBEQVk6CiAgICAgICAgZm9yIG15ICREYXkgKCAwIC4uICREYXlzICkgewoKICAgICAgICAgICAgIyBnZXQgZGF5IHJlbGF0aXZlIHRvIHN0YXJ0IGRhdGUKICAgICAgICAgICAgbXkgJERhdGVPZlBlcmlvZCA9ICRTdGFydERhdGUgKyAkRGF5ICogODY0MDA7CgogICAgICAgICAgICAjIGdldCBuZWVkZWQgZGF0ZSB2YWx1ZXMgb3V0IG9mIHRpbWUtc3RhbXAKICAgICAgICAgICAgbXkgQERhdGVWYWx1ZXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVPZlBlcmlvZCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IHdvcmtpbmcgdW5pdCBmb3IgdXNlciBhbmQgZGF5CiAgICAgICAgICAgIG15ICVXb3JraW5nVW5pdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgICAgICAgICAgWWVhciAgID0+ICREYXRlVmFsdWVzWyAkRGF0ZUluZGV4VG9OYW1leydZZWFyJ30gXSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkRGF0ZVZhbHVlc1sgJERhdGVJbmRleFRvTmFtZXsnTW9udGgnfSBdLAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICREYXRlVmFsdWVzWyAkRGF0ZUluZGV4VG9OYW1leydEYXknfSBdLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGV4dHJhY3QgZGV0YWlsZWQgaW5mb3JtYXRpb24KICAgICAgICAgICAgbXkgQERheVdvcmtpbmdVbml0cyA9IEB7ICRXb3JraW5nVW5pdHtXb3JraW5nVW5pdHN9IHx8IFtdIH07CgogICAgICAgICAgICAjIGNoZWNrIGZvciBwcm9qZWN0IHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgICAgICBteSAlU2VsZWN0ZWRQcm9qZWN0SURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICAgICAgbXkgQEZpbHRlcmVkUHJvamVjdFdVcyA9IGdyZXAgewogICAgICAgICAgICAgICAgICAgICRTZWxlY3RlZFByb2plY3RJRHN7ICRfLT57UHJvamVjdElEfSB9CiAgICAgICAgICAgICAgICB9IEBEYXlXb3JraW5nVW5pdHM7CgogICAgICAgICAgICAgICAgQERheVdvcmtpbmdVbml0cyA9IEBGaWx0ZXJlZFByb2plY3RXVXM7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHRhc2sgcmVzdHJpY3Rpb25zCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0KICAgICAgICAgICAgICAgICYmIHJlZiAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IGVxICdBUlJBWScKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgYnVpbGQgbWF0Y2hpbmcgaGFzaCBmb3Igc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgbXkgJVNlbGVjdGVkQWN0aW9uSURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBteSBARmlsdGVyZWRBY3Rpb25XVXMgPSBncmVwIHsgJFNlbGVjdGVkQWN0aW9uSURzeyAkXy0+e0FjdGlvbklEfSB9IH0gQERheVdvcmtpbmdVbml0czsKCiAgICAgICAgICAgICAgICBARGF5V29ya2luZ1VuaXRzID0gQEZpbHRlcmVkQWN0aW9uV1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1c2VyIHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1VzZXJ9CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntVc2VyfSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15ICVTZWxlY3RlZFVzZXJJRHMgPSBtYXAgeyAoICRfID0+IDEgKSB9IEB7ICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VXNlcn0gfTsKCiAgICAgICAgICAgICAgICAjIGZpbHRlciBvbmx5IHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15IEBGaWx0ZXJlZFVzZXJXVXMgPSBncmVwIHsgJFNlbGVjdGVkVXNlcklEc3sgJF8tPntVc2VySUR9IH0gfSBARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgICAgIEBEYXlXb3JraW5nVW5pdHMgPSBARmlsdGVyZWRVc2VyV1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGRvIG5vdCBzdG9yZSBkYXRhIGlmIG5vIGRhdGEgaXMgYXZhaWxhYmxlCiAgICAgICAgICAgIG5leHQgREFZIGlmICFARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgIyBhZGQgZGF0YSB0byBnbG9iYWwgcmVzdWx0IHNldAogICAgICAgICAgICBwdXNoIEBSZXR1cm4sIEBEYXlXb3JraW5nVW5pdHM7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcQFJldHVybjsKfQoKc3ViIF9HZXRQcmV2aW91c01vbnRoRGF0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17RGF0ZUluZGV4VG9OYW1lfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgRGF0ZUluZGV4VG9OYW1lISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKICAgIG15ICREYXRlVGltZU9iamVjdEN1cnJlbnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICAjIEdldCBjdXJyZW50IGRhdGUgdmFsdWVzLgogICAgbXkgQEN1cnJlbnREYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCksCiAgICApOwoKICAgICMgR2V0IGZpcnN0IGRheSBvZiBwcmV2aW91cyBtb250aC4KICAgIG15IEBOZXdTdGFydERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKAogICAgICAgICRDdXJyZW50RGF0ZVsgJFBhcmFte0RhdGVJbmRleFRvTmFtZX0tPnsnWWVhcid9IF0sCiAgICAgICAgJEN1cnJlbnREYXRlWyAkUGFyYW17RGF0ZUluZGV4VG9OYW1lfS0+eydNb250aCd9IF0sCiAgICAgICAgMSwKICAgICAgICAwLAogICAgICAgIC0xLAogICAgICAgIDAsCiAgICApOwoKICAgICMgR2V0IGZpcnN0IGRheSBvZiBuZXh0IG1vbnRoIHJlbGF0aXZlIHRvIHByZXZpb3VzIG1vbnRoLgogICAgbXkgQE5ld1N0b3BEYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCgKICAgICAgICAkTmV3U3RhcnREYXRlWzBdLAogICAgICAgICROZXdTdGFydERhdGVbMV0sCiAgICAgICAgJE5ld1N0YXJ0RGF0ZVsyXSwKICAgICAgICAwLAogICAgICAgICsxLAogICAgICAgIDAsCiAgICApOwoKICAgICMgR2V0IGxhc3Qgb2YgZGF5IHByZXZpb3VzIG1vbnRoLgogICAgQE5ld1N0b3BEYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCgKICAgICAgICAkTmV3U3RvcERhdGVbMF0sCiAgICAgICAgJE5ld1N0b3BEYXRlWzFdLAogICAgICAgICROZXdTdG9wRGF0ZVsyXSwKICAgICAgICAwLAogICAgICAgIDAsCiAgICAgICAgLTEsCiAgICApOwoKICAgIHJldHVybiAoCiAgICAgICAgTmV3U3RhcnREYXRlID0+IFxATmV3U3RhcnREYXRlLAogICAgICAgIE5ld1N0b3BEYXRlICA9PiBcQE5ld1N0b3BEYXRlLAogICAgKTsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHZhcnMgcXcoJFNlbGYpOwoKdXNlIHZhcjo6cGFja2FnZXNldHVwOjpUaW1lQWNjb3VudGluZzsKCm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKbXkgJFJhbmRvbUdyb3VwID0gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgICAgPT4gJ1Jlc3RvcmUgcGVybWlzc2lvbnMgb2YgQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQgZnJvbnRlbmQgbW9kdWxlJywKICAgICAgICBTZXR0aW5ncyAgPT4gWydGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnXSwKICAgICAgICBPbGRDb25maWcgPT4gewogICAgICAgICAgICAnRnJvbnRlbmQ6Ok1vZHVsZScgPT4gewogICAgICAgICAgICAgICAgJ0FnZW50VGltZUFjY291bnRpbmdFZGl0JyA9PiB7CiAgICAgICAgICAgICAgICAgICAgJ0Rlc2NyaXB0aW9uJyA9PiAnVGltZSBhY2NvdW50aW5nIGVkaXQuJywKICAgICAgICAgICAgICAgICAgICAnR3JvdXAnICAgICAgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgJFJhbmRvbUdyb3VwLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgJ0dyb3VwUm8nID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgJFJhbmRvbUdyb3VwLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgJ05hdkJhcicgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWNjZXNzS2V5JyAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Jsb2NrJyAgICAgICA9PiAnSXRlbUFyZWEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Rlc2NyaXB0aW9uJyA9PiAnVGltZSBhY2NvdW50aW5nLicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTGluaycgICAgICAgID0+ICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05hbWUnICAgICAgICA9PiAnVGltZSBBY2NvdW50aW5nJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYXZCYXInICAgICAgPT4gJ1RpbWVBY2NvdW50aW5nJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQcmlvJyAgICAgICAgPT4gJzYwMDAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1R5cGUnICAgICAgICA9PiAnTWVudScKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2Vzc0tleScgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCbG9jaycgICAgICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRGVzY3JpcHRpb24nID0+ICdFZGl0IHRpbWUgcmVjb3JkLicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnR3JvdXBSbycgICAgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUmFuZG9tR3JvdXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbmsnICAgPT4gJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTmFtZScgICA9PiAnRWRpdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTmF2QmFyJyA9PiAnVGltZUFjY291bnRpbmcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1ByaW8nICAgPT4gJzIwMCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVHlwZScgICA9PiAnJwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgIHsKICAgICAgICBOYW1lICAgICAgICA9PiAnUmVzdG9yZSBwZXJtaXNzaW9ucyBvZiBGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcgdG8gdGhlIG9sZCBkZWZhdWx0cycsCiAgICAgICAgU2V0dGluZ3MgICAgPT4gWydGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnXSwKICAgICAgICBPbGRDb25maWcgICA9PiB7fSwKICAgICAgICBPbGREZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICdGcm9udGVuZDo6TW9kdWxlJyA9PiB7CiAgICAgICAgICAgICAgICAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnID0+IHsKICAgICAgICAgICAgICAgICAgICBHcm91cCAgID0+IFsndGltZV9hY2NvdW50aW5nJ10sCiAgICAgICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbJ3RpbWVfYWNjb3VudGluZyddLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIENvbmZpZyA9PiB7fSwKICAgIH0sCik7CgpteSAkR2V0Q29uZmlnID0gc3ViIHsKICAgIG15ICRTb3VyY2UgICAgICA9IHNoaWZ0OwogICAgbXkgJFNldHRpbmdOYW1lID0gc2hpZnQ7CgogICAgbXkgJENvbmZpZyA9ICRTb3VyY2U7CiAgICBteSBAS2V5cyA9IHNwbGl0ICcjIyMnLCAkU2V0dGluZ05hbWU7CiAgICB3aGlsZSAoIG15ICRLZXkgPSBzaGlmdCBAS2V5cyApIHsKICAgICAgICAkQ29uZmlnID0gJENvbmZpZy0+eyRLZXl9OwogICAgfQoKICAgIHJldHVybiAkQ29uZmlnOwp9OwoKbXkgJENoZWNrR3JvdXBHcm91cFJvID0gc3ViIHsKICAgIG15ICVQYXJhbSAgICA9IEBfOwogICAgbXkgJEV4cGVjdGVkID0gJFBhcmFte0V4cGVjdGVkfTsKICAgIG15ICRSZXN1bHQgICA9ICRQYXJhbXtSZXN1bHR9OwogICAgbXkgJFRlc3ROYW1lID0gJFBhcmFte1Rlc3ROYW1lfTsKCiAgICBpZiAoICRFeHBlY3RlZC0+e0dyb3VwfSB8fCAkRXhwZWN0ZWQtPntHcm91cFJvfSApIHsKCiAgICAgICAgIyBDaGVjayBmb3IgS2V5IEdyb3VwIGFuZCBHcm91cFJvLgogICAgICAgIGZvciBteSAkS2V5IChxdyhHcm91cCBHcm91cFJvKSkgewogICAgICAgICAgICAkU2VsZi0+SXNEZWVwbHkoCiAgICAgICAgICAgICAgICAkUmVzdWx0LT57JEtleX0sCiAgICAgICAgICAgICAgICAkRXhwZWN0ZWQtPnskS2V5fSAvLyBbXSwKICAgICAgICAgICAgICAgICRUZXN0TmFtZSAuICIsICckeyBLZXkgfScgZml4ZWQhIgogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KfTsKCm15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgpURVNUOgpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewoKICAgICMgSWYgdGhlIGtleSAnQ29uZmlnJyBleGlzdHMsIGxldHMgc2V0IHRoZSBuZXcgY29uZmlnIGJlZm9yZSBkbyBhbnl0aGluZyBlbHNlCiAgICBpZiAoICRUZXN0LT57Q29uZmlnfSApIHsKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkVGVzdC0+e0NvbmZpZ30gfSApIHsKICAgICAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgICAgIEtleSAgID0+ICRLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVGVzdC0+e0NvbmZpZ30tPnskS2V5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBDaGVjayBpZiBpdCB3YXMgcmVzdG9yZWQgdG8gdGhlIG9sZCBjb25maWcKICAgIG15ICRPbGRDb25maWcgPSAkVGVzdC0+e09sZENvbmZpZ307CiAgICBsb2NhbCAqdmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nOjpfR2V0T1RSUzVDb25maWdCYWNrdXAgPSBzdWIgeyAgICAjIyBubyBjcml0aWMKICAgICAgICByZXR1cm4gJE9sZENvbmZpZzsKICAgIH07CiAgICB2YXI6OnBhY2thZ2VzZXR1cDo6VGltZUFjY291bnRpbmctPm5ldygpLT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzkyKCk7CgogICAgIyBDaGVjayBpZiB0aGUgbmV3IGNvbmZpZyBpcyBhY2NvcmRpbmcgdG8gdGhlIG9sZCBvbmUuCiAgICBteSBAU2V0dGluZ3MgPSBAeyAkVGVzdC0+e1NldHRpbmdzfSB9OwogICAgU0VUVElOR19OQU1FOgogICAgZm9yIG15ICRTZXR0aW5nTmFtZSAoQFNldHRpbmdzKSB7CiAgICAgICAgbXkgJFNldHRpbmdPbGRDb25maWcgICA9ICRHZXRDb25maWctPiggJE9sZENvbmZpZywgICAgICAgICAgICRTZXR0aW5nTmFtZSApOwogICAgICAgIG15ICRTZXR0aW5nT2xkRGVmYXVsdHMgPSAkR2V0Q29uZmlnLT4oICRUZXN0LT57T2xkRGVmYXVsdHN9LCAkU2V0dGluZ05hbWUgKTsKICAgICAgICBteSAlQ29uZmlnICAgICAgICAgICAgID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0dldCgKICAgICAgICAgICAgTmFtZSA9PiAkU2V0dGluZ05hbWUsCiAgICAgICAgKTsKICAgICAgICBteSAkRWZmZWN0aXZlVmFsdWUgPSAkQ29uZmlne0VmZmVjdGl2ZVZhbHVlfTsKCiAgICAgICAgIyBJdCdzIG5vdCBhIGNvbXBsZXggdmFsdWUsIGNoZWNrIG9ubHkgaWYgdGhlIHZhbHVlIHdhcyByZXN0b3JlZC4KICAgICAgICBpZiAoICEoIHJlZiAkRWZmZWN0aXZlVmFsdWUgKSApIHsKICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJEVmZmVjdGl2ZVZhbHVlLAogICAgICAgICAgICAgICAgJFNldHRpbmdPbGRDb25maWcgLy8gJFNldHRpbmdPbGREZWZhdWx0cywKICAgICAgICAgICAgICAgICRUZXN0LT57TmFtZX0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgU0VUVElOR19OQU1FOwogICAgICAgIH0KCiAgICAgICAgJENoZWNrR3JvdXBHcm91cFJvLT4oCiAgICAgICAgICAgIEV4cGVjdGVkID0+ICRTZXR0aW5nT2xkQ29uZmlnIC8vICRTZXR0aW5nT2xkRGVmYXVsdHMsCiAgICAgICAgICAgIFJlc3VsdCAgID0+ICRFZmZlY3RpdmVWYWx1ZSwKICAgICAgICAgICAgVGVzdE5hbWUgPT4gJFRlc3QtPntOYW1lfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICRTZXR0aW5nT2xkQ29uZmlnLT57TmF2QmFyfSB8fCAkU2V0dGluZ09sZERlZmF1bHRzLT57TmF2QmFyfSApIHsKCiAgICAgICAgICAgICMgQ2hlY2sgZm9yIG5hdmlnYXRpb24gcGVybWlzc2lvbnMuCiAgICAgICAgICAgIG15ICggdW5kZWYsICRGcm9udGVuZCApID0gc3BsaXQgJyMjIycsICRTZXR0aW5nTmFtZTsKCiAgICAgICAgICAgICMgRmlyc3QsIGdldCBhbGwgdGhlIG5hdmlnYXRpb24gaXRlbXMuCiAgICAgICAgICAgIG15ICROYXZCYXIgICAgID0gJFNldHRpbmdPbGRDb25maWctPntOYXZCYXJ9IC8vICRTZXR0aW5nT2xkRGVmYXVsdHMtPntOYXZCYXJ9OwogICAgICAgICAgICBteSAlTmF2aWdhdGlvbiA9ICgpOwogICAgICAgICAgICBteSAkSW5kZXggICAgICA9IDA7CiAgICAgICAgICAgIElURU06CiAgICAgICAgICAgIGZvciBteSAkSXRlbSAoIEB7JE5hdkJhcn0gKSB7CiAgICAgICAgICAgICAgICAkSW5kZXggKz0gMTsKICAgICAgICAgICAgICAgIG15ICVOYXZpZ2F0aW9uQ29uZmlnCiAgICAgICAgICAgICAgICAgICAgPSAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nR2V0KCBOYW1lID0+ICJGcm9udGVuZDo6TmF2aWdhdGlvbiMjIyR7IEZyb250ZW5kIH0jIyMkeyBJbmRleCB9IiApOwogICAgICAgICAgICAgICAgbmV4dCBJVEVNIGlmICElTmF2aWdhdGlvbkNvbmZpZzsKCiAgICAgICAgICAgICAgICBteSAkRWZmZWN0aXZlVmFsdWUgPSAkTmF2aWdhdGlvbkNvbmZpZ3tFZmZlY3RpdmVWYWx1ZX07CiAgICAgICAgICAgICAgICBteSAkS2V5ID0gJEVmZmVjdGl2ZVZhbHVlLT57TmFtZX0gLiAnLScgLiAkRWZmZWN0aXZlVmFsdWUtPntCbG9ja30gfHwgJyc7CiAgICAgICAgICAgICAgICAkTmF2aWdhdGlvbnskS2V5fSA9ICRFZmZlY3RpdmVWYWx1ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBDaGVjayBwZXJtaXNzaW9uIG9mIHRoZSBuYXZpYWdhdGlvbiBpdGVtcy4KICAgICAgICAgICAgZm9yIG15ICRJdGVtICggQHskTmF2QmFyfSApIHsKICAgICAgICAgICAgICAgIG15ICRLZXkgPSAkSXRlbS0+e05hbWV9IC4gJy0nIC4gJEl0ZW0tPntCbG9ja307CiAgICAgICAgICAgICAgICBteSAkTmF2aWdhdGlvbkNvbmZpZyA9ICROYXZpZ2F0aW9ueyRLZXl9IHx8IHt9OwoKICAgICAgICAgICAgICAgICRDaGVja0dyb3VwR3JvdXBSby0+KAogICAgICAgICAgICAgICAgICAgIEV4cGVjdGVkID0+ICRJdGVtLAogICAgICAgICAgICAgICAgICAgIFJlc3VsdCAgID0+ICROYXZpZ2F0aW9uQ29uZmlnLAogICAgICAgICAgICAgICAgICAgIFRlc3ROYW1lID0+IHNwcmludGYoCiAgICAgICAgICAgICAgICAgICAgICAgICRUZXN0LT57TmFtZX0gLiAnIChOYXZpZ2F0aW9uICVzKScsCiAgICAgICAgICAgICAgICAgICAgICAgICRJdGVtLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICRJdGVtLT57QmxvY2t9ID8gJy0nIC4gJEl0ZW0tPntCbG9ja30gOiAnJywKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKIyBSZXN0b3JlIGRlZmF1bHQgc2V0dGluZyB2YWx1ZXMgYWZ0ZXIgdGVzdGluZywgc2luY2Ugb3ZlcnJpZGVzIGFyZSBkZXBsb3llZCBmcm9tIGV4dGVybmFsIGNvZGUuCm15IEBTZXR0aW5ncyA9ICgKICAgICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcnLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcnLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nVmlldycsCiAgICAnRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCMjIzEnLAogICAgJ0Zyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQjIyMyJywKICAgICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldyMjIzEnLAogICAgJ0Zyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcjIyMxJywKICAgICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcjIyMxJywKKTsKCmZvciBteSAkU2V0dGluZ05hbWUgKEBTZXR0aW5ncykgewogICAgbXkgJEV4Y2x1c2l2ZUxvY2tHVUlEID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0xvY2soCiAgICAgICAgTmFtZSAgID0+ICRTZXR0aW5nTmFtZSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRXhjbHVzaXZlTG9ja0dVSUQsCiAgICAgICAgIkxvY2tlZCAkU2V0dGluZ05hbWUiCiAgICApOwoKICAgIG15ICRTdWNjZXNzID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ1Jlc2V0KAogICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICRTZXR0aW5nTmFtZSwKICAgICAgICBFeGNsdXNpdmVMb2NrR1VJRCA9PiAkRXhjbHVzaXZlTG9ja0dVSUQsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkU3VjY2VzcywKICAgICAgICAiUmVzZXQgJFNldHRpbmdOYW1lIgogICAgKTsKfQoKbXkgJFN1Y2Nlc3MgPSAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWd1cmF0aW9uRGVwbG95KAogICAgQ29tbWVudHMgICAgICA9PiAnVXBncmFkZUxvd2VyVGhhbjUwOTIudCcsCiAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICBGb3JjZSAgICAgICAgID0+IDEsCiAgICBEaXJ0eVNldHRpbmdzID0+IFxAU2V0dGluZ3MsCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAnUmVzdG9yZWQgZGVmYXVsdCBjb25maWd1cmF0aW9uJwopOwoKMTsK
CiMgLS0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgZGVjbGFyZSBleHRlcm5hbGx5IGRlZmluZWQgdmFyaWFibGVzIHRvIGF2b2lkIGVycm9ycyB1bmRlciAndXNlIHN0cmljdCcKdXNlIHZhcnMgcXcoJFNlbGYpOwoKIyBnZXQgaGVscGVyIG9iamVjdAokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKbXkgJFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKCk7CgpteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgpteSAkVXNlcklEID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICBVc2VyTG9naW4gPT4gJFVzZXJMb2dpbiwKKTsKCm15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgUGVyaW9kID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAiVXNlclNldHRpbmdzSW5zZXJ0KCkgZm9yIHVzZXIgJFVzZXJJRCIsCik7CgokU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgVXNlcklEICAgICAgICA9PiAkVXNlcklELAogICAgRGVzY3JpcHRpb24gICA9PiAnU29tZSBUZXh0JywKICAgIENyZWF0ZVByb2plY3QgPT4gMSB8fCAwLAogICAgU2hvd092ZXJ0aW1lICA9PiAxIHx8IDAsCiAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAxID0+IHsKICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gJzIwMTYtMDEtMDEnLAogICAgICAgICAgICBEYXRlRW5kICAgICA9PiAnMjAxNi0xMi0zMScsCiAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAiVXNlclNldHRpbmdzVXBkYXRlKCkgZm9yIHVzZXIgJFVzZXJJRCIsCik7CgojIFRoaXMgdW5pdCB0ZXN0IG9ubHkgY2hlY2sgdGhhdCB0aGUgZnVuY3Rpb24gdXNlcyBjb3JyZWN0IGRhdGUgdmFsdWVzIGFuZCBpdCBkb2VzIG5vdCBicmVhawpmb3IgbXkgJE1vbnRoICggMSAuLiAxMiApIHsKICAgIG15ICRNb250aFN1Y2Nlc3MgPSAxOwogICAgZm9yIG15ICREYXkgKCAxIC4uIDI4ICkgewogICAgICAgICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICA9PiAnMjAxNicsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICBTaWNrICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgJE1vbnRoU3VjY2VzcyA9IDA7CiAgICAgICAgfQogICAgfQogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgIldvcmtpbmdVbml0c0luc2VydCgpIGluIG1vbnRoICRNb250aCBmb3IgdXNlciAkVXNlcklEIiwKICAgICk7Cn0KCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJzIwMTYtSmFuLTEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+IDIwMTYsCiAgICAgICAgICAgIE1vbnRoID0+IDEsCiAgICAgICAgICAgIERheSAgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICcyMDE2LUZlYi0xJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICA9PiAyMDE2LAogICAgICAgICAgICBNb250aCA9PiAyLAogICAgICAgICAgICBEYXkgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnMjAxNi1PY3QtMScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gMjAxNiwKICAgICAgICAgICAgTW9udGggPT4gMTAsCiAgICAgICAgICAgIERheSAgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICcyMDE2LURlYy0xMicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gMjAxNiwKICAgICAgICAgICAgTW9udGggPT4gMTIsCiAgICAgICAgICAgIERheSAgID0+IDEyLAogICAgICAgIH0sCiAgICB9LAopOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoCiAgICAgICAgT2JqZWN0cyA9PiBbICdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnLCBdLAogICAgKTsKCiAgICAjIFJlZGVmaW5lIFZhY2F0aW9uQ2hlY2sgaW4gb3JkZXIgdG8gYnJlYWsgb24gYSB3cm9uZyBkYXRlICh0aGlzIHNob3VsZCBub3QgaGFwcGVuKS4KICAgIG5vIHdhcm5pbmdzIHF3KCBvbmNlIHJlZGVmaW5lICk7ICAgICMjIG5vIGNyaXRpYwogICAgbG9jYWwgKktlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZzo6VmFjYXRpb25DaGVjayA9IHN1YiB7CiAgICAgICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAgICAgIyBjaGVjayByZXF1aXJlZCBwYXJhbXMKICAgICAgICBmb3IgKHF3KFllYXIgTW9udGggRGF5KSkgewogICAgICAgICAgICBpZiAoICEkUGFyYW17JF99ICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVmFjYXRpb25DaGVjazogTmVlZCAkXyEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIElmIGRhdGUgaXMgd3JvbmcgRGF0ZVRpbWVPYmplY3QgaXMgdW5kZWZpbmVkIGFuZCBpdCBzaG91bGQgYnJlYWsgdW5pdCB0ZXN0IGlmCiAgICAgICAgIyAgIElzVmFjYXRpb25EYXkoKSBpcyBjYWxsZWQsIHRoaXMgaGFwcGVucyBhdCBjZXJ0YWluIHBvaW50IGluIFVzZXJSZXBvcnRpbmcoKS4KCiAgICAgICAgcmV0dXJuICREYXRlVGltZU9iamVjdC0+SXNWYWNhdGlvbkRheSgKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gJFBhcmFte0NhbGVuZGFyfSwKICAgICAgICApOwogICAgfTsKICAgIHVzZSB3YXJuaW5nczsKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICBteSAlRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclJlcG9ydGluZyggJXsgJFRlc3QtPntDb25maWd9IH0gKTsKCiAgICAkU2VsZi0+SXNOb3REZWVwbHkoCiAgICAgICAgXCVEYXRhLAogICAgICAgIHt9LAogICAgICAgICIkVGVzdC0+e05hbWV9IFVzZXJSZXBvcnRpbmcoKSByZXR1cm4gdmFsdWUgaXMgbm90IGVtcHR5IgogICAgKTsKfQoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBkZWNsYXJlIGV4dGVybmFsbHkgZGVmaW5lZCB2YXJpYWJsZXMgdG8gYXZvaWQgZXJyb3JzIHVuZGVyICd1c2Ugc3RyaWN0Jwp1c2UgdmFycyBxdygkU2VsZik7CgokS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5TZXQoCiAgICBLZXkgICA9PiAnVGltZVZhY2F0aW9uRGF5czo6Q2FsZW5kYXIxJywKICAgIFZhbHVlID0+IHsKICAgICAgICAxID0+IHsKICAgICAgICAgICAgMSA9PiAnTmV3IFllYXJcJ3MgRGF5JwogICAgICAgIH0sCiAgICAgICAgMTIgPT4gewogICAgICAgICAgICAxMiA9PiAnQmVzdCBkYXkgaW4gd29ybGQnLAogICAgICAgICAgICAyNCA9PiAnQ2hyaXN0bWFzIEV2ZScsCiAgICAgICAgICAgIDI1ID0+ICdGaXJzdCBDaHJpc3RtYXMgRGF5JywKICAgICAgICAgICAgMjYgPT4gJ1NlY29uZCBDaHJpc3RtYXMgRGF5JywKICAgICAgICAgICAgMzEgPT4gJ05ldyBZZWFyXCdzIEV2ZScKICAgICAgICB9LAogICAgICAgIDUgPT4gewogICAgICAgICAgICAxID0+ICdJbnRlcm5hdGlvbmFsIFdvcmtlcnNcJyBEYXknCiAgICAgICAgfSwKICAgIH0sCik7CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnTm8gUGFyYW1zJywKICAgICAgICBDb25maWcgICAgICAgID0+IHt9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBZZWFyJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBNb250aCAgICA9PiAxLAogICAgICAgICAgICBEYXkgICAgICA9PiAxLAogICAgICAgICAgICBDYWxlbmRhciA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRWYWx1ZSA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ05vIE1vbnRoJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAyMDE3LAogICAgICAgICAgICBEYXkgICAgICA9PiAxLAogICAgICAgICAgICBDYWxlbmRhciA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRWYWx1ZSA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ05vIERheScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgTW9udGggICAgPT4gMSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdXcm9uZyBEYXRlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAyMDE3LAogICAgICAgICAgICBNb250aCAgICA9PiAyLAogICAgICAgICAgICBEYXkgICAgICA9PiAyOSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBWYWNhdGlvbiBEYXknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+IDIwMTcsCiAgICAgICAgICAgIE1vbnRoICAgID0+IDIsCiAgICAgICAgICAgIERheSAgICAgID0+IDE1LAogICAgICAgICAgICBDYWxlbmRhciA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRWYWx1ZSA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ZhY2F0aW9uIERheSBOdW1lcmljIE1vbnRoJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAyMDE3LAogICAgICAgICAgICBNb250aCAgICA9PiAxLAogICAgICAgICAgICBEYXkgICAgICA9PiAxLAogICAgICAgICAgICBDYWxlbmRhciA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRWYWx1ZSA9PiAiTmV3IFllYXIncyBEYXkiLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ZhY2F0aW9uIERheSBTdHJpbmcgTW9udGgnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+IDIwMTcsCiAgICAgICAgICAgIE1vbnRoICAgID0+ICcwMScsCiAgICAgICAgICAgIERheSAgICAgID0+IDEsCiAgICAgICAgICAgIENhbGVuZGFyID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFZhbHVlID0+ICJOZXcgWWVhcidzIERheSIsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVmFjYXRpb24gRGF5IEN1c3RvbScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgTW9udGggICAgPT4gMTIsCiAgICAgICAgICAgIERheSAgICAgID0+IDEyLAogICAgICAgICAgICBDYWxlbmRhciA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRWYWx1ZSA9PiAiQmVzdCBkYXkgaW4gd29ybGQiLAogICAgfQopOwoKbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7Cgpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewoKICAgIG15ICRSZXN1bHQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlZhY2F0aW9uQ2hlY2soICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgJFNlbGYtPklzKAogICAgICAgICRSZXN1bHQgLy8gMCwKICAgICAgICAkVGVzdC0+e0V4cGVjdGVkVmFsdWV9LAogICAgICAgICIkVGVzdC0+e05hbWV9IFZhY2F0aW9uQ2hlY2soKSIsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBkZWNsYXJlIGV4dGVybmFsbHkgZGVmaW5lZCB2YXJpYWJsZXMgdG8gYXZvaWQgZXJyb3JzIHVuZGVyICd1c2Ugc3RyaWN0Jwp1c2UgdmFycyBxdygkU2VsZik7CgojIGdldCBoZWxwZXIgb2JqZWN0CiRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgIFJlc3RvcmVEYXRhYmFzZSA9PiAxLAogICAgfSwKKTsKbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgpteSAkUmFuZG9tTnVtYmVyID0gaW50IHN1YnN0ciAkSGVscGVyLT5HZXRSYW5kb21OdW1iZXIoKSwgLTUsIDU7CgojIGRhdGEgZm9yIHRoZSBuZXcgYWN0aW9uICh0YXNrKQpteSAlTmV3QWN0aW9uRGF0YSA9ICgKICAgIEFjdGlvbiAgICAgICA9PiAnVGVzdEFjdGlvbicgLiAkUmFuZG9tTnVtYmVyLAogICAgQWN0aW9uU3RhdHVzID0+IDEsCik7CgojIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0Cm15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKIyBjcmVhdGUgYSBuZXcgYWN0aW9uICh0YXNrKQpteSAkSW5zZXJ0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCglTmV3QWN0aW9uRGF0YSk7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHN1Y2Nlc3NmdWxseSBpbnNlcnRlZAokU2VsZi0+VHJ1ZSgKICAgICRJbnNlcnQsCiAgICAnSW5zZXJ0IHRlc3QgYWN0aW9uIHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKIyBnZXQgdGhlIGFjdGlvbiBkYXRhIHRoYXQgd2FzIGluc2VydGVkIGFib3ZlCm15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoIEFjdGlvbiA9PiAkTmV3QWN0aW9uRGF0YXtBY3Rpb259ICk7CgojIHZlcmlmeSB0aGF0IHRoZSBkYXRhIHNhdmVkIGluIHRoZSBEQiBpcyB0aGUgc2FtZSB0aGF0IHdhcyBpbnNlcnRlZAokU2VsZi0+SXMoCiAgICAkQWN0aW9uRGF0YXtBY3Rpb25TdGF0dXN9LAogICAgJE5ld0FjdGlvbkRhdGF7QWN0aW9uU3RhdHVzfSwKICAgICdDb21wYXJlIGFjdGlvbiBzdGF0dXMgc2F2ZWQgaW4gREIgd2l0aCB0aGUgaW5zZXJ0ZWQgb25lJywKKTsKCiMgbW9kaWZ5IHRoZSBhY3Rpb24gbmFtZQpteSAkVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgIEFjdGlvbklEICAgICA9PiAkQWN0aW9uRGF0YXtJRH0sCiAgICBBY3Rpb24gICAgICAgPT4gJE5ld0FjdGlvbkRhdGF7QWN0aW9ufSAuICdtb2RpZmllZCcsCiAgICBBY3Rpb25TdGF0dXMgPT4gMSwKKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGFjdGlvbiB3YXMgdXBkYXRlZAokU2VsZi0+VHJ1ZSgKICAgICRVcGRhdGUsCiAgICAnVXBkYXRlIHRlc3QgYWN0aW9uIHNldHRpbmdzJywKKTsKCiMgZ2V0IGFsbCBhY3Rpb25zIGRhdGEKbXkgJUFsbEFjdGlvbnMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CgojIHZlcmlmeSB0aGUgbGFzdCBtb2RpZmljYXRpb24KJFNlbGYtPklzKAogICAgJEFsbEFjdGlvbnN7ICRBY3Rpb25EYXRhe0lEfSB9e0FjdGlvbn0sCiAgICAkTmV3QWN0aW9uRGF0YXtBY3Rpb259IC4gJ21vZGlmaWVkJywKICAgICdDb21wYXJlIGFjdGlvbiBuYW1lIHNhdmVkIGluIERCIHdpdGggdGhlIHNwZWNpZmllZCBpbiB0aGUgdXBkYXRlJywKKTsKCiMgZGF0YSBmb3IgdGhlIG5ldyBwcm9qZWN0Cm15ICVOZXdQcm9qZWN0RGF0YSA9ICgKICAgIFByb2plY3QgICAgICAgICAgICA9PiAnVGVzdFByb2plY3QnIC4gJFJhbmRvbU51bWJlciwKICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnVGVzdCcsCiAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKKTsKCiMgY3JlYXRlIGEgbmV3IHByb2plY3QKbXkgJFByb2plY3RJRCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KCVOZXdQcm9qZWN0RGF0YSk7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHN1Y2Nlc3NmdWxseSBpbnNlcnRlZAokU2VsZi0+VHJ1ZSgKICAgICRQcm9qZWN0SUQsCiAgICAnSW5zZXJ0IHRlc3QgcHJvamVjdCBzZXR0aW5ncyBpbnRvIGRhdGFiYXNlJywKKTsKCiMgZ2V0IHRoZSBhY3Rpb24gZGF0YSB0aGF0IHdhcyBpbnNlcnRlZCBhYm92ZQpteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoIElEID0+ICRQcm9qZWN0SUQgKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGRhdGEgc2F2ZWQgaW4gdGhlIERCIGlzIHRoZSBzYW1lIHRoYXQgd2FzIGluc2VydGVkCiRTZWxmLT5JcygKICAgICRQcm9qZWN0RGF0YXtQcm9qZWN0fSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0fSwKICAgICdDb21wYXJlIHByb2plY3QgbmFtZSBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwokU2VsZi0+SXMoCiAgICAkUHJvamVjdERhdGF7UHJvamVjdERlc2NyaXB0aW9ufSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0RGVzY3JpcHRpb259LAogICAgJ0NvbXBhcmUgcHJvamVjdCBkZXNjcmlwdGlvbiBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwokU2VsZi0+SXMoCiAgICAkUHJvamVjdERhdGF7UHJvamVjdFN0YXR1c30sCiAgICAkTmV3UHJvamVjdERhdGF7UHJvamVjdFN0YXR1c30sCiAgICAnQ29tcGFyZSBwcm9qZWN0IHN0YXR1cyBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwoKIyBtb2RpZnkgdGhlIHByb2plY3QgbmFtZQokVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NVcGRhdGUoCiAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFByb2plY3RJRCwKICAgIFByb2plY3QgICAgICAgICAgICA9PiAkTmV3UHJvamVjdERhdGF7UHJvamVjdH0gLiAnbW9kaWZpZWQnLAogICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdUZXN0JywKICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyB1cGRhdGVkCiRTZWxmLT5UcnVlKAogICAgJFVwZGF0ZSwKICAgICdVcGRhdGUgdGVzdCBwcm9qZWN0IHNldHRpbmdzJywKKTsKCiMgZ2V0IGFsbCBwcm9qZWN0cyBkYXRhCm15ICVBbGxQcm9qZWN0cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCBTdGF0dXMgPT4gJ3ZhbGlkJyApOwoKIyB2ZXJpZnkgdGhlIGxhc3QgbW9kaWZpY2F0aW9uCiRTZWxmLT5JcygKICAgICRBbGxQcm9qZWN0c3tQcm9qZWN0fXskUHJvamVjdElEfSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0fSAuICdtb2RpZmllZCcsCiAgICAnQ29tcGFyZSBwcm9qZWN0IG5hbWUgc2F2ZWQgaW4gREIgd2l0aCB0aGUgc3BlY2lmaWVkIGluIHRoZSB1cGRhdGUnLAopOwoKIyBjcmVhdGUgbmV3IHVzZXIKbXkgJFVzZXJMb2dpbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyktPlRlc3RVc2VyQ3JlYXRlKCk7Cm15ICRVc2VySUQgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCik7CgojIG9idGFpbiB0aGUgbGFzdCByZWdpc3RlcmVkIHBlcmlvZCBvZiB0aGUgdGVzdCB1c2VyCm15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCggVXNlcklEID0+ICRVc2VySUQgKSArIDE7CgojIGNyZWF0ZSByZWdpc3RyeSBmb3IgdGhlIG5ldyB1c2VyIGluIFRBCiRJbnNlcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgUGVyaW9kID0+ICRMYXN0UGVyaW9kTnVtYmVyLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgdXNlciB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgdGVzdCB1c2VyIHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKIyBpbnNlcnQgYW5vdGhlciBwZXJpb2QgZW50cnkgZm9yIHRoZSBzYW1lIHVzZXIKJEluc2VydCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgVXNlcklEID0+ICRVc2VySUQsCiAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIgKyAxLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgdXNlciB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgdGltZSBwZXJpb2QgZm9yIHRlc3QgdXNlciBzZXR0aW5ncyBpbnRvIGRhdGFiYXNlJywKKTsKCiRSYW5kb21OdW1iZXIgPSBpbnQgc3Vic3RyICRIZWxwZXItPkdldFJhbmRvbU51bWJlcigpLCAtMywgMzsKCiMgdXBkYXRlIHVzZXIgZGF0YQokVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICBVc2VySUQgICAgICAgID0+ICRVc2VySUQsCiAgICBEZXNjcmlwdGlvbiAgID0+ICdUZXN0IHVzZXInIC4gJFJhbmRvbU51bWJlciwKICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgIDEgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMS0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTAxLTMxJywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJhbmRvbU51bWJlciwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzEwJywKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzIwJywKICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICB9LAogICAgICAgIDIgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMi0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTEyLTMxJywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJhbmRvbU51bWJlciArIDEwLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnNScsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICcxMCcsCiAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCik7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHVwZGF0ZWQKJFNlbGYtPlRydWUoCiAgICAkVXBkYXRlLAogICAgJ1VwZGF0ZSB0ZXN0IHVzZXIgc2V0dGluZ3MnLAopOwoKIyBnZXQgdXNlciBzZXR0aW5ncwpteSAlU2luZ2xlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCggVXNlcklEID0+ICRVc2VySUQgKTsKCiMgdmVyaWZ5IHRoZSBsYXN0IG1vZGlmaWNhdGlvbgokU2VsZi0+SXMoCiAgICBpbnQgJFNpbmdsZVVzZXJEYXRhezF9e1dlZWtseUhvdXJzfSwKICAgICRSYW5kb21OdW1iZXIsCiAgICAnQ29tcGFyZSB3ZWVrbHkgaG91cnMgZm9yIHBlcmlvZCAxIHNhdmVkIGluIERCIHdpdGggdGhlIHNwZWNpZmllZCBpbiB0aGUgdXBkYXRlJywKKTsKCiRTZWxmLT5JcygKICAgIGludCAkU2luZ2xlVXNlckRhdGF7Mn17V2Vla2x5SG91cnN9LAogICAgJFJhbmRvbU51bWJlciArIDEwLAogICAgJ0NvbXBhcmUgd2Vla2x5IGhvdXJzIGZvciBwZXJpb2QgMiBzYXZlZCBpbiBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZScsCik7CgojIGdldCB1c2VyIGRhdGEKJVNpbmdsZVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KCBVc2VySUQgPT4gJFVzZXJJRCApOwoKIyBjb21wYXJlIGRhdGEgc2F2ZWQgb24gdGhlIERCIHdpdGggdGhlIGluc2VydGVkIG9uZQokU2VsZi0+SXMoCiAgICAkU2luZ2xlVXNlckRhdGF7RGVzY3JpcHRpb259LAogICAgJ1Rlc3QgdXNlcicgLiAkUmFuZG9tTnVtYmVyLAogICAgJ0NvbXBhcmUgZGVzY3JpcHRpb24gc2F2ZWQgb24gdGhlIERCIHdpdGggdGhlIHNwZWNpZmllZCBpbiB0aGUgaW5zZXJ0aW9uJywKKTsKCiMgZ2V0IGFsbCB1c2VycyBkYXRhCm15ICVBbGxVc2Vyc0RhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7CgojIHZlcmlmeSB0aGF0IHRoZSB0ZXN0IHVzZXIgaXMgaW4gdGhlIGxpc3QKJFNlbGYtPlRydWUoCiAgICAkQWxsVXNlcnNEYXRheyRVc2VySUR9e0Rlc2NyaXB0aW9ufSwKICAgICdWZXJpZnkgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgdGVzdCB1c2VyIGluIHRoZSBsaXN0JwopOwoKIyBnZXQgYWxsIHBlcmlvZHMgb2YgZGF0YSBvZiBhbGwgdXNlcnMKbXkgJUFsbFVzZXJzUGVyaW9kRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzR2V0KCk7CgojIHZlcmlmeSB0aGUgcGVyaW9kIGRhdGEgb2YgdGhlIHRlc3QgdXNlcgpteSAkQ29ycmVjdFVzZXJEYXRhID0KICAgICgKICAgICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17MX17V2Vla2x5SG91cnN9ID09ICRSYW5kb21OdW1iZXIKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e0xlYXZlRGF5c30gPT0gMTAKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e092ZXJ0aW1lfSA9PSAyMAogICAgICAgICYmICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17MX17VXNlclN0YXR1c30KICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezJ9e1dlZWtseUhvdXJzfSA9PSAkUmFuZG9tTnVtYmVyICsgMTAKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezJ9e0xlYXZlRGF5c30gPT0gNQogICAgICAgICYmICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17Mn17T3ZlcnRpbWV9ID09IDEwCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsyfXtVc2VyU3RhdHVzfQogICAgKSA/IDEgOiAwOwoKJFNlbGYtPlRydWUoCiAgICAkQ29ycmVjdFVzZXJEYXRhLAogICAgJ1ZlcmlmeSB0aGUgcGVyaW9kIGRhdGEgb2YgdGhlIHRlc3QgdXNlciBpbiB0aGUgbGlzdCcKKTsKCiMgZ2V0IGN1cnJlbnQgcGVyaW9kIG9mIHVzZXIKbXkgJVVzZXJDdXJyZW50UGVyaW9kID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgIFllYXIgID0+ICcyMDExJywKICAgIE1vbnRoID0+ICcwMScsCiAgICBEYXkgICA9PiAnMTUnLAopOwoKIyBjaGVjayB0aGUgcGVyaW9kCiRTZWxmLT5JcygKICAgICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfS0+e1BlcmlvZH0sCiAgICAxLAogICAgJ1ZlcmlmeSBjdXJyZW50IHBlcmlvZCcsCik7CgokU2VsZi0+SXMoCiAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9LAogICAgJzIwMTEtMDEtMDEnLAogICAgJ1ZlcmlmeSBzdGFydCBkYXRlIG9mIGN1cnJlbnQgcGVyaW9kJywKKTsKCiRTZWxmLT5JcygKICAgICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfS0+e0RhdGVFbmR9LAogICAgJzIwMTEtMDEtMzEnLAogICAgJ1ZlcmlmeSBlbmQgZGF0ZSBvZiBjdXJyZW50IHBlcmlvZCcsCik7CgojIGhhc2ggd2l0aCB0aGUgd29ya2luZyB1bml0cyBmb3IgSmFuLiAxNXRoLCAyMDExCm15ICVXb3JraW5nVW5pdHMgPSAoCiAgICBZZWFyICAgICAgICAgPT4gJzIwMTEnLAogICAgTW9udGggICAgICAgID0+ICcwMScsCiAgICBEYXkgICAgICAgICAgPT4gJzE1JywKICAgIExlYXZlRGF5ICAgICA9PiAwLAogICAgU2ljayAgICAgICAgID0+IDAsCiAgICBPdmVydGltZSAgICAgPT4gMCwKICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgewogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdNeSBjb21tZW50JywKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICc3OjAwJywKICAgICAgICAgICAgRW5kVGltZSAgID0+ICcxMDowMCcsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAzLjAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbkRhdGF7SUR9LAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJ015IGNvbW1lbnQnLAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJzEzOjAwJywKICAgICAgICAgICAgRW5kVGltZSAgID0+ICcxNTowMCcsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAyLjAsCiAgICAgICAgfSwKICAgIF0sCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKKTsKCiMgaW5zZXJ0IHdvcmtpbmcgdW5pdHMgaW4gdGhlIERCCiRJbnNlcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCglV29ya2luZ1VuaXRzKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIHdvcmtpbmcgdW5pdHMgd2VyZSBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkSW5zZXJ0LAogICAgJ0luc2VydCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIgaW50byBkYXRhYmFzZScsCik7CgojIGdldCBhbGwgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkKbXkgJVdvcmtpbmdVbml0c0NoZWNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIHZlcmlmeSB0aGF0IEphbiAxNXRoLCAyMDExIGlzIG5vdCBpbiB0aGUgbGlzdCBvZiBkYXlzIHdpdGhvdXQgZW50cnkKJFNlbGYtPkZhbHNlKAogICAgZGVmaW5lZCAkV29ya2luZ1VuaXRzQ2hlY2t7J0luY29tcGxldGUnfXsnMjAxMSd9eycwMSd9eycxNSd9LAogICAgJ1ZlcmlmeSBjb21wbGV0aW9uIG9mIHdvcmtpbmcgdW5pdHMnCik7CgojIGdldCB3b3JraW5nIHVuaXRzIG9mIGFsbCB1c2VycwpteSAlRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclJlcG9ydGluZygKICAgIFllYXIgID0+ICcyMDExJywKICAgIE1vbnRoID0+ICcwMScsCiAgICBEYXkgICA9PiAnMTUnLAopOwoKIyB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB3b3JraW5nIHVuaXRzIGZvciB0aGUgdGVzdCB1c2VyCiRTZWxmLT5JcygKICAgICREYXRheyRVc2VySUR9e1dvcmtpbmdIb3Vyc1RvdGFsfSwKICAgIDUsCiAgICAnVmVyaWZ5IG51bWJlciBvZiB3b3JraW5nIGhvdXJzIG9mIHRoZSB0ZXN0IHVzZXInLAopOwoKIyBnZXQgcHJvamVjdHMgaW4gd2hpY2ggdGhlIHRlc3QgdXNlciBoYXMgd29ya2VkIG9uCm15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKbXkgJFRlc3RQcm9qZWN0RXhpc3RlbmNlOwoKSUQ6CmZvciBteSAkSUQgKEBMYXN0UHJvamVjdHMpIHsKICAgIG5leHQgSUQgaWYgJElEICE9ICRQcm9qZWN0SUQ7CiAgICAkVGVzdFByb2plY3RFeGlzdGVuY2UgPSAxOwp9CgojIHZlcmlmeSB0aGF0IGV4aXN0ZW5jZSBvZiB0aGUgdGVzdCBwcm9qZWN0IGludG8gdGhlIHVzZXIncyBsaXN0CiRTZWxmLT5UcnVlKAogICAgJFRlc3RQcm9qZWN0RXhpc3RlbmNlLAogICAgJ1ZlcmlmeSB0aGF0IGV4aXN0ZW5jZSBvZiB0aGUgdGVzdCBwcm9qZWN0IGludG8gdGhlIHVzZXJcJ3MgbGlzdCcsCik7CgojIGdldCBwcm9qZWN0IC0gYWN0aW9uIHdvcmtpbmcgaG91cnMKbXkgJVByb2plY3RBY3Rpb25Xb3JraW5nSG91cnMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICBZZWFyICAgPT4gMjAxMSwKICAgIE1vbnRoICA9PiAxLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIHZlcmlmeSB0b3RhbCByZXBvcnRlZCBob3VycyBmb3IgdGhlIHRlc3QgYWN0aW9uICh0YXNrKSBhbmQgdGVzdCBwcm9qZWN0CiRTZWxmLT5JcygKICAgICRQcm9qZWN0QWN0aW9uV29ya2luZ0hvdXJzeyRQcm9qZWN0SUR9e0FjdGlvbnN9eyAkQWN0aW9uRGF0YXtJRH0gfXtUb3RhbH0sCiAgICAnNScsCiAgICAnVmVyaWZ5IHRvdGFsIHJlcG9ydGVkIGhvdXJzIGZvciB0aGUgdGVzdCBhY3Rpb24gKHRhc2spIGFuZCB0ZXN0IHByb2plY3QnLAopOwoKIyBnZXQgcHJvamVjdCB3b3JraW5nIHVuaXRzCm15IEBQcm9qZWN0SGlzdG9yeUFycmF5ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0SGlzdG9yeSggUHJvamVjdElEID0+ICRQcm9qZWN0SUQgKTsKCm15ICRUb3RhbEhvdXJzOwoKIyBnZXQgc3VtIG9mIGFsbCB3b3JraW5nIHVuaXQgZm9yIHRoZSB0ZXN0IHByb2plY3QKZm9yIG15ICRQcm9qZWN0IChAUHJvamVjdEhpc3RvcnlBcnJheSkgewogICAgJFRvdGFsSG91cnMgKz0gJFByb2plY3QtPntQZXJpb2R9Owp9CgpteSAkVGVzdFByb2plY3RUb3RhbEhvdXJzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0VG90YWxIb3VycygKICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAopOwoKIyB2ZXJpZnkgdG90YWwgd29ya2luZyB1bml0cyBmb3IgdGhlIHRlc3QgcHJvamVjdAokU2VsZi0+SXMoCiAgICBpbnQgJFRvdGFsSG91cnMsCiAgICBpbnQgJFRlc3RQcm9qZWN0VG90YWxIb3VycywKICAgICdWZXJpZnkgdG90YWwgaG91cnMgb2YgdGVzdCBwcm9qZWN0JywKKTsKCiMgZGVsZXRlIHdvcmtpbmcgdW5pdHMgZm9yIEphbi4gMTV0aCwgMjAxMQpteSAkRGVsZXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICBZZWFyICAgPT4gJzIwMTEnLAogICAgTW9udGggID0+ICcxJywKICAgIERheSAgICA9PiAnMTUnLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIHZlcmlmeSB0aGF0IHRoZSB3b3JraW5nIHVuaXRzIHdlcmUgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQKJFNlbGYtPlRydWUoCiAgICAkRGVsZXRlLAogICAgJ0RlbGV0ZSB3b3JraW5nIHVuaXRzIGZvciB0ZXN0JywKKTsKCiMgZ2V0IHdvcmtpbmcgdW5pdHMgZm9yIEphbi4gMTV0aCwgMjAxMQpteSAlV29ya2luZ1VuaXRzRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgWWVhciAgID0+ICcyMDExJywKICAgIE1vbnRoICA9PiAnMScsCiAgICBEYXkgICAgPT4gJzE1JywKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgbm9uZXhpc3RlbmNlIG9mIHRoZSBkZWxldGVkIHdvcmtpbmcgdW5pdHMKJFNlbGYtPklzKAogICAgJFdvcmtpbmdVbml0c0RhdGF7VG90YWx9LAogICAgJzAnLAogICAgJ1ZlcmlmeSBub25leGlzdGVuY2Ugb2YgdGhlIGRlbGV0ZWQgd29ya2luZyB1bml0cycsCik7CgojIHNldCB0byBpbnZhbGlkIGFsbCByZWdpc3RyaWVzIHVzZWQgZm9yIHRoZSB0ZXN0cwokVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzVXBkYXRlKAogICAgQWN0aW9uSUQgICAgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgIEFjdGlvbiAgICAgICA9PiAkTmV3QWN0aW9uRGF0YXtBY3Rpb259IC4gJ21vZGlmaWVkJywKICAgIEFjdGlvblN0YXR1cyA9PiAwLAopOwoKJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NVcGRhdGUoCiAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFByb2plY3RJRCwKICAgIFByb2plY3QgICAgICAgICAgICA9PiAkTmV3UHJvamVjdERhdGF7UHJvamVjdH0gLiAnbW9kaWZpZWQnLAogICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdUZXN0JywKICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAwLAopOwoKJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICBVc2VySUQgICAgICAgID0+ICRVc2VySUQsCiAgICBEZXNjcmlwdGlvbiAgID0+ICdUZXN0IHVzZXInLAogICAgQ3JlYXRlUHJvamVjdCA9PiAwLAogICAgU2hvd092ZXJ0aW1lICA9PiAwLAogICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICcyMDExLTAxLTAxJywKICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gJzIwMTEtMDEtMzEnLAogICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnNTAnLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMTAnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMjAnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgMiA9PiB7CiAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICcyMDExLTAyLTAxJywKICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gJzIwMTEtMDItMjgnLAogICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzAnLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnNScsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICcxMCcsCiAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDAsCiAgICAgICAgfSwKICAgIH0sCik7CgojIGNsZWFudXAgaXMgZG9uZSBieSBSZXN0b3JlRGF0YWJhc2UuCgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyB1c2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgZGlzYWJsZSBNYXNzRW50cnkgZmVhdHVyZXMKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlcicsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckN1cnJlbnQgID0gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhDdXJyZW50ID0gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH07CiAgICAgICAgbXkgJERheUN1cnJlbnQgICA9ICREYXRlVGltZVNldHRpbmdzLT57RGF5fTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhckN1cnJlbnQtJE1vbnRoQ3VycmVudC0kRGF5Q3VycmVudCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyQ3VycmVudC0kTW9udGhDdXJyZW50LSREYXlDdXJyZW50IiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQiKTsKCiAgICAgICAgIyBhZGQgYWRkaXRpb25hbCByb3cKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEBpZD0nTW9yZUlucHV0RmllbGRzJ11bXEB0eXBlPSdidXR0b24nXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgY2hlY2sgdGltZSBhY2NvdW50aW5nIGVkaXQgZmllbGQgSURzLCBmaXJzdCBhbmQgYWRkZWQgcm93CiAgICAgICAgZm9yIG15ICRSb3cgKCAxLCA5ICkgewogICAgICAgICAgICBmb3IgbXkgJEVkaXRGaWVsZElEICgKICAgICAgICAgICAgICAgIHF3KFByb2plY3RJRCBBY3Rpb25JRCBSZW1hcmsgU3RhcnRUaW1lIEVuZFRpbWUgUGVyaW9kKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRFZGl0RmllbGRJRCRSb3ciLCAnY3NzJyApOwogICAgICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IgbXkgJEVkaXRSZXN0SUQgKAogICAgICAgICAgICBxdyhNb250aCBEYXkgWWVhciBEYXlEYXRlcGlja2VySWNvbiBOYXZpZ2F0aW9uU2VsZWN0IEluY29tcGxldGVXb3JraW5nRGF5c0xpc3QgTGVhdmVEYXkgU2ljayBPdmVydGltZSkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkRWRpdFJlc3RJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgZWRpdCB0aW1lIGFjY291bnRpbmcgZm9yIHRlc3QgY3JlYXRlZCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjUHJvamVjdElEMScpLnZhbCgnJFByb2plY3RJRCcpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJyNBY3Rpb25JRDEnKS52YWwoJyRBY3Rpb25JRCcpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7Iik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUmVtYXJrMSIsICAgICdjc3MnICktPnNlbmRfa2V5cygnU2VsZW5pdW0gdGVzdCByZW1hcmsnKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdGFydFRpbWUxIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCcxMDowMCcpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0VuZFRpbWUxIiwgICAnY3NzJyApLT5zZW5kX2tleXMoICcxNjowMCcsICJcdCIgKTsKCiAgICAgICAgIyBzdWJtaXQgd29yayBhY2NvdW50aW5nIGVkaXQgdGltZSByZWNvcmQKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgdmVyaWZ5IHRoYXQgcGVyaW9kIGNhbGN1bGF0ZSBjb3JyZWN0IHRpbWUKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1BlcmlvZDEiLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJzYuMDAnLAogICAgICAgICAgICAiUGVyaW9kIHRpbWUgY29ycmVjdGx5IGNhbGN1bGF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgdmVyaWZ5IHN1Ym1pdCBtZXNzYWdlCiAgICAgICAgbXkgJFN1Ym1pdE1lc3NhZ2UgPSAnU3VjY2Vzc2Z1bCBpbnNlcnQhJzsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRTdWJtaXRNZXNzYWdlICkgPiAtMSwKICAgICAgICAgICAgIiRTdWJtaXRNZXNzYWdlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBEQiBvYmplY3QKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBnZXQgREIgY2xlYW4tdXAgZGF0YQogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyB1c2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIGdldCB0ZXN0IHVzZXIgSUQKICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgaW5zZXJ0IHRlc3QgdXNlciBpbnRvIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAnMScsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyQ3VycmVudCAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEN1cnJlbnQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofTsKICAgICAgICBteSAkRGF5Q3VycmVudCAgID0gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCggRGF5cyA9PiAxICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NFbmQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckVuZCAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEVuZCA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57TW9udGh9OwogICAgICAgIG15ICREYXlFbmQgICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57RGF5fTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhckN1cnJlbnQtJE1vbnRoQ3VycmVudC0kRGF5Q3VycmVudCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7Iik7CgogICAgICAgICMgY2hlY2sgcGFnZSBsYXlvdXQKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyB2ZXJpZnkgQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3IHZhbHVlcwogICAgICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwogICAgICAgIG15IEBUZXN0ID0gKAogICAgICAgICAgICAkUHJvamVjdFRpdGxlLCAkQWN0aW9uVGl0bGUsICdUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3JywgJ09uIG92ZXJ0aW1lIGxlYXZlJywgJ092ZXJ0aW1lIChIb3VycyknLAogICAgICAgICAgICAnVmFjYXRpb24gKERheXMpJywgJ1NpY2sgTGVhdmUgKERheXMpJywgQFdlZWtkYXlBcnJheQogICAgICAgICk7CgogICAgICAgIGZvciBteSAkQ2hlY2sgKEBUZXN0KSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGVjayApID4gLTEsCiAgICAgICAgICAgICAgICAiJENoZWNrIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBzZXQgTWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzIFN5c0NvbmZpZyBvbiA1MCBkYXlzIGZvciB0ZXN0IHB1cnBvc2UKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cycsCiAgICAgICAgICAgIFZhbHVlID0+IDUwLAogICAgICAgICk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBEYXlzID0+IDQwICk7CiAgICAgICAgbXkgJFllYXJTdGFydCA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICBGb3JtYXQgPT4gJyVZJywKICAgICAgICApOwogICAgICAgIG15ICRNb250aFN0YXJ0ID0gJERhdGVUaW1lT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgIEZvcm1hdCA9PiAnJW0nLAogICAgICAgICk7CiAgICAgICAgbXkgJERheVN0YXJ0ID0gJERhdGVUaW1lT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgIEZvcm1hdCA9PiAnJWQnLAogICAgICAgICk7CgogICAgICAgICREYXRlVGltZU9iamVjdC0+QWRkKAogICAgICAgICAgICBTZWNvbmRzID0+IDEKICAgICAgICApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgbXkgJFllYXJDdXJyZW50ICA9ICREYXRlVGltZVNldHRpbmdzLT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoQ3VycmVudCA9ICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9OwogICAgICAgIG15ICREYXlDdXJyZW50ICAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX07CgogICAgICAgICREYXRlVGltZVNldHRpbmdzID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgJERhdGVUaW1lU2V0dGluZ3MtPkFkZCgKICAgICAgICAgICAgRGF5cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NFbmQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyRW5kICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoRW5kID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntNb250aH07CiAgICAgICAgbXkgJERheUVuZCAgID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntEYXl9OwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyU3RhcnQtJE1vbnRoU3RhcnQtJERheVN0YXJ0IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJFbmQtJE1vbnRoRW5kLSREYXlFbmQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgYWRkIHdvcmtpbmcgdW5pdHMgZm9yIHRlc3QgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgICAgICAgPT4gJFllYXJDdXJyZW50LAogICAgICAgICAgICBNb250aCAgICAgICAgPT4gJE1vbnRoQ3VycmVudCwKICAgICAgICAgICAgRGF5ICAgICAgICAgID0+ICREYXlDdXJyZW50LAogICAgICAgICAgICBMZWF2ZURheSAgICAgPT4gMSwKICAgICAgICAgICAgU2ljayAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAxLAogICAgICAgICAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTZWxlbml1bSB0ZXN0IHJlbWFyaycsCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICc1JywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nIik7CgogICAgICAgICMgc2VsZWN0IG1vbnRoIGFuZCB5ZWFyIHRoYXQgYXJlIHVzZWQgZm9yIHRlc3RpbmcKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNNb250aCBvcHRpb25bdmFsdWU9JyRNb250aFN0YXJ0J10iLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjWWVhciBvcHRpb25bdmFsdWU9JyRZZWFyU3RhcnQnXSIsICAgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hdmlnYXRpb25TZWxlY3QiLCAgICAgICAgICAgICAgICAgICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayBwYWdlIGxheW91dAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIHZlcmlmeSB0aGVyZSBpcyBsaW5rIHRvIHRlc3QgdXNlciByZXBvcnRzCiAgICAgICAgbXkgJFVzZXJSZXBvcnRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIkVGVzdFVzZXJMb2dpbiAkVGVzdFVzZXJMb2dpbiIsICdsaW5rX3RleHQnICk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgbGluayB0byB0ZXN0IHVzZXIgcHJvamVjdCByZXBvcnRzCiAgICAgICAgbXkgJFByb2plY3RSZXBvcnRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIkUHJvamVjdFRpdGxlIiwgJ2xpbmtfdGV4dCcgKTsKICAgICAgICAkUHJvamVjdFJlcG9ydEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAkUHJvamVjdFJlcG9ydEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwoKICAgICAgICAjIHNlbGVjdCB0ZXN0IGNyZWF0ZWQgcHJvamVjdAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAkUHJvamVjdFRpdGxlLCAnbGlua190ZXh0JyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgY2hlY2sgcGFnZSBsYXlvdXQKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgdGVzdCBjcmVhdGVkIGFjdGlvbgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEFjdGlvblRpdGxlICkgPiAtMSwKICAgICAgICAgICAgIiRBY3Rpb25UaXRsZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFub3RoZXIgdGVzdCB1c2VyCiAgICAgICAgbXkgJFRlc3RVc2VyID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoKTsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nIik7CgogICAgICAgICMgY2hlY2sgdGltZSBhY2NvdW50IHNldHRpbmcgcGFnZSBJRHMKICAgICAgICBmb3IgbXkgJFNldHRpbmdQYWdlICgKICAgICAgICAgICAgcXcoCiAgICAgICAgICAgIE5ld1VzZXJJRAogICAgICAgICAgICBDb3JlX1VJX0F1dG9nZW5lcmF0ZWRJRF8wCiAgICAgICAgICAgIENvcmVfVUlfQXV0b2dlbmVyYXRlZElEXzEKICAgICAgICAgICAgQ29yZV9VSV9BdXRvZ2VuZXJhdGVkSURfMgogICAgICAgICAgICAuRmlsdGVyQm94CiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJFNlbGVjdG9yID0gKCAkU2V0dGluZ1BhZ2UgPX4gbS9eW2EtekEtWjAtOV0vID8gJyMnIDogJycgKSAuICRTZXR0aW5nUGFnZTsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJFNlbGVjdG9yLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGFkZCBwcm9qZWN0IGFuZCBhZGQgdGFzawogICAgICAgIGZvciBteSAkU2V0dGluZ0FkZCAoICdBZGQnLCAnQWRkIHRhc2snLCApIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nJFNldHRpbmdBZGQnXVtcQHR5cGU9J3N1Ym1pdCddIik7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgZm9yIGNoZWNrICduZXcgdXNlcicgaW5wdXQgYXV0b2NvbXBsZXRlCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICdpbnB1dFtpZD0iTmV3VXNlcklEX1NlYXJjaCJdJywgJ2NzcycgKTsKCiAgICAgICAgIyBjbGljayBvbiAnQWRkIHByb2plY3QnCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J0FkZCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIGNoZWNrIHByb2plY3QgcGFnZSBJRHMKICAgICAgICBmb3IgbXkgJFByb2plY3RQYWdlSUQgKHF3KFByb2plY3QgUHJvamVjdERlc2NyaXB0aW9uIFByb2plY3RTdGF0dXMpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkUHJvamVjdFBhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgICAgICAgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdERlc2NyaXB0aW9uID0gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCc7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUHJvamVjdCIsICAgICAgICAgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCRQcm9qZWN0VGl0bGUpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Byb2plY3REZXNjcmlwdGlvbiIsICdjc3MnICktPnNlbmRfa2V5cygkUHJvamVjdERlc2NyaXB0aW9uKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgdmVyaWZ5IGNyZWF0ZWQgdGVzdCBwcm9qZWN0CiAgICAgICAgZm9yIG15ICRQcm9qZWN0VmVyaWZ5ICggJFByb2plY3RUaXRsZSwgJFByb2plY3REZXNjcmlwdGlvbiApIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFByb2plY3RWZXJpZnkgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRQcm9qZWN0VmVyaWZ5IGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2xpY2sgb24gJ0FkZCB0YXNrJwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQgdGFzayddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIGNoZWNrIHRhc2sgcGFnZSBJRHMKICAgICAgICBmb3IgbXkgJFRhc2tQYWdlSUQgKHF3KFRhc2sgVGFza1N0YXR1cykpIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkVGFza1BhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHRlc3QgdGFzawogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdUYXNrICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Rhc2siLCAnY3NzJyApLT5zZW5kX2tleXMoJEFjdGlvblRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgdmVyaWZ5IGNyZWF0ZWQgdGVzdCB0YXNrCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQWN0aW9uVGl0bGUgKSA+IC0xLAogICAgICAgICAgICAiJEFjdGlvblRpdGxlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIFRoaXMgY2hhbmdlIHRyaWdnZXJlZCBhIHBhZ2UgbG9hZCBvbiBhIG5ldyBwYWdlLgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI05ld1VzZXJJRCcpLnZhbCgnJFRlc3RVc2VySUQnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoQ29yZSkgPT0gIm9iamVjdCIgJiYgdHlwZW9mKENvcmUuQXBwKSA9PSAib2JqZWN0IiAmJiBDb3JlLkFwcC5QYWdlTG9hZENvbXBsZXRlJwogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgZWRpdCB1c2VyIHBhZ2UKICAgICAgICBmb3IgbXkgJEVkaXRVc2VyUGFnZUlEICgKICAgICAgICAgICAgcXcoRGVzY3JpcHRpb24gU2hvd092ZXJ0aW1lIENyZWF0ZVByb2plY3QgQ2FsZW5kYXIgRGF0ZVN0YXJ0LTEgRGF0ZUVuZC0xIExlYXZlRGF5cy0xCiAgICAgICAgICAgIFdlZWtseUhvdXJzLTEgT3ZlcnRpbWUtMSBQZXJpb2RTdGF0dXMtMSkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkRWRpdFVzZXJQYWdlSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGNsaWNrICdBZGQgdGltZSBwZXJpb2QnCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J0FkZCB0aW1lIHBlcmlvZCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIGNoZWNrIGZvciBuZXcgYWRkZWQgdGltZSBwZXJpb2QgZmllbGRzCiAgICAgICAgZm9yIG15ICROZXdUaW1lUGVyaW9kSUQgKHF3KERhdGVTdGFydC0yIERhdGVFbmQtMiBMZWF2ZURheXMtMiBXZWVrbHlIb3Vycy0yIE92ZXJ0aW1lLTIgUGVyaW9kU3RhdHVzLTIpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkTmV3VGltZVBlcmlvZElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBlZGl0IHVzZXIgc2V0dGluZwogICAgICAgIG15ICRVc2VyRGVzY3JpcHRpb24gPSAnU2VsZW5pdW0gdGVzdCB1c2VyIHNldHRpbmcnOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0Rlc2NyaXB0aW9uIiwgICAnY3NzJyApLT5jbGVhcigpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0Rlc2NyaXB0aW9uIiwgICAnY3NzJyApLT5zZW5kX2tleXMoJFVzZXJEZXNjcmlwdGlvbik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU2hvd092ZXJ0aW1lIiwgICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDcmVhdGVQcm9qZWN0IiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyB2ZXJpZnkgdGVzdCB1c2VyIHNldHRpbmcKICAgICAgICBteSAkU2V0dGluZ1VzZXIgPSAiJFRlc3RVc2VyICRUZXN0VXNlciAoJFRlc3RVc2VyKSI7CiAgICAgICAgZm9yIG15ICRTZXR0aW5nVXNlclZlcmlmeSAoICRTZXR0aW5nVXNlciwgJFVzZXJEZXNjcmlwdGlvbiApIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFNldHRpbmdVc2VyVmVyaWZ5ICkgPiAtMSwKICAgICAgICAgICAgICAgICIkU2V0dGluZ1VzZXJWZXJpZnkgaXMgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgbmVlZGVkIG9iamVjdAogICAgICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICAgICAjIHNldCBNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMgU3lzQ29uZmlnIG9uIDUwIGRheXMgZm9yIHRlc3QgcHVycG9zZQogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4gNTAsCiAgICAgICAgKTsKCiAgICAgICAgIyB1c2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIGdldCB0ZXN0IHVzZXIgSUQKICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgaW5zZXJ0IHRlc3QgdXNlciBpbnRvIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAnMScsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgICAgICREYXRlVGltZU9iamVjdC0+U3VidHJhY3QoIERheXMgPT4gNDAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0ID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKICAgICAgICBteSAkWWVhclN0YXJ0ICAgICAgICAgICAgID0gJERhdGVUaW1lU2V0dGluZ3NTdGFydC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aFN0YXJ0ICAgICAgICAgICAgPSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0LT57TW9udGh9OwogICAgICAgIG15ICREYXlTdGFydCAgICAgICAgICAgICAgPSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0LT57RGF5fTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5BZGQoCiAgICAgICAgICAgIERheXMgICAgPT4gNDAsCiAgICAgICAgICAgIFNlY29uZHMgPT4gMQogICAgICAgICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckN1cnJlbnQgID0gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhDdXJyZW50ID0gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH07CiAgICAgICAgbXkgJERheUN1cnJlbnQgICA9ICREYXRlVGltZVNldHRpbmdzLT57RGF5fTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggU2Vjb25kcyA9PiAxICk7CiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5BZGQoIERheXMgPT4gMSApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzRW5kID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgbXkgJFllYXJFbmQgID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhFbmQgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e01vbnRofTsKICAgICAgICBteSAkRGF5RW5kICAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e0RheX07CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcgb2YgdGVzdCBjcmVhdGVkIHdvcmsgdW5pdCBkYXkKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KAogICAgICAgICAgICAiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXc7WWVhcj0kWWVhckN1cnJlbnQ7TW9udGg9JE1vbnRoQ3VycmVudDtEYXk9JERheUN1cnJlbnQ7VXNlcklEPSRUZXN0VXNlcklEIgogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgcGFnZSBsYXlvdXQKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyBjaGVjayB0aW1lIGFjY291bnRpbmcgdmlldyBwYWdlIElEcwogICAgICAgIGZvciBteSAkSUQgKHF3KE1vbnRoIERheSBZZWFyIERheURhdGVwaWNrZXJJY29uIE5hdmlnYXRpb25TZWxlY3QgTGVhdmVEYXkgU2ljayBPdmVydGltZSkpCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgZm9yIHRlc3QgcHJvamVjdCBhbmQgYWN0aW9uCiAgICAgICAgZm9yIG15ICRDaGVjayAoICRQcm9qZWN0VGl0bGUsICRBY3Rpb25UaXRsZSApIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJENoZWNrICkgPiAtMSwKICAgICAgICAgICAgICAgICIkQ2hlY2sgaXMgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyB1c2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIGdldCB0ZXN0IHVzZXIgSUQKICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgaW5zZXJ0IHRlc3QgdXNlciBpbnRvIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAnMScsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgICAgICREYXRlVGltZU9iamVjdC0+U3VidHJhY3QoIERheXMgPT4gNDAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0ID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKICAgICAgICBteSAkWWVhclN0YXJ0ICAgICAgICAgICAgID0gJERhdGVUaW1lU2V0dGluZ3NTdGFydC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aFN0YXJ0ICAgICAgICAgICAgPSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0LT57TW9udGh9OwogICAgICAgIG15ICREYXlTdGFydCAgICAgICAgICAgICAgPSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0LT57RGF5fTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5BZGQoCiAgICAgICAgICAgIERheXMgICAgPT4gNDAsCiAgICAgICAgICAgIFNlY29uZHMgPT4gMQogICAgICAgICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckN1cnJlbnQgID0gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhDdXJyZW50ID0gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH07CiAgICAgICAgbXkgJERheUN1cnJlbnQgICA9ICREYXRlVGltZVNldHRpbmdzLT57RGF5fTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggU2Vjb25kcyA9PiAxICk7CiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5BZGQoIERheXMgPT4gMSApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzRW5kID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgbXkgJFllYXJFbmQgID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhFbmQgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e01vbnRofTsKICAgICAgICBteSAkRGF5RW5kICAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e0RheX07CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIHZlcmlmeSB0aGVyZSBpcyBub3RpZmljYXRpb24gbWVzc2FnZQogICAgICAgIG15ICROb3RpZmljYXRpb25NZXNzYWdlID0gJ1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISc7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkTm90aWZpY2F0aW9uTWVzc2FnZSApID4gLTEsCiAgICAgICAgICAgICIkTm90aWZpY2F0aW9uTWVzc2FnZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBEYXlzID0+IDQwICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NTdGFydCA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CiAgICAgICAgbXkgJFllYXJTdGFydCAgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhTdGFydCAgICAgICAgICAgID0gJERhdGVUaW1lU2V0dGluZ3NTdGFydC0+e01vbnRofTsKICAgICAgICBteSAkRGF5U3RhcnQgICAgICAgICAgICAgID0gJERhdGVUaW1lU2V0dGluZ3NTdGFydC0+e0RheX07CgogICAgICAgICREYXRlVGltZU9iamVjdC0+QWRkKAogICAgICAgICAgICBEYXlzICAgID0+IDQwLAogICAgICAgICAgICBTZWNvbmRzID0+IDEKICAgICAgICApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgbXkgJFllYXJDdXJyZW50ICA9ICREYXRlVGltZVNldHRpbmdzLT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoQ3VycmVudCA9ICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9OwogICAgICAgIG15ICREYXlDdXJyZW50ICAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX07CgogICAgICAgICREYXRlVGltZU9iamVjdC0+U3VidHJhY3QoIFNlY29uZHMgPT4gMSApOwogICAgICAgICREYXRlVGltZU9iamVjdC0+QWRkKCBEYXlzID0+IDEgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5nc0VuZCA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyRW5kICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoRW5kID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntNb250aH07CiAgICAgICAgbXkgJERheUVuZCAgID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntEYXl9OwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyU3RhcnQtJE1vbnRoU3RhcnQtJERheVN0YXJ0IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJFbmQtJE1vbnRoRW5kLSREYXlFbmQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgYWRkIHdvcmtpbmcgdW5pdHMgZm9yIHRlc3QgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgICAgICAgPT4gJFllYXJDdXJyZW50LAogICAgICAgICAgICBNb250aCAgICAgICAgPT4gJE1vbnRoQ3VycmVudCwKICAgICAgICAgICAgRGF5ICAgICAgICAgID0+ICREYXlDdXJyZW50LAogICAgICAgICAgICBMZWF2ZURheSAgICAgPT4gMSwKICAgICAgICAgICAgU2ljayAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAxLAogICAgICAgICAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTZWxlbml1bSB0ZXN0IHJlbWFyaycsCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICc1JywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgdG9vbCBiYXIgZm9yIGluY29tcGxldGUgZGF5cwogICAgICAgIG15ICRUb29sQmFySW5jb21wbGV0ZURheXMgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAdGl0bGUsIFwnSW5jb21wbGV0ZSB3b3JraW5nIGRheXM6JyldIik7CiAgICAgICAgJFRvb2xCYXJJbmNvbXBsZXRlRGF5cy0+aXNfZW5hYmxlZCgpOwogICAgICAgICRUb29sQmFySW5jb21wbGV0ZURheXMtPmlzX2Rpc3BsYXllZCgpOwoKICAgICAgICAjIGdldCBEQiBvYmplY3QKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBnZXQgREIgY2xlYW4tdXAgZGF0YQogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBUaW1lQWNjb3VudGluZy4KICovClRpbWVBY2NvdW50aW5nLkFnZW50ID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgIENvcmUuVUkuVGFibGUuSW5pdFRhYmxlRmlsdGVyKCQoJy5GaWx0ZXJCb3gnKSwgJCgnLkRhdGFUYWJsZScpKTsKCiAgICAgICAgVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLk1hc3NFbnRyeUluaXQoKTsKCiAgICAgICAgJCgnI05ld1VzZXJJRCcpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCdmb3JtJykuc3VibWl0KCk7CiAgICAgICAgfSk7CgogICAgICAgICQoJyNBZGRQZXJpb2QnKS5vZmYoJ2NsaWNrJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciAkRm9ybSA9ICQodGhpcykuY2xvc2VzdCgnZm9ybScpOwogICAgICAgICAgICAkKCdpbnB1dFtuYW1lPSJBZGRQZXJpb2QiXScsICRGb3JtKS52YWwoMSk7CiAgICAgICAgfSk7CgogICAgICAgICQoJyNTdWJtaXRVc2VyRGF0YScpLm9mZignY2xpY2snKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyICRGb3JtID0gJCh0aGlzKS5jbG9zZXN0KCdmb3JtJyk7CiAgICAgICAgICAgICQoJ2lucHV0W25hbWU9IlN1Ym1pdFVzZXJEYXRhIl0nLCAkRm9ybSkudmFsKDEpOwogICAgICAgIH0pOwoKICAgICAgICAkKCcjTmF2aWdhdGlvblNlbGVjdCcpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgJCgnI0RhdGVTZWxlY3Rpb25Gb3JtJykuc3VibWl0KCk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgJCgnI0luY29tcGxldGVXb3JraW5nRGF5c0xpc3QnKS5vZmYoJ2NoYW5nZS5JbmNvbXBsZXRlV29ya2luZ0RheXMnKS5vbignY2hhbmdlLkluY29tcGxldGVXb3JraW5nRGF5cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIERhdGUgPSAkKHRoaXMpLnZhbCgpLnNwbGl0KCctJyk7CiAgICAgICAgICAgIGlmIChEYXRlWzBdICYmIERhdGVbMV0gJiYgRGF0ZVsyXSkgewogICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArICJBY3Rpb249IiArIENvcmUuQ29uZmlnLkdldCgnQWN0aW9uJykgKyAiO1llYXI9IiArIERhdGVbMF0gKyAiO01vbnRoPSIgKyBEYXRlWzFdICsgIjtEYXk9IiArIERhdGVbMl07CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLkJpbmRDb25maXJtYXRpb25EaWFsb2coewogICAgICAgICAgICBFbGVtZW50SUQ6ICAgICAgICAgICAgICAgICAgJ0RlbGV0ZVRpbWVBY2NvdW50aW5nRW50cnknLAogICAgICAgICAgICBFbGVtZW50U2VsZWN0b3I6ICAgICAgICAgICAgJyNEZWxldGVUaW1lQWNjb3VudGluZ0VudHJ5JywKICAgICAgICAgICAgRGlhbG9nQ29udGVudFF1ZXJ5U3RyaW5nOiAgICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7RGVsZXRlRGlhbG9nPTE7WWVhcj0nICsgQ29yZS5Db25maWcuR2V0KCdZZWFyJykgKyAnO01vbnRoPScgKyBDb3JlLkNvbmZpZy5HZXQoJ01vbnRoJykgKyAnO0RheT0nICsgQ29yZS5Db25maWcuR2V0KCdEYXknKSwKICAgICAgICAgICAgQ29uZmlybWVkQWN0aW9uUXVlcnlTdHJpbmc6ICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7U3ViYWN0aW9uPURlbGV0ZTtZZWFyPScgKyBDb3JlLkNvbmZpZy5HZXQoJ1llYXInKSArICc7TW9udGg9JyArIENvcmUuQ29uZmlnLkdldCgnTW9udGgnKSArICc7RGF5PScgKyBDb3JlLkNvbmZpZy5HZXQoJ0RheScpLAogICAgICAgICAgICBEaWFsb2dUaXRsZTogICAgICAgICAgICAgICAgQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoIkRlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnkiKSwKICAgICAgICAgICAgVHJhbnNsYXRlZFRleHQ6ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFllczogQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ1llcycpLAogICAgICAgICAgICAgICAgTm86ICBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnTm8nKQogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIHNob3cgdGhlIGNvbmZpcm1hdGlvbiBkaWFsb2cgdG8gY29uZmlybSB0aGUgYWN0aW9uCiAgICAgICAgaWYgKENvcmUuQ29uZmlnLkdldCgnQmxvY2tOYW1lJykpIHsKICAgICAgICAgICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coCiAgICAgICAgICAgICAgICBDb3JlLkNvbmZpZy5HZXQoJ0Jsb2NrTmFtZScpLAogICAgICAgICAgICAgICAgQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoIkNvbmZpcm0gaW5zZXJ0IiksCiAgICAgICAgICAgICAgICAnMjAlJywKICAgICAgICAgICAgICAgICdDZW50ZXInLAogICAgICAgICAgICAgICAgdHJ1ZSwKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsOiBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnWWVzJyksCiAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzOiAiUHJpbWFyeSIsCiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGU6ICJDbG9zZSIsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsOiBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnTm8nKSwKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZmluZSB0aGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgJ05vJyBidXR0b24gaXMgcHJlc3NlZAogICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjogZnVuY3Rpb24oKXsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXNhYmxlIFllcyBhbmQgTm8gYnV0dG9ucyB0byBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pdHMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2Rpdi5EaWFsb2c6dmlzaWJsZSBkaXYuQ29udGVudEZvb3RlciBidXR0b24nKS5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIHRoZSBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBzYXZlZCBlbnRyeSBhZnRlciBwcmVzc2luZyB0aGUgTm8gYnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gQ29yZS5Db25maWcuR2V0KCdCYXNlbGluaycpICsgJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDtTdWJhY3Rpb249RGVsZXRlO1llYXI9JyArICBDb3JlLkNvbmZpZy5HZXQoJ1llYXInKSArICc7TW9udGg9JyArICBDb3JlLkNvbmZpZy5HZXQoJ01vbnRoJykgKyAnO0RheT0nICsgIENvcmUuQ29uZmlnLkdldCgnRGF5Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwoKfShUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBDb25maXJtYXRpb25EaWFsb2cuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICogQG5hbWUgRGlhbG9nRGF0YQogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQG1lbWJlciB7QXJyYXl9CiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyB2YXJpYWJsZSBzdG9yZXMgdGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgcGFzc2VkIGZyb20gdGhlIERUTCBhbmQgY29udGFpbiBhbGwgdGhlIGRhdGEgdGhhdCB0aGUgZGlhbG9nIG5lZWRzLgogICAgICovCiAgICB2YXIgRGlhbG9nRGF0YSA9IFtdOwoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIFNob3dXYWl0aW5nRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBQb3NpdGlvblRvcCAtIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBkaWFsb2cuCiAgICAgKiBAZGVzY3JpcHRpb24gU2hvd3Mgd2FpdGluZyBkaWFsb2cgdW50aWwgc2VhcmNoIHNjcmVlbiBpcyByZWFkeS4KICAgICAqLwogICAgZnVuY3Rpb24gU2hvd1dhaXRpbmdEaWFsb2coUG9zaXRpb25Ub3ApewogICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCc8ZGl2IGNsYXNzPSJTcGFjaW5nIENlbnRlciI+PHNwYW4gY2xhc3M9IkFKQVhMb2FkZXIiIHRpdGxlPSInICsgQ29yZS5Db25maWcuR2V0KCdMb2FkaW5nTXNnJykgKyAnIj48L3NwYW4+PC9kaXY+JywgJycsIFBvc2l0aW9uVG9wLCAnQ2VudGVyJywgdHJ1ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAbmFtZSBTaG93Q29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBmYWxzZS4KICAgICAqIEBwYXJhbSB7RXZlbnRPYmplY3R9IEV2ZW50IC0gZXZlbnQgb2JqZWN0IG9mIHRoZSBjbGlja2VkIGVsZW1lbnQuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBzaG93cyBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgd2l0aCAyIGJ1dHRvbnM6IFllcyBhbmQgTm8gb3IgYSBtZXNzYWdlIGRpYWxvZyB3aXRoIG9uZSBidXR0b246IE9rLgogICAgICovCiAgICBUYXJnZXROUy5TaG93Q29uZmlybWF0aW9uRGlhbG9nID0gZnVuY3Rpb24gKEV2ZW50KSB7CgogICAgICAgIHZhciBMb2NhbERpYWxvZ0RhdGEsCiAgICAgICAgICAgIFBvc2l0aW9uVG9wLAogICAgICAgICAgICBEYXRhLAogICAgICAgICAgICBCdXR0b25zOwoKICAgICAgICAvLyBnZXQgZ2xvYmFsIHNhdmVkIERpYWxvZ0RhdGEgZm9yIHRoaXMgZnVuY3Rpb24KICAgICAgICBMb2NhbERpYWxvZ0RhdGEgPSBEaWFsb2dEYXRhWyQoRXZlbnQudGFyZ2V0KS5hdHRyKCdpZCcpXTsKCiAgICAgICAgLy8gZGVmaW5lIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGlhbG9nCiAgICAgICAgUG9zaXRpb25Ub3AgPSAkKHdpbmRvdykuaGVpZ2h0KCkgKiAwLjM7CgogICAgICAgIC8vIHNob3cgd2FpdGluZyBkaWFsb2cKICAgICAgICBTaG93V2FpdGluZ0RpYWxvZyhQb3NpdGlvblRvcCk7CgogICAgICAgIC8vIGFqYXggY2FsbCB0byB0aGUgbW9kdWxlIHRoYXQgZXhlY3V0ZXMgdGhlIGFjdGlvbiB3aGVuIHByZXNzaW5nIHRoZSBjb25maXJtYXRpb24gYnV0dG9uCiAgICAgICAgRGF0YSA9IExvY2FsRGlhbG9nRGF0YS5EaWFsb2dDb250ZW50UXVlcnlTdHJpbmc7CiAgICAgICAgQ29yZS5BSkFYLkZ1bmN0aW9uQ2FsbChDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJyksIERhdGEsIGZ1bmN0aW9uIChSZXNwb25zZSkgewoKICAgICAgICAgICAgLy8gJ0NvbmZpcm1hdGlvbicgb3BlbnMgYSBkaWFsb2cgd2l0aCAyIGJ1dHRvbnM6IFllcyBhbmQgTm8KICAgICAgICAgICAgaWYgKFJlc3BvbnNlLkRpYWxvZ1R5cGUgPT09ICdDb25maXJtYXRpb24nKSB7CgogICAgICAgICAgICAgICAgLy8gZGVmaW5lIHllcyBhbmQgbm8gYnV0dG9ucwogICAgICAgICAgICAgICAgQnV0dG9ucyA9IFt7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IExvY2FsRGlhbG9nRGF0YS5UcmFuc2xhdGVkVGV4dC5ZZXMsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICJQcmltYXJ5IiwKCiAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5lIHRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSAnWWVzJyBidXR0b24gaXMgcHJlc3NlZAogICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbigpewoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZSBZZXMgYW5kIE5vIGJ1dHRvbnMgdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXRzCiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2Rpdi5EaWFsb2c6dmlzaWJsZSBkaXYuQ29udGVudEZvb3RlciBidXR0b24nKS5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gdGhlIG1vZHVsZSB0aGF0IGRvZXMgdGhlIGNvbmZpcm1lZCBhY3Rpb24gYWZ0ZXIgcHJlc3NpbmcgdGhlIFllcyBidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArIExvY2FsRGlhbG9nRGF0YS5Db25maXJtZWRBY3Rpb25RdWVyeVN0cmluZzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IExvY2FsRGlhbG9nRGF0YS5UcmFuc2xhdGVkVGV4dC5ObywKICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiCiAgICAgICAgICAgICAgICB9XTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gJ01lc3NhZ2UnIG9wZW5zIGEgZGlhbG9nIHdpdGggMSBidXR0b246IE9rCiAgICAgICAgICAgIGVsc2UgaWYgKFJlc3BvbnNlLkRpYWxvZ1R5cGUgPT09ICdNZXNzYWdlJykgewoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSBPayBidXR0b24KICAgICAgICAgICAgICAgIEJ1dHRvbnMgPSBbewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMb2NhbERpYWxvZ0RhdGEuVHJhbnNsYXRlZFRleHQuT2ssCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICJQcmltYXJ5IiwKICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiCiAgICAgICAgICAgICAgICB9XTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gc2hvdyB0aGUgY29uZmlybWF0aW9uIGRpYWxvZyB0byBjb25maXJtIHRoZSBhY3Rpb24KICAgICAgICAgICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coUmVzcG9uc2UuSFRNTCwgTG9jYWxEaWFsb2dEYXRhLkRpYWxvZ1RpdGxlLCBQb3NpdGlvblRvcCwgIkNlbnRlciIsIHRydWUsIEJ1dHRvbnMpOwogICAgICAgIH0sICdqc29uJyk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfTsKCiAgICAvKioKICAgICAqIEBuYW1lIEJpbmRDb25maXJtYXRpb25EaWFsb2cKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9IERhdGEgLSBEaWFsb2dEYXRhLgogICAgICogQGRlc2NyaXB0aW9uICBCaW5kcyBjb25mb3JtYXRpb24gZGlhbG9nIHRvIGFuIGVsZW1lbnQKICAgICAqLwogICAgVGFyZ2V0TlMuQmluZENvbmZpcm1hdGlvbkRpYWxvZyA9IGZ1bmN0aW9uIChEYXRhKSB7CiAgICAgICAgRGlhbG9nRGF0YVtEYXRhLkVsZW1lbnRJRF0gPSBEYXRhOwoKICAgICAgICAvLyBiaW5kaW5nIGEgY2xpY2sgZXZlbnQgdG8gdGhlIGRlZmluZWQgZWxlbWVudAogICAgICAgICQoRGlhbG9nRGF0YVtEYXRhLkVsZW1lbnRJRF0uRWxlbWVudFNlbGVjdG9yKQogICAgICAgICAgICAub2ZmKCdjbGljay5UaW1lQWNjb3VudGluZy5CaW5kQ29uZmlybWF0aW9uRGlhbG9nJykKICAgICAgICAgICAgLm9uKCdjbGljay5UaW1lQWNjb3VudGluZy5CaW5kQ29uZmlybWF0aW9uRGlhbG9nJywgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLlNob3dDb25maXJtYXRpb25EaWFsb2cpOwogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nIHx8IHt9KSk7Cg==
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBlZGl0IHNjcmVlbi4KICovClRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICAvLyBBZGRzIG9wdGlvbiB0byBhIHNlbGVjdGlvbgogICAgZnVuY3Rpb24gQWRkU2VsZWN0aW9uT3B0aW9uKCRTZWxlY3Rpb25FbGVtZW50LCBPcHRpb25UZXh0LCBPcHRpb25WYWx1ZSwgU2VsZWN0ZWRPcHRpb24pIHsKICAgICAgICB2YXIgT3B0aW9uSFRNTCA9IENvcmUuVGVtcGxhdGUuUmVuZGVyKAogICAgICAgICAgICAnQWdlbnQvVGltZUFjY291bnRpbmcvT3B0aW9uJywKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVmFsdWU6ICAgIE9wdGlvblZhbHVlLAogICAgICAgICAgICAgICAgVGV4dDogICAgIE9wdGlvblRleHQsCiAgICAgICAgICAgICAgICBTZWxlY3RlZDogT3B0aW9uVmFsdWUgPT09IFNlbGVjdGVkT3B0aW9uCiAgICAgICAgICAgIH0KICAgICAgICApOwoKICAgICAgICAkU2VsZWN0aW9uRWxlbWVudC5hcHBlbmQoT3B0aW9uSFRNTCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBXb3JraW5nVW5pdElEIC0gVGhlIElEIG9mIHRoZSB3b3JraW5nIHVuaXQgd2UgYXJlIGluCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgRmlsbHMgb3B0aW9ucyBvZiBhY3Rpb24gc2VsZWN0aW9uIGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0CiAgICAgKi8KICAgIFRhcmdldE5TLkZpbGxBY3Rpb25MaXN0ID0gZnVuY3Rpb24gKFdvcmtpbmdVbml0SUQpIHsKICAgICAgICB2YXIgUHJvamVjdE5hbWUgPSAkKCcjUHJvamVjdElEJyArIFdvcmtpbmdVbml0SUQgKyAnIG9wdGlvbjpzZWxlY3RlZCcpLnRleHQoKSwKICAgICAgICAgICAgQWN0aW9uTGlzdCA9IENvcmUuQ29uZmlnLkdldCgnQWN0aW9uTGlzdCcpLAogICAgICAgICAgICBBY3Rpb25MaXN0Q29uc3RyYWludHMgPSBDb3JlLkNvbmZpZy5HZXQoJ0FjdGlvbkxpc3RDb25zdHJhaW50cycpLAogICAgICAgICAgICAkQWN0aW9uU2VsZWN0aW9uID0gJCgiI0FjdGlvbklEIiArIFdvcmtpbmdVbml0SUQpLAogICAgICAgICAgICBTZWxlY3RlZEFjdGlvbklEID0gJEFjdGlvblNlbGVjdGlvbi52YWwoKSwKICAgICAgICAgICAgT3B0aW9uQ291bnQgPSAwOwoKICAgICAgICAvLyByZW1vdmUgcHJldmlvdXMgYWN0aW9ucywgbGVhdmUgZmlyc3QgZWxlbWVudCAoZW1wdHkgZWxlbWVudCkKICAgICAgICAkQWN0aW9uU2VsZWN0aW9uLmZpbmQoJ29wdGlvbicpLmZpbHRlcignOm5vdCg6Zmlyc3QpJykucmVtb3ZlKCk7CgogICAgICAgICQuZWFjaChBY3Rpb25MaXN0LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBBY3Rpb25JRCA9IHRoaXNbMF0sCiAgICAgICAgICAgICAgICBBY3Rpb25OYW1lID0gdGhpc1sxXTsKCiAgICAgICAgICAgICQuZWFjaChBY3Rpb25MaXN0Q29uc3RyYWludHMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBQcm9qZWN0TmFtZVJlZ0V4cCA9IG5ldyBSZWdFeHAodGhpc1swXSksCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uTmFtZVJlZ0V4cCA9IG5ldyBSZWdFeHAodGhpc1sxXSk7CgogICAgICAgICAgICAgICAgLy8gYWRkIGFjdGlvbiB0byBzZWxlY3Rpb24KICAgICAgICAgICAgICAgIGlmIChQcm9qZWN0TmFtZVJlZ0V4cC50ZXN0KFByb2plY3ROYW1lKSAmJiBBY3Rpb25OYW1lUmVnRXhwLnRlc3QoQWN0aW9uTmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICBBZGRTZWxlY3Rpb25PcHRpb24oJEFjdGlvblNlbGVjdGlvbiwgQWN0aW9uTmFtZSwgQWN0aW9uSUQsIFNlbGVjdGVkQWN0aW9uSUQpOwogICAgICAgICAgICAgICAgICAgIE9wdGlvbkNvdW50Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBhbGwgYWN0aW9ucyB3aWxsIGJlIGFkZGVkIGlmIG5vIGFjdGlvbiB3YXMgYWRkZWQgYWJvdmUgKHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24pCiAgICAgICAgaWYgKCFPcHRpb25Db3VudCkgewogICAgICAgICAgICAvLyBpZ25vcmUgZmlyc3QgZWxlbWVudCBiZWNhdXNlIGl0J3MgdGhlIGVtcHR5IGVsZW1lbnQgd2hpY2ggaXMgYWxyZWFkeSBwYXJ0IG9mIHRoZSBsaXN0CiAgICAgICAgICAgICQuZWFjaChBY3Rpb25MaXN0LCBmdW5jdGlvbiAoSW5kZXgpIHsKICAgICAgICAgICAgICAgIHZhciBBY3Rpb25JRCA9IHRoaXNbMF0sCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uTmFtZSA9IHRoaXNbMV07CiAgICAgICAgICAgICAgICBpZiAoSW5kZXggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgQWRkU2VsZWN0aW9uT3B0aW9uKCRBY3Rpb25TZWxlY3Rpb24sIEFjdGlvbk5hbWUsIEFjdGlvbklELCBTZWxlY3RlZEFjdGlvbklEKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfTsKCgogICAgZnVuY3Rpb24gSW5pdEFkZFJvdygpIHsKICAgICAgICAkKCcjTW9yZUlucHV0RmllbGRzJykub2ZmKCdjbGljay5Nb3JlSW5wdXRGaWVsZHMnKS5vbignY2xpY2suTW9yZUlucHV0RmllbGRzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgJExhc3RSb3cgPSAkKCcjSW5zZXJ0V29ya2luZ0hvdXJzIHRib2R5IHRyLldvcmtpbmdIb3VyczpsYXN0JyksCiAgICAgICAgICAgICAgICAkTmV3Um93LCBOZXdSb3dIVE1MLAogICAgICAgICAgICAgICAgUmVjb3JkTnVtYmVyID0gcGFyc2VJbnQoJCgnI1JlY29yZHNOdW1iZXInKS52YWwoKSwgMTApICsgMTsKCiAgICAgICAgICAgIENvcmUuVUkuSW5wdXRGaWVsZHMuRGVhY3RpdmF0ZSgkKCcuV29ya2luZ0hvdXJzJykpOwogICAgICAgICAgICAkTmV3Um93ID0gJExhc3RSb3cuY2xvbmUoKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9ICROZXdSb3cuaHRtbCgpOwoKICAgICAgICAgICAgLy8gTm93IHRha2UgdGhlIGxhc3Qgcm93IGFuZCByZXBsYWNlIGFsbCBudW1iZXJzIHdpdGggdGhlIG5ldyByZWNvcmQgbnVtYmVyCiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1Byb2plY3RJRFswLTldKy9nLCAnUHJvamVjdElEJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1Byb2plY3RJRFxbWzAtOV0rL2csICdQcm9qZWN0SURbJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0ZpbGxBY3Rpb25MaXN0XChbMC05XSsvZywgJ0ZpbGxBY3Rpb25MaXN0KCcgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9BY3Rpb25JRFswLTldKy9nLCAnQWN0aW9uSUQnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvQWN0aW9uSURcW1swLTldKy9nLCAnQWN0aW9uSURbJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1JlbWFya1swLTldKy9nLCAnUmVtYXJrJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1JlbWFya1xbWzAtOV0rL2csICdSZW1hcmtbJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1N0YXJ0VGltZVswLTldKy9nLCAnU3RhcnRUaW1lJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1N0YXJ0VGltZVxbWzAtOV0rL2csICdTdGFydFRpbWVbJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0VuZFRpbWVbMC05XSsvZywgJ0VuZFRpbWUnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvRW5kVGltZVxbWzAtOV0rL2csICdFbmRUaW1lWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9QZXJpb2RbMC05XSsvZywgJ1BlcmlvZCcgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9QZXJpb2RcW1swLTldKy9nLCAnUGVyaW9kWycgKyBSZWNvcmROdW1iZXIpOwoKICAgICAgICAgICAgLy8gTm93IHdyaXRlIHRoaXMgSFRNTCBiYWNrIHRvIHRoZSBqcXVlcnkgb2JqZWN0CiAgICAgICAgICAgICROZXdSb3cuaHRtbChOZXdSb3dIVE1MKTsKCiAgICAgICAgICAgIC8vIElmIGxhc3Qgcm93IGNvbnRhaW5lZCB2YWx1ZXMsIHRoZXNlIG11c3QgYmUgcmVtb3ZlZAogICAgICAgICAgICAkTmV3Um93CiAgICAgICAgICAgICAgICAuZmluZCgnaW5wdXQ6dGV4dCcpLnZhbCgnJykuZW5kKCkKICAgICAgICAgICAgICAgIC5maW5kKCdzZWxlY3Qgb3B0aW9uJykucHJvcCgnc2VsZWN0ZWQnLCBmYWxzZSk7CgogICAgICAgICAgICAvLyBOb3cgYWRkIHRoaXMgcm93IHRvIHRoZSB0YWJsZQogICAgICAgICAgICAkTGFzdFJvdy5hZnRlcigkTmV3Um93KTsKCiAgICAgICAgICAgIC8vIFNhdmUgbmV3IFJlY29yZE51bWJlcgogICAgICAgICAgICAkKCcjUmVjb3Jkc051bWJlcicpLnZhbChSZWNvcmROdW1iZXIpOwoKICAgICAgICAgICAgLy8gUmUtaW5pdGlhdGUgdGhlICdvZGQvZXZlbicgY29sb3VycyBvZiB0aGUgdGFibGUKICAgICAgICAgICAgJCgnI0luc2VydFdvcmtpbmdIb3VycyB0Ym9keSB0cicpCiAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ0V2ZW4nKQogICAgICAgICAgICAgICAgLmZpbHRlcignOm9kZCcpLmFkZENsYXNzKCdFdmVuJyk7CgogICAgICAgICAgICAvLyBNb2Rlcm5pemUgZmllbGRzCiAgICAgICAgICAgIENvcmUuVUkuSW5wdXRGaWVsZHMuQWN0aXZhdGUoJCgnLldvcmtpbmdIb3VycycpKTsKICAgICAgICB9KTsKICAgIH0KCiAgICBmdW5jdGlvbiBSZWNhbGN1bGF0ZVRvdGFsSG91cnMoKSB7CiAgICAgICAgdmFyIFRvdGFsID0gMDsKICAgICAgICAkKCcuUGVyaW9kJykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBWYWx1ZSA9IHBhcnNlRmxvYXQoJCh0aGlzKS52YWwoKSk7CiAgICAgICAgICAgIGlmICghaXNOYU4oVmFsdWUpKSB7CiAgICAgICAgICAgICAgICBUb3RhbCArPSBWYWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgICQoJy5Ub3RhbEhvdXJzJykudGV4dChUb3RhbC50b0ZpeGVkKDIpKTsKICAgIH0KCiAgICBmdW5jdGlvbiBJbml0UGVyaW9kQ2FsY3VsYXRpb24oKSB7CiAgICAgICAgLy8gaW5pdCBjYWxjdWxhdGlvbiBvZiBwZXJpb2QgZmllbGQgYWZ0ZXIgd29ya2luZyBob3VycyB3aGVyZSBhZGRlZC9zdWJzdHJhY3RlZC93aGF0ZXZlci4uLgogICAgICAgICQoJy5QZXJpb2QnKS5vZmYoJ2NoYW5nZS5QZXJpb2RDYWxjdWxhdGlvbicpLm9uKCdjaGFuZ2UuUGVyaW9kQ2FsY3VsYXRpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgdmFyIEZpZWxkVmFsdWUgPSAkKHRoaXMpLnZhbCgpOwoKICAgICAgICAgICAvLyByZXBsYWNlICwgd2l0aCAuCiAgICAgICAgICAgRmllbGRWYWx1ZSA9IEZpZWxkVmFsdWUucmVwbGFjZSgvLC9nLCAiLiIpOwoKICAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgZW50ZXJlZCB2YWx1ZSBvbmx5IGNvbnNpc3RzIG9mIGFsbG93ZWQgdmFsdWVzCiAgICAgICAgICAgLy8gaWYgbm90LCB3ZSBkbyBub3QgZXZhbCBmb3Igc2VjdXJpdHkgcmVhc29ucwogICAgICAgICAgIGlmIChGaWVsZFZhbHVlLm1hdGNoKC9eWzAtOS4rXC0gXSskLykpIHsKICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRpb24KICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgbm8tZXZhbCAqLwogICAgICAgICAgICAgICAgICAgRmllbGRWYWx1ZSA9IGV2YWwoRmllbGRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgICAvKmVzbGludC1lbmFibGUgbm8tZXZhbCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGNhdGNoIChDYWxjRXJyb3IpIHsKICAgICAgICAgICAgICAgICAgIEZpZWxkVmFsdWUgPSAwOwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAvLyBzZXQgbmV3IHZhbHVlCiAgICAgICAgICAgICAgICQodGhpcykudmFsKEZpZWxkVmFsdWUudG9GaXhlZCgyKSk7CgogICAgICAgICAgICAgICAvLyBub3cgU3RhcnRUaW1lIGFuZCBFbmRUaW1lIHdpbGwgbm90IG1hdGNoIHRoZSBwZXJpb2QgYW55bW9yZQogICAgICAgICAgICAgICAvLyBkZWxldGUgdGhlc2UgZW50cmllcwogICAgICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLlN0YXJ0VGltZSwgLkVuZFRpbWUnKS52YWwoJycpOwoKICAgICAgICAgICB9CiAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICQodGhpcykudmFsKCcnKTsKICAgICAgICAgICB9CgogICAgICAgICAgIC8vIG5vdyByZS1jYWxjdWxhdGUgdGhlIHRvdGFsIGhvdXJzIHN1bQogICAgICAgICAgIFJlY2FsY3VsYXRlVG90YWxIb3VycygpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBpbml0IHBlcmlvZCBjYWxjdWxhdGlvbiBvbiBzdGFydHRpbWUgYW5kIGVuZHRpbWUgZmllbGRzCiAgICAgICAgJCgnLlN0YXJ0VGltZSwgLkVuZFRpbWUnKS5vZmYoJ2NoYW5nZS5QZXJpb2RDYWxjdWxhdGlvbicpLm9uKCdjaGFuZ2UuUGVyaW9kQ2FsY3VsYXRpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciAkU3RhcnRUaW1lLCAkRW5kVGltZSwKICAgICAgICAgICAgICAgIFN0YXJ0VGltZUhvdXIsIFN0YXJ0VGltZU1pbnV0ZSwgRW5kVGltZUhvdXIsIEVuZFRpbWVNaW51dGUsCiAgICAgICAgICAgICAgICBTdGFydERhdGUsIEVuZERhdGUsIFRvZGF5LAogICAgICAgICAgICAgICAgUGVyaW9kOwoKICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoJ1N0YXJ0VGltZScpKSB7CiAgICAgICAgICAgICAgICAkU3RhcnRUaW1lID0gJCh0aGlzKTsKICAgICAgICAgICAgICAgICRFbmRUaW1lID0gJFN0YXJ0VGltZS5jbG9zZXN0KCd0cicpLmZpbmQoJy5FbmRUaW1lJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU3RhcnRUaW1lID0gJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5TdGFydFRpbWUnKTsKICAgICAgICAgICAgICAgICRFbmRUaW1lID0gJCh0aGlzKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gb25seSBjYWxjdWxhdGUgaWYgYm90aCBmaWVsZHMgYXJlIGZpbGxlZAogICAgICAgICAgICBpZiAoJFN0YXJ0VGltZS52YWwoKSAmJiAkRW5kVGltZS52YWwoKSkgewogICAgICAgICAgICAgICAgLy8gZXh0cmFjdCBob3VycyBhbmQgbWludXRlcwogICAgICAgICAgICAgICAgU3RhcnRUaW1lSG91ciA9ICRTdGFydFRpbWUudmFsKCkuc3BsaXQoLzovKVswXSB8fCAwOwogICAgICAgICAgICAgICAgU3RhcnRUaW1lTWludXRlID0gJFN0YXJ0VGltZS52YWwoKS5zcGxpdCgvOi8pWzFdIHx8IDA7CiAgICAgICAgICAgICAgICBFbmRUaW1lSG91ciA9ICRFbmRUaW1lLnZhbCgpLnNwbGl0KC86LylbMF0gfHwgMDsKICAgICAgICAgICAgICAgIEVuZFRpbWVNaW51dGUgPSAkRW5kVGltZS52YWwoKS5zcGxpdCgvOi8pWzFdIHx8IDA7CgogICAgICAgICAgICAgICAgLy8gZGVmaW5lIGRhdGUgb2JqZWN0cwogICAgICAgICAgICAgICAgVG9kYXkgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICAgICAgU3RhcnREYXRlID0gbmV3IERhdGUoVG9kYXkuZ2V0WWVhcigpLCBUb2RheS5nZXRNb250aCgpLCBUb2RheS5nZXREYXRlKCksIFN0YXJ0VGltZUhvdXIsIFN0YXJ0VGltZU1pbnV0ZSwgMCk7CiAgICAgICAgICAgICAgICBFbmREYXRlID0gbmV3IERhdGUoVG9kYXkuZ2V0WWVhcigpLCBUb2RheS5nZXRNb250aCgpLCBUb2RheS5nZXREYXRlKCksIEVuZFRpbWVIb3VyLCBFbmRUaW1lTWludXRlLCAwKTsKCiAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgZGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgIFBlcmlvZCA9IEVuZERhdGUuZ2V0VGltZSgpIC0gU3RhcnREYXRlLmdldFRpbWUoKTsKICAgICAgICAgICAgICAgIFBlcmlvZCA9IFBlcmlvZCAvICgxMDAwICogNjAgKiA2MCk7CgogICAgICAgICAgICAgICAgLy8gc2V0IG5ldyB2YWx1ZQogICAgICAgICAgICAgICAgaWYgKCFpc05hTihQZXJpb2QpKSB7CiAgICAgICAgICAgICAgICAgICAgJFN0YXJ0VGltZS5jbG9zZXN0KCd0cicpLmZpbmQoJy5QZXJpb2QnKS52YWwoUGVyaW9kLnRvRml4ZWQoMikpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJFN0YXJ0VGltZS5jbG9zZXN0KCd0cicpLmZpbmQoJy5QZXJpb2QnKS52YWwoJycpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJlY2FsY3VsYXRlVG90YWxIb3VycygpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGFsbCBuZWVkZWQgSlMgZm9yIHRoZSBFZGl0IHNjcmVlbgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICB2YXIgUmVtYXJrUmVnRXhwQ29udGVudCA9IENvcmUuQ29uZmlnLkdldCgnUmVtYXJrUmVnRXhwQ29udGVudCcpLAogICAgICAgICAgICAvLyBBZGQgc29tZSBzcGVjaWFsIHZhbGlkYXRpb24gbWV0aG9kcyBmb3IgdGhlIGVkaXQgc2NyZWVuCiAgICAgICAgICAgIC8vIERlZmluZSBhbGwgYXZhaWxhYmxlIGVsZW1lbnRzIChvbmx5IHRoZSBwcmVmaXhlcykgaW4gYSByb3cKICAgICAgICAgICAgRWxlbWVudFByZWZpeGVzID0gWydQcm9qZWN0SUQnLCAnQWN0aW9uSUQnLCAnUmVtYXJrJywgJ1N0YXJ0VGltZScsICdFbmRUaW1lJywgJ1BlcmlvZCddOwoKICAgICAgICAvLyBWYWxpZGF0ZXMgdGhlIHByb2plY3Q6IGlmIHNvbWUgb3RoZXIgZmllbGQgaW4gdGhpcyByb3cgaXMgZmlsbGVkLCB0aGUgcHJvamVjdCBzZWxlY3QgbXVzdCBiZSBmaWxsZWQsIHRvbwogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1Byb2plY3QnLCBmdW5jdGlvbiAoVmFsdWUsIEVsZW1lbnQpIHsKICAgICAgICAgICAgdmFyIElELAogICAgICAgICAgICAgICAgUmVzdWx0ID0gdHJ1ZTsKCiAgICAgICAgICAgIC8vIEdldCBJRAogICAgICAgICAgICAvLyBPdXIgRWxlbWVudCBjYW4gYmUgdGhlIHNlbGVjdCBlbGVtZW50IG9yIHRoZSBhdXRvY29tcGxldGlvbiBpbnB1dCBmaWVsZAogICAgICAgICAgICBpZiAoJChFbGVtZW50KS5pcygnc2VsZWN0JykpIHsKICAgICAgICAgICAgICAgIElEID0gJChFbGVtZW50KS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1Byb2plY3RJRCcsICcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIElEID0gJChFbGVtZW50KS5wcmV2QWxsKCdzZWxlY3QnKS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1Byb2plY3RJRCcsICcnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFWYWx1ZSkgewogICAgICAgICAgICAgICAgJC5lYWNoKEVsZW1lbnRQcmVmaXhlcywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGlmICghUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzICE9PSAnUHJvamVjdElEJyAmJiAkKCcjJyArIHRoaXMgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBSZXN1bHQ7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0JywgewogICAgICAgICAgICAvKmVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqLwogICAgICAgICAgICBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0OiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSByZW1hcmtzOiBkZXBlbmRpbmcgb24gdGhlIHByb2plY3QsIHJlbWFya3MgbXVzdCBiZSBlbnRlcmVkIG9yIG5vdAogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1JlbWFyaycsIGZ1bmN0aW9uIChWYWx1ZSwgRWxlbWVudCkgewogICAgICAgICAgICB2YXIgSUQgPSAkKEVsZW1lbnQpLmF0dHIoJ2lkJykucmVwbGFjZSgnUmVtYXJrJywgJycpLAogICAgICAgICAgICAgICAgUmVtYXJrUmVnRXhwID0gbmV3IFJlZ0V4cCgiXigiICsgUmVtYXJrUmVnRXhwQ29udGVudCArICIpJCIpLAogICAgICAgICAgICAgICAgUmVtYXJrQ2hlY2sgPSBSZW1hcmtSZWdFeHAudGVzdCgkKCcjUHJvamVjdElEJyArIElEKS52YWwoKSk7CgogICAgICAgICAgICBpZiAoJCgnI1Byb2plY3RJRCcgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAhKFJlbWFya0NoZWNrICYmIFZhbHVlLmxlbmd0aCA8IDgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZFJ1bGUoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1JlbWFyaycsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUmVtYXJrOiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSBzdGFydCB0aW1lOiBpZiBhIHByb2plY3QgaXMgZ2l2ZW4gYW5kIG5vIHRpbWUgcGVyaW9kIGlzIGdpdmVuLCB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZE1ldGhvZCgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfU3RhcnRUaW1lJywgZnVuY3Rpb24gKFZhbHVlLCBFbGVtZW50KSB7CiAgICAgICAgICAgIHZhciBJRCA9ICQoRWxlbWVudCkuYXR0cignaWQnKS5yZXBsYWNlKCdTdGFydFRpbWUnLCAnJyk7CgogICAgICAgICAgICBpZiAoIVZhbHVlICYmICQoJyNQcm9qZWN0SUQnICsgSUQpLnZhbCgpICYmICEkKCcjUGVyaW9kJyArIElEKS52YWwoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZFJ1bGUoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1N0YXJ0VGltZScsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfU3RhcnRUaW1lOiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSB0aW1lIHBlcmlvZDogaWYgYSBwcm9qZWN0IGlzIGdpdmVuIGFuZCBubyBzdGFydCB0aW1lIGlzIGdpdmVuLCB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZE1ldGhvZCgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUGVyaW9kJywgZnVuY3Rpb24gKFZhbHVlLCBFbGVtZW50KSB7CiAgICAgICAgICAgIHZhciBJRCA9ICQoRWxlbWVudCkuYXR0cignaWQnKS5yZXBsYWNlKCdQZXJpb2QnLCAnJyk7CgogICAgICAgICAgICBpZiAoIVZhbHVlICYmICQoJyNQcm9qZWN0SUQnICsgSUQpLnZhbCgpICYmICEkKCcjU3RhcnRUaW1lJyArIElEKS52YWwoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZFJ1bGUoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1BlcmlvZCcsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUGVyaW9kOiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gaW5pdGlhdGUgIm1vcmUgaW5wdXQgZmllbGRzIiBmdW5jdGlvbmFsaXR5CiAgICAgICAgSW5pdEFkZFJvdygpOwoKICAgICAgICAvLyBpbml0aWF0ZSBwZXJpb2QgY2FsY3VsYXRpb24KICAgICAgICBJbml0UGVyaW9kQ2FsY3VsYXRpb24oKTsKCiAgICAgICAgLy8gU2VsZWN0IG9ubHkgb25lIGNoZWNrYm94IGluIHRoZSBncm91cCAnQWJzZW5jZScKICAgICAgICAkKCIuQWJzZW5jZSBpbnB1dDpjaGVja2JveCIpLmNsaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgJCgiLkFic2VuY2UgaW5wdXQ6Y2hlY2tib3giKS5wcm9wKCJjaGVja2VkIiwgZmFsc2UpOwogICAgICAgICAgICAkKHRoaXMpLnByb3AoImNoZWNrZWQiLCB0cnVlKTsKICAgICAgICB9KTsKICAgIH07CgoKICAgIC8qKgogICAgICogQG5hbWUgTWFzc0VudHJ5SW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge09iamVjdH0gTGFuZ3VhZ2Ugb2JqZWN0IHdpdGggdGV4dCB0cmFuc2xhdGlvbnMKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBqYXZhc2NyaXB0IGZvciB0aGUgbWFzcyBlbnRyeSBmdW5jdGlvbmFsaXR5CiAgICAgKi8KICAgIFRhcmdldE5TLk1hc3NFbnRyeUluaXQgPSBmdW5jdGlvbigpIHsKICAgICAgICAkKCcjSW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsJykub2ZmKCdjbGljay5TZWxlY3RBbGxEYXlzJykub24oJ2NsaWNrLlNlbGVjdEFsbERheXMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBTdGF0ZSA9ICQodGhpcykucHJvcCgnY2hlY2tlZCcpOwogICAgICAgICAgICAkKCcuSW5jb21wbGV0ZVdvcmtpbmdEYXlzIHRib2R5IGlucHV0OmNoZWNrYm94JykucHJvcCgnY2hlY2tlZCcsIFN0YXRlKTsKICAgICAgICB9KTsKICAgICAgICAkKCcjTWFzc0VudHJ5U3VibWl0Jykub2ZmKCdjbGljay5NYXNzRW50cnlTdWJtaXQnKS5vbignY2xpY2suTWFzc0VudHJ5U3VibWl0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgJFdvcmtpbmdEYXlDaGVja2JveGVzID0gJCgnLkluY29tcGxldGVXb3JraW5nRGF5cyB0Ym9keSBpbnB1dDpjaGVja2JveDpjaGVja2VkJykuZmlsdGVyKCdbbmFtZSE9SW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsXScpOwoKICAgICAgICAgICAgaWYgKCEkV29ya2luZ0RheUNoZWNrYm94ZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBhbGVydChDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScpKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU2hvdyBvdmVybGF5CiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCQoJyNNYXNzRW50cnlDb25maXJtRGlhbG9nJyksIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdNYXNzIEVudHJ5JyksICcxNTBweCcsICdDZW50ZXInLCB0cnVlLCBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdTdWJtaXQnKSwKICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgJFNlbGVjdGVkUmFkaW8gPSAkKCcjTWFzc0VudHJ5Q29uZmlybVJhZGlvIGxpIGlucHV0OnJhZGlvOmNoZWNrZWQnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFic2VuY2VSZWFzb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0ZWREYXRlcyA9ICcnOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkU2VsZWN0ZWRSYWRpby5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGFic2VuY2UgcmVhc29uCiAgICAgICAgICAgICAgICAgICAgICAgIEFic2VuY2VSZWFzb24gPSAkU2VsZWN0ZWRSYWRpby5kYXRhKCdhYnNlbmNlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBYnNlbmNlUmVhc29uID09PSAnTGVhdmVEYXknKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9TGVhdmVEYXldJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFic2VuY2VSZWFzb24gPT09ICdTaWNrJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI01hc3NFbnRyeSBpbnB1dFtuYW1lPVNpY2tdJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFic2VuY2VSZWFzb24gPT09ICdPdmVydGltZScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNNYXNzRW50cnkgaW5wdXRbbmFtZT1PdmVydGltZV0nKS52YWwoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbGxlY3QgZGF0ZXMKICAgICAgICAgICAgICAgICAgICAgICAgJCgnLkluY29tcGxldGVXb3JraW5nRGF5cyB0Ym9keSBpbnB1dDpjaGVja2JveDpjaGVja2VkJykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgRGF0ZUl0ZW0gPSAkKHRoaXMpLmF0dHIoJ25hbWUnKS5yZXBsYWNlKC9JbmNvbXBsZXRlV29ya2luZ0RheS0vLCAiIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRGF0ZUl0ZW0gIT09ICdBbGwnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGVkRGF0ZXMgKz0gRGF0ZUl0ZW0gKyAnfCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9RGF0ZXNdJykudmFsKENvbGxlY3RlZERhdGVzKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3cgd2FpdGluZyBpY29uCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5EaWFsb2c6dmlzaWJsZScpCiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuQ29udGVudEZvb3RlcicpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbXB0eSgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbmQoKQogICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLklubmVyQ29udGVudCcpCiAgICAgICAgICAgICAgICAgICAgICAgIC53aWR0aCgkKCcuRGlhbG9nOnZpc2libGUnKS5maW5kKCcuSW5uZXJDb250ZW50Jykud2lkdGgoKSkKICAgICAgICAgICAgICAgICAgICAgICAgLmVtcHR5KCkKICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChDb3JlLlRlbXBsYXRlLlJlbmRlcignQWdlbnQvVGltZUFjY291bnRpbmcvRGlhbG9nL0FqYXhMb2FkZXInKSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWJtaXQgZm9ybQogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5Jykuc3VibWl0KCk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBDbGFzczogJ1ByaW1hcnknCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnQ2FuY2VsJyksCiAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb246IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ29yZS5VSS5EaWFsb2cuQ2xvc2VEaWFsb2coJCgnLkRpYWxvZzp2aXNpYmxlJykpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMgfHwge30pKTsK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50Lk92ZXJ2aWV3CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBUaW1lQWNjb3VudGluZy4KICovClRpbWVBY2NvdW50aW5nLkFnZW50Lk92ZXJ2aWV3ID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgICQoJy5NYXN0ZXJBY3Rpb24nKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgICAgICB2YXIgJE1hc3RlckFjdGlvbkxpbmsgPSAkKHRoaXMpLmZpbmQoJy5NYXN0ZXJBY3Rpb25MaW5rJyk7CiAgICAgICAgICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgICAgICAgICBpZiAoRXZlbnQudGFyZ2V0ICE9PSAkTWFzdGVyQWN0aW9uTGluay5nZXQoMCkpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICRNYXN0ZXJBY3Rpb25MaW5rLmF0dHIoJ2hyZWYnKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwoKfShUaW1lQWNjb3VudGluZy5BZ2VudC5PdmVydmlldyB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50LlJlcG9ydGluZwogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgVGltZUFjY291bnRpbmcuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5SZXBvcnRpbmcgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJCgnI05hdmlnYXRpb25TZWxlY3QnKS5vbignY2xpY2snLCBmdW5jdGlvbigpewogICAgICAgICAgICAkKCcjRGF0ZVNlbGVjdGlvbkZvcm0nKS5zdWJtaXQoKTsKICAgICAgICB9KTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oVGltZUFjY291bnRpbmcuQWdlbnQuUmVwb3J0aW5nIHx8IHt9KSk7Cg==
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50LlZpZXcKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIFRpbWVBY2NvdW50aW5nLgogKi8KVGltZUFjY291bnRpbmcuQWdlbnQuVmlldyA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICAkKCcjTmF2aWdhdGlvblNlbGVjdCcpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgJCgnI0RhdGVTZWxlY3Rpb25Gb3JtJykuc3VibWl0KCk7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KFRpbWVBY2NvdW50aW5nLkFnZW50LlZpZXcgfHwge30pKTsK
PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMi4zLjMvcXVuaXQuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgoKICAgIDx0aXRsZT5UaW1lQWNjb3VudGluZyBmb3IgT1RSUyAmbmRhc2g7IFVuaXRUZXN0IFJlc3VsdHM8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGgxIGlkPSJxdW5pdC1oZWFkZXIiPlRpbWVBY2NvdW50aW5nIGZvciBPVFJTICZuZGFzaDsgVW5pdFRlc3QgUmVzdWx0czwvaDE+CiAgICA8aDIgaWQ9InF1bml0LWJhbm5lciI+PC9oMj4KICAgIDxoMiBpZD0icXVuaXQtdXNlckFnZW50Ij48L2gyPgogICAgPG9sIGlkPSJxdW5pdC10ZXN0cyI+PC9vbD4KCgogICAgPCEtLSBVbml0VGVzdCBjb2RlIGdvZXMgaGVyZSAtLT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMi4zLjMvcXVuaXQuanMiPjwvc2NyaXB0PgogICAgPCEtLQogICAgICAgIE5vdyBhbHdheXMgbG9hZCBsaWJyYXJ5IGZpcnN0IGFuZCB0aGVuIHRoZSBVbml0VGVzdCBmaWxlIGZvciBpdC4KICAgICAgICBUaGUgVW5pdFRlc3QgZmlsZSBpcyByZXNwb25zaWJsZSBmb3IgcnVubmludCB0aGUgdGVzdHMuCiAgICAtLT4KCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS0zLjIuMS9qcXVlcnkuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktdWktMS4xMi4xL2pxdWVyeS11aS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS1wdWJzdWIvcHVic3ViLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvanF1ZXJ5LXZhbGlkYXRlLTEuMTYuMC9qcXVlcnkudmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktanN0cmVlLTMuMy40L2pxdWVyeS5qc3RyZWUuanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuTGFuZ3VhZ2UuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Jbml0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuSmF2YVNjcmlwdEVuaGFuY2VtZW50cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkRlYnVnLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuRGF0YS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkpTT04uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Db25maWcuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5BcHAuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLkFjY2Vzc2liaWxpdHkuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5SaWNoVGV4dEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLlRyZWVTZWxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5JbnB1dEZpZWxkcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLkRpYWxvZy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkZvcm0uRXJyb3JUb29sdGlwcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkZvcm0uVmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvcmUuVW5pdFRlc3QuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLlVuaXRUZXN0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuUnVuVW5pdFRlc3RzKCk7CiAgICA8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKClRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyA9IChmdW5jdGlvbiAoTmFtZXNwYWNlKSB7CiAgICBOYW1lc3BhY2UuUnVuVW5pdFRlc3RzID0gZnVuY3Rpb24oKXsKCiAgICAgICAgLyoKICAgICAgICAgKiBDcmVhdGUgYSBmb3JtIGNvbnRhaW5lciBmb3IgdGhlIHRlc3RzCiAgICAgICAgICovCiAgICAgICAgdmFyICRUZXN0Rm9ybSA9ICQoJzxmb3JtIGlkPSJUZXN0Rm9ybSI+PC9mb3JtPicpLAogICAgICAgICAgICAkVGFibGU7CgogICAgICAgIFFVbml0Lm1vZHVsZSgnVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzJyk7CiAgICAgICAgUVVuaXQudGVzdCgnY2xpZW50LXNpZGUgdGltZSBwZXJpb2QgY2FsY3VsYXRpb25zJywgZnVuY3Rpb24oQXNzZXJ0KXsKCiAgICAgICAgICAgIEFzc2VydC5leHBlY3QoMjApOwoKICAgICAgICAgICAgJFRlc3RGb3JtLmFwcGVuZCgnPHRhYmxlPjx0cj48dGQ+PC90ZD48L3RyPjx0cj48dGQ+PC90ZD48L3RyPjx0cj48dGQ+PC90ZD48L3RyPjwvdGFibGU+Jyk7CiAgICAgICAgICAgICRUYWJsZSA9ICRUZXN0Rm9ybS5maW5kKCd0cjplcSgwKSB0ZCcpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlN0YXJ0VGltZTEiIG5hbWU9IlN0YXJ0VGltZTEiIGNsYXNzPSJTdGFydFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iRW5kVGltZTEiIG5hbWU9IkVuZFRpbWUxIiBjbGFzcz0iRW5kVGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJQZXJpb2QxIiBuYW1lPSJQZXJpb2QxIiBjbGFzcz0iUGVyaW9kIiAvPicpOwogICAgICAgICAgICAkVGFibGUgPSAkVGVzdEZvcm0uZmluZCgndHI6ZXEoMSkgdGQnKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJTdGFydFRpbWUyIiBuYW1lPSJTdGFydFRpbWUyIiBjbGFzcz0iU3RhcnRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IkVuZFRpbWUyIiBuYW1lPSJFbmRUaW1lMiIgY2xhc3M9IkVuZFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iUGVyaW9kMiIgbmFtZT0iUGVyaW9kMiIgY2xhc3M9IlBlcmlvZCIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlID0gJFRlc3RGb3JtLmZpbmQoJ3RyOmVxKDIpIHRkJyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iU3RhcnRUaW1lMyIgbmFtZT0iU3RhcnRUaW1lMyIgY2xhc3M9IlN0YXJ0VGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJFbmRUaW1lMyIgbmFtZT0iRW5kVGltZTMiIGNsYXNzPSJFbmRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlBlcmlvZDMiIG5hbWU9IlBlcmlvZDMiIGNsYXNzPSJQZXJpb2QiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxzcGFuIGlkPSJUb3RhbEhvdXJzIiBuYW1lPSJUb3RhbEhvdXJzIiBjbGFzcz0iVG90YWxIb3VycyI+PC9zcGFuPicpOwogICAgICAgICAgICAkKCdib2R5JykuYXBwZW5kKCRUZXN0Rm9ybSk7CgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBSdW4gdGhlIHRlc3RzCiAgICAgICAgICAgICAqLwoKICAgICAgICAgICAgVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLkluaXQoKTsKCiAgICAgICAgICAgIC8vIFRlc3Q6IHRpbWUgY2FsY3VsYXRpb24gb24gdGltZSBwZXJpb2QgZmllbGQKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzInKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcyLjAwJywgJ05vcm1hbCBudW1iZXIgZW50cnknKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCdmb29iYXInKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnTm90IGEgbnVtYmVyICg9ImZvb2JhciIpJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnMiArIDMnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICc1LjAwJywgJ0Vhc3kgY2FsY3VsYXRpb24nKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCdhbGVydCgiaHVodSIpOycpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJycsICdFdmlsIGphdmFzY3JpcHQgY29kZScpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzIuMjMgKyAxLjA5Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMy4zMicsICdDYWxjdWxhdGlvbiB3aXRoIG5vbi1pbnRlZ2VycycpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzIuMDAwMSArIDEuNScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzMuNTAnLCAnQ2FsY3VsYXRpb24gd2l0aCBhIG51bWJlciB3aXRoIG1vcmUgdGhhbiAyIGRlY2ltYWxzJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnMSwyICsgMSwzJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMi41MCcsICdOdW1iZXJzIHdpdGggLCBpbnN0ZWFkIG9mIC4nKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCc1LjggLSAxLjInKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICc0LjYwJywgJ1N1YnN0cmFjdGlvbicpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJycpOwoKICAgICAgICAgICAgLy8gVGVzdDogY2FsY3VsYXRlIHBlcmlvZCBmcm9tIGVudGVyZWQgc3RhcnQgYW5kIGVuZCB0aW1lCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJycsICdPbmx5IHN0YXJ0IHRpbWUgZW50ZXJlZCcpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJycpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzInKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnJywgJ09ubHkgZW5kIHRpbWUgZW50ZXJlZCcpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzEnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcyJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzEuMDAnLCAnQm90aCB0aW1lcyBlbnRlcmVkJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTowNicpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwOjAwJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzAuOTAnLCAnRWFzeSBjYWxjdWxhdGlvbiB3aXRoIHR3byB0aW1lcyBvZiB0aGUgZm9ybWF0IEhIOk1NJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTowMCcpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzExOjMwJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzIuNTAnLCAnRWFzeSBjYWxjdWxhdGlvbiB3aXRoIHR3byB0aW1lcyBvZiB0aGUgZm9ybWF0IEhIOk1NJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOSw1Jyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMTAsNScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnU3RhcnRUaW1lIGFuZCBFbmRUaW1lIGZvcm1hdCBhcmUgd3JvbmcnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCc5OjUnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMDo1Jyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzEuMDAnLCAnU3RhcnRUaW1lIGFuZCBFbmRUaW1lIGZvcm1hdCBhcmUgc2xpZ2h0bHkgd3JvbmcnKTsKCiAgICAgICAgICAgIC8vIFRlc3Q6IENhbGN1bGF0aW9uIG9mIHRvdGFsIGhvdXJzCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCc5OjUnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMDo1Jyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1RvdGFsSG91cnMnKS50ZXh0KCksICcxLjAwJywgJ0Vhc3kgc3RhcnQnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudmFsKCcyLjUnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDInKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMy41MCcsICdTZWNvbmQgcGVyaW9kIGZpZWxkJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnZhbCgnMS41ICsgOSw1Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjVG90YWxIb3VycycpLnRleHQoKSwgJzEyLjAwJywgJ1NlY29uZCBwZXJpb2QgZmllbGQgZ2V0cyBhbiBhZGRpdGlvbmFsIGNhbGN1bGF0aW9uIHdpdGggb25lIHdyb25nIGNvbW1hJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMycpLnZhbCgnNC4zNScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMycpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1RvdGFsSG91cnMnKS50ZXh0KCksICcxNi4zNScsICdUaGlyZCBmaWVsZCcpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzE0OjAwJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnb3BlbmVuZCcpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTUuMzUnLCAnRmlyc3Qgcm93OiBzdGFydHRpbWUgYW5kIGVuZHRpbWUgZmllbGRzIGhhdmUgd3JvbmcgaW5wdXQnKTsKCgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBDbGVhbnVwIGRpdiBjb250YWluZXIgYW5kIGNvbnRlbnRzCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkKCcjVGVzdEZvcm0nKS5yZW1vdmUoKTsKICAgICAgICB9KTsKCiAgICB9OwoKICAgIHJldHVybiBOYW1lc3BhY2U7Cn0oVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzIHx8IHt9KSk7Cg==
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgVGltZSBBY2NvdW50aW5nIERlZmF1bHQgQ1NTCiAqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAc3Vic2VjdGlvbiAgbGVmdCBhbmQgcmlnaHQgYXJyb3dzCiAqLwoKLkFycm93IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDEwcHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBmbG9hdDogbGVmdDsKICAgIG1hcmdpbi10b3A6IC0ycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDRweDsKfQoKLkFycm93IGkgewogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICM1NTU7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgc3BlY2lhbCBzZXR0aW5nczogcmVwb3J0aW5nCiAqLwoKZGl2Lk1vbnRoU2VsZWN0aW9uIHsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKfQoKLk1vbnRoU2VsZWN0aW9uIC5BcnJvdyB7CiAgICBtYXJnaW4tdG9wOiAxcHg7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgSW5jb21wbGV0ZVdvcmtpbmdEYXlzIHNlbGVjdAogKi8KI0luY29tcGxldGVXb3JraW5nRGF5c0xpc3Qgb3B0aW9uW3NlbGVjdGVkPXNlbGVjdGVkXSB7CiAgICBmb250LXdlaWdodDogYm9sZDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICBwcm9qZWN0IGFuZCBhY3Rpb24gZHJvcGRvd25zCiAqLwouUHJvamVjdFNlbGVjdGlvbiB7CiAgICB3aWR0aDogMzAwcHg7Cn0KCi5BY3Rpb25TZWxlY3Rpb24gewogICAgd2lkdGg6IDMwMHB4Owp9CgouU2lkZWJhckNvbHVtbiAuRGF0ZXBpY2tlckljb24gewogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQoKLlNpZGViYXJDb2x1bW4gdGggaW5wdXRbdHlwZT1jaGVja2JveF0gewogICAgbWFyZ2luOiAwcHg7Cn0KCn0gLyogZW5kIEBtZWRpYSAqLwo=
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgVGltZSBBY2NvdW50aW5nIEFkZGl0aW9uYWwgVGFibGUgU2V0dGluZ3MKICovCgpAbWVkaWEgc2NyZWVuLHByb2plY3Rpb24sdHYsaGFuZGhlbGQgewoKLyoqCiAqIEBzdWJzZWN0aW9uICBkYXRhIHRhYmxlIGVsZW1lbnRzIHdpdGhvdXQgaG92ZXIKICovCgouTm9Ib3ZlciB0Ym9keSB0cjpob3ZlciB0ZCB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTsKICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCi5Ob0hvdmVyIHRyLkV2ZW46aG92ZXIgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTsKfQoKLk5vSG92ZXIgdHIuR3JhbmRUb3RhbDpob3ZlciB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0ZDRkNGOwp9CgouVGltZUFjY291bnRpbmdUYWJsZSBpbnB1dFt0eXBlPXRleHRdIHsKICAgIHdpZHRoOiAxMDAlOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKLlRpbWVBY2NvdW50aW5nVGFibGUgdGQgewogICAgcGFkZGluZzogMTBweCAhaW1wb3J0YW50Owp9CgovKioKICogQHN1YnNlY3Rpb24gIHNwZWNpYWwgdGFibGUgaGVpZ2h0CiAqLwoKLkhpZ2hDZWxscyB0Ym9keSB0ZCB7CiAgICBoZWlnaHQ6IDMwcHg7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgZml4ZWQgZGF0YSB0YWJsZSB3aWR0aHMKICovCgouRGF0YVRhYmxlIHRkLkZpeGVkLkRheSB7CiAgICB3aWR0aDogNTBweDsKfQoKLkRhdGFUYWJsZSB0ZC5GaXhlZC5XZWVrZGF5IHsKICAgIHdpZHRoOiA4MHB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIHRhYmxlIGNvbG91cnMgZm9yIG92ZXJ2aWV3CiAqLwoKLkRhdGFUYWJsZSB0ci5WYWNhdGlvbiB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJDQ0NDOwp9CgouRGF0YVRhYmxlIHRyLk5vbldvcmtpbmdEYXkgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRTBFMDsKfQoKLkRhdGFUYWJsZSB0ci5BY3RpdmUgdGQgewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDAwMDA7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDAwMDsKICAgIGNvbG9yOiAjMUExQTFBOwp9CgouRGF0YVRhYmxlIHRyLkFjdGl2ZSB0ZDpmaXJzdC1jaGlsZCB7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDAwMDA7Cn0KCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkOmxhc3QtY2hpbGQsCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkLkxhc3QgewogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDAwMDsKfQoKLkRhdGFUYWJsZSB0ci5HcmFuZFRvdGFsIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNDRkNGQ0Y7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgZGF0YSB0YWJsZSB3aXRoIHR3byBoZWFkZXIgcm93cwogKi8KCi5EYXRhVGFibGUgdGhlYWQuVHdvUm93cyB7CiAgICBiYWNrZ3JvdW5kOiBub25lOwp9CgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgdHIgewogICAgYmFja2dyb3VuZDogI2VlZWVlZTsKfQoKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyOmZpcnN0LWNoaWxkIHRoIHsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICBwYWRkaW5nLWJvdHRvbTogMnB4Owp9CgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgdHI6bGFzdC1jaGlsZCB0aCwKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyLkxhc3QgdGggewogICAgYm9yZGVyLXRvcDogbm9uZTsKICAgIHBhZGRpbmctdG9wOiAzcHg7Cn0KCnRyLk1hc3RlckFjdGlvbiB0ZC5Sb3dTcGFuIHsKICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCnRkLlJvd1NwYW57CiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNjY2M7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9CgojVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCB7CiAgICBib3JkZXItY29sb3I6ICNkZGQ7CiAgICBib3JkZXItaW1hZ2U6IG5vbmU7CiAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgYm9yZGVyLXdpZHRoOiAxcHg7CiAgICBwYWRkaW5nOiA3cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKfQovKiBlbmQgQG1lZGlhICovCg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgdmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIExpc3Q6OlV0aWwgcXcoKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlZhbGlkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCik7Cgo9aGVhZDEgTkFNRQoKVGltZUFjY291bnRpbmcucG0gLSBjb2RlIHRvIGV4ZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uCgo9aGVhZDEgREVTQ1JJUFRJT04KCkFsbCBmdW5jdGlvbnMKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb2RlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgndmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgRm9yY2UgYSByZWxvYWQgb2YgWlpaQXV0by5wbSB0byBnZXQgdGhlIGZyZXNoIGNvbmZpZ3VyYXRpb24gdmFsdWVzLgogICAgZm9yIG15ICRNb2R1bGUgKCBzb3J0IGtleXMgJUlOQyApIHsKICAgICAgICBpZiAoICRNb2R1bGUgPX4gbS9aWlpBQT91dG9cLnBtJC8gKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkSU5DeyRNb2R1bGV9OwogICAgICAgIH0KICAgIH0KCiAgICAjIENyZWF0ZSBjb21tb24gb2JqZWN0cyB3aXRoIGZyZXNoIGRlZmF1bHQgY29uZmlnLgogICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKCk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgQ29kZUluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZUluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlSW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ29kZVVuaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgdW5pbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVbmluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlVW5pbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBEZWFjdGl2YXRlIHRoZSBncm91cCAndGltZV9hY2NvdW50aW5nJyBpZiBleGlzdHMuCiAgICAkU2VsZi0+X0dyb3VwRGVhY3RpdmF0ZSgKICAgICAgICBOYW1lID0+ICd0aW1lX2FjY291bnRpbmcnLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl80XzBfOTEoKQoKVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGV4ZWN1dGVkIGlmIHRoZSBpbnN0YWxsZWQgbW9kdWxlIHZlcnNpb24gaXMgc21hbGxlciB0aGFuIDQuMC45MS4KCm15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzRfMF85MSgpOwoKPWN1dAoKc3ViIENvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl80XzBfOTEgeyAgICAjIyBubyBjcml0aWMKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGFuZ2UgY29uZmlndXJhdGlvbnMgdG8gbWF0Y2ggdGhlIG5ldyBtb2R1bGUgbG9jYXRpb24uCiAgICAkU2VsZi0+X01pZ3JhdGVDb25maWdzKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzkyKCkKClRoaXMgZnVuY3Rpb24gaXMgb25seSBleGVjdXRlZCBpZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSB2ZXJzaW9uIGlzIHNtYWxsZXIgdGhhbiA1LjAuOTIuCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzkyKCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzVfMF85MiB7ICAgICMjIG5vIGNyaXRpYwogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIFJlY292ZXIgdGhlIG9sZCBwZXJtaXNzaW9ucwogICAgJFNlbGYtPl9NaWdyYXRlUGVybWlzc2lvbnMoKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQxIFBSSVZBVEUgSU5URVJGQUNFCgo9aGVhZDIgX0dyb3VwRGVhY3RpdmF0ZSgpCgpkZWFjdGl2YXRlIGEgZ3JvdXAKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9Hcm91cERlYWN0aXZhdGUoCiAgICAgICAgTmFtZSA9PiAndGhlLWdyb3VwLW5hbWUnLAogICAgKTsKCj1jdXQKCnN1YiBfR3JvdXBEZWFjdGl2YXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtOYW1lfSApIHsKICAgICAgICBLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBOYW1lIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZ3JvdXAgb2JqZWN0CiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGxvb2t1cCBncm91cCBpZAogICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKAogICAgICAgIEdyb3VwID0+ICRQYXJhbXtOYW1lfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkR3JvdXBJRDsKCiAgICAjIGdldCB2YWxpZCBsaXN0CiAgICBteSAlVmFsaWRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICBteSAlVmFsaWRMaXN0UmV2ZXJzZSA9IHJldmVyc2UgJVZhbGlkTGlzdDsKCiAgICAjIGdldCBjdXJyZW50IGdyb3VwIGRhdGEKICAgIG15ICVHcm91cERhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwR2V0KAogICAgICAgIElEICAgICA9PiAkR3JvdXBJRCwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBkZWFjdGl2YXRlIGdyb3VwCiAgICAkR3JvdXBPYmplY3QtPkdyb3VwVXBkYXRlKAogICAgICAgICVHcm91cERhdGEsCiAgICAgICAgVmFsaWRJRCA9PiAkVmFsaWRMaXN0UmV2ZXJzZXtpbnZhbGlkfSwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX01pZ3JhdGVDb25maWdzKCkKCmNoYW5nZSBjb25maWd1cmF0aW9ucyB0byBtYXRjaCB0aGUgbmV3IG1vZHVsZSBsb2NhdGlvbi4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9NaWdyYXRlQ29uZmlncygpOwoKPWN1dAoKc3ViIF9NaWdyYXRlQ29uZmlncyB7CgogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgIG15ICRDb25maWdPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgTWlncmF0ZSB0aW1lIGFjY291bnRpbmcgbm90aWZpY2F0aW9uIFN5c0NvbmZpZwogICAgIyAgIGdldCBzZXR0aW5nIGNvbnRlbnQgZm9yIHRpbWUgYWNjb3VudGluZyBTeXNDb25maWcuCiAgICBteSAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6Ok5vdGlmeU1vZHVsZScpOwoKICAgIG15IEBOZXdTZXR0aW5nczsKCiAgICBpZiAoICRTZXR0aW5nLT57Jzg4OC1UaW1lQWNjb3VudGluZyd9LT57TW9kdWxlfSApIHsKCiAgICAgICAgIyB1cGRhdGUgbW9kdWxlIGxvY2F0aW9uCiAgICAgICAgJFNldHRpbmctPnsnODg4LVRpbWVBY2NvdW50aW5nJ30tPntNb2R1bGV9ID0gIktlcm5lbDo6T3V0cHV0OjpIVE1MOjpOb3RpZmljYXRpb246OlRpbWVBY2NvdW50aW5nIjsKCiAgICAgICAgIyBzZXQgbmV3IHNldHRpbmcKICAgICAgICBwdXNoIEBOZXdTZXR0aW5ncywgewogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnRnJvbnRlbmQ6Ok5vdGlmeU1vZHVsZSMjIzg4OC1UaW1lQWNjb3VudGluZycsCiAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICRTZXR0aW5nLT57J1RpbWVBY2NvdW50aW5nJ30sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIE1pZ3JhdGUgdGltZSBhY2NvdW50aW5nIHRvb2wgYmFyIFN5c0NvbmZpZwogICAgIyAgIGdldCBzZXR0aW5nIGNvbnRlbnQgZm9yIHRpbWUgYWNjb3VudGluZyBTeXNDb25maWcuCiAgICAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6OlRvb2xCYXJNb2R1bGUnKTsKCiAgICBpZiAoICRTZXR0aW5nLT57JzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJ30tPntNb2R1bGV9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAkU2V0dGluZy0+eycyMDEtVGltZUFjY291bnRpbmc6OkluY29tcGxldGVXb3JraW5nRGF5cyd9LT57TW9kdWxlfQogICAgICAgICAgICA9ICJLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VG9vbEJhcjo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzIjsKCiAgICAgICAgIyBzZXQgbmV3IHNldHRpbmcKICAgICAgICBwdXNoIEBOZXdTZXR0aW5ncywgewogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnRnJvbnRlbmQ6OlRvb2xCYXJNb2R1bGUjIyMyMDEtVGltZUFjY291bnRpbmc6OkluY29tcGxldGVXb3JraW5nRGF5cycsCiAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICRTZXR0aW5nLT57JzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJ30sCiAgICAgICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMSBpZiAhQE5ld1NldHRpbmdzOwoKICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5TZXR0aW5nc1NldCgKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIENvbW1lbnRzID0+ICdUaW1lQWNjb3VudGluZyAtIHBhY2thZ2Ugc2V0dXAgZnVuY3Rpb246IE1pZ3JhdGVDb25maWdzJywKICAgICAgICBTZXR0aW5ncyA9PiBcQE5ld1NldHRpbmdzCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX0dldE9UUlM1Q29uZmlnQmFja3VwKCkKCkdldCB0aGUgY3VzdG9tIGNvbmZpZ3VyYXRpb25zIG1hZGUgaW4gdGhlIHByZXZpb3VzIHZlcnNpb24sIE9UUlMgNS4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9HZXRPVFJTNUNvbmZpZ0JhY2t1cCgpOwoKPWN1dAoKc3ViIF9HZXRPVFJTNUNvbmZpZ0JhY2t1cCB7CiAgICBteSAkQ29uZmlnID0ge307CgogICAgbXkgJEZpbGVDbGFzcyA9ICdLZXJuZWw6OkNvbmZpZzo6QmFja3Vwczo6WlpaQXV0b09UUlM1JzsKICAgIGRlbGV0ZSAkSU5DeyRGaWxlQ2xhc3N9OwoKICAgIGlmICgKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5SZXF1aXJlKAogICAgICAgICAgICAkRmlsZUNsYXNzLAogICAgICAgICAgICBTaWxlbnQgPT4gMSwKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRGaWxlQ2xhc3MtPkxvYWQoJENvbmZpZyk7CiAgICB9CgogICAgcmV0dXJuICRDb25maWc7Cn0KCj1oZWFkMiBfTWlncmF0ZVBlcm1pc3Npb25zKCkKCmNoYW5nZSBwZXJtaXNzaW9ucyB0byBtYXRjaCB0aGUgb2xkIG9uZXMgYmVmb3JlIHRoZSB1cGdyYWRlLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X01pZ3JhdGVQZXJtaXNzaW9ucygpOwoKPWN1dAoKc3ViIF9NaWdyYXRlUGVybWlzc2lvbnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT2xkQ29uZmlnID0gJFNlbGYtPl9HZXRPVFJTNUNvbmZpZ0JhY2t1cCgpOwogICAgbXkgJE5ld0NvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJEdldENvbmZpZyA9IHN1YiB7CiAgICAgICAgbXkgJFNvdXJjZSAgICAgID0gc2hpZnQ7CiAgICAgICAgbXkgJFNldHRpbmdOYW1lID0gc2hpZnQ7CgogICAgICAgIG15ICRDb25maWcgPSAkU291cmNlOwogICAgICAgIG15IEBLZXlzID0gc3BsaXQgJyMjIycsICRTZXR0aW5nTmFtZTsKICAgICAgICB3aGlsZSAoIG15ICRLZXkgPSBzaGlmdCBAS2V5cyApIHsKICAgICAgICAgICAgJENvbmZpZyA9ICRDb25maWctPnskS2V5fTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkQ29uZmlnOwogICAgfTsKCiAgICBteSBATmV3U2V0dGluZ3MgICAgICAgPSAoKTsKICAgIG15IEBTZXR0aW5nc1RvTWlncmF0ZSA9ICgKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBHcm91cCA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIE5hdkJhciA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCbG9jayAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0VkaXQnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcnLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBHcm91cCA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIE5hdkJhciA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCbG9jayAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3JywKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uID0+ICdUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJywKICAgICAgICAgICAgICAgIEdyb3VwICAgICAgID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgTmF2QmFyID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NrID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBHcm91cCA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdTZXR0aW5ncycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcnLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBHcm91cCA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIE5hdkJhciA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCbG9jayA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVwb3J0aW5nJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBHcm91cCA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwoKICAgIFNFVFRJTkc6CiAgICBmb3IgbXkgJFNldHRpbmcgKEBTZXR0aW5nc1RvTWlncmF0ZSkgewogICAgICAgIG15ICRTZXR0aW5nT2xkQ29uZmlnID0gJEdldENvbmZpZy0+KCAkT2xkQ29uZmlnLCAkU2V0dGluZy0+e05hbWV9LCApOwogICAgICAgIG15ICRTZXR0aW5nRGVmYXVsdHMgPSAkU2V0dGluZy0+e0RlZmF1bHRzfTsKCiAgICAgICAgbXkgQEdyb3VwR3JvdXBSbyA9IHF3KCBHcm91cCBHcm91cFJvICk7CgogICAgICAgIHsKICAgICAgICAgICAgbXkgJE5ld1NldHRpbmcgPSAkR2V0Q29uZmlnLT4oICROZXdDb25maWcsICRTZXR0aW5nLT57TmFtZX0gKTsKCiAgICAgICAgICAgICMgQ2hlY2sgZm9yIEdyb3VwIGFuZCBHcm91cFJvLgogICAgICAgICAgICBmb3IgbXkgJEtleSAoQEdyb3VwR3JvdXBSbykgewogICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRTZXR0aW5nT2xkQ29uZmlnLT57JEtleX0gfHwgZGVmaW5lZCAkU2V0dGluZ0RlZmF1bHRzLT57JEtleX0gKSB7CiAgICAgICAgICAgICAgICAgICAgJE5ld1NldHRpbmctPnskS2V5fSA9ICRTZXR0aW5nT2xkQ29uZmlnLT57JEtleX0gLy8gJFNldHRpbmdEZWZhdWx0cy0+eyRLZXl9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBwdXNoIEBOZXdTZXR0aW5ncywgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJFNldHRpbmctPntOYW1lfSwKICAgICAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICROZXdTZXR0aW5nLAogICAgICAgICAgICAgICAgSXNWYWxpZCAgICAgICAgPT4gMSwKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgZm9yIE5hdkJhciA9PiBOYXZpZ2F0aW9uLgogICAgICAgIGlmICggJFNldHRpbmdPbGRDb25maWctPntOYXZCYXJ9IHx8ICRTZXR0aW5nRGVmYXVsdHMtPntOYXZCYXJ9ICkgewogICAgICAgICAgICBteSAoIHVuZGVmLCAkRnJvbnRlbmQgKSA9IHNwbGl0ICcjIyMnLCAkU2V0dGluZy0+e05hbWV9OwogICAgICAgICAgICBteSAkTmV3U2V0dGluZyA9ICRHZXRDb25maWctPiggJE5ld0NvbmZpZywgIkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjJHsgRnJvbnRlbmQgfSIgKTsKCiAgICAgICAgICAgIGZvciBteSAkSW5kZXggKCBzb3J0IGtleXMgJXskTmV3U2V0dGluZ30gKSB7CiAgICAgICAgICAgICAgICBteSAkTmV3SXRlbSA9ICROZXdTZXR0aW5nLT57JEluZGV4fTsKCiAgICAgICAgICAgICAgICBTT1VSQ0U6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFNvdXJjZSAoICggJFNldHRpbmdPbGRDb25maWctPntOYXZCYXJ9LCAkU2V0dGluZ0RlZmF1bHRzLT57TmF2QmFyfSApICkgewogICAgICAgICAgICAgICAgICAgIG15ICRPbGRJdGVtCiAgICAgICAgICAgICAgICAgICAgICAgID0gTGlzdDo6VXRpbDo6Zmlyc3QgeyAkXy0+e05hbWV9IGVxICROZXdJdGVtLT57TmFtZX0gJiYgJF8tPntCbG9ja30gZXEgJE5ld0l0ZW0tPntCbG9ja30gfQogICAgICAgICAgICAgICAgICAgIEB7JFNvdXJjZX07CiAgICAgICAgICAgICAgICAgICAgbmV4dCBTT1VSQ0UgaWYgISRPbGRJdGVtOwoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJEtleSAoQEdyb3VwR3JvdXBSbykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJE9sZEl0ZW0tPnskS2V5fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXdJdGVtLT57JEtleX0gPSAkT2xkSXRlbS0+eyRLZXl9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGxhc3QgU09VUkNFOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjJHsgRnJvbnRlbmQgfSMjIyR7IEluZGV4IH0iLAogICAgICAgICAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICROZXdJdGVtLAogICAgICAgICAgICAgICAgICAgIElzVmFsaWQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIERlcGxveSB0aGUgbmV3IHNldHRpbmdzLgogICAgbXkgJFNldHRpbmdzRGVwbG95ZWQgPSAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nc1NldCgKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIENvbW1lbnRzID0+ICdUaW1lQWNjb3VudGluZyAtIHBhY2thZ2Ugc2V0dXAgZnVuY3Rpb246IF9NaWdyYXRlUGVybWlzc2lvbnMnLAogICAgICAgIFNldHRpbmdzID0+IFxATmV3U2V0dGluZ3MsCiAgICApOwogICAgaWYgKCAhJFNldHRpbmdzRGVwbG95ZWQgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdFcnJvciB3aGlsZSBkZXBsb3lpbmcgdGhlIG1pZ3JhdGVkIHBlcm1pc3Npb25zIScsCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
JVBERi0xLjQKJaqrrK0KMSAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDIuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMi4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTcxMTA4MTkzMjA4KzAxJzAwJykKPj4KZW5kb2JqCjIgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAzIDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nO2ZZ1BUWRaA73uvc6Chu2kyNDlJlNCA5JwkSBYV6G4yLTQ5mJDBERhBRCQpgogCDjg6BBlFRRQDoqCAeRoZBJRxcBRRUVnAH7NVu7VbW7W1f7bPj/e+OufWO+e+ulXvq3oAyJDi2QnJsD4ACbwUvq+zHTMoOISJvQ9wgAxIgAow4ezkRFtvbw+wHCtrwT/E+1EArdzv6fzz+r8MEieBxwEAoi9zLIebzF7mncsczUngrOSnVzg9JTEFANh7men85QGXmbPCEd84Y4WjvnHR6ho/X/tlPgoAjhS1yoRTKxyxytSuFWZH8xMAkO5bXq/CTuQvP196pZfitxlWQ3RlP8woLo/LD0/hcpj/4db+ffxdL3Ty8sv/rzf4H/dZOTvf6K3l6pmAGBV/5baWAcB6DQBS8ldO5TAAlN0AdPT8lYs4DkBnCQCSz9ip/LRvOdTq7IAAKIAOpIA8UAYaQAcYAlNgAWyAI3ADXsAPBIPNgA2iQQLgg3SQA3aBfFAISsBBUAVqQQNoAq3gDOgE58FlcA3cAnfBCHgMBGASvAJz4D1YhCAIC5EhGiQFKUCqkDZkCLEgK8gR8oB8oWAoDIqCeFAqlAPthgqhUqgKqoOaoJ+gc9Bl6AY0BD2ExqEZ6E/oE4zAJJgOy8FqsB7Mgm1hd9gP3gRHwUlwFpwH74Mr4Hr4FNwBX4ZvwSOwAH4FzyMAISIMRBHRQViIPeKFhCCRCB/ZjhQg5Ug90op0I/3IPUSAzCIfURgUDcVE6aAsUC4ofxQblYTajipCVaFOojpQfah7qHHUHOormoyWRWujzdGu6CB0FDodnY8uRzei29FX0SPoSfR7DAbDwKhjTDEumGBMLCYbU4Q5jGnDXMIMYSYw81gsVgqrjbXEemHDsSnYfGwl9hT2InYYO4n9gCPiFHCGOCdcCI6Hy8WV45pxPbhh3BRuES+KV8Wb473wHHwmvhjfgO/G38FP4hcJYgR1giXBjxBL2EWoILQSrhKeEN4SiUQlohnRhxhD3EmsIJ4mXieOEz+SqCQtkj0plJRK2kc6QbpEekh6SyaT1cg25BByCnkfuYl8hfyM/EGEJqIr4irCEdkhUi3SITIs8pqCp6hSbCmbKVmUcspZyh3KrCheVE3UXjRcdLtoteg50THReTGamIGYl1iCWJFYs9gNsWkqlqpGdaRyqHnUY9Qr1AkaQlOm2dPYtN20BtpV2iQdQ1enu9Jj6YX0H+mD9DlxqriReIB4hni1+AVxAQNhqDFcGfGMYsYZxijjk4SchK0EV2KvRKvEsMSCpIykjSRXskCyTXJE8pMUU8pRKk5qv1Sn1FNplLSWtI90uvQR6avSszJ0GQsZtkyBzBmZR7KwrJasr2y27DHZAdl5OXk5Z7lEuUq5K3Kz8gx5G/lY+TL5HvkZBZqClUKMQpnCRYWXTHGmLTOeWcHsY84pyiq6KKYq1ikOKi4qqSv5K+UqtSk9VSYos5QjlcuUe5XnVBRUPFVyVFpUHqniVVmq0aqHVPtVF9TU1QLV9qh1qk2rS6q7qmept6g/0SBrWGskadRr3NfEaLI04zQPa97VgrWMtaK1qrXuaMPaJtox2oe1h9ag15it4a2pXzOmQ9Kx1UnTadEZ12Xoeujm6nbqvtZT0QvR26/Xr/dV31g/Xr9B/7EB1cDNINeg2+BPQy1DtmG14f215LVOa3es7Vr7xkjbiGt0xOiBMc3Y03iPca/xFxNTE75Jq8mMqYppmGmN6RiLzvJmFbGum6HN7Mx2mJ03+2huYp5ifsb8DwsdiziLZovpderruOsa1k1YKlmGW9ZZCqyYVmFWR60E1orW4db11s9tlG04No02U7aatrG2p2xf2+nb8e3a7Rbsze232V9yQBycHQocBh2pjv6OVY7PnJScopxanOacjZ2znS+5oF3cXfa7jLnKubJdm1zn3Ezdtrn1uZPcN7hXuT/30PLge3R7wp5ungc8n6xXXc9b3+kFvFy9Dng99Vb3TvL+xQfj4+1T7fPC18A3x7d/A23Dlg3NG9772fkV+z321/BP9e8NoASEBjQFLAQ6BJYGCoL0grYF3QqWDo4J7grBhgSENIbMb3TceHDjZKhxaH7o6Cb1TRmbbmyW3hy/+cIWypbwLWfD0GGBYc1hn8O9wuvD5yNcI2oi5tj27EPsVxwbThlnhmvJLeVORVpGlkZOR1lGHYiaibaOLo+ejbGPqYp5E+sSWxu7EOcVdyJuKT4wvi0BlxCWcI5H5cXx+rbKb83YOpSonZifKEgyTzqYNMd35zcmQ8mbkrtS6Msf6YFUjdTvUsfTrNKq0z6kB6SfzRDL4GUMZGpl7s2cynLKOp6NymZn9+Yo5uzKGd9mu61uO7Q9YnvvDuUdeTsmdzrvPLmLsCtu1+1c/dzS3He7A3d358nl7cyb+M75u5Z8kXx+/tgeiz2136O+j/l+cO/avZV7vxZwCm4W6heWF34uYhfd/MHgh4oflvZF7hssNik+UoIp4ZWM7rfef7JUrDSrdOKA54GOMmZZQdm7g1sO3ig3Kq89RDiUekhQ4VHRValSWVL5uSq6aqTarrqtRrZmb83CYc7h4SM2R1pr5WoLaz8djTn6oM65rqNerb78GOZY2rEXDQEN/cdZx5sapRsLG7+c4J0QnPQ92ddk2tTULNtc3AK3pLbMnAo9dfdHhx+7WnVa69oYbYWnwenU0y9/Cvtp9Iz7md6zrLOtP6v+XNNOay/ogDoyO+Y6ozsFXcFdQ+fczvV2W3S3/6L7y4nziuerL4hfKO4h9OT1LF3Mujh/KfHS7OWoyxO9W3ofXwm6cr/Pp2/wqvvV69ecrl3pt+2/eN3y+vkb5jfO3WTd7LxlcqtjwHig/bbx7fZBk8GOO6Z3uu6a3e0eWjfUM2w9fPmew71r913v3xpZPzI06j/6YCx0TPCA82D6YfzDN4/SHi0+3vkE/aTgqejT8meyz+p/1fy1TWAiuDDuMD7wfMPzxxPsiVe/Jf/2eTLvBflF+ZTCVNO04fT5GaeZuy83vpx8lfhqcTb/d7Hfa15rvP75D5s/BuaC5ibf8N8s/Vn0VurtiXdG73rnveefvU94v7hQ8EHqw8mPrI/9nwI/TS2mf8Z+rvii+aX7q/vXJ0sJS0tCFxC6gNAFhC4gdAGhCwhdQOgCQhcQuoDQBYQuIHQBoQsIXeD/2AVW/+MsB7JyOTYGgF82AB63AaisAkAtEgBKaAo3I2WlytvKZG9NzOTHREWnrGGmJnOZkXwuNz5zpfY3+wIKCAplbmRzdHJlYW0KZW5kb2JqCjMgMCBvYmoKMjQ1MwplbmRvYmoKNCAwIG9iagpbL0lDQ0Jhc2VkIDIgMCBSXQplbmRvYmoKNSAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDYgMCBSCj4+CnN0cmVhbQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgcmRmOmFib3V0PSIiPgo8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9ybWF0Pgo8ZGM6bGFuZ3VhZ2U+ZW48L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4yMDE3LTExLTA4VDE5OjMyOjA4KzAxOjAwPC9kYzpkYXRlPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHJkZjphYm91dD0iIj4KPHBkZjpQcm9kdWNlcj5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC9wZGY6UHJvZHVjZXI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHJkZjphYm91dD0iIj4KPHhtcDpDcmVhdG9yVG9vbD5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC94bXA6Q3JlYXRvclRvb2w+Cjx4bXA6TWV0YWRhdGFEYXRlPjIwMTctMTEtMDhUMTk6MzI6MDgrMDE6MDA8L3htcDpNZXRhZGF0YURhdGU+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE3LTExLTA4VDE5OjMyOjA4KzAxOjAwPC94bXA6Q3JlYXRlRGF0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Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA2NjcuNjI5IDE1My44NTggNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MyAwIFIKL0ggL0kKCj4+CmVuZG9iago1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY2Ny42MjkgNTM5Ljk5OCA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjU2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNzAwLjggbnVsbF0KPj4KZW5kb2JqCjU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY1NS42MjkgMjUzLjUwNyA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjU1LjYyOSA1MzkuOTk4IDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA2MzQuNCBudWxsXQo+PgplbmRvYmoKNjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQzLjYyOSAyMjYuMTMyIDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NDMuNjI5IDUzOS45OTggNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago2MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDU0Ni4wIG51bGxdCj4+CmVuZG9iago2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzEuNjI5IDI1NS4wMTkgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MiAwIFIKL0ggL0kKCj4+CmVuZG9iago2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYzMS42MjkgNTM5Ljk5OCA2NDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjY1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNDc5LjYgbnVsbF0KPj4KZW5kb2JqCjY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYxOS42MjkgMjQ3LjUwOCA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjE5LjYyOSA1MzkuOTk4IDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA0MDEuMiBudWxsXQo+PgplbmRvYmoKNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjA3LjYyOSAyNTIuMTMzIDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2MDcuNjI5IDUzOS45OTggNjE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2OCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDM1OC44IG51bGxdCj4+CmVuZG9iago3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1OTUuNjI5IDI2My42NTYgNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MSAwIFIKL0ggL0kKCj4+CmVuZG9iago3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU5NS42MjkgNTM5Ljk5OCA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjc0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMzA0LjQgbnVsbF0KPj4KZW5kb2JqCjc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4My42MjkgNDA3LjQ0OSA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTgzLjYyOSA1MzkuOTk4IDU5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAyMjYuMCBudWxsXQo+PgplbmRvYmoKNzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTcxLjYyOSAzMzMuNjE5IDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NzEuNjI5IDUzOS45OTggNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NyAwIFIKL0ggL0kKCj4+CmVuZG9iago4MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDE1OS42IG51bGxdCj4+CmVuZG9iago4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NTkuNjI5IDE4Mi40ODcgNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MCAwIFIKL0ggL0kKCj4+CmVuZG9iago4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU1OS42MjkgNTM5Ljk5OCA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjgzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTQ3LjYyOSAyMDQuOTc2IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NDcuNjI5IDUzOS45OTggNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MyAwIFIKL0ggL0kKCj4+CmVuZG9iago4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MzUuNjI5IDE3My40MDggNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NiAwIFIKL0ggL0kKCj4+CmVuZG9iago4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDUzNS42MjkgNTM5Ljk5OCA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNjI2LjQgbnVsbF0KPj4KZW5kb2JqCjkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUyMy42MjkgMTY0LjkxMyA1MzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy44MDcgNTIzLjYyOSA1NDAuMTY3IDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA1NTguMCBudWxsXQo+PgplbmRvYmoKOTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTExLjYyOSAyMDkuNTUyIDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1MTEuNjI5IDUzOS45OTggNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MiAwIFIKL0ggL0kKCj4+CmVuZG9iago5NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDQ4OS42IG51bGxdCj4+CmVuZG9iago5NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0OTkuNjI5IDIyMS43OTQgNTA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NSAwIFIKL0ggL0kKCj4+CmVuZG9iago5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQ5OS42MjkgNTM5Ljk5OCA1MDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjk4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjk5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDg3LjYyOSAxNDkuMzkgNDk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0ODcuNjI5IDUzOS45OTggNDk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA2NDQuOCBudWxsXQo+PgplbmRvYmoKMTAyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ3NS42MjkgMTk5LjAwNiA0ODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0NzUuNjI5IDUzOS45OTggNDg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNTY4LjQgbnVsbF0KPj4KZW5kb2JqCjEwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NjMuNjI5IDE5NC42NDEgNDczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDYzLjYyOSA1MzkuOTk4IDQ3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0NTEuNjI5IDE2MS43ODQgNDYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDUxLjYyOSA1MzkuOTk4IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDY2Ni4xNzggbnVsbF0KPj4KZW5kb2JqCjExMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MzkuNjI5IDM2MS45MjEgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDM5LjYyOSA1MzkuOTk4IDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDYwMC4xNjEgbnVsbF0KPj4KZW5kb2JqCjExNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MjcuNjI5IDM4OC42MDYgNDM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNDI3LjYyOSA1MzkuOTk3IDQzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDUzNC4xNDQgbnVsbF0KPj4KZW5kb2JqCjExNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MTUuNjI5IDM5MS4wMzYgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNDE1LjYyOSA1MzkuOTk3IDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDQ2OC4xMjcgbnVsbF0KPj4KZW5kb2JqCjEyMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MDMuNjI5IDM3OC4yODcgNDEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNDAzLjYyOSA1MzkuOTk3IDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDQwMi4xMSBudWxsXQo+PgplbmRvYmoKMTIzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM5MS42MjkgMzY1LjM3OCA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAzOTEuNjI5IDUzOS45OTcgNDAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgMzM2LjA5MyBudWxsXQo+PgplbmRvYmoKMTI2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM3OS42MjkgNDEwLjc0OCAzODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAzNzkuNjI5IDUzOS45OTcgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgMjcwLjA3NiBudWxsXQo+PgplbmRvYmoKMTI5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM2Ny42MjkgNDEwLjc0OCAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAzNjcuNjI5IDUzOS45OTcgMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTMxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgMjA0LjA1OSBudWxsXQo+PgplbmRvYmoKMTMyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM1NS42MjkgNDM4LjMzOSAzNjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAzNTUuNjI5IDUzOS45OTcgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgMTM4LjA0MiBudWxsXQo+PgplbmRvYmoKMTM1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM0My42MjkgNDM5Ljg2MyAzNTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAzNDMuNjI5IDUzOS45OTcgMzUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEzOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMzEuNjI5IDQzMy40NDggMzQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMzMxLjYyOSA1MzkuOTk3IDM0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDY2MS43ODIgbnVsbF0KPj4KZW5kb2JqCjE0MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMTkuNjI5IDQyMS40NDYgMzI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMzE5LjYyOSA1MzkuOTk3IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDU5Ny42MTkgbnVsbF0KPj4KZW5kb2JqCjE0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMDcuNjI5IDM3MC42MzcgMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMzA3LjYyOSA1MzkuOTk3IDMxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDUzMy40NTYgbnVsbF0KPj4KZW5kb2JqCjE0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyOTUuNjI5IDUwNS4zOTQgMzA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42OTggMjk1LjYyOSA1NDAuMDU4IDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDQ0Mi44OTMgbnVsbF0KPj4KZW5kb2JqCjE1MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyODMuNjI5IDQ2Ni41NDcgMjkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMjgzLjYyOSA1MzkuOTk3IDI5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDM2NC4zMyBudWxsXQo+PgplbmRvYmoKMTUzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI3MS42MjkgNDk0LjEzOCAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNSAyNzEuNjI5IDUzOS45OTUgMjgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMjg1Ljc2NyBudWxsXQo+PgplbmRvYmoKMTU2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI1OS42MjkgNDk1LjY1OSAyNjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNSAyNTkuNjI5IDUzOS45OTUgMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMjA3LjIwNCBudWxsXQo+PgplbmRvYmoKMTU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI0Ny42MjkgNDgyLjkxMiAyNTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAyNDcuNjI5IDUzOS45OTcgMjU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMTI4LjY0MSBudWxsXQo+PgplbmRvYmoKMTYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIzNS42MjkgNDcwLjkxIDI0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTYxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDIzNS42MjkgNTM5Ljk5NyAyNDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA3MDguMCBudWxsXQo+PgplbmRvYmoKMTY1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIyMy42MjkgMzY5Ljc5IDIzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDIyMy42MjkgNTM5Ljk5NyAyMzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA2NDIuNjY5IG51bGxdCj4+CmVuZG9iagoxNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjExLjYyOSA0MDEuMTE2IDIyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDIxMS42MjkgNTM5Ljk5NyAyMjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA1NzcuMzM4IG51bGxdCj4+CmVuZG9iagoxNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTk5LjYyOSAzMTkuNzI5IDIwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDE5OS42MjkgNTM5Ljk5NyAyMDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA1MDAuMDA3IG51bGxdCj4+CmVuZG9iagoxNzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTg3LjYyOSAyNjguOTQgMTk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTg3LjYyOSA1MzkuOTk3IDE5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTczIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDQxMC42NzYgbnVsbF0KPj4KZW5kb2JqCjE3NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNzUuNjI5IDMyOS44MDkgMTg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTc1LjYyOSA1MzkuOTk3IDE4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDMzMy4zNDUgbnVsbF0KPj4KZW5kb2JqCjE4MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNjMuNjI5IDMxMS4zMTIgMTczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTYzLjYyOSA1MzkuOTk3IDE3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDI2OC4wMTQgbnVsbF0KPj4KZW5kb2JqCjE4MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNTEuNjI5IDMxMy42NDMgMTYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTUxLjYyOSA1MzkuOTk3IDE2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDIwMi42ODMgbnVsbF0KPj4KZW5kb2JqCjE4NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzkuNjI5IDMxNC4yMSAxNDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAxMzkuNjI5IDUzOS45OTggMTQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMTM3LjM1MiBudWxsXQo+PgplbmRvYmoKMTg5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEyNy42MjkgMzE2LjU0MSAxMzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAxMjcuNjI5IDUzOS45OTggMTM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMTUuNjI5IDMxNi4xNTMgMTI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTE1LjYyOSA1MzkuOTk3IDEyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDY2MS4xNDIgbnVsbF0KPj4KZW5kb2JqCjE5NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMDMuNjI5IDMyMS41NjEgMTEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMTAzLjYyOSA1MzkuOTk4IDExMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDU5Ni4xNDcgbnVsbF0KPj4KZW5kb2JqCjE5OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA5MS42MjkgMzMwLjExNyAxMDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA5MS42MjkgNTM5Ljk5OCAxMDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA1MzEuMTUyIG51bGxdCj4+CmVuZG9iagoyMDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzkuNjI5IDMyNy44OTYgODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA3OS42MjkgNTM5Ljk5OCA4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjAwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwMyAwIG9iago8PCAvTGVuZ3RoIDIwNCAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnic5X3LrixHcuT+fsX5AaXi/QAGBPgUZnaCGtBC0EqC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Ugo3NSAwIFIKNzYgMCBSCjc4IDAgUgo3OSAwIFIKODEgMCBSCjgyIDAgUgo4NCAwIFIKODUgMCBSCjg3IDAgUgo4OCAwIFIKOTAgMCBSCjkxIDAgUgo5MyAwIFIKOTQgMCBSCjk2IDAgUgo5NyAwIFIKOTkgMCBSCjEwMCAwIFIKMTAyIDAgUgoxMDMgMCBSCjEwNSAwIFIKMTA2IDAgUgoxMDggMCBSCjEwOSAwIFIKMTExIDAgUgoxMTIgMCBSCjExNCAwIFIKMTE1IDAgUgoxMTcgMCBSCjExOCAwIFIKMTIwIDAgUgoxMjEgMCBSCjEyMyAwIFIKMTI0IDAgUgoxMjYgMCBSCjEyNyAwIFIKMTI5IDAgUgoxMzAgMCBSCjEzMiAwIFIKMTMzIDAgUgoxMzUgMCBSCjEzNiAwIFIKMTM4IDAgUgoxMzkgMCBSCjE0MSAwIFIKMTQyIDAgUgoxNDQgMCBSCjE0NSAwIFIKMTQ3IDAgUgoxNDggMCBSCjE1MCAwIFIKMTUxIDAgUgoxNTMgMCBSCjE1NCAwIFIKMTU2IDAgUgoxNTcgMCBSCjE1OSAwIFIKMTYwIDAgUgoxNjIgMCBSCjE2MyAwIFIKMTY1IDAgUgoxNjYgMCBSCjE2OCAwIFIKMTY5IDAgUgoxNzEgMCBSCjE3MiAwIFIKMTc0IDAgUgoxNzUgMCBSCjE3NyAwIFIKMTc4IDAgUgoxODAgMCBSCjE4MSAwIFIKMTgzIDAgUgoxODQgMCBSCjE4NiAwIFIKMTg3IDAgUgoxODkgMCBSCjE5MCAwIFIKMTkyIDAgUgoxOTMgMCBSCjE5NSAwIFIKMTk2IDAgUgoxOTggMCBSCjE5OSAwIFIKMjAxIDAgUgoyMDIgMCBSCl0KZW5kb2JqCjIwNiAwIG9iago8PAogIC9SZXNvdXJjZXMgMTQgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDE1IDAgUgogIC9Bbm5vdHMgMjA1IDAgUgogIC9Db250ZW50cyAyMDMgMCBSCj4+CmVuZG9iagoyMDcg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L01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQ29udGVudHMgMjM4IDAgUgo+PgplbmRvYmoKMjQxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNDY2LjE1NyBudWxsXQo+PgplbmRvYmoKMjQyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDcwOS4wMDUgMzE5Ljg4OCA3MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA3MDkuMDA1IDUzOS45OTcgNzE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNDAxLjE2MiBudWxsXQo+PgplbmRvYmoKMjQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY5Ny4wMDUgMzA1LjE1NiA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2OTcuMDA1IDUzOS45OTggNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMzM2LjE2NyBudWxsXQo+PgplbmRvYmoKMjQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY4NS4wMDUgMzM4LjUyNCA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA2ODUuMDA1IDUzOS45OTcgNjk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMjcxLjE3MiBudWxsXQo+PgplbmRvYmoKMjUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMzI4LjM5NCA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NzMuMDA1IDUzOS45OTggNjgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMTk0LjE3NyBudWxsXQo+PgplbmRvYmoKMjU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY2MS4wMDUgNDgwLjc3IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY2MS4wMDUgNTM5Ljk5OCA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCAxMTQuNzgyIG51bGxdCj4+CmVuZG9iagoyNTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQ5LjAwNSAzNzUuNzg2IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY0OS4wMDUgNTM5Ljk5OCA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgNzA4LjAgbnVsbF0KPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzcuMDA1IDMyNy4zMzggNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjM3LjAwNSA1MzkuOTk4IDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDkgMCBSIC9YWVogNzIuMCA2NDMuNiBudWxsXQo+PgplbmRvYmoKMjYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYyNS4wMDUgMzY0Ljk2OSA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2MjUuMDA1IDUzOS45OTggNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwOSAwIFIgL1hZWiA3Mi4wIDU3OS4yIG51bGxdCj4+CmVuZG9iagoyNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjEzLjAwNSA0MzguNDQ4IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDYxMy4wMDUgNTM5Ljk5NyA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgNTAyLjggbnVsbF0KPj4KZW5kb2JqCjI2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDEuMDA1IDMzMC40NjYgNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNjAxLjAwNSA1MzkuOTk3IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDkgMCBSIC9YWVogNzIuMCA0MjYuNCBudWxsXQo+PgplbmRvYmoKMjcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4OS4wMDUgMzIyLjYyNyA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1ODkuMDA1IDUzOS45OTcgNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwOSAwIFIgL1hZWiA3Mi4wIDM1MC4wIG51bGxdCj4+CmVuZG9iagoyNzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTc3LjAwNSAyNzUuNTg0IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDU3Ny4wMDUgNTM5Ljk5NyA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgMjczLjYgbnVsbF0KPj4KZW5kb2JqCjI3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NjUuMDA1IDI1Ni43MzggNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTY1LjAwNSA1MzkuOTk3IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTIgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTUzLjAwNSAxMjUuMyA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NTMuMDA1IDUzOS45OTggNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjgzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxMiAwIFIgL1hZWiA3Mi4wIDU3MC4xNjIgbnVsbF0KPj4KZW5kb2JqCjI4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NDEuMDA1IDIyNi45NCA1NTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NDEuMDA1IDUzOS45OTggNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxMiAwIFIgL1hZWiA3Mi4wIDI4NC43MzQgbnVsbF0KPj4KZW5kb2JqCjI4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MjkuMDA1IDIxNC40OTcgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTI5LjAwNSA1MzkuOTk4IDUzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTUgMCBSIC9YWVogNzIuMCA2ODIuNDQgbnVsbF0KPj4KZW5kb2JqCjI5MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MTcuMDA1IDE3NS4zMiA1MjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA1MTcuMDA1IDUzOS45OTggNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjkyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNSAwIFIgL1hZWiA3Mi4wIDM5OC40MjQgbnVsbF0KPj4KZW5kb2JqCjI5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MDUuMDA1IDI2Mi42OTIgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzcgNTA1LjAwNSA1MzkuOTk3IDUxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDkzLjAwNSAxMzIuOTA4IDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDQ5My4wMDUgNTM5Ljk5OCA1MDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjM3IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI5OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ4MS4wMDUgMTE5LjA2IDQ5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDQ4MS4wMDUgNTM5Ljk5OCA0OTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjM3IDAgUiAvWFlaIDcyLjAgNjc4LjggbnVsbF0KPj4KZW5kb2JqCjMwMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NjkuMDA1IDE3MS45MiA0NzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA0NjkuMDA1IDUzOS45OTggNDc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzNyAwIFIgL1hZWiA3Mi4wIDYyNC40IG51bGxdCj4+CmVuZG9iagozMDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDU3LjAwNSAxNjcuODMzIDQ2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDQ1Ny4wMDUgNTM5Ljk5OCA0NjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNCAwIFIKL0gg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fuzXgdivAcHPwF3Cr+Ld2Q/PU8JPcS/w01hT8NPoRcFPo6aCn8ZzUfAz2EHBr6lB8Ku4JvtxHvwargk/w5HwM3grCn4N/BT8KjwJxX68H/wM3pGCX81r8DPYXcOvavJx5nM7H+x5QO9TY68xpoHJ85knZZ6RwdN90MMY5qz8+QU77ADYCmVuZHN0cmVhbQplbmRvYmoKMzQwIDAgb2JqCjQzOAplbmRvYmoKMTUgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzCi9Db3VudCAyMQovS2lkcyBbMTMgMCBSIDIwNiAwIFIgMzEzIDAgUiAyMjIgMCBSIDI1IDAgUiAyOCAwIFIgMzEgMCBSIDM3IDAgUiA0MCAwIFIgNDMgMCBSIDQ2IDAgUiA0OSAwIFIgMjA5IDAgUiAyMTIgMCBSIDIxNSAwIFIgMjI1IDAgUiAyMjggMCBSIDIzMSAwIFIgMjM0IDAgUiAyMzcgMCBSIDI0MCAwIFIgXSA+PgplbmRvYmoKMzQxIDAgb2JqCjw8CiAgL1R5cGUgL0NhdGFsb2cKICAvUGFnZXMgMTUgMCBSCiAgL0xhbmcgKGVuKQogIC9NZXRhZGF0YSA1IDAgUgogIC9QYWdlTGFiZWxzIDM0MiAwIFIKPj4KZW5kb2JqCjE0IDAgb2JqCjw8CiAgL0ZvbnQgPDwKICAvRjE2IDMxOSAwIFIKICAvRjE1IDMyOCAwIFIKICAvRjE5IDMzNyAwIFIKPj4KICAvUHJvY1NldCBbL1BERiAvSW1hZ2VCIC9JbWFnZUMgL1RleHRdCiAgL1hPYmplY3QgPDwKICAvSW0xIDcgMCBSCiAgL0ltMiA5IDAgUgogIC9JbTMgMTYgMCBSCiAgL0ltNCAxOCAwIFIKPj4KICAvQ29sb3JTcGFjZSA8PCAvRGVmYXVsdFJHQiA0IDAgUiA+Pgo+PgplbmRvYmoKMzQyIDAgb2JqCjw8IC9OdW1zIFswIDw8IC9TIC9EID4+IDEgPDwgL1MgL3IgL1N0IDIgPj4gMiA8PCAvUyAvciAvU3QgMyA+PiAzIDw8IC9TIC9yIC9TdCA0ID4+IDQgPDwgL1MgL3IgL1N0IDUgPj4gNSA8PCAvUyAvRCA+PiAxMiA8PCAvUyAvRCAvU3QgOCA+PiAxNSA8PCAvUyAvRCAvU3QgMTEgPj5dID4+CmVuZG9iagp4cmVmCjAgMzQzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTQ1IDAwMDAwIG4gCjAwMDAwMDI2ODMgMDAwMDAgbiAKMDAwMDAwMjcwMyAwMDAwMCBuIAowMDAwMDAyNzM2IDAwMDAwIG4gCjAwMDAwMDM2ODMgMDAwMDAgbiAKMDAwMDAwMzcwMiAwMDAwMCBuIAowMDAwMDUyMjI3IDAwMDAwIG4gCjAwMDAwNTIyNDggMDAwMDAgbiAKMDAwMDEwNTUwOCAwMDAwMCBuIAowMDAwMTA1NTMwIDAwMDAwIG4gCjAwMDAxMDYwMzUgMDAwMDAgbiAKMDAwMDEwNjA1NSAwMDAwMCBuIAowMDAwMjYyMzkzIDAwMDAwIG4gCjAwMDAyNjIwNzEgMDAwMDAgbiAKMDAwMDEwNjI0OSAwMDAwMCBuIAowMDAwMTEyNDIwIDAwMDAwIG4gCjAwMDAxMTI0NDEgMDAwMDAgbiAKMDAwMDExOTYyMSAwMDAwMCBuIAowMDAwMTE5NjQyIDAwMDAwIG4gCjAwMDAxMTk3MjcgMDAwMDAgbiAKMDAwMDExOTg2NSAwMDAwMCBuIAowMDAwMTIwNzk3IDAwMDAwIG4gCjAwMDAxMjA4MTcgMDAwMDAgbiAKMDAwMDEyMDg0NCAwMDAwMCBuIAowMDAwMTIxMDU1IDAwMDAwIG4gCjAwMDAxMjM3ODYgMDAwMDAgbiAKMDAwMDEyMzgwNyAwMDAwMCBuIAowMDAwMTI0MDAxIDAwMDAwIG4gCjAwMDAxMjQ4NTYgMDAwMDAgbiAKMDAwMDEyNDg3NiAwMDAwMCBuIAowMDAwMTI1MDcwIDAwMDAwIG4gCjAwMDAxMjUxNjUgMDAwMDAgbiAKMDAwMDEyNTMwMSAwMDAwMCBuIAowMDAwMTI2NzA4IDAwMDAwIG4gCjAwMDAxMjY3MjkgMDAwMDAgbiAKMDAwMDEyNjc1NiAwMDAwMCBuIAowMDAwMTI2OTY3IDAwMDAwIG4gCjAwMDAxMjgxNjUgMDAwMDAgbiAKMDAwMDEyODE4NiAwMDAwMCBuIAowMDAwMTI4MzgwIDAwMDAwIG4gCjAwMDAxMjk3NjYgMDAwMDAgbiAKMDAwMDEyOTc4NyAwMDAwMCBuIAowMDAwMTI5OTgxIDAwMDAwIG4gCjAwMDAxMzE3NDQgMDAwMDAgbiAKMDAwMDEzMTc2NSAwMDAwMCBuIAowMDAwMTMxOTU5IDAwMDAwIG4gCjAwMDAxMzM0MzIgMDAwMDAgbiAKMDAwMDEzMzQ1MyAwMDAwMCBuIAowMDAwMTMzNjQ3IDAwMDAwIG4gCjAwMDAxMzM3MjUgMDAwMDAgbiAKMDAwMDEzMzg2MSAwMDAwMCBuIAowMDAwMTMzOTk4IDAwMDAwIG4gCjAwMDAxMzQwNzYgMDAwMDAgbiAKMDAwMDEzNDIxMyAwMDAwMCBuIAowMDAwMTM0MzUzIDAwMDAwIG4gCjAwMDAxMzQ0MzEgMDAwMDAgbiAKMDAwMDEzNDU2OSAwMDAwMCBuIAowMDAwMTM0NzA5IDAwMDAwIG4gCjAwMDAxMzQ3ODcgMDAwMDAgbiAKMDAwMDEzNDkyNSAwMDAwMCBuIAowMDAwMTM1MDY1IDAwMDAwIG4gCjAwMDAxMzUxNDMgMDAwMDAgbiAKMDAwMDEzNTI4MSAwMDAwMCBuIAowMDAwMTM1NDIxIDAwMDAwIG4gCjAwMDAxMzU0OTkgMDAwMDAgbiAKMDAwMDEzNTYzNyAwMDAwMCBuIAowMDAwMTM1Nzc3IDAwMDAwIG4gCjAwMDAxMzU4NTUgMDAwMDAgbiAKMDAwMDEzNTk5MyAwMDAwMCBuIAowMDAwMTM2MTMzIDAwMDAwIG4gCjAwMDAxMzYyMTEgMDAwMDAgbiAKMDAwMDEzNjM0OSAwMDAwMCBuIAowMDAwMTM2NDg5IDAwMDAwIG4gCjAwMDAxMzY1NjcgMDAwMDAgbiAKMDAwMDEzNjcwNSAwMDAwMCBuIAowMDAwMTM2ODQ1IDAwMDAwIG4gCjAwMDAxMzY5MjMgMDAwMDAgbiAKMDAwMDEzNzA2MSAwMDAwMCBuIAowMDAwMTM3MjAxIDAwMDAwIG4gCjAwMDAxMzcyNzkgMDAwMDAgbiAKMDAwMDEzNzQxNyAwMDAwMCBuIAowMDAwMTM3NTU3IDAwMDAwIG4gCjAwMDAxMzc2MzUgMDAwMDAgbiAKMDAwMDEzNzc3MiAwMDAwMCBuIAowMDAwMTM3OTEyIDAwMDAwIG4gCjAwMDAxMzc5OTAgMDAwMDAgbiAKMDAwMDEzODEyOCAwMDAwMCBuIAowMDAwMTM4MjY4IDAwMDAwIG4gCjAwMDAxMzgzNDYgMDAwMDAgbiAKMDAwMDEzODQ4NCAwMDAwMCBuIAowMDAwMTM4NjI0IDAwMDAwIG4gCjAwMDAxMzg3MDIgMDAwMDAgbiAKMDAwMDEzODg0MCAwMDAwMCBuIAowMDAwMTM4OTgwIDAwMDAwIG4gCjAwMDAxMzkwNTggMDAwMDAgbiAKMDAwMDEzOTE5NiAwMDAwMCBuIAowMDAwMTM5MzM2IDAwMDAwIG4gCjAwMDAxMzk0MTQgMDAwMDAgbiAKMDAwMDEzOTU1MCAwMDAwMCBuIAowMDAwMTM5NjkxIDAwMDAwIG4gCjAwMDAxMzk3NzAgMDAwMDAgbiAKMDAwMDEzOTkxMCAwMDAwMCBuIAowMDAwMTQwMDUyIDAwMDAwIG4gCjAwMDAxNDAxMzEgMDAwMDAgbiAKMDAwMDE0MDI3MSAwMDAwMCBuIAowMDAwMTQwNDEzIDAwMDAwIG4gCjAwMDAxNDA0OTIgMDAwMDAgbiAKMDAwMDE0MDYzMSAwMDAwMCBuIAowMDAwMTQwNzczIDAwMDAwIG4gCjAwMDAxNDA4NTQgMDAwMDAgbiAKMDAwMDE0MDk5NCAwMDAwMCBuIAowMDAwMTQxMTM2IDAwMDAwIG4gCjAwMDAxNDEyMTcgMDAwMDAgbiAKMDAwMDE0MTM1NyAwMDAwMCBuIAowMDAwMTQxNDk5IDAwMDAwIG4gCjAwMDAxNDE1ODAgMDAwMDAgbiAKMDAwMDE0MTcyMCAwMDAwMCBuIAowMDAwMTQxODYyIDAwMDAwIG4gCjAwMDAxNDE5NDMgMDAwMDAgbiAKMDAwMDE0MjA4MyAwMDAwMCBuIAowMDAwMTQyMjI1IDAwMDAwIG4gCjAwMDAxNDIzMDUgMDAwMDAgbiAKMDAwMDE0MjQ0NSAwMDAwMCBuIAowMDAwMTQyNTg3IDAwMDAwIG4gCjAwMDAxNDI2NjggMDAwMDAgbiAKMDAwMDE0MjgwOCAwMDAwMCBuIAowMDAwMTQyOTUwIDAwMDAwIG4gCjAwMDAxNDMwMzEgMDAwMDAgbiAKMDAwMDE0MzE3MSAwMDAwMCBuIAowMDAwMTQzMzEzIDAwMDAwIG4gCjAwMDAxNDMzOTQgMDAwMDAgbiAKMDAwMDE0MzUzNCAwMDAwMCBuIAowMDAwMTQzNjc2IDAwMDAwIG4gCjAwMDAxNDM3NTcgMDAwMDAgbiAKMDAwMDE0Mzg5NyAwMDAwMCBuIAowMDAwMTQ0MDM5IDAwMDAwIG4gCjAwMDAxNDQxMTggMDAwMDAgbiAKMDAwMDE0NDI1OCAwMDAwMCBuIAowMDAwMTQ0NDAwIDAwMDAwIG4gCjAwMDAxNDQ0ODEgMDAwMDAgbiAKMDAwMDE0NDYyMSAwMDAwMCBuIAowMDAwMTQ0NzYzIDAwMDAwIG4gCjAwMDAxNDQ4NDQgMDAwMDAgbiAKMDAwMDE0NDk4NCAwMDAwMCBuIAowMDAwMTQ1MTI2IDAwMDAwIG4gCjAwMDAxNDUyMDcgMDAwMDAgbiAKMDAwMDE0NTM0NyAwMDAwMCBuIAowMDAwMTQ1NDg5IDAwMDAwIG4gCjAwMDAxNDU1NzAgMDAwMDAgbiAKMDAwMDE0NTcxMCAwMDAwMCBuIAowMDAwMTQ1ODUyIDAwMDAwIG4gCjAwMDAxNDU5MzIgMDAwMDAgbiAKMDAwMDE0NjA3MiAwMDAwMCBuIAowMDAwMTQ2MjE0IDAwMDAwIG4gCjAwMDAxNDYyOTUgMDAwMDAgbiAKMDAwMDE0NjQzNSAwMDAwMCBuIAowMDAwMTQ2NTc3IDAwMDAwIG4gCjAwMDAxNDY2NTggMDAwMDAgbiAKMDAwMDE0Njc5OCAwMDAwMCBuIAowMDAwMTQ2OTQwIDAwMDAwIG4gCjAwMDAxNDcwMjEgMDAwMDAgbiAKMDAwMDE0NzE2MCAwMDAwMCBuIAowMDAwMTQ3MzAyIDAwMDAwIG4gCjAwMDAxNDczODEgMDAwMDAgbiAKMDAwMDE0NzUyMCAwMDAwMCBuIAowMDAwMTQ3NjYyIDAwMDAwIG4gCjAwMDAxNDc3NDMgMDAwMDAgbiAKMDAwMDE0Nzg4MyAwMDAwMCBuIAowMDAwMTQ4MDI1IDAwMDAwIG4gCjAwMDAxNDgxMDYgMDAwMDAgbiAKMDAwMDE0ODI0NiAwMDAwMCBuIAowMDAwMTQ4Mzg4IDAwMDAwIG4gCjAwMDAxNDg0NjkgMDAwMDAgbiAKMDAwMDE0ODYwOCAwMDAwMCBuIAowMDAwMTQ4NzUwIDAwMDAwIG4gCjAwMDAxNDg4MzEgMDAwMDAgbiAKMDAwMDE0ODk3MSAwMDAwMCBuIAowMDAwMTQ5MTEzIDAwMDAwIG4gCjAwMDAxNDkxOTQgMDAwMDAgbiAKMDAwMDE0OTMzNCAwMDAwMCBuIAowMDAwMTQ5NDc2IDAwMDAwIG4gCjAwMDAxNDk1NTcgMDAwMDAgbiAKMDAwMDE0OTY5NyAwMDAwMCBuIAowMDAwMTQ5ODM5IDAwMDAwIG4gCjAwMDAxNDk5MjAgMDAwMDAgbiAKMDAwMDE1MDA1OSAwMDAwMCBuIAowMDAwMTUwMjAxIDAwMDAwIG4gCjAwMDAxNTAyODIgMDAwMDAgbiAKMDAwMDE1MDQyMiAwMDAwMCBuIAowMDAwMTUwNTY0IDAwMDAwIG4gCjAwMDAxNTA2NDMgMDAwMDAgbiAKMDAwMDE1MDc4MyAwMDAwMCBuIAowMDAwMTUwOTI1IDAwMDAwIG4gCjAwMDAxNTEwMDYgMDAwMDAgbiAKMDAwMDE1MTE0NiAwMDAwMCBuIAowMDAwMTUxMjg4IDAwMDAwIG4gCjAwMDAxNTEzNjkgMDAwMDAgbiAKMDAwMDE1MTUwOCAwMDAwMCBuIAowMDAwMTUxNjQ5IDAwMDAwIG4gCjAwMDAxNTE3MzAgMDAwMDAgbiAKMDAwMDE1MTg2OCAwMDAwMCBuIAowMDAwMTUyMDA4IDAwMDAwIG4gCjAwMDAxNzUzNTUgMDAwMDAgbiAKMDAwMDE3NTM3OCAwMDAwMCBuIAowMDAwMTc2MTgyIDAwMDAwIG4gCjAwMDAxNzYzOTYgMDAwMDAgbiAKMDAwMDE3ODIxOSAwMDAwMCBuIAowMDAwMTc4MjQxIDAwMDAwIG4gCjAwMDAxNzg0MzcgMDAwMDAgbiAKMDAwMDE4MDU5OSAwMDAwMCBuIAowMDAwMTgwNjIxIDAwMDAwIG4gCjAwMDAxODA4MTcgMDAwMDAgbiAKMDAwMDE4MzM0MiAwMDAwMCBuIAowMDAwMTgzMzY0IDAwMDAwIG4gCjAwMDAxODM1NjAgMDAwMDAgbiAKMDAwMDE4MzY0MiAwMDAwMCBuIAowMDAwMTgzNzgxIDAwMDAwIG4gCjAwMDAxODM5MjMgMDAwMDAgbiAKMDAwMDE4NDg2MiAwMDAwMCBuIAowMDAwMTg0ODgzIDAwMDAwIG4gCjAwMDAxODQ5MjAgMDAwMDAgbiAKMDAwMDE4NTEzNCAwMDAwMCBuIAowMDAwMTg1ODIxIDAwMDAwIG4gCjAwMDAxODU4NDIgMDAwMDAgbiAKMDAwMDE4NjAzOCAwMDAwMCBuIAowMDAwMTg3MzM3IDAwMDAwIG4gCjAwMDAxODczNTkgMDAwMDAgbiAKMDAwMDE4NzU1NSAwMDAwMCBuIAowMDAwMTg4OTg0IDAwMDAwIG4gCjAwMDAxODkwMDYgMDAwMDAgbiAKMDAwMDE4OTIwMiAwMDAwMCBuIAowMDAwMTg5ODMzIDAwMDAwIG4gCjAwMDAxODk4NTQgMDAwMDAgbiAKMDAwMDE5MDA1MCAwMDAwMCBuIAowMDAwMTkyMTk2IDAwMDAwIG4gCjAwMDAxOTIyMTggMDAwMDAgbiAKMDAwMDE5MjQxNCAwMDAwMCBuIAowMDAwMTkzNDMwIDAwMDAwIG4gCjAwMDAxOTM0NTEgMDAwMDAgbiAKMDAwMDE5MzY0NyAwMDAwMCBuIAowMDAwMTkzNzI4IDAwMDAwIG4gCjAwMDAxOTM4NjggMDAwMDAgbiAKMDAwMDE5NDAxMCAwMDAwMCBuIAowMDAwMTk0MDkxIDAwMDAwIG4gCjAwMDAxOTQyMzEgMDAwMDAgbiAKMDAwMDE5NDM3MyAwMDAwMCBuIAowMDAwMTk0NDU0IDAwMDAwIG4gCjAwMDAxOTQ1OTQgMDAwMDAgbiAKMDAwMDE5NDczNiAwMDAwMCBuIAowMDAwMTk0ODE3IDAwMDAwIG4gCjAwMDAxOTQ5NTcgMDAwMDAgbiAKMDAwMDE5NTA5OSAwMDAwMCBuIAowMDAwMTk1MTgwIDAwMDAwIG4gCjAwMDAxOTUzMTkgMDAwMDAgbiAKMDAwMDE5NTQ2MSAwMDAwMCBuIAowMDAwMTk1NTQyIDAwMDAwIG4gCjAwMDAxOTU2ODIgMDAwMDAgbiAKMDAwMDE5NTgyNCAwMDAwMCBuIAowMDAwMTk1OTA0IDAwMDAwIG4gCjAwMDAxOTYwNDQgMDAwMDAgbiAKMDAwMDE5NjE4NiAwMDAwMCBuIAowMDAwMTk2MjY2IDAwMDAwIG4gCjAwMDAxOTY0MDYgMDAwMDAgbiAKMDAwMDE5NjU0OCAwMDAwMCBuIAowMDAwMTk2NjI4IDAwMDAwIG4gCjAwMDAxOTY3NjggMDAwMDAgbiAKMDAwMDE5NjkxMCAwMDAwMCBuIAowMDAwMTk2OTkwIDAwMDAwIG4gCjAwMDAxOTcxMzAgMDAwMDAgbiAKMDAwMDE5NzI3MiAwMDAwMCBuIAowMDAwMTk3MzUyIDAwMDAwIG4gCjAwMDAxOTc0OTIgMDAwMDAgbiAKMDAwMDE5NzYzNCAwMDAwMCBuIAowMDAwMTk3NzE0IDAwMDAwIG4gCjAwMDAxOTc4NTQgMDAwMDAgbiAKMDAwMDE5Nzk5NiAwMDAwMCBuIAowMDAwMTk4MDc2IDAwMDAwIG4gCjAwMDAxOTgyMTYgMDAwMDAgbiAKMDAwMDE5ODM1OCAwMDAwMCBuIAowMDAwMTk4NDM4IDAwMDAwIG4gCjAwMDAxOTg1NzUgMDAwMDAgbiAKMDAwMDE5ODcxNyAwMDAwMCBuIAowMDAwMTk4Nzk5IDAwMDAwIG4gCjAwMDAxOTg5MzggMDAwMDAgbiAKMDAwMDE5OTA4MCAwMDAwMCBuIAowMDAwMTk5MTYyIDAwMDAwIG4gCjAwMDAxOTkzMDIgMDAwMDAgbiAKMDAwMDE5OTQ0NCAwMDAwMCBuIAowMDAwMTk5NTI1IDAwMDAwIG4gCjAwMDAxOTk2NjQgMDAwMDAgbiAKMDAwMDE5OTgwNiAwMDAwMCBuIAowMDAwMTk5ODg4IDAwMDAwIG4gCjAwMDAyMDAwMjggMDAwMDAgbiAKMDAwMDIwMDE3MCAwMDAwMCBuIAowMDAwMjAwMjUwIDAwMDAwIG4gCjAwMDAyMDAzODkgMDAwMDAgbiAKMDAwMDIwMDUzMSAwMDAwMCBuIAowMDAwMjAwNjExIDAwMDAwIG4gCjAwMDAyMDA3NDkgMDAwMDAgbiAKMDAwMDIwMDg5MSAwMDAwMCBuIAowMDAwMjAwOTcxIDAwMDAwIG4gCjAwMDAyMDExMTAgMDAwMDAgbiAKMDAwMDIwMTI1MiAwMDAwMCBuIAowMDAwMjAxMzMyIDAwMDAwIG4gCjAwMDAyMDE0NzIgMDAwMDAgbiAKMDAwMDIwMTYxNCAwMDAwMCBuIAowMDAwMjAxNjk0IDAwMDAwIG4gCjAwMDAyMDE4MzMgMDAwMDAgbiAKMDAwMDIwMTk3NSAwMDAwMCBuIAowMDAwMjE0NzMzIDAwMDAwIG4gCjAwMDAyMTQ3NTYgMDAwMDAgbiAKMDAwMDIxNTE0NSAwMDAwMCBuIAowMDAwMjE1MzU5IDAwMDAwIG4gCjAwMDAyMTU2MjQgMDAwMDAgbiAKMDAwMDIzMDE3MSAwMDAwMCBuIAowMDAwMjMwMTQ4IDAwMDAwIG4gCjAwMDAyMzAyNzEgMDAwMDAgbiAKMDAwMDIzMDI5MSAwMDAwMCBuIAowMDAwMjMwOTM4IDAwMDAwIG4gCjAwMDAyMzA0NTYgMDAwMDAgbiAKMDAwMDIzMTUyMCAwMDAwMCBuIAowMDAwMjMxNTQxIDAwMDAwIG4gCjAwMDAyMzE4MDEgMDAwMDAgbiAKMDAwMDI0Nzg0MSAwMDAwMCBuIAowMDAwMjQ3ODE4IDAwMDAwIG4gCjAwMDAyNDc5NDYgMDAwMDAgbiAKMDAwMDI0Nzk2NiAwMDAwMCBuIAowMDAwMjQ4NjU3IDAwMDAwIG4gCjAwMDAyNDgxMjYgMDAwMDAgbiAKMDAwMDI0OTI5NyAwMDAwMCBuIAowMDAwMjQ5MzE4IDAwMDAwIG4gCjAwMDAyNDk1ODAgMDAwMDAgbiAKMDAwMDI2MDgyOSAwMDAwMCBuIAowMDAwMjYwODA2IDAwMDAwIG4gCjAwMDAyNjA5MjcgMDAwMDAgbiAKMDAwMDI2MDk0NyAwMDAwMCBuIAowMDAwMjYxNTM0IDAwMDAwIG4gCjAwMDAyNjExMTEgMDAwMDAgbiAKMDAwMDI2MjA1MCAwMDAwMCBuIAowMDAwMjYyMjg0IDAwMDAwIG4gCjAwMDAyNjI2MjMgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9Sb290IDM0MSAwIFIKICAvSW5mbyAxIDAgUgogIC9JRCBbPENBMjkwOUM3QzUzNjgwRTVEODMxOTFDM0ZGNjRCMkE1PiA8Q0EyOTA5QzdDNTM2ODBFNUQ4MzE5MUMzRkY2NEIyQTU+XQogIC9TaXplIDM0Mwo+PgpzdGFydHhyZWYKMjYyODA1CiUlRU9GCg==