TimeAccounting
4.0.91
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Build for TimeAccounting 5 beta1.
A Time Registration Module.
Ein Zeiterfassungsmodul.
5.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>NOTICE</b>
<br>
<br>
In order to grant users access to the time accounting module, you need to add them as member to the group 'time_accounting'.
<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>
Um Benutzern Zugriff auf die Zeiterfassung zu gewähren, müssen diese Mitglied der neuen Gruppe 'time_accounting' sein.
<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 al módulo de contabilidad de tiempo, es necesario añadirlos como miembros del grupo 'time_accounting'.
<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>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>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>
# 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)->CodeUninstall();
2015-08-27 00:32:00
opms.otrs.com
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AMYD+T0j0EiL5EHpBgAARgX5PWDccMMUAAAAwGCgdAMAAAAwGCjdAAAAAAwGSjcAAAAAg4HSDQAAAMBgoHQDAAAAMBgo3QAAAAAMBko3AAAAAIOB0g0AAADAYKB0AwAAADAYKN0AAAAADAZKNwAAAACDgdINAAAAwGCgdAMAAAAwGCjdAAAAAAwGSjcAAAAAg4HSDQAAAMBgoHQDAAAAMBgmjxxx80apDtYBAAAAAI/EUSqV+l4DAAAAAAwIbpgCAAAAGAyUbgAAAAAGA6UbAAAAgMFA6QYAAABgMFC6AQAAABgMlG4AAAAABgOlGwAAAIDBQOkGAAAAYDD+H3KsT6dETQQmAAAAAElFTkSuQmCC
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIxLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgIDxHcm91cFJvPnRpbWVfYWNjb3VudGluZzwvR3JvdXBSbz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyBlZGl0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5UaW1lQWNjb3VudGluZzwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgICAgIDxUaXRsZT5FZGl0PC9UaXRsZT4KICAgICAgICAgICAgICAgIDxOYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VGltZSBhY2NvdW50aW5nLjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPE5hbWU+VGltZSBBY2NvdW50aW5nPC9OYW1lPgogICAgICAgICAgICAgICAgICAgIDxMaW5rPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDwvTGluaz4KICAgICAgICAgICAgICAgICAgICA8TmF2QmFyPlRpbWVBY2NvdW50aW5nPC9OYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPFR5cGU+TWVudTwvVHlwZT4KICAgICAgICAgICAgICAgICAgICA8UHJpbz42MDAwPC9QcmlvPgogICAgICAgICAgICAgICAgICAgIDxBY2Nlc3NLZXk+PC9BY2Nlc3NLZXk+CiAgICAgICAgICAgICAgICAgICAgPEJsb2NrPkl0ZW1BcmVhPC9CbG9jaz4KICAgICAgICAgICAgICAgIDwvTmF2QmFyPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RWRpdCB0aW1lIHJlY29yZDwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPE5hbWU+RWRpdDwvTmFtZT4KICAgICAgICAgICAgICAgICAgICA8TGluaz5BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPFR5cGU+PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz48L0Jsb2NrPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+VGltZUFjY291bnRpbmc8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5PjwvQWNjZXNzS2V5PgogICAgICAgICAgICAgICAgICAgIDxQcmlvPjIwMDwvUHJpbz4KICAgICAgICAgICAgICAgIDwvTmF2QmFyPgogICAgICAgICAgICAgICAgPExvYWRlcj4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlRpbWVBY2NvdW50aW5nLkRlZmF1bHRzLmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuVGFibGUuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPEphdmFTY3JpcHQ+VGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLmpzPC9KYXZhU2NyaXB0PgogICAgICAgICAgICAgICAgICAgIDxKYXZhU2NyaXB0PlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5qczwvSmF2YVNjcmlwdD4KICAgICAgICAgICAgICAgICAgICA8SmF2YVNjcmlwdD5UaW1lQWNjb3VudGluZy5BZ2VudC5EYXRlcGlja2VyLmpzPC9KYXZhU2NyaXB0PgogICAgICAgICAgICAgICAgPC9Mb2FkZXI+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgIDxHcm91cFJvPnRpbWVfYWNjb3VudGluZzwvR3JvdXBSbz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPE5hdkJhck5hbWU+VGltZUFjY291bnRpbmc8L05hdkJhck5hbWU+CiAgICAgICAgICAgICAgICA8VGl0bGU+T3ZlcnZpZXc8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+T3ZlcnZpZXc8L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgICAgIDxOYW1lPk92ZXJ2aWV3PC9OYW1lPgogICAgICAgICAgICAgICAgICAgIDxMaW5rPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPFR5cGU+PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz48L0Jsb2NrPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+VGltZUFjY291bnRpbmc8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5PjwvQWNjZXNzS2V5PgogICAgICAgICAgICAgICAgICAgIDxQcmlvPjEwMDwvUHJpbz4KICAgICAgICAgICAgICAgIDwvTmF2QmFyPgogICAgICAgICAgICAgICAgPExvYWRlcj4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlRpbWVBY2NvdW50aW5nLkRlZmF1bHRzLmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuVGFibGUuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICA8L0xvYWRlcj4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPEdyb3VwPnRpbWVfYWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPlRpbWVBY2NvdW50aW5nPC9OYXZCYXJOYW1lPgogICAgICAgICAgICAgICAgPFRpdGxlPlNldHRpbmdzPC9UaXRsZT4KICAgICAgICAgICAgICAgIDxOYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEdyb3VwPnRpbWVfYWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3M8L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgICAgIDxOYW1lPlNldHRpbmdzPC9OYW1lPgogICAgICAgICAgICAgICAgICAgIDxMaW5rPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZzwvTGluaz4KICAgICAgICAgICAgICAgICAgICA8VHlwZT48L1R5cGU+CiAgICAgICAgICAgICAgICAgICAgPEJsb2NrPjwvQmxvY2s+CiAgICAgICAgICAgICAgICAgICAgPE5hdkJhcj5UaW1lQWNjb3VudGluZzwvTmF2QmFyPgogICAgICAgICAgICAgICAgICAgIDxBY2Nlc3NLZXk+PC9BY2Nlc3NLZXk+CiAgICAgICAgICAgICAgICAgICAgPFByaW8+OTAwPC9QcmlvPgogICAgICAgICAgICAgICAgPC9OYXZCYXI+CiAgICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPENTUz5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0NTUz4KICAgICAgICAgICAgICAgICAgICA8SmF2YVNjcmlwdD5UaW1lQWNjb3VudGluZy5BZ2VudC5EYXRlcGlja2VyLmpzPC9KYXZhU2NyaXB0PgogICAgICAgICAgICAgICAgPC9Mb2FkZXI+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPEdyb3VwPnRpbWVfYWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5UaW1lQWNjb3VudGluZzwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgICAgIDxUaXRsZT5SZXBvcnRpbmc8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Qcm9qZWN0IHRpbWUgcmVwb3J0aW5nPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgICAgICA8TmFtZT5SZXBvcnRpbmc8L05hbWU+CiAgICAgICAgICAgICAgICAgICAgPExpbms+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmc8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPFR5cGU+PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz48L0Jsb2NrPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+VGltZUFjY291bnRpbmc8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5PjwvQWNjZXNzS2V5PgogICAgICAgICAgICAgICAgICAgIDxQcmlvPjUwMDwvUHJpbz4KICAgICAgICAgICAgICAgIDwvTmF2QmFyPgogICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPENTUz5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0NTUz4KICAgICAgICAgICAgICAgIDwvTG9hZGVyPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nVmlldyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgIDxHcm91cFJvPnRpbWVfYWNjb3VudGluZzwvR3JvdXBSbz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyB2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5UaW1lQWNjb3VudGluZzwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgICAgIDxUaXRsZT5WaWV3PC9UaXRsZT4KICAgICAgICAgICAgICAgIDxOYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEdyb3VwUm8+dGltZV9hY2NvdW50aW5nPC9Hcm91cFJvPgogICAgICAgICAgICAgICAgPC9OYXZCYXI+CiAgICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPENTUz5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0NTUz4KICAgICAgICAgICAgICAgIDwvTG9hZGVyPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRQcm9qZWN0TmFtZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3RTdGF0dXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+dmFsaWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0QWN0aW9uTmFtZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0QWN0aW9uU3RhdHVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+dmFsaWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlcldlZWtseUhvdXJzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj40MDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckxlYXZlRGF5cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3U2V0dGluZzwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MjM8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJPdmVydGltZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjA8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEYXRlU3RhcnQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjIwMTUtMDEtMDE8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEYXRlRW5kIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3U2V0dGluZzwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MjAxNS0xMi0zMTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRlc2NyaXB0aW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3U2V0dGluZzwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+UHV0IHlvdXIgZGVzY3JpcHRpb24gaGVyZS48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJTdGF0dXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+dmFsaWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjQ8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4yPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok5vdGlmeU1vZHVsZSMjIzg4OC1UaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlTm90aWZ5PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5vdGlmaWNhdGlvbjo6VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4QWxsb3dlZEluc2VydERheXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Rm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjEwPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OlJlZHVjZVRpbWUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9Jmd0OyB0cmF2ZWxpbmc7IENvbnRlbnQgPSZndDsgNTApLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld0VkaXQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0idHJhdmVsaW5nIj41MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpJbnB1dEhvdXJzV2l0aG91dFN0YXJ0RW5kVGltZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld0VkaXQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJQcmVBcHBsaWNhdGlvbk1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPktlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6UHJvamVjdDJSZW1hcmtSZWdFeHAiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld0VkaXQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPl4oPzogUFJPSkVDVFwjIHwgSU5GUkE6IHwgUFJPRFVDVDogKTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpQcm9qZWN0TGlzdENvbnN0cmFpbnRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdFZGl0PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWN0aW9uTGlzdENvbnN0cmFpbnRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld0VkaXQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWN0aXZlRmlsdGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpBbGxvd01hc3NFbnRyeUZvclVzZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdFZGl0PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6OlRvb2xCYXJNb2R1bGUjIyMyMDEtVGltZUFjY291bnRpbmc6OkluY29tcGxldGVXb3JraW5nRGF5cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRvb2xCYXJNb2R1bGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6VG9vbEJhcjo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDc3NDbGFzcyI+SW5jb21wbGV0ZVdvcmtpbmdEYXlzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJY29uIj5mYSBmYS1jbG9jay1vPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iU3RhdHM6OkR5bmFtaWNPYmplY3RSZWdpc3RyYXRpb24jIyNUaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6U3RhdHM8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6U3RhdHM6OkR5bmFtaWM6OlRpbWVBY2NvdW50aW5nPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkZyb250ZW5kOjpSZXBvcnRpbmdQcm9qZWN0IyMjU2hvd09ubHlBY3RpdmVVc2VycyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdXRuaW5nOjpWaWV3UmVwb3J0aW5nUHJvamVjdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KPC9vdHJzX2NvbmZpZz4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnWmVpdGFicmVjaG51bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB2YWxpZCBwcm9qZWN0cyd9ID0gJ0fDvGx0aWdlIFByb2pla3RlIGFuemVpZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIHByb2plY3RzJ30gPSAnQWxsZSBQcm9qZWt0ZSBhbnplaWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lQWNjb3VudGluZyd9ID0gJ1plaXRBYnJlY2hudW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ0JlcmljaHRlcnN0YXR0dW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0JpdHRlIGRpZSBBcmJlaXRzc3R1bmRlbiBlaW50cmFnZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0VpbmdhYmVuIGdlc3BlaWNoZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRmVobGVyIGJlaSBkZXIgRWluZ2FiZSBmw7xyIG1laHJlcmUgVGFnZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnRGF0ZW4gZsO8ciBtZWhyZXJlIFRhZ2UgZXJmb2xncmVpY2ggZXJmYXNzdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0VpbmdlZ2ViZW5lcyBEYXR1bSB1bmfDvGx0aWchIERhdHVtIHd1cmRlIGF1ZiBcJ2hldXRlXCcgZ2XDpG5kZXJ0Lic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnTcO2Y2h0ZW4gU2llIHdpcmtsaWNoIGRlbiBFaW50cmFnIGbDvHIgZGVuIGFrdHVlbGxlbiBUYWcgbMO2c2NoZW4/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ1plaXRhYnJlY2hudW5nIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdHZWhlIHp1IEVpbnN0ZWxsdW5nZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0dW1zbmF2aWdhdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdWb3JoZXJpZ2VyIFRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpGNoc3RlciBUYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnR2VoZSB6dSBkaWVzZW0gRGF0dW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdOaWNodCBhdXNnZWbDvGxsdGUgVGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdBbGxlIFRhZ2UgYXVzd8OkaGxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnTWFzc2VuZWludHJhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ0JpdHRlIHfDpGhsZW4gU2llIGRlbiBHcnVuZCBmw7xyIElocmUgQWJ3ZXNlbmhlaXQgZsO8ciBkaWUgYXVzZ2V3w6RobHRlbiBUYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnaW0gVXJsYXViJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdFcmtyYW5rdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ8OcYmVyc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnQml0dGUgd8OkaGxlbiBTaWUgbWluZGVzdGVucyBlaW5lbiBUYWchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gR3J1bmQgZsO8ciBkaWUgQWJ3ZXNlbmhlaXQgYXVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnTWFzc2VuZWludHJhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0ZlbGRlciwgZGllIGF1c2dlZsO8bGx0IHdlcmRlbiBtw7xzc2VuLCBzaW5kIG1pdCBlaW5lbSBTdGVybiAiKiIgZ2VrZW5uemVpY2huZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnU2llIG3DvHNzZW4gZWluZSBTdGFydC0gdW5kIEVuZHplaXQgb2RlciBlaW5lIFplaXRzcGFubmUgYW5nZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1TDpHRpZ2tlaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQW5tZXJrdW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzIS4nfSA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluZSBBbm1lcmt1bmcgbWl0IG1pbmRlc3RlbnMgOCBaZWljaGVuIEzDpG5nZSBlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdTdGFydHplaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXZlIEFuZ2FiZW4gc2luZCBuaWNodCBlcmxhdWJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnRGllc2UgU3RhcnR6ZWl0IHd1cmRlIGJlcmVpdHMgaW4gZWluZW0gYW5kZXJlbiBFaW50cmFnIGFuZ2VnZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ1VuZ8O8bHRpZ2VzIEZvcm1hdCEgQml0dGUgZ2ViZW4gU2llIGVpbmUgWmVpdCBpbSBGb3JtYXQgSEg6TU0gZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdOdXIgMjQ6MDAgaXN0IGFscyBFbmR6ZWl0IGVybGF1YnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnVW5nw7xsdGlnZSBaZWl0ISBFaW4gVGFnIGhhdCBudXIgMjQgU3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ0VuZHplaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ0RpZSBFbmR6ZWl0IG11c3MgbmFjaCBkZXIgU3RhcnR6ZWl0IHNlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnRGllc2UgRW5kemVpdCB3dXJkZSBiZXJlaXRzIGluIGVpbmVtIGFuZGVyZW4gRWludHJhZyBhbmdlZ2ViZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdVbmfDvGx0aWdlIEFuZ2FiZS4gRWluIFRhZyBoYXQgbnVyIDI0IFN0dW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnRWluZSBnw7xsdGlnZSBaZWl0ZGF1ZXIgbXVzcyBncsO2w59lciBhbHMgTnVsbCBzZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnVW5nw7xsdGlnZSBBbmdhYmUuIE5lZ2F0aXZlIFplaXRzcGFubmVuIHNpbmQgbmljaHQgbcO2Z2xpY2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnRWluZSBaZWlsZSBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ1N1bW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnU2llIGvDtm5uZW4gbnVyIGVpbmUgQ2hlY2tib3ggbWFya2llcmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGFsbCBpdGVtcyd9ID0gJ0FsbGUgRWludHLDpGdlIGFuemVpZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFaW50cmFnIGzDtnNjaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnRWluZ2FiZSBiZXN0w6R0aWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBnZWFyYmVpdGV0IGhhYmVuLCBvYndvaGwgU2llIGVya3Jhbmt0IHNpbmQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBnZWFyYmVpdGV0IGhhYmVuLCBvYndvaGwgU2llIGltIFVybGF1YiBzaW5kPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBnZWFyYmVpdGV0IGhhYmVuLCBvYndvaGwgU2llIMOcYmVyc3R1bmRlbiBnZW5vbW1lbiBoYWJlbj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBtZWhyIGFscyAxNiBTdHVuZGVuIGdlYXJiZWl0ZXQgaGFiZW4/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdNb25hdHPDvGJlcnNpY2h0IFplaXRiZXJpY2h0ZXJzdGF0dHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnw5xiZXJzdHVuZGVuIChpbiBTdHVuZGVuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfDnGJlcnN0dW5kZW4gKGRpZXNlciBNb25hdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ8OcYmVyc3R1bmRlbiAoU3VtbWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ8OcYmVyc3R1bmRlbiAodmVyYmxlaWJlbmQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1VybGF1YiAoaW4gVGFnZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1VybGF1YnN0YWdlIChkaWVzZXIgTW9uYXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdVcmxhdWJzdGFnZSAoU3VtbWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1VybGF1YnN0YWdlICh2ZXJibGVpYmVuZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdFcmtyYW5rdCAoaW4gVGFnZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRXJrcmFua3QgKGRpZXNlciBNb25hdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnRXJrcmFua3QgKFN1bW1lKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ1ZvcmhlcmlnZXIgTW9uYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ07DpGNoc3RlciBNb25hdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnV29jaGVudGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdBcmJlaXRzc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdBcmJlaXRzc3R1bmRlbiAoZ2VzYW10KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdOdXR6ZXJiZXJpY2h0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdTdHVuZGVuIChpbSBNb25hdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1N0dW5kZW4gKGdlc2FtdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdTdW1tZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdaZWl0YmVyaWNodGVyc3RhdHR1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ0RhdHVtc2F1c3dhaGwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0dlaGUgenUgRGF0dW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnTnV0emVyYmVyaWNodGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ3BybyBNb25hdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1N1bW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnw5xiZXJzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnVXJsYXViJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdFcmtyYW5rdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdWZXJibGVpYmVuZGUgVXJsYXVic3RhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUHJvamVrdGJlcmljaHRlJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdQcm9qZWt0w7xiZXJzaWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdHZWhlIHp1ciBCZXJpY2h0ZXJzdGF0dHVuZ3PDvGJlcnNpY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdaZWl0YWJyZWNobnVuZy1Qcm9qZWt0ZWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnUHJvamVrdCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0dlaGUgenVyIEVpbnN0ZWxsdW5nc8O8YmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdQcm9qZWt0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1Byb2pla3RlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0VpbiBQcm9qZWt0IG1pdCBnbGVpY2hlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4gQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gYW5kZXJlbiBOYW1lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdaZWl0YWJyZWNobnVuZ3NlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdUw6R0aWdrZWl0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnTmV1ZXIgQmVudXR6ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0ZpbHRlciBmw7xyIFByb2pla3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0ZXIgZsO8ciBUw6R0aWdrZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRlciBmw7xyIEJlbnV0emVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdUw6R0aWdrZWl0c2xpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnVMOkdGlna2VpdCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdUw6R0aWdrZWl0c2VpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRWluZSBUw6R0aWdrZWl0IG1pdCBnbGVpY2hlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4gQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gYW5kZXJlbiBOYW1lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnQmVudXR6ZXJsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ0VpbnN0ZWxsdW5nZW4gZsO8ciBuZXVlbiBCZW51dHplcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdCZW51dHplcmVpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ0tvbW1lbnRhcmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ8OcYmVyc3R1bmRlbiBhbnplaWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUHJvamVrdCBlcnN0ZWxsZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnRGF0dW0gQmVnaW5uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdEYXR1bSBFbmRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdVcmxhdWJzdGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1dvY2hlbnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0F1dG9yaXNpZXJ0ZSDDnGJlcnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ1N0YXJ0ZGF0dW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnQml0dGUgZ2ViZW4gU2llIGVpbiBnw7xsdGlnZXMgRGF0dW0gZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0VuZGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRGFzIEVuZGUgZGVyIFplaXRzcGFubmUgbXVzcyBuYWNoIGRlbSBBbmZhbmcgc2Vpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ1VybGF1YnN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ1fDtmNoZW50bGljaGUgU3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ8OcYmVyc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnS2VpbmUgWmVpdHNwYW5uZSBnZWZ1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnWmVpdHNwYW5uZSBoaW56dWbDvGdlbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdEYXRlbnNhdHogYW56ZWlnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdBbnNpY2h0IHZvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdLZWluIEVpbnRyYWcgZsO8ciBkaWVzZW4gVGFnIGdlZnVuZGVuLic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHp1bSBBbnplaWdlbiBkZXIgQW56YWhsIGRlciB1bnZvbGxzdMOkbmRpZ2VuIEFyYmVpdHN0YWdlIGRlcyBCZW51dHplcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhcmRuYW1lIGbDvHIgbmV1ZSBUw6R0aWdrZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gUHJvamVrdHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEVuZGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFN0YXJ0ZGF0dW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEJlc2NocmVpYnVuZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFVybGF1YnN0YWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0V2ZW50dWVsbCB2b3JoYW5kZW5lciDDnGJlcnN0dW5kZW7DvGJlcnRyYWcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdTdGFuZGFyZCBXb2NoZW5hcmJlaXRzemVpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXIgbmV1ZW4gVMOkdGlna2VpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdBbmZhbmdzc3RhdHVzIGVpbmVzIG5ldWVuIFByb2pla3RzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gQmVudXR6ZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdJbm5lcmhhbGIgZGllc2VyIEtvbmZpZ3VyYXRpb25zb3B0aW9uIGthbm4gZWluZSBSZWdFeHAgZGVmaW5pZXJ0IHdlcmRlbiwgZGllIGZlc3RsZWd0LCBiZWkgd2VsY2hlbiBQcm9qZWt0ZW4gZWluZSBCZW1lcmt1bmcgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MgKGRpZSBSZWdFeHAgYXJiZWl0ZXQgbWl0IHNteC1QYXJhbWV0ZXJuKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0Jlc3RpbW10LCBvYiBkYXMgU3RhdGlzdGlrLU1vZHVsIEluZm9ybWF0aW9uZW4genVyIFplaXRhYnJlY2hudW5nIGdlbmVyaWVyZW4ga2Fubi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MnfSA9ICdaZWl0YWJyZWNobnVuZ3NlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZCd9ID0gJ1plaXRlcmZhc3N1bmcgYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdMZWd0IGZlc3QsIGJpcyB3YW5uIG1hbiBpbiDDpGx0ZXJlIFplaXRlaW50csOkZ2UgYmVhcmJlaXRlbiBrYW5uICh6LiBCLiAxMCBUYWdlIHp1csO8Y2tsaWVnZW5kKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnV2VubiBha3RpdmllcnQsIHdlcmRlbiBudXIgVXNlciBhbmdlemVpZ3QgZGllIEFyYmVpdHN6ZWl0ZW4genUgZGVtIGdld8OkaGx0ZW4gUHJvamVrdCBoaW56dWdlZsO8Z3QgaGFiZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnQWt0aXZpZXJ0IGRpZSBBdXRvY29tcGxldGlvbiBhdWYgZGVuIEVpbmdhYmVmZWxkZXJuIGltIEJlYXJiZWl0ZW4tQmVyZWljaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1dlbm4gYWt0aXZpZXJ0LCAga8O2bm5lbiBCZW51dHplciAiaW0gVXJsYXViIiwgIkVya3Jhbmt0IiB1bmQgIsOcYmVyc3R1bmRlbiIgYW4gbWVocmVyZW4gVGFnZW4gYXVmIGVpbm1hbCBzZXR6ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTWF4aW1hbGUgQW56YWhsIHZvbiBBcmJlaXRzdGFnZW4sIG5hY2ggZGVyIGRpZSBBcmJlaXRzemVpdCBlaW5nZXRyYWdlbiB3ZXJkZW4gbXVzcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ01heGltYWxlIEFuemFobCB2b24gQXJiZWl0c3RhZ2VuIG9obmUgQXJiZWl0c3plaXRlaW50csOkZ2UgbmFjaCBkZW5lbiBlaW5lIFdhcm51bmcgYW5nZXplaWd0IHdpcmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcnfSA9ICdQcm9qZWt0LVplaXRiZXJpY2h0ZXJzdGF0dHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnUmVndWzDpHJlciBBdXNkcnVjaywgdW0gZGllIExpc3RlIGRlciBUw6R0aWdrZWl0ZW4gYmV6w7xnbGljaCBkZXMgYXVzZ2V3w6RobHRlbiBQcm9qZWt0cyBlaW56dXNjaHLDpG5rZW4uIERlciBTY2hsw7xzc2VsIGVudGjDpGx0IGVpbmVuIFJlZ3Vsw6RyZW4gQXVzZHJ1Y2sgZsO8ciBQcm9qZWt0ZSwgZGVyIFdlcnQgZWluZW4gUmVndWzDpHJlbiBBdXNkcnVjayBmw7xyIGRpZSBUw6R0aWdrZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ1JlZ3Vsw6RyZXIgQXVzZHJ1Y2ssIHVtIGRpZSBMaXN0ZSBkZXIgUHJvamVrdGUgYmV6w7xnbGljaCBkZXMgYWt0aXZlbiBCZW51dHplcnMgZWluenVzY2hyw6Rua2VuLiBEZXIgU2NobMO8c3NlbCBlbnRow6RsdCBlaW5lbiBSZWd1bMOkcmVuIEF1c2RydWNrIGbDvHIgUHJvamVrdGUsIGRlciBXZXJ0IGVudGjDpGx0IGVpbmUga29tbWEtc2VwYXJpZXJ0ZSBMaXN0ZSB2b24gQmVudXR6ZXJncnVwcGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnR2lidCBhbiwgb2IgQXJiZWl0c3N0dW5kZW4gb2huZSBTdGFydC0gdW5kIEVuZHplaXQgZWluZ2VnZWJlbiB3ZXJkZW4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRGllc2VzIE1vZHVsIHp3aW5ndCB6dXIgRWluZ2FiZSB2b24gU3R1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNb2R1bCwgZGFzcyBkZW4gQWdlbnQgaW0gTm90aWZpY2F0aW9uLUJlcmVpY2ggZGVzIEFnZW50LUludGVyZmFjZXMgZGFyw7xiZXIgaW5mb3JtaWVydCwgd2VubiBzY2hvbiB6dSBsYW5nZSBrZWluZSBTdHVuZGVuIG1laHIgZWluZ2V0cmFnZW4gd3VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdaZWl0YWJyZWNobnVuZyBCZWFyYmVpdHVuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1plaXRhYnJlY2hudW5nIMOcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnWmVpdGFicmVjaG51bmcgQmVyaWNodGVyc3RhdHR1bmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdaZWl0YWJyZWNobnVuZyBFaW5zdGVsbHVuZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdaZWl0YWJyZWNobnVuZyBBbnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnWmVpdGFicmVjaG51bmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0hpZXIga2FubiBtYW4gZWluZ2ViZW4sIG9iIGbDvHIgZWluZSBiZXN0aW1tdGUgVMOkdGlna2VpdCwgZGllIHp1IHZlcnJlY2huZW5kZW4gU3R1bmRlbiBnZWvDvHJ6dCB3ZXJkZW4uIFouIEIgd2VubiBSZWlzZXplaXRlbiBudXIgenVyIEjDpGxmdGUgdmVyZ8O8dGV0IHdlcmRlbiAoS2V5ID0mZ3Q7IGpvdXJuZXk7IENvbnRlbnQgPSZndDsgNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGFfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdmFsaWQgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZUFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVmlsIGR1IHZpcmtlbGlnIHNsZXR0ZSB0aWRzcmVnbnNrYWJldCBmb3IgZGVubmUgZGFnPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdSZWRpZ2VyIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0b25hdmlnYXRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnRm9ycmlnZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdOw6ZzdGUgZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0RhZ2UgdWRlbiBvcHRlZ25lbHNlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ1DDpSBmZXJpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnU3lnZWZyYXbDpnInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdBZnNwYWRzZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnRGUgcMOla3LDpnZlZGUgZmVsdGVyIGVyIG1hcmtlcmV0IG1lZCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRHUgc2thbCBpbmR0YXN0ZSBlbiBzdGFydC0gb2cgc2x1dGRhdG8gZWxsZXIgZW4gdGlkc3BlcmlvZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdPcGdhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQmVtw6Zya25pbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhLid9ID0gJ1RpbGbDuGogdmVubGlnc3QgZW4gYmVtw6Zya25pbmcgbWVkIG1lcmUgZW5kIDggdGVnbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdiB0aWQgZXIgaWtrZSB0aWxsYWR0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnR2VudGFnbmUgdGltZXIgZXIgaWtrZSB0aWxsYWR0LiBTdGFydHRpZGVuIHN2YXJlciB0aWwgZXQgYW5kZXQgaW50ZXJ2YWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdTbHV0dGlkZW4gc2thbCB2w6ZyZSBzZW5lcmUgZW5kIHN0YXJ0dGlkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnR2VudGFnbmUgdGltZXIgZXIgaWtrZSB0aWxsYWR0LiBTbHV0dGlkZW4gc3ZhcmVyIHRpbCBldCBhbmRldCBpbnRlcnZhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1VneWxkaWcgcGVyaW9kZSEgRW4gZGFnIGhhciBrdW4gMjQgdGltZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnRW4gZ3lsZGlnIHBlcmlvZGUgc2thbCB2w6ZyZSBzdMO4cnJlIGVuZCAwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdVZ3lsZGlnIHBlcmlvZGUhIE5lZ2F0aXZlIHBlcmlvZGVyIGVyIGlra2UgdGlsbGFkdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdUaWxmw7hqIGVuIHLDpmtrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ0kgYWx0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnRHUga2FuIGt1biB2w6ZsZ2UgZXQgYWZrcnlkc25pbmdzZmVsdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdWaXMgYWxsZSBwdW5rdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdTbGV0IHRpZHNyZWduc2thYnNpbmR0YXN0bmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0Jla3LDpmZ0IGluZHPDpnR0ZWxzZSc7CiAgICAkU2VsZi0+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+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdSZWRpZ2VyIHByb2pla3RpbmRzdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdEZXIgZXIgYWxsZXJlZGUgZXQgcHJvamVrdCBtZWQgZGV0dGUgbmF2bi4gVsOmbGcgdmVubGlnc3QgZXQgYW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnUmVkaWdlciB0aWRzcmVnbnNrYWJzaW5kc3RpbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnVGlsZsO4aiBvcGdhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdOeSBicnVnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0ZpbHRyw6lyIHByb2pla3Rlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFRhc2tzJ30gPSAnRmlsdHLDqXIgb3BnYXZlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdHLDqXIgYnJ1Z2VyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdQcm9qZWt0bGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnT3BnYXZlbGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdUaWxmw7hqIG9wZ2F2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdSZWRpZ2VyIG9wZ2F2ZWluZHN0aWxsaW5nZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0RlciBlciBhbGxlcmVkZSBlbiBvcGdhdmUgbWVkIGRldHRlIG5hdm4uIFbDpmxnIHZlbmxpZ3N0IGV0IGFuZGV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdCcnVnZXJsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ055ZSBicnVnZXJpbmRzdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgYnJ1Z2VyaW5kc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ0tvbW1lbnRhcmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdWaXMgb3ZlcnRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnVGlsbGFkIG9wcmV0dGVsc2UgYWYgcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdCZWd5bmQgcGVyaW9kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnQWZzbHV0IHBlcmlvZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0ZlcmllZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1RpbWVyIHByLiB1Z2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0dvZGtlbmR0IG92ZXJ0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXJpb2RlbnMgYWZzbHV0bmluZyBza2FsIHbDpnJlIGVmdGVyIHBlcmlvZGVucyBzdGFydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0luZ2VuIHRpZHNwZXJpb2RlciBmdW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1RpbGbDuGogdGlkc3BlcmlvZGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnU2UgdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1NlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdEZXIgZXIgaWtrZSBmdW5kZXQgZGF0YSBmb3IgZGVubmUgZGFnLic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ0FnZW50IGludGVyZmFjZS1ub3RpZmljYXRpb25zbW9kdWxldCBza2FsIHNlIGFudGFsbGV0IGFmIHVhZnNsdXR0ZWRlIGFyYmVqZHNkYWdlIGZvciBicnVnZXJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdTdGFuZGFyZG5hdm4gZm9yIG55ZSBoYW5kbGluZ2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdTdGFuZGFyZG5hdm4gZm9yIG55ZSBwcm9qZWt0ZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igc2x1dGRhdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBiZWd5bmRlbHNlc2RhdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBmcmF2w6Zyc2RhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igb3ZlcnRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIG5vcm1hbGUgdWdlbnRsaWdlIHRpbWVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3IgbnllIGhhbmRsaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3IgbnllIHByb2pla3Rlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBueWUgYnJ1Z2VyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lcmVyIGRlIHByb2pla3RlciwgZm9yIGh2aWxrZSBlbiBiZW3DpnJrbmluZyBlciBww6VrcsOmdmV0LiBIdmlzIFJlZ0V4cCBtYXRjaGVyIHDDpSBwcm9qZWt0ZXQsIHNrYWwgZHUgb2dzw6UgaW5kZsO4amUgZW4gYmVtw6Zya25pbmcuIFJlZ0V4cCBicnVnZXIgc214IHBhcmFtZXRlcmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzJ30gPSAnUmVkaWdlciBpbmRzdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQnfSA9ICdSZWRpZ2VyIHRpZHNvcHRlZ25lbHNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0FuZ2l2ZXIgZm9yIGh2b3IgbWFuZ2UgZGFnZSwgZHUga2FuIGluZHPDpnR0ZSBhcmJlamRzZW5oZWRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnSHZpcyBkZW5uZSBlciBha3RpdmVyZXQsIMOmbmRyZXMgZHJvcGRvd24tZWxlbWVudGVybmUgcMOlIHJlZGlnZXJpbmdzc2vDpnJtYmlsbGVkZXQgdGlsIGF1dG9mdWxkZsO4cmluZ3NmZWx0ZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdNYWtzaW1hbHQgYW50YWwgYWYgYXJiZWpkc2RhZ2UgZWZ0ZXIgaHZpbGtldCBhcmJlamRzZW5oZWRlcm5lIHNrYWwgaW5kc8OmdHRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nJ30gPSAnUHJvamVrdHRpZHNyYXBwb3J0ZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ1JlZ3Vsw6ZyZSB1ZHRyeWsgZm9yIGJlZ3LDpm5zbmluZyBhZiBoYW5kbGluZ3NsaXN0ZSBpZsO4bGdlIGRldCB2YWxndGUgcHJvamVrdC4gTsO4Z2xlbiBpbmRlaG9sZGVyIGV0IHJlZ3Vsw6ZydCB1ZHRyeWsgZm9yIHByb2pla3QoZXIpLCBpbmRob2xkZXQgcnVtbWVyIHJlZ3Vsw6ZyZSB1ZHRyeWsgZm9yIGhhbmRsaW5nKGVyKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnUmVndWzDpnJlIHVkdHJ5ayBmb3IgYmVncsOmbnNuaW5nIGFmIHByb2pla3RsaXN0ZSBpZsO4bGdlIGJydWdlcmdydXBwZXIuIE7DuGdsZW4gaW5kZWhvbGRlciBldCByZWd1bMOmcnQgdWR0cnlrIGZvciBwcm9qZWt0KGVyKSwgaW5kaG9sZGV0IHJ1bW1lciBrb21tYXNlcGFyZXJldCBsaXN0ZSBvdmVyIGdydXBwZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdBbmdpdmVyLCBvbSBhcmJlamRzdGltZXIga2FuIGluZHPDpnR0ZXMgdWRlbiBzdGFydC0gb2cgc2x1dHRpZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdEZXR0ZSBtb2R1bCBnZW5uZW10dmluZ2VyIGluZHPDpnR0ZWxzZXIgaSB0aWRzcmVnbnNrYWIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRGV0dGUgYWR2aXNlcmluZ3Ntb2R1bCBnaXZlciBlbiBhZHZhcnNlbCwgaHZpcyBkZXIgZXIgZm9yIG1hbmdlIHVmdWxkc3TDpm5kaWdlIGFyYmVqZHNkYWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVGlkc3JlZ25za2FiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0JydWdlcywgaHZpcyBub2dsZSBoYW5kbGluZ2VyIGhhciByZWR1Y2VyZXQgYXJiZWpkc3RpbWVybmUgKGYuZWtzLiBodmlzIGt1biBoYWx2ZGVsZW4gYWYgcmVqc2V0aWRlbiBlciBiZXRhbHQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCknOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfTVhfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZhbGlkIHByb2plY3RzJ30gPSAnTW9zdHJhciBwcm95ZWN0b3MgdsOhbGlkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgcHJvamVjdHMnfSA9ICdNb3N0cmFyIHRvZG9zIGxvcyBwcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZUFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1BvciBmYXZvciBpbnNlcnRlIHN1cyBob3JhcyBkZSB0cmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmNpw7NuIGV4aXRvc2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdFcnJvciBhbCBpbnNlcnRhciBtw7psdGlwbGVzIGZlY2hhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnU2UgaW5zZXJ0YXJvbiBzYXRpc2ZhY3RvcmlhbWVudGUgbGFzIGVudHJhZGFzIGRlIHZhcmlhcyBmZWNoYXMhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnTGEgZmVjaGEgZW50cmFkYSBlcyBpbmNvcnJlY3RhISBMYSBmZWNoYSBkZSBoYSBjYW1iaWFkbyBhIGhveS4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIFRpbWUgQWNjb3VudGluZyBvZiB0aGlzIGRheT8nfSA9CiAgICAgICAgJ8K/UmVhbG1lbnRlIGRlc2VhIGVsaW1pbmFyIGxhIENvbnRhYmlsaWRhZCBkZSBUaWVtcG8gZGUgZXN0ZSBkw61hPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdNb2RpZmljYXIgUmVnaXN0cm8gZGUgSG9yYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJciBhIGNvbmZpZ3VyYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2FjacOzbiBwb3IgRmVjaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnRMOtYSBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0TDrWEgc2lndWllbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ0lyIGEgZXN0YSBmZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0TDrWFzIHNpbiByZWdpc3Rybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2Npb25hciB0b2RvcyBsb3MgZMOtYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ1JlZ2lzdHJvIG1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwYXJhIHN1IGF1c2VuY2lhIHBhcmEgbG9zIGTDrWFzIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdEZSB2YWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdBdXNlbnRlIHBvciBlbmZlcm1lZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUG9yIGZhdm9yIHNlbGVjY2lvbmUgYWwgbWVub3MgdW4gZMOtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdQb3IgZmF2b3IgZXNjb2phIHVuYSByYXrDs24gcG9yIGF1c2VuY2lhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnUmVnaXN0cm8gTWFzaXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnTG9zIGNhbXBvcyByZXF1ZXJpZG9zIGVzdMOhbiBtYXJjYWRvcyBjb24gdW4gIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0VzIG5lY2VzYXJpbyBxdWUgcHJvcG9yY2lvbmUgdW5hIGhvcmEgZGUgaW5pY2lvIHkgdW5hIGRlIGZpbmFsaXphY2nDs24gbyB1biBwZXJpb2RvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1RhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0NvbWVudGFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhLid9ID0gJ8K/UG9yIGZhdm9yLCBlc2NyaWJhIHVuIGNvbWVudGFyaW8gZGUgbcOhcyBkZSA4IGNhcmFjdGVyZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdIb3JhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTm8gc2UgcGVybWl0ZSBsYSBpbnNlcmNpw7NuIGRlIGhvcmFzIG5lZ2F0aXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyByZXBldGlkYXMuIExhIGhvcmEgZGUgaW5pY2lvIGVzdMOhIGluY2x1w61kYSBlbiBvdHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ0Zvcm1hdG8gaW52w6FsaWRvISBQb3IgZmF2b3IgaW50cm9kdXpjYSBsYXMgaG9yYXMgY29uIGVsIGZvcm1hdG8gSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGVzIHNvbG8gcGVybWl0aWRvIGNvbW8gdGllbXBvIGZpbmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0hvcmEgaW52w6FsaWRhISBVbiBkw61hIHNvbG8gdGllbmUgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnSG9yYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZGViZSBzZXIgcG9zdGVyaW9yIGEgbGEgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyByZXBldGlkYXMuIExhIGhvcmEgZGUgZmluYWxpemFjacOzbiBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfCoVBlcmlvZG8gaW52w6FsaWRvISBVbiBkw61hIHPDs2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ1VuIHBlcmlvZG8gdsOhbGlkbyBkZWJlIHNlciBtYXlvciBhIGNlcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfCoVBlcmlvZG8gaW52w6FsaWRvISBObyBzZSBwZXJtaXRlbiBwZXJpb2RvcyBuZWdhdGl2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQcOxYWRpciB1bmEgZmlsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ1RvdGFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnwqFTw7NsbyBzZSBwZXJtaXRlIGVsZWdpciB1biBlbGVtZW50byBjaGVja2JveCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdNb3N0cmFyIHRvZG9zIGxvcyBlbGVtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0VsaW1pbmFyIFJlZ2lzdHJvIGRlIENvbnRhYmlsaWRhZCBkZSBUaWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdDb25maXJtYXIgaW5zZXJjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3UgYXVzZW5jaWEgcG9yIGVuZmVybWVkYWQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3VzIHZhY2FjaW9uZXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdSBhdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIG3DoXMgZGUgMTYgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdWaXN0YSBtZW5zdWFsIGRlIHRpZW1wb3MgcmVwb3J0YWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnTsO6bWVybyBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmFzIHRyYWJhamFkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnVG90YWwgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ0hvcmFzIHJlc3RhbnRlcyBwYXJhIGF1c2VudGFyc2UgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVmFjYWNpb25lcyAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1ZhY2FjaW9uZXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnVmFjYWNpb25lcyB0b21hZGFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRMOtYXMgZGUgdmFjYWNpb25lcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdBdXNlbmNpYSBwb3IgZW5mZXJtZWRhZCAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQXVzZW5jaWFzIHBvciBlbmZlcm1lZGFkIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnQXVzZW5jaWFzIHBvciBlbmZlcm1lZGFkICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNZXMgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ01lcyBzaWd1aWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0TDrWEgZGUgbGEgc2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdIb3JhcyB0cmFiYWphZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ1RvdGFsIGRlIGhvcmFzIHRyYWJhamFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzdGEgZGUgcHJveWVjdG8gZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdIb3JhcyAobWVuc3VhbGVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSG9yYXMgKHRpZW1wbyBkZSB2aWRhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsIG5ldG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnUmVwb3J0ZSBkZSBob3Jhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhY2nDs24gcG9yIG1lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSXIgYSBmZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSZXBvcnRlcyBkZSB1c3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdUb3RhbCBtZW5zdWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnVGllbXBvIHRvdGFsIGRlIHZpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdBdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1ZhY2FjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0F1c2VuY2lhIHBvciBlbmZlcm1lZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0TDrWFzIGxpYnJlcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmVwb3J0ZXMgZGUgcHJveWVjdG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1JlcG9ydGUgZGUgcHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnSXIgYWwgcmVzdW1lbiBkZSByZXBvcnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0FjdHVhbG1lbnRlIHNvbG8gc2UgbXVlc3RyYW4gbG9zIHVzdWFyaW9zIGFjdGl2b3MgZW4gZXN0ZSBwcm95ZWN0by4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtaWVudG8sIHBvciBmYXZvciBhY3R1YWxpemUgbGEgY29uZmlndXJhY2nDs246JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0FjdHVhbG1lbnRlIHNlIG11ZXN0cmFuIHRvZG9zIGxvcyB1c3VhcmlvcyBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvLiBQYXJhIGNhbWJpYXIgZXN0ZSBjb21wb3J0YW1pZW50bywgcG9yIGZhdm9yIGFjdHVhbGl6ZSBsYSBjb25maWd1cmFjacOzbjonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIGNvbmZpZ3VyYWNpw7NuIGRlbCBwcm95ZWN0byBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnQWdyZWdhciBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lyIGFsIHJlc3VtZW4gZGUgY29uZmlndXJhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZ3JlZ2FyIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZWwgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1biBwcm95ZWN0byBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FncmVnYXIgdGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdVc3VhcmlvIG51ZXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdGaWx0cm8gcGFyYSBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0ZpbHRybyBwYXJhIFRhcmVhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdHJvIHBhcmEgVXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgZGUgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIGRlIFRhcmVhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0FncmVnYXIgVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIENvbmZpZ3VyYWNpw7NuIGRlIGxhIFRhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdZYSBleGlzdGUgdW5hIHRhcmVhIGNvbiBlc3RlIG5vbWJyZS4gUG9yIGZhdm9yLCBlbGlqYSB1bm8gZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdMaXN0YSBkZSBVc3Vhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ0NvbmZpZ3VyYWNpw7NuIGRlIFVzdWFyaW8gTnVldm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIENvbmZpZ3VyYWNpw7NuIGRlbCBVc3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnRzJ30gPSAnQ29tZW50YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgaG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1Blcm1pdGlyIGNyZWFjacOzbiBkZSBwcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyaW9kbyBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZG8gZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRMOtYXMgZGUgVmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ0hvcmFzIHBvciBTZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1RpZW1wbyBFeHRyYSBBdXRvcml6YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdGZWNoYSBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnUG9yIGZhdm9yIGluc2VydGUgdW5hIGZlY2hhIHbDoWxpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRmVjaGEgZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0VsIHBlcmlvZG8gZGUgZmluYWxpemFjacOzbiBkZWJlIHNlciBwb3N0ZXJpb3IgYWwgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRMOtYXMgZGUgYXVzZW5jaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5hbGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnSG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vIHNlIGVuY29udHJhcm9uIHBlcmlvZG9zIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWdyZWdhciBwZXJpb2RvIGRlIHRpZW1wbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdWZXIgcmVnaXN0cm8gZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnUmVzdW1lbiBkZSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gZGF0b3MgZGUgZXN0ZSBkw61hLic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2FjacOzbiBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLCBuZWNlc2FyaW8gcGFyYSB2aXN1YWxpemFyIGVsIG7Dum1lcm8gZGUgZMOtYXMgaW5jb21wbGV0b3MgZGUgdW4gdXN1YXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21icmUgcG9yIGRlZmVjdG8gcGFyYSBhY2Npb25lcyBudWV2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWJyZSBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBkZXNjcmlwY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBmYWx0YXMgKGTDrWFzIGRlIGF1c2VuY2lhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBleHRyYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBzZW1hbmFsZXMgZXN0w6FuZGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgYWNjaW9uZXMgbnVldmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgdXN1YXJpb3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmUgcGFyYSBjdcOhbGVzIHByb3llY3RvcyBlcyBvYmxpZ2F0b3JpYSBsYSBpbnNlcmNpw7NuIGRlIGNvbWVudGFyaW9zLiBTaSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgY29pbmNpZGUgY29uIGVsIHByb3llY3RvLCBzZSB0aWVuZSBxdWUgZXNjcmliaXIgdW4gY29tZW50YXJpby4gTGEgZXhwcmVzacOzbiByZWd1bGFyIHVzYSBlbCBwYXLDoW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzaSBlbCBtw7NkdWxvIGRlIGVzdGFkw61zdGljYXMgZGViZSBnZW5lcmFyIGluZm9ybWFjacOzbiBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBjb25maWd1cmFjacOzbiBkZSBsYSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQnfSA9ICdNb2RpZmljYXIgcmVnaXN0cm8gZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0VzcGVjaWZpY2EgZWwgbsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIHBhcmEgcmVnaXN0cmFyIGhvcmFzIGRlIHRyYWJham8gYXRyYXNhZGFzIChwb3IgZWplbXBsbzogMTAgZMOtYXMgZGUgYW50aWfDvGVkYWQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgc29sYW1lbnRlIGxvcyB1c3VhcmlvcyBxdWUgaGFuIHJlZ2lzdHJhZG8gc3VzIHRpZW1wb3MgZW4gZWwgcHJveWVjdG8gc2VsZWNjaW9uYWRvIHNlcsOhbiBtb3N0cmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgbG9zIGVsZW1lbnRvcyBkZXNwbGVnYWJsZXMgZGUgbGEgdmVudGFuYSBkZSBlZGljacOzbiBzZSBjYW1iaWFuIHBvciBjYW1wb3MgZGUgYXV0b2NvbXBsZXRhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgc2UgbGUgcGVybWl0aXLDoSBhbCB1c3VhcmlvIHJlZ2lzdHJhciAidmFjYWNpb25lcyIsICJhdXNlbmNpYSBwb3IgZW5mZXJtZWRhZCIsICJhdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhIiBlbiBtw7psdGlwbGVzIGZlY2hhcyBhbCBtaXNtbyB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIGxhYm9yYWxlcyBkZXNwdcOpcyBkZSBsb3MgY3VhbGVzIGVzIG9ibGlnYXRvcmlvIHJlcG9ydGFyIGxhcyBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIGxhYm9yYWxlcyBzaW4gcmVnaXN0cm8gZGUgaG9yYXMgdHJhYmFqYWRhcyBkZXNwdcOpcyBkZSBsb3MgY3VhbGVzIHNlIG1vc3RyYXLDoSB1bmEgYWR2ZXJ0ZW5jaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydGUgZGUgdGllbXBvcyBkZSBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnRXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBsYSBsaXN0YSBkZSBhY2Npb25lcywgZGUgYWN1ZXJkbyBhbCBwcm95ZWN0byBzZWxlY2Npb25hZG8uIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgbGFzIGV4cHJlc2lvbmVzIHJlZ3VsYXJlcyBwYXJhIGxhcyBhY2Npb25lcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnRXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBsYSBsaXN0YSBkZSBwcm95ZWN0b3MsIGRlIGFjdWVyZG8gYSBsb3MgZ3J1cG9zIGRlIHVzdWFyaW9zLiBLZXkgY29udGllbmUgbGEgZXhwcmVzacOzbiByZWd1bGFyIHBhcmEgbG9zIHByb3llY3RvcyB5IENvbnRlbnQsIHVuYSBsaXN0YSBkZSBncnVwb3MsIHNlcGFyYWRvcyBwb3IgY29tYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdFc3BlY2lmaWNhIHNpIGVzIHBvc2libGUgaW5zZXJ0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMgc2luIGRlZmluaXIgbG9zIHRpZW1wb3MgZGUgaW5pY2lvIHkgZmluYWxpemFjacOzbiBkZSBsYXMgdGFyZWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdFc3RlIG3Ds2R1bG8gaGFjZSBvYmxpZ2F0b3JpYSBsYSBpbnNlcmNpw7NuIGRlIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYWNpw7NuIHF1ZSBtdWVzdHJhIHVuYSBhZHZlcnRlbmNpYSBzaSBoYXkgZGVtYXNpYWRvcyBkw61hcyBzaW4gcmVnaXN0cm8gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWRpdGFyIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1Jlc3VtZW4gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnQWp1c3RlcyBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1ZlciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdDb250YWJpbGlkYWQgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdTZSB1c2Egc2kgYWxndW5hcyBhY2Npb25lcyByZWR1Y2VuIGVsIG7Dum1lcm8gZGUgaG9yYXMgdHJhYmFqYWRhcyAocG9yIGVqZW1wbG86IHNpIHPDs2xvIHNlIHBhZ2EgbGEgbWl0YWQgZGVsIHRpZW1wbyBkZSB2aWFqZSBwdWVkZSBlc3BlY2lmaWNhcnNlIEtleSA9PiBWaWFqZTsgQ29udGVudCA9PiA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZhbGlkIHByb2plY3RzJ30gPSAnTW9zdHJhciBwcm95ZWN0b3MgdsOhbGlkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgcHJvamVjdHMnfSA9ICdNb3N0cmFyIHRvZG9zIGxvcyBwcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZUFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0ZvciBmYXZvciBpbnNlcnRlIHN1cyBob3JhcyBkZSB0cmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmNpw7NuIGV4aXRvc2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdFcnJvciBhbCBpbnNlcnRhciBtdWx0aXBsZXMgZmVjaGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdTZSBoYW4gaW5zZXJ0YWRvIHNhdGlzZmFjdG9yaWFtZW50ZSBlbnRyYWRhcyBwYXJhIHZhcmlhcyBmZWNoYXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdMYSBmZWNoYSBlcnJhZGEgZXMgaW52w6FsaWRhISBMYSBmZWNoYXMgZnVlIGNhbWJpYWRhIGEgaG95Lic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnwr9SZWFsbWVudGUgZGVzZWEgZWxpbWluYXIgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyBkZSBlc3RlIGTDrWE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ01vZGlmaWNhciBSZWdpc3RybyBkZSBIb3Jhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0lyIGEgY29uZmlndXJhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBGZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEw61hIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnRMOtYSBzaWd1aWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnSXIgYSBlc3RhIGZlY2hhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRMOtYXMgc2luIHJlZ2lzdHJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVjY2lvbmFyIHRvZG9zIGxvcyBkw61hcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnUmVnaXN0cm8gbWFzaXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUG9yIGZhdm9yIGVzY29qYSB1bmEgcmF6w7NuIHBhcmEgc3UgYXVzZW5jaWEgcGFyYSBsb3MgZMOtYXMgc2VsZWNjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0RlIHZhY2FjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0F1c2VudGUgcG9yIGVuZmVybWVkYWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdBdXNlbnRlIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdQb3IgZmF2b3Igc2VsZWNjaW9uZSBhbCBtZW5vcyB1biBkw61hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwb3IgYXVzZW5jaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdSZWdpc3RybyBNYXNpdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdMb3MgY2FtcG9zIHJlcXVlcmlkb3MgZXN0w6FuIG1hcmNhZG9zIGNvbiB1biAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRXMgbmVjZXNhcmlvIHF1ZSBwcm9wb3JjaW9uZSB1bmEgaG9yYSBkZSBpbmljaW8geSB1bmEgZGUgZmluYWxpemFjacOzbiBvIHVuIHBlcmlvZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQ29tZW50YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEuJ30gPSAnwr9Qb3IgZmF2b3IsIGVzY3JpYmEgdW4gY29tZW50YXJpbyBkZSBtw6FzIGRlIDggY2FyYWN0ZXJlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ0hvcmEgZGUgaW5pY2lvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgbmVnYXRpdmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnTm8gc2UgcGVybWl0ZSBsYSBpbnNlcmNpw7NuIGRlIGhvcmFzIHJlcGV0aWRhcy4gTGEgaG9yYSBkZSBpbmljaW8gZXN0w6EgaW5jbHXDrWRhIGVuIG90cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnRm9ybWF0byBpbnbDoWxpZG8hIFBvciBmYXZvciBpbnRyb2R1emNhIGxhcyBob3JhcyBjb24gZWwgZm9ybWF0byBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgZXMgc29sbyBwZXJtaXRpZG8gY29tbyB0aWVtcG8gZmluYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnSG9yYSBpbnbDoWxpZGEhIFVuIGTDrWEgc29sbyB0aWVuZSAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICdIb3JhIGRlIGZpbmFsaXphY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ0xhIGhvcmEgZGUgZmluYWxpemFjacOzbiBkZWJlIHNlciBwb3N0ZXJpb3IgYSBsYSBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnTm8gc2UgcGVybWl0ZSBsYSBpbnNlcmNpw7NuIGRlIGhvcmFzIHJlcGV0aWRhcy4gTGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGVzdMOhIGluY2x1w61kYSBlbiBvdHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ8KhUGVyaW9kbyBpbnbDoWxpZG8hIFVuIGTDrWEgc8OzbG8gdGllbmUgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyaW9kbyB2w6FsaWRvIGRlYmUgc2VyIG1heW9yIGEgY2Vyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ8KhUGVyaW9kbyBpbnbDoWxpZG8hIE5vIHNlIHBlcm1pdGVuIHBlcmlvZG9zIG5lZ2F0aXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdBw7FhZGlyIHVuYSBmaWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnVG90YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICfCoVPDs2xvIHNlIHBlcm1pdGUgZWxlZ2lyIHVuIGVsZW1lbnRvIGNoZWNrYm94ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGFsbCBpdGVtcyd9ID0gJ01vc3RyYXIgdG9kb3MgbG9zIGVsZW1lbnRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRWxpbWluYXIgUmVnaXN0cm8gZGUgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1hciBpbnNlcmNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdSBhdXNlbmNpYSBwb3IgZW5mZXJtZWRhZD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdXMgdmFjYWNpb25lcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ8K/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+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdJciBhbCByZXN1bWVuIGRlIHJlcG9ydGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc29sbyBzZSBtdWVzdHJhbiBsb3MgdXN1YXJpb3MgYWN0aXZvcyBlbiBlc3RlIHByb3llY3RvLiBQYXJhIGNhbWJpYXIgZXN0ZSBjb21wb3J0YW1pZW50bywgcG9yIGZhdm9yIGFjdHVhbGl6ZSBsYSBjb25maWd1cmFjacOzbjonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc2UgbXVlc3RyYW4gdG9kb3MgbG9zIHVzdWFyaW9zIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWllbnRvLCBwb3IgZmF2b3IgYWN0dWFsaXplIGxhIGNvbmZpZ3VyYWNpw7NuOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgY29uZmlndXJhY2nDs24gZGVsIHByb3llY3RvIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnQWdyZWdhciBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lyIGFsIHJlc3VtZW4gZGUgY29uZmlndXJhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZ3JlZ2FyIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZWwgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1biBwcm95ZWN0byBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FncmVnYXIgdGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdVc3VhcmlvIG51ZXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdGaWx0cm8gcGFyYSBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0ZpbHRybyBwYXJhIFRhcmVhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdHJvIHBhcmEgVXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgZGUgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIGRlIFRhcmVhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0FncmVnYXIgVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIENvbmZpZ3VyYWNpw7NuIGRlIGxhIFRhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdZYSBleGlzdGUgdW5hIHRhcmVhIGNvbiBlc3RlIG5vbWJyZS4gUG9yIGZhdm9yLCBlbGlqYSB1bm8gZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdMaXN0YSBkZSBVc3Vhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ0NvbmZpZ3VyYWNpw7NuIGRlIFVzdWFyaW8gTnVldm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIENvbmZpZ3VyYWNpw7NuIGRlbCBVc3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnRzJ30gPSAnQ29tZW50YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgaG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1Blcm1pdGlyIGNyZWFjacOzbiBkZSBwcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyaW9kbyBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZG8gZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRMOtYXMgZGUgVmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ0hvcmFzIHBvciBTZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1RpZW1wbyBFeHRyYSBBdXRvcml6YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdGZWNoYSBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnUG9yIGZhdm9yIGluc2VydGUgdW5hIGZlY2hhIHbDoWxpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRmVjaGEgZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0VsIHBlcmlvZG8gZGUgZmluYWxpemFjacOzbiBkZWJlIHNlciBwb3N0ZXJpb3IgYWwgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRMOtYXMgZGUgYXVzZW5jaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5hbGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnSG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vIHNlIGVuY29udHJhcm9uIHBlcmlvZG9zIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWdyZWdhciBwZXJpb2RvIGRlIHRpZW1wbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdWZXIgcmVnaXN0cm8gZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnUmVzdW1lbiBkZSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gZGF0b3MgZGUgZXN0ZSBkw61hLic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2FjacOzbiBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLCBuZWNlc2FyaW8gcGFyYSB2aXN1YWxpemFyIGVsIG7Dum1lcm8gZGUgZMOtYXMgaW5jb21wbGV0b3MgZGUgdW4gdXN1YXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21icmUgcG9yIGRlZmVjdG8gcGFyYSBhY2Npb25lcyBudWV2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWJyZSBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBkZXNjcmlwY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBmYWx0YXMgKGTDrWFzIGRlIGF1c2VuY2lhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBleHRyYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBzZW1hbmFsZXMgZXN0w6FuZGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgYWNjaW9uZXMgbnVldmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgdXN1YXJpb3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmUgcGFyYSBjdcOhbGVzIHByb3llY3RvcyBlcyBvYmxpZ2F0b3JpYSBsYSBpbnNlcmNpw7NuIGRlIGNvbWVudGFyaW9zLiBTaSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgY29pbmNpZGUgY29uIGVsIHByb3llY3RvLCBzZSB0aWVuZSBxdWUgZXNjcmliaXIgdW4gY29tZW50YXJpby4gTGEgZXhwcmVzacOzbiByZWd1bGFyIHVzYSBlbCBwYXLDoW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzaSBlbCBtw7NkdWxvIGRlIGVzdGFkw61zdGljYXMgZGViZSBnZW5lcmFyIGluZm9ybWFjacOzbiBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBjb25maWd1cmFjacOzbiBkZSBsYSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQnfSA9ICdNb2RpZmljYXIgcmVnaXN0cm8gZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0VzcGVjaWZpY2EgZWwgbsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIHBhcmEgcmVnaXN0cmFyIGhvcmFzIGRlIHRyYWJham8gYXRyYXNhZGFzIChwb3IgZWplbXBsbzogMTAgZMOtYXMgZGUgYW50aWfDvGVkYWQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgc29sYW1lbnRlIGxvcyB1c3VhcmlvcyBxdWUgaGFuIHJlZ2lzdHJhZG8gc3VzIHRpZW1wb3MgZW4gZWwgcHJveWVjdG8gc2VsZWNjaW9uYWRvIHNlcsOhbiBtb3N0cmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgbG9zIGVsZW1lbnRvcyBkZXNwbGVnYWJsZXMgZGUgbGEgdmVudGFuYSBkZSBlZGljacOzbiBzZSBjYW1iaWFuIHBvciBjYW1wb3MgZGUgYXV0b2NvbXBsZXRhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgc2UgbGUgcGVybWl0aXLDoSBhbCB1c3VhcmlvIHJlZ2lzdHJhciAidmFjYWNpb25lcyIsICJhdXNlbmNpYSBwb3IgZW5mZXJtZWRhZCIsICJhdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhIiBlbiBtw7psdGlwbGVzIGZlY2hhcyBhbCBtaXNtbyB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIGxhYm9yYWxlcyBkZXNwdcOpcyBkZSBsb3MgY3VhbGVzIGVzIG9ibGlnYXRvcmlvIHJlcG9ydGFyIGxhcyBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIGxhYm9yYWxlcyBzaW4gcmVnaXN0cm8gZGUgaG9yYXMgdHJhYmFqYWRhcyBkZXNwdcOpcyBkZSBsb3MgY3VhbGVzIHNlIG1vc3RyYXLDoSB1bmEgYWR2ZXJ0ZW5jaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydGUgZGUgdGllbXBvcyBkZSBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnRXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBsYSBsaXN0YSBkZSBhY2Npb25lcywgZGUgYWN1ZXJkbyBhbCBwcm95ZWN0byBzZWxlY2Npb25hZG8uIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgbGFzIGV4cHJlc2lvbmVzIHJlZ3VsYXJlcyBwYXJhIGxhcyBhY2Npb25lcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnRXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBsYSBsaXN0YSBkZSBwcm95ZWN0b3MsIGRlIGFjdWVyZG8gYSBsb3MgZ3J1cG9zIGRlIHVzdWFyaW9zLiBLZXkgY29udGllbmUgbGEgZXhwcmVzacOzbiByZWd1bGFyIHBhcmEgbG9zIHByb3llY3RvcyB5IENvbnRlbnQsIHVuYSBsaXN0YSBkZSBncnVwb3MsIHNlcGFyYWRvcyBwb3IgY29tYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdFc3BlY2lmaWNhIHNpIGVzIHBvc2libGUgaW5zZXJ0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMgc2luIGRlZmluaXIgbG9zIHRpZW1wb3MgZGUgaW5pY2lvIHkgZmluYWxpemFjacOzbiBkZSBsYXMgdGFyZWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdFc3RlIG3Ds2R1bG8gaGFjZSBvYmxpZ2F0b3JpYSBsYSBpbnNlcmNpw7NuIGRlIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYWNpw7NuIHF1ZSBtdWVzdHJhIHVuYSBhZHZlcnRlbmNpYSBzaSBoYXkgZGVtYXNpYWRvcyBkw61hcyBzaW4gcmVnaXN0cm8gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWRpdGFyIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1Jlc3VtZW4gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnQWp1c3RlcyBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1ZlciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdDb250YWJpbGlkYWQgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdTZSB1c2Egc2kgYWxndW5hcyBhY2Npb25lcyByZWR1Y2VuIGVsIG7Dum1lcm8gZGUgaG9yYXMgdHJhYmFqYWRhcyAocG9yIGVqZW1wbG86IHNpIHPDs2xvIHNlIHBhZ2EgbGEgbWl0YWQgZGVsIHRpZW1wbyBkZSB2aWFqZSBwdWVkZSBlc3BlY2lmaWNhcnNlIEtleSA9PiBWaWFqZTsgQ29udGVudCA9PiA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aHVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdmFsaWQgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZUFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnQml6dG9zYW4gdMO2csO2bG5pIGFrYXJqYSBhIG1haSBuYXAgSWTDtUVsc3rDoW1vbMOhc8OhdD8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnSWTDtSBiZWplZ3l6w6lzIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRMOhdHVtIG5hdmlnw6FjacOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0Vsw7V6w7UgbmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnS8O2dmV0a2V6w7UgbmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0JlamVneXrDqXMgbsOpbGvDvGxpIG5hcG9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnU3phYmFkc8OhZ29uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdCZXRlZ3N6YWJhZHPDoWdvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ1TDumzDs3JhIGxldMO2bHTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0EgIioiLWFsIGplbMO2bHQgbWV6w7VrIGtpdMO2bHTDqXNlIGvDtnRlbGV6w7UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnS2kga2VsbCB0w7ZsdGVuaWUgYSBrZXpkw7Ugw6lzIGJlZmVqZXrDtSBpZMO1cG9udG90IHZhZ3kgYXogaWTDtXRhcnRhbW90Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnRmVsYWRhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdNZWdqZWd5esOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEuJ30gPSAnS8OpcmVtIGFkam9uIG1lZyBlZ3kgOCBrYXJha3Rlcm7DqWwgaG9zc3phYmIgbWVnamVneXrDqXN0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWdhdMOtdiBpZMO1ayBuZW0gbWVnZW5nZWRldHRlay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0lzbcOpdGzDtWTDtSDDs3LDoWsgbWVnYWTDoXNhIG5lbSBtZWdlbmdlZGV0dC4gQSBrZXpkw7UgaWTDtXBvbnQgZWd5ZXppayBlZ3kgbcOhc2lrIGludGVydmFsdW1tYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdBIGJlZmVqZXrDtSBpZMO1cG9udCBrw6lzw7ViYmkga2VsbCBsZWd5ZW4sIG1pbnQgYSBrZXpkw7UgaWTDtXBvbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnSXNtw6l0bMO1ZMO1IMOzcsOhayBtZWdhZMOhc2EgbmVtIGxlaGV0c8OpZ2VzLiBBIGJlZmVqZXrDtSBpZMO1cG9udCBlZ3llemlrIG3DoXMgaWTDtXN6YWtrYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfDiXJ2w6lueXRlbGVuIGlkw7V0YXJ0YW0hIEEgbmFwIGNzYWsgMjQgw7Nyw6Fiw7NsIMOhbGwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnQXogw6lydsOpbnllcyBpZMO1dGFydGFtbmFrIG5hZ3lvYmJuYWsga2VsbCBsZW5uaWUgbnVsbMOhbsOhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ8OJcnbDqW55dGVsZW4gaWTDtXRhcnRhbSEgTmVnYXTDrXYgaWTDtXRhcnRhbSBuZW0gbWVnZW5nZWRldHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnU29yIGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ8OWc3N6ZXNlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ0NzYWsgZWd5IGplbMO2bMO1bsOpZ3l6ZXRldCB2w6FsYXN6dGhhdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICfDlnNzemVzIGJlamVneXrDqXMgbWVnamVsZW7DrXTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdJZMO1RWxzesOhbW9sw6FzIGJlamVneXrDqXMgdMO2cmzDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQmVzesO6csOhcyBqw7N2w6FoYWd5w6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnQml6dG9zYW4gZG9sZ296b3R0LCBtaWvDtnpiZW4gYmV0ZWdzemFiYWTDoXNnb24gdm9sdD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdCaXp0b3NhbiBkb2xnb3pvdHQsIG1pa8O2emJlbiBiZXRlZ3N6YWJhZMOhc2dvbiB2b2x0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQml6dG9zYW4gZG9sZ296b3R0LCBtaWvDtnpiZW4gdMO6bMOzcsOhdCB0w7ZsdMO2dHQgbGU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0JpenRvc2FuIHTDtmJiZXQgZG9sZ296b3R0IG1pbnQgMTYgw7NyYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ0lkw7Uta2ltdXRhdMOhcyBoYXZpIMO2c3N6ZXPDrXTDtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnVMO6bMOzcmEgKMOzcsOhayknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnVMO6bMOzcmEgKGViYmVuIGEgaMOzbmFwYmFuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnVMO6bMOzcmEgKMO2c3N6ZXNlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnTGV0w7ZsdGhldMO1IHTDumzDs3JhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1N6YWJhZHPDoWcgKG5hcCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnU3phYmFkc8OhZyAoZWJiZW4gYSBow7NuYXBiYW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdTemFiYWRzw6FnICjDtnNzemVzZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0Zlbm5tYXJhZMOzIHN6YWJhZHPDoWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdCZXRlZ3N6YWJhZHPDoWcgKG5hcCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdCZXRlZ3N6YWJhZHPDoWcgKGViYmVuIGEgaMOzbmFwYmFuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdCZXRlZ3N6YWJhZHPDoWcgKMO2c3N6ZXNlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdFbMO1esO1IGjDs25hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnS8O2dmV0a2V6w7UgaMOzbmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdIw6l0a8O2em5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnTXVua2FpZMO1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ8OWc3N6ZXMgbXVua2FpZMO1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0ZlbGhhc3puw6Fsw7NpIHByb2pla3Qgw7Zzc3plZm9nbGFsw7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnw5Nyw6FrIChoYXZpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnw5Nyw6FrICjDqWxldHRhcnRhbSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdNaW5kw7Zzc3plc2VuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ0lkw7Uga2ltdXRhdMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnSMOzbmFwIG5hdmlnw6FjacOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnRmVsaGFzem7DoWzDsyBraW11dGF0w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdIYXZpIMO2c3N6ZXPDrXTDtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ8OJbGV0dGFydGFtIMO2c3N6ZXPDrXTDtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ1TDumzDs3JhIGxldMO2bHTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdTemFiYWRzw6FnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdCZXRlZ3N6YWJhZHPDoWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnSMOhdHJhbMOpdsO1IHTDoXZvbGzDqXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUHJvamVrdCBraW11dGF0w6Fzb2snOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1Byb2pla3Qga3VpbXV0YXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdJZMO1RWxzesOhbW9sw6FzIFByb2pla3QgQmXDoWxsw610w6Fzb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICfDmmogcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ8OaaiBQcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1Byb2pla3QgQmXDoWxsw610w6Fzb2sgU3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnTcOhciB2YW4gaWx5ZW4gbmV2w7sgcHJvamVrdCwgdsOhbGFzc3pvbiBtw6FzIG5ldmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ0lkw7VFbHN6w6Ftb2zDoXMgQmXDoWxsw610w6Fzb2sgU3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ8OaaiBmZWxhZGF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnw5pqIGZlbGhhc3puw6Fsw7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ1Byb2pla3RlayBTesO7csOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0ZlbGFkYXRvayBTesO7csOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZlbGhhc3puw6Fsw7NrIFN6w7tyw6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdQcm9qZWt0IExpc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0ZlbGFkYXQgTGlzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfDmmogRmVsYWRhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdGZWxhZGF0IEJlw6FsbMOtdMOhc29rIFN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ03DoXIgdmFuIGlseWVuIG5ldsO7IGZlbGFkYXQsIHbDoWxhc3N6b24gbcOhcyBuZXZldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnRmVsaGFzem7DoWzDsyBMaXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ8OaaiBGZWxoYXN6bsOhbMOzIEJlw6FsbMOtdMOhc2FpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ0ZlbGhhc3puw6Fsw7NpIEJlw6FsbMOtdMOhc29rIFN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdNZWdqZWd5esOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdNdXRhc3NhIGEgVMO6bMOzcsOhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUHJvamVrdCBsw6l0cmVob3rDoXPDoW5hayBlbmdlZMOpbHllesOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnSWTDtXN6YWsgS2V6ZGV0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnSWTDtXN6YWsgVsOpZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ1N6YWJhZG5hcG9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnw5Nyw6FrIGhldGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0rDs3bDoWhhZ3lvdHQgVMO6bMOzcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdBeiBpZMO1c3phayB2w6lnw6luZWsgYSBrZXpkZXRlIHV0w6FuIGtlbGwgbGVubmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnSWTDtXN6YWsgbmVtIHRhbMOhbGhhdMOzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdJZMO1c3phayBob3p6w6FhZMOhc2EnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnSWTDtSBCZWplZ3l6w6lzIG1lZ3Rla2ludMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdNZWd0ZWtpbnTDqXMgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05pbmNzIGFkYXQgZWhoZXogYSBuYXBob3ouJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnw5xneWludMOpesO1IGludGVyZmFjZSBmaWd5ZWxtZXp0ZXTDtSBtb2R1bCBhIGtpdMO2bHRldGxlbiBtdW5rYW5hcG9rIG1lZ2plbGVuw610w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnQXogw7pqIGFrY2nDs2sgYWxhcMOpcnRlbG1lemV0dCBuZXZlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdBeiDDumogcHJvamVrdGVrIGFsYXDDqXJ0ZWxtZXpldHQgbmV2ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdBbGFwYmXDoWxsw610w6FzIGEgZMOhdHVtIHbDqWfDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0FsYXBiZcOhbGzDrXTDoXMgYSBkw6F0dW0ga2V6ZGV0w6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdBbGFwYmXDoWxsw610w6FzIGEgdMOhdm9sbMOpdCBuYXBqYWlob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQWxhcGJlw6FsbMOtdMOhcyBhIHTDumzDs3LDoWhvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0FsYXBiZcOhbGzDrXTDoXMgYSBub3Jtw6FsIGhldGkgw7Nyw6FraG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnQXogw7pqIGFrY2nDs2sgYWxhcMOpcnRlbG1lemV0dCBzdMOhdHVzemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnQXogw7pqIHByb2pla3RlayBhbGFww6lydGVsbWV6ZXR0IHN0w6F0dXN6YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdBeiDDumogZmVsaGFzem7DoWzDs2sgYWxhcMOpcnRlbG1lemV0dCBzdMOhdHVzemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0FkamEgbWVnIGEgcHJvamVrdGVrZXQsIGFtZWx5ZWtoZXoga8O2dGVsZXrDtSBhIG1lZ2plZ3l6w6lzLiBIYSBhIFJlZ0V4cCBraWZlamV6w6lzIGlsbGVzemtlZGlrIGVneSBwcm9qZWt0cmUsIG1lZyBrZWxsIGFkbmlhIG1lZ2plZ3l6w6lzdC4gQSBSZWdFeHAgYXogc214IHBhcmFtw6l0ZXJ0IGhhc3puw6FsamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphLCBoYSBhIHN0YXRpc3p0aWthIG1vZHVsIGdlbmVyw6FsaGF0IElkw7VFbHN6w6Ftb2zDoXMgaW5mb3Jtw6FjacOza2F0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncyd9ID0gJ0lkw7VFbHN6w6Ftb2zDoXMgYmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkJ30gPSAnSWTDtSBiZWplZ3l6w6lzIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnSMOhbnkgbmFwcmEgdmlzc3phbWVuw7VsZWcgdHVkamEgbWVnYWRuaSBhIG11bmthaWTDtXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ0hhIGVuZ2Vkw6lseWV6ZXR0LCBhIGxlZ8O2cmTDvGzDtSBlbGVtZWsgaGVseWV0dCBhdXRvbWF0aWt1cyBraWVnw6lzesOtdMOpcyBsZXN6IGEgbWV6w7VrbsOpbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01heGltdW0gaMOhbnkgbmFwIHV0w6FuIGvDtnRlbGV6w7UgbWVnYWRuaSBhIG11bmthaWTDtXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZyd9ID0gJ1Byb2pla3QgaWTDtSBraW11dGF0w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bMOhcmlzIGtpZmVqZXrDqXMgYSBwcm9qZWt0aGV6IG1lZ2ZlbGVsw7UgYWtjacOzayBsaXN0w6Fqw6FuYWsgc3rDvGvDrXTDqXPDqWhlei4gQSBrdWxjcyByZWd1bMOhcmlzIGtpZmVqZXrDqXN0IHRhcnRhbG1heiBhIHByb2pla3Rla2hleiwgYSB0YXJ0YWxvbSByZWd1bMOhcmlzIGtpZmVqZXrDqXN0IHRhcnRhbG1heiBheiBha2Npw7NraG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdSZWd1bMOhcmlzIGtpZmVqZXrDqXMgYSBmZWxoYXN6bsOhbMOzayBjc29wb3J0asOhbmFrIG1lZ2ZlbGVsw7UgcHJvamVrdGVrIGxpc3TDoWrDoW5hayBzesO8a8OtdMOpc8OpaGV6LiBBIGt1bGNzIHJlZ3Vsw6FyaXMga2lmZWplesOpc3QgdGFydGFsbWF6IGEgcHJvamVrdGVraGV6LCBhIHRhcnRhbG9tIHJlZ3Vsw6FyaXMga2lmZWplesOpc3QgdGFydGFsbWF6IGEgY3NvcG9ydG9rIGxpc3TDoWrDoWhvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0FkamEgbWVnLCBoYSBhIG11bmthaWTDtSBtZWdhZGhhdMOzIGtlemTDtSDDqXMgYmVmZWplesO1IGlkw7Vwb250IG7DqWxrw7xsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdFeiBhIG1vZHVsIGvDqW55c3plcsOtdGkgYXogSWTDtUVsc3rDoW1vbMOhcyBiZXN6w7pyw6Fzw6F0Li4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdFeiBhIGZpZ3llbG1lenRldMO1IG1vZHVsIGplbHppLCBoYSB0w7psIHNvayBraXTDtmx0ZXRsZW4gbXVua2FuYXAgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnSWTDtUVsc3rDoW1vbMOhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnSGFzem7DoWxqYSwgaGEgdmFsYW1lbHlpayBha2Npw7MgY3PDtmtrZW50aSBhIG11bmthw7Nyw6FrYXQgKHDDqWxkw6F1bCBoYSBjc2FrIGF6IHV0YXrDoXMgZmVsZSBrZXLDvGwga2lmaXpldMOpc3JlLCBLdWxjcyA9PiBVdGF6w6FzOyBUYXJ0YWxvbSA9PjUwKS4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aXRfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnUmVuZGljb250YXppb25lIFRlbXBvcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZhbGlkIHByb2plY3RzJ30gPSAnTW9zdHJhIGkgcHJvZ2V0dGkgdmFsaWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIHByb2plY3RzJ30gPSAnTW9zdHJhIHR1dHRpIGkgcHJvZ2V0dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZUFjY291bnRpbmcnfSA9ICdUaW1lQWNjb3VudGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZXBvcnRpc3RpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnSW5zZXJpcmUgbFwnb3JhcmlvIGxhdm9yYXRpdm8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyaW1lbnRvIGF2dmVudXRvIGNvbiBzdWNjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ1NpIMOoIHZlcmlmaWNhdG8gdW4gZXJyb3JlIG5lbGxcJ2luc2VyaW1lbnRvIGRpIGRhdGUgbXVsdGlwbGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0luc2VyaW1lbnRvIGRpIGRhdGUgbXVsdGlwbGUgYXZ2ZW51dG8gY29uIHN1Y2Nlc3NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnTGEgZGF0YSBpbnNlcml0YSBub24gw6ggdmFsaWRhISBFXCcgc3RhdGEgaW1wb3N0YXRhIGxhIGRhdGEgZGkgb2dnaS4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIFRpbWUgQWNjb3VudGluZyBvZiB0aGlzIGRheT8nfSA9CiAgICAgICAgJ1Z1b2kgdmVyYW1lbnRlIGNhbmNlbGxhcmUgbGEgcmVuZGljb250YXppb25lIHRlbXBvcmFsZSBkaSBvZ2dpID8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnTW9kaWZpY2EgbGEgcmVuZGljb250YXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnVmFpIGFsbGUgaW1wb3N0YXppb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmlnYXppb25lIHBlciBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0dpb3JubyBwcmVjZWRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnR2lvcm5vIHN1Y2Nlc3Npdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnVmEgYSBxdWVzdGEgZGF0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0dpb3JuaSBzZW56YSBpbmZvcm1hemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZXppb25hIHR1dHRpIGkgZ2lvcm5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdJbnNlcmltZW50byBtYXNzaXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUGVyIGZhdm9yZSBzZWxlemlvbmEgaWwgbW90aXZvIGRlbGxhIHR1YSBhc3NlbnphIHBlciBpIGdpb3JuaSBzZWxlemlvbmF0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdGZXJpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQXNzZW50ZSBwZXIgbWFsYXR0aWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdBc3NlbnRlIHBlciByZWN1cGVybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnU3BlY2lmaWNhcmUgYWxtZW5vIHVuIGdpb3JubyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdTZWxlemlvbmFyZSB1biBtb3Rpdm8gcGVyIGxcJ2Fzc2VuemEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdJbnNlcmltZW50byBtYXNzaXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnSSBjYW1waSBvYmJsaWdhdG9yaSBzb25vIGluZGljYXRpIGNvbiAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRVwnIG9iYmxpZ2F0b3JpbyBpbnNlcmlyZSBpbml6aW8gZSBmaW5lIG9wcHVyZSB1biBwZXJpb2RvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ0NvbXBpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQ29tbWVudG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhLid9ID0gJ0luc2VyaXJlIHVuIGNvbW1ldG8gcGnDuSBsdW5nbyBkaSA4IGNhcmF0dGVyaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ0lzdGFudGUgZGkgSW5pemlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOb24gcG9zc29ubyBlc3NlcmUgaW5zZXJpdGkgdmFsb3JpIG5lZ2F0aXZpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnTm9uIMOoIHBlcm1lc3NvIGluc2VyaXJlIG9yZSByaXBldHV0ZS4gTFwnb3JhcmlvIGRpIGluaXppbyBjb2luY2lkZSBjb24gdW4gYWx0cm8gaW50ZXJ2YWxsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ0Zvcm1hdG8gbm9uIHZhbGlkby4gSW5zZXJpcmUgdW4gb3JhcmlvIG5lbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdMXCdvcmEgMjQ6MDAgw6ggY29uc2VudGl0YSBzb2xvIGNvbWUgb3JhIGRpIGZpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnT3JhcmlvIG5vbiB2YWxpZG8hIEluIHVuIGdpb3JubyBjaSBzb25vIHNvbG8gMjQgb3JlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ09yYXJpbyBkaSB0ZXJtaW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdMXCdvcmFyaW8gZGkgZmluZSDDqCBwb3N0ZXJpb3JlIGFsbFwnb3JhcmlvIGRpIGluaXppby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gw6ggcGVybWVzc28gaW5zZXJpcmUgb3JlIHJpcGV0dXRlLiBMXCdvcmFyaW8gZGkgZmluZSBjb2luY2lkZSBjb24gdW4gYWx0cm8gaW50ZXJ2YWxsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1BlcmlvZG8gbm9uIHZhbGlkby4gVW5hIGdpb3JuYXRhIGhhIHNvbG8gMjQgb3JlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ1VuIHBlcmlvZG8gdmFsaWRvIGRldmUgZXNzZXJlIG1hZ2dpb3JlIGRpIHplcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdQZXJpb2RvIG5vbiB2YWxpZG8uIFZhbG9yaSBuZWdhdGl2aSBub24gYW1tZXNzaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdBZ2dpdW5nZXJlIHVuYSByaWdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnVG90YWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnUHVvaSBzZWxlemlvbmFyZSBzb2xvIHVuIGVsZW1lbnRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGFsbCBpdGVtcyd9ID0gJ01vc3RyYSB0dXR0aSBnbGkgZWxlbWVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0NhbmNlbGxhcmUgdm9jZSBkaSByZW5kaWNvbnRhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdDb25mZXJtYXJlIGluc2VyaW1lbnRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gbWVudHJlIGVyaSBhc3NlbnRlIHBlciBtYWxhdHRpYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gbWVudHJlIGVyaSBpbiBmZXJpZT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ1NlaSBzaWN1cm8gZGkgYXZlciBsYXZvcmF0byBtZW50cmUgZXJpIGFzc2VudGUgcGVyIHJlY3VwZXJvID8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnU2VpIHNpY3VybyBkaSBhdmVyIGxhdm9yYXRvIHBpw7kgZGkgMTYgb3JlPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnQ3J1c2NvdHRvIG1lbnNpbGUgZGkgcmVuZGljb250YXppb25lIHRlbXBvcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnU3RyYW9yZGluYXJpbyAob3JlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdTdHJhb3JkaW5hcmlvIChxdWVzdG8gbWVzZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1N0cmFvcmRpbmFyaW8gKHRvdGFsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnVG90YWxlIG9yZSBkaSByZWN1cGVybyBkaXNwb25pYmlsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdGZXJpZSAoZ2lvcm5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdGZXJpZSB1dGlsaXp6YXRlIChxdWVzdG8gbWVzZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0ZlcmllIHV0aWxpenphdGUgKHRvdGFsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRmVyaWUgcmVzaWR1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0Fzc2VuemUgcGVyIG1hbGF0dGlhIChnaW9ybmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQXNzZW56ZSBwZXIgbWFsYXR0aWEgdXRpbGl6emF0ZSAocXVlc3RvIG1lc2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0Fzc2VuemUgcGVyIG1hbGF0dGlhICh0b3RhbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzZSBwcmVjZWRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXNlIHNlZ3VlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdHaW9ybm8gZGVsbGEgc2V0dGltYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdPcmUgbGF2b3JhdGl2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbGUgb3JlIGxhdm9yYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Zpc3VhbGl6emF6aW9uZSBkZWwgcHJvZ2V0dG8gLSBVdGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnT3JlIChtZW5zaWxpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnT3JlIChnbG9iYWxpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsZSBvbW5pY29tcHJlbnNpdm8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnUmVwb3J0IGRlbCB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhemlvbmUgcGVyIG1lc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ1ZhaSBhbGxhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnUmVwb3J0IHV0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWxlIG1lbnNpbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdUb3RhbGUgZ0xvYmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0Fzc2VuemUgcGVyIHJlY3VwZXJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ01hbGF0dGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0dpb3JuaSByaW1hbmVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmlhc3N1bnRpIHByb2dldHRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSaWFzc3VudG8gcHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnVmFpIGFsIHJpZXBpbG9nbyBkaSByZXBvcnRpc3RpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGUgY29uZmlndXJhemlvbmkgZGkgZ2VzdGlvbmUgZGVsIHRlbXBvIGRlbCBwcm9nZXR0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZ2dpdW5nZXJlIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnVmFpIGFsIHJpZXBpbG9nbyBpbXBvc3RhemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZ2dpdW5nZXJlIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGEgY29uZmlndXJhemlvbmUgZGVsIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdFc2lzdGUgZ2nDoCB1biBwcm9nZXR0byBjb24gcXVlc3RvIG5vbWUuIFNjZWdsZWlyZSB1biBub21lIGRpdmVyc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBsZSBjb25maWd1cmF6aW9uaSBkZWxsYSByZW5kaWNvbnRhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdBZ2dpdW5nZXJlIGNvbXBpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdOdW92byB1dGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0ZpbHRybyBwZXIgcHJvZ2V0dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0ZpbHRybyBwZXIgY29tcGl0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdHJvIHBlciB1dGVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnRWxlbmNvIGRlaSBwcm9nZXR0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdFbGVuY28gZGVpIGNvbXBpdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZ2dpdW5nZXJlIGNvbXBpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBsYSBjb25maWd1cmF6aW9uZSBkZWkgY29tcGl0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRXNpc3RlIGdpw6AgdW4gY29tcGl0byBjb24gcXVlc3RvIG5vbWUuIFNjZWdsaWVyZSB1biBub21lIGRpdmVyc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0VsZW5jbyB1dGVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdDb25maWd1cmF6aW9uaSBudW92byB1dGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBjb25maWd1cmF6aW9uZSB1dGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdDb21tZW50aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhcmUgc3RyYW9yZGluYXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdDb3NlbnRpcmUgbGEgY3JlYXppb25lIGRlbCBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRpIGluaXppbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkaSB0ZXJtaW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdHaW9ybmkgZGkgQXNzZW56YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ09yZSBhbGxhIHNldHRpbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnU3RyYW9yZGluYXJpIGF1dG9yaXp6YXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdEYXRhIGRpIGluaXppbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdJbnNlcmlyZSB1bmEgZGF0YSB2YWxpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRGF0YSBGaW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnSWwgcGVyaW9kbyBmaW5hbGUgZGV2ZSBlc3NlcmUgcG9zdGVyaW9yZSBhbCBwZXJpb2RvIGluaXppYWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnR2lvcm5pIGRpIGFzc2VuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnT3JhcmkgZGVsbGEgU2V0dGltYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnU3RyYW9yZGluYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm9uIGNpIHNvbm8gcGVyaW9kaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWdnaXVuZ2kgcGVyaW9kbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdWaXN1YWxpenphcmUgcmVnaXN0cm8gb3JhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzdWFsaXp6YXppb25lIGRpICAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTmVzc3VuIGRhdG8gdHJvdmF0byBwZXIgcXVlc3RvIGdpb3Juby4nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bG8gZGkgbm90aWZpY2EgZGVsbFwnaW50ZXJmYWNjaWEgYWdlbnRlIHBlciB2ZWRlcmUgaWwgbnVtZXJvIGRpIGdpb3JuaSBsYXZvcmF0aXZpIGluY29tcGxldGkgcGVyIGxcJ3V0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05vbWUgcHJlZGVmaW5pdG8gcGVyIGxlIG51b3ZlIGF6aW9uaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTm9tZSBwcmVkZWZpbml0byBwZXIgaSBudW92aSBwcm9nZXR0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxhIGRhdGEgZGkgZmluZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbGEgZGF0YSBkaSBpbml6aW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsYSBkZXNjcml6aW9uZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgaSBnaW9ybmkgZGkgYXNzZW56YS92YWNhbnphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbG8gc3RyYW9yZGluYXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbFwnb3JhcmlvIHNldHRpbWFuYWxlIHN0YW5kYXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsZSBudW92ZSBhemlvbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBpIG51b3ZpIHByb2dldHRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgaSBudW92aSB1dGVudGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBpIHByb2dldHRpIHBlciBpIHF1YWxpIHVuYSBhbm5vdGF6aW9uZSDDqCBvYmJsaWdhdG9yaWEuIFNlIGxhIFJlZ0V4cCBjb2luY2lkZSBpbCBwcm9nZXR0byBzaSDDqCBvYmJsaWdhdGkgYWQgaW5zZXJpcmUgdW5hIGFubm90YXppb25lLiBMYSBSZWdFeHAgdXRpbGl6emEgaWwgcGFyYW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSBpbCBtb2R1bG8gc3RhdGlzdGljaGUgcHXDsiBnZW5lcmFyZSBpbmZvcm1hemlvbmkgZGkgcmVuZGljb250YXppb25lIHRlbXBvcmFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MnfSA9ICdNb2RpZmljYSBsZSBpbXBvc3RhemlvbmkgZGVsbGEgcmVuZGljb250YXppb25lIHRlbXBvcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkJ30gPSAnTW9kaWZpY2EgdW5hIHZvY2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnTnVtZXJvIG1hc3NpbW8gZGkgZ2lvcm5pIG5lbCBwYXNzYXRvIGluIGN1aSDDqCBwb3NzaWJpbGUgaW5zZXJpcmUgbGUgdW5pdMOgIGRpIGxhdm9yby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRvLCBtb3N0cmEgc29sbyBnbGkgdXRlbnRpIGNoZSBoYW5ubyBhZ2dpdW50byB2b2NpIGRpIHRlbXBvIGxhdm9ybyBhbCBwcm9nZXR0byBzZWxlemlvbmF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdG8sIG1vZGlmaWNhIGdsaSBlbGVtZW50aSBuZWxsYSBzY2hlcm1hdGEgZGkgbW9kaWZpY2EgYSBjYW1waSBjb24gY29tcGxldGFtZW50byBhdXRvbWF0aWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRvLCDDqCBwb3NzaWJpbGUgcGVyIGdsaSB1dGVudGkgaW5zZXJpcmUgaSBjYW1waSAicGVyaW9kbyBkaSB2YWNhbnphIiwgInBlcmlvZG8gZGkgbWFsYXR0aWEiIGUgInN0cmFvcmRpbmFyaW8iIGNvbiBkYXRlIG11bHRpcGxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ051bWVybyBtYXNzaW1vIGRpIGdpb3JuaSBsYXZvcmF0aXZpIGluIGN1aSDDqCBwb3NzaWJpbGUgaW5zZXJpcmUgbGUgdm9jaSBkaSB1bml0w6AgZGkgbGF2b3JvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTnVtZXJvIG1hc3NpbW8gZGkgZ2lvcm5pIGxhdm9yYXRpdmkgY2hlIG5vbiBoYW5ubyB2b2NpIGRpIHVuaXTDoCBkaSBsYXZvcm8gb2x0cmUgaWwgcXVhbGUgdmVycsOgIG1vc3RyYXRvIHVuIGF2dmlzby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydGlzdGljYSB0ZW1wb3JhbGUgZGVsIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFc3ByZXNzaW9uaSByZWdvbGFyaSBwZXIgdmluY29sYXJlIGxpc3RhIGRpIGF6aW9uaSBpbiBiYXNlIGFsIHByb2dldHRvIHNlbGV6aW9uYXRvLiBMYSBjaGlhdmUgY29udGllbmUgdW5cJ2VzcHJlc3Npb25lIHJlZ29sYXJlIHBlciBpbC9pIHByb2dldHRvL2ksIGlsIGNvbnRlbnV0byBjb250aWVuZSBlc3ByZXNzaW9uaSByZWdvbGFyaSBwZXIgbGUgYXppb25pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFc3ByZXNzaW9uaSByZWdvbGFyaSBwZXIgdmluY29sYXJlIGxpc3RhIGRpIHByb2dldHRpIGluIGJhc2UgYWkgZ3J1cHBpIHV0ZW50ZS4gTGEgY2hpYXZlIGNvbnRpZW5lIHVuXCdlc3ByZXNzaW9uZSByZWdvbGFyZSBwZXIgaWwvaSBwcm9nZXR0by9pLCBpbCBjb250ZW51dG8gY29udGllbmUgZXNwcmVzc2lvbmkgcmVnb2xhcmkgcGVyIGxlIGF6aW9uaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ1NwZWNpZmljYSBzZSBsZSBvcmUgbGF2b3JhdGl2ZSBwb3Nzb25vIGVzc2VyZSBpbnNlcml0ZSBzZW56YSBvcmFyaSBkaSBpbml6aW8gZSBkaSBmaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdRdWVzdG8gbW9kdWxvIGZvcnphIGdsaSBpbnNlcmltZW50aSBpbiBUaW1lQWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdRdWVzdG8gbW9kdWxvIGRpIG5vdGlmaWNhIGdlbmVyYSB1biBhdnZpc28gc2UgY2kgc29ubyB0cm9wcGkgZ2lvcm5pIGxhdm9yYXRpdmkgbm9uIGNvbXBsZXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdNb2RpZmljYSByZW5kaWNvbnRhemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdQYW5vcmFtaWNhIHN1bGxhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGlzdGljYSBzdWxsYSBjb250YWJpbGl6emF6aW9uZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0ltcG9zdGF6aW9uaSBwZXIgbGEgY29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1Zpc3RhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0RhIHV0aWxpenphcmUgc2UgYWxjdW5lIGF6aW9uaSBoYW5ubyByaWRvdHRvIGxlIG9yZSBsYXZvcmF0aXZlIChwZXIgZXNlbXBpbzogc2Ugc29sbyBsYSBtZXTDoCBkZWwgdGVtcG8gZGkgdmlhZ2dpbyDDqCBwYWdhdG86IENoaWF2ZSA9PiBWaWFnZ2lvOyBDb250ZW51dG8gPT4gNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6amFfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44KwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdmFsaWQgcHJvamVjdHMnfSA9ICfmnInlirnjgarjg5fjg63jgrjjgqfjgq/jg4jjgpLooajnpLrjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgcHJvamVjdHMnfSA9ICfjgZnjgbnjgabjga7jg5fjg63jgrjjgqfjgq/jg4jjgpLooajnpLrjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZUFjY291bnRpbmcnfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn5aCx5ZGK44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ+WLpOWLmeWun+e4vuOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICflhaXlipvjgavmiJDlip/jgZfjgb7jgZfjgZ8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfopIfmlbDml6XjgpLlhaXlipvkuK3jgavjgqjjg6njg7zjgYznmbrnlJ/jgZfjgb7jgZfjgZ8gISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICfopIfmlbDml6Xjgavjgo/jgZ/jgovnqLzlg43lrp/nuL7jga7lhaXlipvjgavmiJDlip/jgZfjgb7jgZfjgZ8gISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAn5YWl5Yqb44GV44KM44Gf5pel5LuY44Gv5LiN5q2j44Gn44GZICEg5pel5LuY44Gv5pys5pel44Gr5aSJ5pu044GV44KM44G+44GX44GfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfmnKzlvZPjgavoqbLlvZPml6Xjga7mg4XloLHjgpLliYrpmaTjgZfjgb7jgZnjgYvvvJ8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn44K/44Kk44Og44Os44Kz44O844OJ44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn6Kit5a6a44G4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ+aXpeWIpeODiuODk+OCsuODvOOCt+ODp+ODsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfliY3jga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfmrKHjga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAn44GT44GuIOaXpSDjgavnp7vli5XjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfjgqjjg7Pjg4jjg6rjg7zjga7jgarjgYTml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn5YWo44Gm44Gu5pel44KS6YG45oqeJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICflhajkvZPlhaXlipsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfoqbLlvZPjga7ml6Xjga7mrKDli6TnkIbnlLHjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHmmoflj5blvpfkuK0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheasoOS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+S7o+S8keS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn5bCR44Gq44GP44Go44KC5LiA5pel44Gv6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAn5qyg5Yuk55CG55Sx44KS6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICflhajkvZPlhaXlipsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICcqIOOBrumgheebruOBr+WFpeWKm+W/hemgiOOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ+mWi+Wni+aZgumWk+OBqOe1guS6huaZgumWk+OAgeOBvuOBn+OBr+acn+mWk+OCkuaMh+WumuOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn44OX44Ot44K444Kn44Kv44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICfjgr/jgrnjgq8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn5rOo6YeIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzIS4nfSA9ICc45paH5a2X5Lul5LiK44Gu5rOo6YeI44KS6L+95Yqg44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICfjgrnjgr/jg7zjg4jmmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ++8je+8iOODnuOCpOODiuOCue+8ieOBruaZgumWk+OBr+WFpeWKm+OBp+OBjeOBvuOBm+OCkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn57mw44KK6L+U44GV44KM44Gf5pmC6ZaT44Gv6Kix5Y+v44GV44KM44G+44Gb44KT44CC6ZaL5aeL5pmC5Yi744Gv5Yil44Gu6ZaT6ZqU44Go5LiA6Ie044GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfkuI3mraPjgarjg5Xjgqnjg7zjg57jg4Pjg4jjgafjgZkhIOaZgumWk+OBruWFpeWKm+OBr0hIOk1N44Gu44OV44Kp44O844Oe44OD44OI44Gr5b6T44Gj44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAw44Gv57WC5LqG5pmC6ZaT44Go44GX44Gm44Gu44G/5YWl5Yqb5Y+v6IO944Gn44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn5LiN5q2j44Gq5pmC6ZaT44Gn44GZISDkuIDml6Xjga8yNOOBp+OBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ+e1guS6huaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn57WC5LqG5pmC6ZaT44Gu5YmN44Gr6ZaL5aeL5pmC6ZaT44KS6Kit5a6a44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnRGllc2UgRW5kemVpdCB3dXJkZSBiZXJlaXRzIGluIGVpbmVtIGFuZGVyZW4gRWludHJhZyBhbmdlZ2ViZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfjgIzmnJ/plpPjgI3jga7oqK3lrprjgYzkuI3mraPjgafjgZnjgILvvIgyNOaZgumWk+S7peS4iuOBr+ioseWPr+OBleOCjOOBvuOBm+OCk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ+OAjOacn+mWk+OAjeOBruioreWumuOBjOS4jeato+OBp+OBmeOAgu+8iDDjga/oqLHlj6/jgZXjgozjgb7jgZvjgpPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ+OAjOacn+mWk+OAjeOBruioreWumuOBjOS4jeato+OBp+OBmeOAgu+8iO+8je+8iOODnuOCpOODiuOCue+8ieOBr+ioseWPr+OBleOCjOOBvuOBm+OCk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ+ihjOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ+ioiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJzHpoIXnm67jga7jgb/pgbjmip7jgafjgY3jgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICfjgZnjgbnjgabjga7jgqLjgqTjg4bjg6DjgpLooajnpLonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ+OCqOODs+ODiOODquODvOOCkuWJiumZpCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ+aMv+WFpeOBrueiuuiqjSc7CiAgICAkU2VsZi0+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/nqLzlg43mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAn44Om44O844K244Gu44OX44Ot44K444Kn44Kv44OI5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ+aZgumWk++8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn5pmC6ZaT77yI6YCa566X77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn5ZCI6KiIJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ+aZgumWk+S8muioiOODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAn5pyI5Yil44OK44OT44Ky44O844K344On44OzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfml6Xku5jjgavnp7vli5XjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn44Om44O844K244O744Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICfmnIjlkIjoqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfpgJrnrpflkIjoqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfku6PkvJEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICfkvJHmmocnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ+eXheasoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfkvJHml6Xmrovml6XmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn44OX44Ot44K444Kn44Kv44OI44O744Os44Od44O844OIJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjg7vjg6zjg53jg7zjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAn5aCx5ZGK44Gu5qaC6KaB44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfmmYLplpPkvJroqIgg44OX44Ot44K444Kn44Kv44OI6Kit5a6a44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn6Kit5a6a44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5ZCM5ZCN44Gu44OX44Ot44K444Kn44Kv44OI44GM5a2Y5Zyo44GX44G+44GZ44CC5ZCN56ew44KS5aSJ5pu044GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn6Kit5a6a44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAn5paw6KaP44K/44K544Kv44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAn5paw6KaP44Om44O844K2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjga7ntZ7jgorovrzjgb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ+OCv+OCueOCr+OBrue1nuOCiui+vOOBvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAn44Om44O844K244Gu57We44KK6L6844G/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICfjgr/jgrnjgq/kuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfmlrDopo/jgr/jgrnjgq/jga7ov73liqAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAn44K/44K544Kv6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICflkIzlkI3jga7jgr/jgrnjgq/jgYzlrZjlnKjjgZfjgb7jgZnjgILlkI3np7DjgpLlpInmm7TjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn44Om44O844K25LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAn5paw6KaP44Om44O844K26Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ+ODpuODvOOCtuioreWumuOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ+OCs+ODoeODs+ODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAn6LaF6YGO5Yuk5YuZ44KS6KGo56S6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjga7mlrDopo/ov73liqDjgpLoqLHlj6/jgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn6ZaL5aeL54K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfntYLkuobngrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ+S8keaahyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ+aZgumWkyAvIOmAsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn5om/6KqN5riI44Gu6LaF6YGO5Yuk5YuZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfjgrnjgr/jg7zjg4jml6Xku5gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn5q2j44GX44GE5pel5LuY44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn57WC5LqG5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn57WC5LqG54K544Gu5YmN44Gr6ZaL5aeL54K544KS6Kit5a6a44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfkvJHmmofml6XmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn6YCx44GC44Gf44KK44Gu5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn5q6L5qWt5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfmnJ/plpPjgYzmnKroqK3lrprjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn5pyf6ZaT44KS6L+95Yqg44GX44Gm44GP44Gg44GV44GE44CCJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ+OCv+OCpOODoOODu+ODrOOCs+ODvOODieOCkuihqOekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ+S4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfoqbLlvZPjgZnjgovjg4fjg7zjgr/jgYzjgYLjgorjgb7jgZvjgpPjgIInOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfjg6bjg7zjgrbjga7kuI3lrozlhajjgarnqLzlg43ml6XmlbDjgpLjgqvjgqbjg7Pjg4jjgZfpgJrnn6XjgZnjgovjgqjjg7zjgrjjgqfjg7Pjg4jjg7vjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfmlrDopo/mk43kvZzjgavlr77jgZnjgovjg4fjg5Xjgqnjg6vjg4jjga7lkI3np7AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu5ZCN56ewJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAn44CM57WC5LqG5pel44CN44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICfjgIzplovlp4vml6XjgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICfjgIzoqqzmmI7mlofjgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ+OAjOS8keaah+OAjeOBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ+OAjOi2hemBjuWLpOWLmeOAjeOBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAn6YCx44GC44Gf44KK5Z+65pys56i85YON5pmC6ZaT44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfmlrDopo/mk43kvZzjgavlr77jgZnjgovjg4fjg5Xjgqnjg6vjg4jjga7jgrnjg4bjg7zjgr/jgrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfmlrDopo/jg5fjg63jgrjjgqfjgq/jg4jjgavlr77jgZnjgovjg4fjg5Xjgqnjg6vjg4jjga7jgrnjg4bjg7zjgr/jgrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICfmlrDopo/jg6bjg7zjgrbjgavlr77jgZnjgovjg4fjg5Xjgqnjg6vjg4jjga7jgrnjg4bjg7zjgr/jgrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAn44CM5rOo6YeI44CN44Ko44Oz44OI44Oq44O844KS5b+F6KaB44Go44GZ44KL6aCF55uu44KS5a6a576p44GX44G+44GZ44CCIOOCguOBl+ODl+ODreOCuOOCp+OCr+ODiOWQjeOBjOOBk+OBk+OBp+ioreWumuOBl+OBn+ato+imj+ihqOePvuOBq+ODnuODg+ODgeOBmeOCi+WgtOWQiOOAgeOAjOazqOmHiO+9neOBr+W/hemgiOmgheebruOBqOOBquOCiuOBvuOBmeOAguKAu+ato+imj+ihqOePvuOBq+OBr1NNWOODkeODqeODoeODvOOCv+OCkuS9v+OBhOOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAn57Wx6KiI44Oi44K444Ol44O844Or44GM44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw5oOF5aCx44KS55Sf5oiQ44GZ44KL44GL6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzJ30gPSAn5pmC6ZaT5Lya6KiI44Gu6Kit5a6a44KS57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQnfSA9ICfjgr/jgqTjg6Djg6zjgrPjg7zjg4njgpLnt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn5L2V5pel5YmN44GL44KJ44Ov44O844Kt44Oz44Kw44O744Om44OL44OD44OI44Gu5paw6KaP55m76Yyy44GM5Y+v6IO944Gn44GC44KL44GL44Gu6Kit5a6a44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+OAgeipsuW9k+OBruODl+ODreOCuOOCp+OCr+ODiOOBq+eovOWDjeaZgumWk+OCkuaKleWFpeOBl+OBpuOBhOOCi+ODpuODvOOCtuODvOOBruOBv+ihqOekuuOBleOCjOOBvuOBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ+OBk+OBrumgheebruOCkuOAjOioseWPr+OAjeOBq+OBmeOCi+OBqOOAgee3qOmbhueUu+mdouWGheOBruODl+ODq+ODgOOCpuODs+ODoeODi+ODpeODvOOCkuOCquODvOODiOOCs+ODs+ODl+ODquODvOODiOapn+iDveS7mOOBjeOBruODleOCqeODvOODoOOBq+WkieabtOOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn5pyJ5Yq544Gr44GZ44KM44Gw5LiA5Zue44Gu57eo6ZuG44Gn44CB6KSH5pWw44Gu5pel44Gr5rih44KK44CM5LyR5pqH44CN44CM55eF5qyg44CN44CM5Luj5LyR44CN44GM6YG45oqe44Gn44GN44G+44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnMeOBpOS7peS4iuOBruODr+ODvOOCreODs+OCsOODu+ODpuODi+ODg+ODiOOCkuioreWumuOBmeOBueOBjeacgOWkp+OBrueovOWDjeaXpeaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn6K2m5ZGK44GM6KGo56S644GV44KM44KL44GT44Go44Gq44GP44Ko44Oz44OI44Oq5Ye65p2l44KL44CB5Za25qWt5pel44Gu5pyA5aSn5pel5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcnfSA9ICfjg5fjg63jgrjjgqfjgq/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+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOOCkue3qOmbhuOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw44Gu5qaC6KaBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw44Gu5aCx5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjga7oqK3lrponOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44KwIOODk+ODpeODvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn5pmC6ZaT5Lya6KiIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ+alreWLmeS4iuOBruihjOWLleOBq+OBiuOBhOOBpuOAgeeovOWDjeaZgumWk+OBqOOBl+OBpuioiOS4iuOBmeOCi+aZgumWk+OCkuiqv+aVtOOBmeOCi+W/heimgeOBjOOBguOCi+WgtOWQiOOBq+OAgeOBk+OBruioreWumuOCkuS9v+eUqOOBl+OBvuOBmeOAgu+8iOS+i++8muOAjOenu+WLleaZgumWk+OAjeOBrjUwJeOBruOBv+WLpOWLmeaZgumWk+ebuOW9k+OBqOOBmeOCi+WgtOWQiOOAjOmNteOAjeOBq2Bqb3VybmV5YOOAgeOAjOWGheWuueOAjeOBq2A1MGDjgajoqK3lrpopJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cGxfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdmFsaWQgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZUFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnQ3p5IG5hIHBld25vIGNoY2VzeiB1c3VuxIXEhyB6YXJhcG9ydG93YW55IGN6YXMgcHJhY3kgZGxhIHRlZ28gZG5pYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWR5dHVqIHdwaXMgY3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF3aWdhY2phIHBvIGRhY2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1BvcHJ6ZWRuaSBkemllxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdOYXN0xJlwbnkgZHppZcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0RuaSBiZXogcmFwb3J0w7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1phem5hY3ogd3N6eXN0a2llIGRuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnTWFzb3d5IHdwaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdQcm9zesSZIHd5YnJhxIcgcG93w7NkIGJyYWt1IG9iZWNub8WbY2kgZGxhIHd5YnJhbnljaCBkbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdVcmxvcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnWndvbG5pZW5pZSBsZWthcnNraWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdXb2xuZSB6YSBuYWRnb2R6aW55JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdQcm9zesSZIHd5YnJhxIcgY29uYWptbmllaiBqZWRlbiBkemllxYQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnUHJvc3rEmSB3eWJyYcSHIHBvd8OzZCBuaWVvYmVjbm/Fm2NpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnTWFzb3d5IHdwaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdXeW1hZ2FuZSBwb2xhIHPEhSBvem5hY3pvbmUgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ011c2lzeiB3cHJvd2FkemnEhyBkemllxYQgcG9jesSFdGt1IG9yYXoga2/FhGNhIGx1YiBjemFzIHRyd2FuaWEgdyBva3Jlc2llLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnWmFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdVd2FnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEuJ30gPSAnUHJvc3rEmSBkb2RhxIcgdXdhZ8SZIHNrxYJhZGFqxIVjxIUgc2nEmSB6IHdpxJljZWogbmnFvCA4IHpuYWvDs3chJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1VqZW1uZSBjemFzeSBzxIUgbmllZG96d29sb25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG93dGFyemFqxIVjZSBzacSZIGN6YXN5IG5pZSBzxIUgZG96d29sb25lLiBDemFzIHJvenBvY3rEmWNpYSBwYXN1amUgZG8gaW5uZWdvIHByemVkemlhxYJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnTmllcHJhd2lkxYJvd3kgZm9ybWF0ISBQcm9zesSZIHBvZGHEhyBjemFzIHcgZ29kemluYWNoIEdHOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBqZXN0IGRvendvbG9uZSBqZWR5bmllIGpha28ga29uaWVjIGN6YXN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ05pZXByYXdpZMWCb3d5IGN6YXMhIER6aWXFhCBtYSB0eWxrbyAyNCBnb2R6aW55Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnQ3phcyB6YWtvxYRjemVuaWEgbXVzaSBiecSHIHBvIGN6YXNpZSByb3pwb2N6xJljaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG93dGFyemFqxIVjZSBzacSZIGN6YXN5IG5pZSBzxIUgZG96d29sb25lLiBDemFzIHpha2/FhGN6ZW5pYSBwYXN1amUgZG8gaW5uZWdvIHByemVkemlhxYJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmllcHJhd2lkxYJvd3kgb2tyZXMhIER6aWXFhCBtYSB0eWxrbyAyNCBnb2R6aW55Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ1ByYXdpZMWCb3d5IG9rcmVzIG11c2kgYnnEhyB3acSZa3N6eSBuacW8IHplcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOaWVwcmF3aWTFgm93eSBva3JlcyEgVWplbW55IG9rcmVzIG5pZSBqZXN0IGRvendvbG9ueS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdEb2RhaiBqZWRlbiB3aWVyc3onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICdTdW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnTW/FvGVzeiB6YXpuYWN6ecSHIHR5bGtvIGplZGVuIGVsZW1lbnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnUG9rYcW8IHdzenlzdGtpZSBlbGVtZW50eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnVXN1xYQgcG96eWNqxJkgemFyYXBvcnRvd2FuZWdvIGN6YXN1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnWmF0d2llcmTFuiB3c3Rhd2llbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdKZXN0ZcWbIHBld2llbiDFvGUgcHJhY293YcWCZcWbIG5hIHp3b2xuaWVuaXUgbGVrYXJza2ltPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0plc3RlxZsgcGV3aWVuIMW8ZSBwcmFjb3dhxYJlxZsgcG9kY3phcyB1cmxvcHU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdKZXN0ZcWbIHBld2llbiDFvGUgcHJhY293YcWCZcWbIG5hIHdvbG55bSB6IG5hZGdvZHppbj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnSmVzdGXFmyBwZXdpZW4gxbxlIHByYWNvd2HFgmXFmyB3acSZY2VqIG5pxbwgMTYgZ29kemluPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnUHJ6ZWdsxIVkIG1pZXNpxJljem5lZ28gcmFwb3J0dSBjemFzdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnTmFkZ29kemlueSAoR29kemlueSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnTmFkZ29kemlueSAodGVuIG1pc2nEhWMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdOYWRnb2R6aW55ICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1Bvem9zdGHFgmUgbmFkZ29kemlueSBkbyBvZGVicmFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVXJsb3AgKERuaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnV3lrb3J6eXN0YW5lIGRuaSB1cmxvcHUgKHRlbiBtaWVzacSFYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1d5a29yenlzdGFuZSBkbmkgdXJsb3B1ICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1Bvem9zdGHFgm8gdXJsb3B1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnVXJsb3AgY2hvcm9ib3d5IChEbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnV3lrb3J6eXN0YW5lIGRuaSB1cmxvcHUgY2hvcm9ib3dlZ28gKHRlbiBtaWVzacSFYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnV3lrb3J6eXN0YW5lIGRuaSB1cmxvcHUgY2hvcm9ib3dlZ28gKMWCxIVjem5pZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdQb3ByemVkbmkgbWllc2nEhWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ05hc3TEmXBueSBtaWVzacSFYyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRHppZcWEIHR5Z29kbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdHb2R6aW55IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ8WBxIVjem5lIGdvZHppbnkgd3lwcmFjb3dhbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnUHJ6ZWdsxIVkIHByb2pla3R1IHXFvHl0a293bmlrYS/Ds3cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnR29kemlueSAobWllc2nEmWN6bmllKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnR29kemlueSAoxYLEhWN6bmllKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ09nw7PFgmVtJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JhcG9ydCBjemFzdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF3aWdhY2phIG1pZXNpxJljem5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnUmFwb3J0eSB1xbx5dGtvd25pa2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ8WBxIVjem5pZSAtIG1pZXNpxJljem5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ8WBxIVjem5pZSAtIG9nw7PFgmVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnV29sbmUgemEgbmFkZ29kemlueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1VybG9wJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdVcmxvcCBjaG9yb2Jvd3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnUG96b3N0YcWCZSBkbmkgcG96YSBwcmFjxIUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmFwb3J0eSBwcm9qZWt0dSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUmFwb3J0IHByb2pla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWR5dHVqIHVzdGF3aWVuaWEgUmFwb3J0b3dhbmlhIEN6YXN1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnRG9kYWogcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0RvZGFqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWR5dHVqIHVzdGF3aWVuaWEgcHJvamVrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1cgc3lzdGVtaWUgem5hamR1amUgc2nEmSBqdcW8IHByb2pla3QgbyB0YWtpZWogbmF6d2llLiBXeWJpZXJ6IGlubsSFIG5henfEmS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdFZHl0dWogdXN0YXdpZW5pYSBSYXBvcnRvd2FuaWEgQ3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdEb2RhaiB6YWRhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnTm93eSB1xbx5dGtvd25payc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAnRmlsdHIgbmEgcHJvamVrdHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0ZpbHRyIG5hIHphZGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRyIG5hIHXFvHl0a293bmlrw7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0xpc3RhIHByb2pla3TDs3cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgemFkYcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnRG9kYWogemFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdFZHl0dWogdXN0YXdpZW5pYSB6YWRhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdXIHN5c3RlbWllIHpuYWpkdWplIHNpxJkganXFvCB6YWRhbmllIG8gdGFraWVqIG5hendpZS4gV3liaWVyeiBpbm7EhSBuYXp3xJkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIHXFvHl0a293bmlrw7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnVXN0YXdpZW5pYSBub3dlZ28gdcW8eXRrb3duaWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHXFvHl0a293bmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ0tvbWVudGFyeic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnUG9rYcW8IG5hZGdvZHppbnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1plenfDs2wgbmEgdHdvcnplbmllIHByb2pla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ09rcmVzIC0gIHBvY3rEhXRlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnT2tyZXMgLSBrb25pZWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0RuaSB1cmxvcHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdHb2R6aW4gdyB0eWdvZG5pdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnWmV6d8OzbCBuYSBuYWRnb2R6aW55JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnT2tyZXMga2/FhGNvd3kgbXVzaSBiecSHIHBvIG9rcmVzaWUgcm96cG9jesSZY2lhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnQnJhayBva3Jlc8OzdyBjemFzdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnRG9kYWogb2tyZXMgY3phc3UnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnUG9rYcW8IHdwaXN6IGN6YXN1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnV2lkb2sgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0JyYWsgZGFueWNoIG9kbm/Fm25pZSB0ZWdvIGRuaWEuJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnSW50ZXJmZWpzIGFnZW50YSBpbmZvcm11asSFY3kgbyBkbmlhY2ggYmV6IHphcmFwb3J0b3dhbmVnbyBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdEb215xZtsbmEgbmF6d2EgZGxhIG5vd2VqIGFrY2ppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdEb215xZtsbmEgbmF6d2EgZGxhIG5vd2VnbyBwcm9qZWt0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdEb215xZtsbmEgZGF0YSB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdEb215xZtsbmEgZGF0YSByb3pwb2N6xJljaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnRG9tecWbbG5lIHVzdGF3aWVuaWUgZGxhIG9waXN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnRG9tecWbbG5lIHVzdGF3aWVuaWUgZGxhIHVybG9wdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdEb215xZtsbmUgdXN0YXdpZW5pZSBkbGEgbmFkZ29kemluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnRG9tecWbbG5pZSB1c3Rhd2llbmllIGRsYSBzdGFuZGFyZG93eWNoIGdvZHppbiB0eWdvZG5pb3d5Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdEb215xZtsbnkgc3RhdHVzIGRsYSBub3dlaiBha2NqaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdEb215xZtsbnkgc3RhdHVzIGRsYSBub3dlZ28gcHJvamVrdHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRG9tecWbbG55IHN0YXR1cyBkbGEgbm93ZWdvIHXFvHl0a293bmlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVudHJvIGRlc3RhIG9ww6fDo28gZGUgY29uZmlndXJhw6fDo28sIHVtYSByZWdleHAgcG9kZSBzZXIgZGVmaW5pZGEgcXVlIGRldGVybWluYSBxdWFpcyBwcm9qZXRvcyBzw6NvIHJlZ2lzdHJhZG9zIGNvbSB1bWEgb2JzZXJ2YcOnw6NvIGRldmUgc2VyIChvIHJlZ2V4cCBmdW5jaW9uYSBjb20gU01YLXBhcsOibWV0cm9zKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIGN6YXN1IHJhcG9ydG93YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkJ30gPSAnRWR5dHVqIHdwaXMgY3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnRGxhIGlsdSBkbmkgd3N0ZWN6IG1vxbxuYSB3c3Rhd2nEhyBqZWRub3N0a2kgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnSmXFm2xpIGFrdHl3b3dhbmUsIGxpc3RhIHd5YmllcmFuYSBqZXN0IHphc3TEhXBpb27EhSBhdXRvd3lwZcWCbmlhbmllbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0plxZtsaSBha3R5d293YW5lLCB1xbx5dGtvd25payBtb8W8ZSB3c3Rhd2nEhyAidXJsb3AiLCAidXJsb3AgY2hvcm9ib3d5IiBvcmF6ICJ1cmxvcCB6YSBuYWRnb2R6aW55IiBkbyBraWxrdSBkYXQgamVkbm9jemXFm25pZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdNYWtzeW1hbG5hIGxpY3piYSBkbmkgcm9ib2N6eWNoLCBwbyBrdMOzcnljaCBqZWRub3N0a2kgY3phc3UgcG93aW5ueSB6b3N0YcSHIHdwcm93YWR6b25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcnfSA9ICdPIHJlbGF0w7NyaW8gZGUgVGVtcG8gZG8gcHJvamV0byAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ09rcmXFm2xhLCBjenkgY3phcyBwcmFjeSBtb8W8ZSB6b3N0YcSHIHdwcm93YWR6b255IGJleiBwb2Rhd2FuaWEgY3phc3Ugcm96cG9jesSZY2lhIG9yYXogemFrb8WEY3plbmlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdUZW4gbW9kdcWCIHd5bXVzemEgd3Byb3dhZHplbmlhIHcgUmFwb3J0YWNoIEN6YXN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ1RlbiBtb2R1xYIgZGFqZSBvc3RyemXFvGVuaWUsIGplxZtsaSBqZXN0IHpieXQgbmllcGXFgm55Y2ggZG5pIHJvYm9jenljaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdVxbx5d2FuZSBqZcWbbGkgbmlla3TDs3JlIGR6aWHFgmFuaWEgem1uaWVqc3p5xYJ5IGdvZHppbnkgcHJhY3kgKG5wLiBqZcWbbGkgdHlsa28gcG/Fgm93YSBjemFzIHBvZHLDs8W8eSBqZXN0IHd5cMWCYWNhbmEga2x1Y3ogPT4gcG9kcsOzxbxlOyBaYXdhcnRvxZvEhyA9PiA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfQlJfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnQ29udGFiaWxpZGFkZSBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZhbGlkIHByb2plY3RzJ30gPSAnUHJvamV0byB2w6FsaWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGFsbCBwcm9qZWN0cyd9ID0gJ1RvZG9zIG9zIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWVBY2NvdW50aW5nJ30gPSAnVGltZUFjY291bnRpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmVsYXTDs3Jpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnUG9yIGZhdm9yIGluc2lyYSBzdWFzIGhvcmFzIGRlIHRyYWJhbGhvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmlkbyBjb20gc3VjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0Vycm8gYW8gaW5zZXJpciBtw7psdGlwbGFzIGRhdGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdFbnRyYWRhIGRlIHbDoXJpYXMgZGF0YXMgaW5zZXJpZGEgY29tIHN1Y2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdEYXRhIGluc2VyaWRhIMOpIGludsOhbGlkYSEgRGF0YSBmb2kgYWx0ZXJhZGEgcGFyYSBob2plLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVm9jw6ogcmVhbG1lbnRlIHF1ZXIgcmVtb3ZlciBvIGFwb250YW1lbnRvIGRlIHRlbXBvIGRlc3RlIGRpYSA/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ0VkaXRhciBlc3NlIHJlZ2lzdHJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgcGFyYSBjb25maWd1cmHDp8O1ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhw6fDo28gZGUgZGF0YXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnRGlhIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnUHLDs3hpbW8gZGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ0lyIHBhcmEgZXN0YSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRGlhcyBzZW0gYXBvbnRhbWVudG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVjaW9uYXIgdG9kb3Mgb3MgZGlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnRW50cmFkYSBlbSBtYXNzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BvciBmYXZvciwgZXNjb2xoYSBvIG1vdGl2byBkZSBzdWEgYXVzw6puY2lhIHBhcmEgb3MgZGlhcyBzZWxlY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdFbSBmw6lyaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdFbSBsaWNlbsOnYSBtw6lkaWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnRW0gbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdQb3IgZmF2b3IsIGVzY29saGEgcGVsbyBtZW5vcyB1bSBkaWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnUG9yIGZhdm9yIGVzY29saGEgdW0gbW90aXZvIHBhcmEgYSBhdXPDqm5jaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0VudHJhZGEgZW0gbWFzc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdDYW1wb3Mgb2JyaWdhdMOzcmlvcyBlc3TDo28gbWFyY2Fkb3MgY29tICIqIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ1ZvY8OqIHTDqm0gcXVlIHByZWVuY2hlciBpbsOtY2lvIGUgZmltLCBvdSB1bSBwZXLDrW9kbyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1RhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnT2JzZXJ2YcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzIS4nfSA9ICdQb3IgZmF2b3IsIGFkaWNpb25lIHVtIGNvbWVudMOhcmlvIGNvbSBtYWlzIGRlIDggY2FyYWN0ZXJlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ1RlbXBvIGluaWNpYWwgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdEYXRhcyBuZWdhdGl2YXMgbsOjbyBzw6NvIGxpYmVyYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnSG9yYXMgcmVwZXRpZGFzIG7Do28gc8OjbyBsaWJlcmFkYXMuIEluaWNpZSBvIGFwb250YW1lbnRvIGVtIG91dHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ0Zvcm1hdG8gaW52w6FsaWRvISBQb3IgZmF2b3IsIGVudHJlIGNvbSB1bSB0ZW1wbyBubyBmb3JtYXRvIEhIOk1NJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJ0FwZW5hcyAyNDowMCBzw6NvIHBlcm1pdGlkYXMgY29tbyB0ZW1wbyBmaW5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1RlbXBvIGludsOhbGlkbyEgVW0gZGlhIHRlbSBhcGVuYXMgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnVGVtcG8gZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ1RlbXBvIGZpbmFsIGRldmUgc2VyIGRlcG9pcyBkbyB0ZW1wbyBpbmljaWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0hvcmFzIHJlcGV0aWRhcyBuw6NvIHPDo28gbGliZXJhZGFzLiBJbmljaWUgbyBhcG9udGFtZW50byBlbSBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdQZXLDrW9kbyBpbnbDoWxpZG8hIFVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ1VtIHBlcsOtb2RvIHbDoWxpZG8gZGV2ZSBzZXIgbWFpb3IgcXVlIHplcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdQZXLDrW9kbyBpbnbDoWxpZG8hIFBlcsOtb2RvcyBuZWdhdGl2b3MgbsOjbyBzw6NvIGxpYmVyYWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdBZGljaW9uYXIgdW1hIGxpbmhhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnVG90YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdWb2PDqiBwb2RlIHNlbGVjaW9uYXIgYXBlbmFzIHVtIGVsZW1lbnRvIG5vIGNoZWNrYm94ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGFsbCBpdGVtcyd9ID0gJ01vc3RyYXIgdG9kb3Mgb3MgaXRlbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0RlbGV0YXIgZW50cmFkYSBuYSBDb250YWJpbGlkYWRlIGRlIFRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1hciBpbnNlcsOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgdm9jw6ogdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBlbSBsaWNlbsOnYSBtw6lkaWNhPyc7CiAgICAkU2VsZi0+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+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWRpdGFyIGNvbmZpZ3VyYcOnw7VlcyBkbyBQcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnQWRpY2lvbmFyIHByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdJciBwYXJhIGNvbmZpZ3VyYcOnw7VlcyBnZXJhaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZGljaW9uYXIgcHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0YXIgQ29uZmlndXJhw6fDtWVzIGRvIFByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0rDoSBleGlzdGUgdW0gcHJvamV0byBjb20gZXN0ZSBub21lLiBQb3IgZmF2b3IsIGVzY29saGEgdW0gZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ0VkaXRhciBDb25maWd1cmHDp8O1ZXMgZGEgQ29udGFiaWxpZGFkZSBkZSBUZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdBZGljaW9uYXIgdGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnTm92byB1c3XDoXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAnRmlsdHJhciBwb3IgUHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0ZpbHRyYXIgZm9yIFRhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRyYXIgcG9yIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSBkZSB0YXJlZmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWRpY2lvbmFyIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRhIFRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnSsOhIGV4aXN0ZSB1bWEgdGFyZWZhIGNvbSBlc3NlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xoYSB1bSBub21lIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnQ29uZmlndXJhw6fDtWVzIGRlIG5vdm8gdXN1w6FyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnRWRpdGFyIGNvbmZpZ3VyYcOnw7VlcyBkZSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdDb21lbnTDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdMaWJlcmFyIGNyaWHDp8OjbyBkZSBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXLDrW9kbyBJbmljaWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdQZXLDrW9kbyBGaW5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRGlhcyBkZSBGw6lyaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnSG9yYXMgZXh0cmFzIGF1dG9yaXphZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdGEgaW5pY2lhbCAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnUG9yIGZhdm9yLCBpbnNpcmEgdW1hIGRhdGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdEYXRhIGZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnUGVyw61vZG8gZmluYWwgZGV2ZSBzZXIgbWFpb3IgcXVlICBwZXLDrW9kbyBpbmljaWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRGlhcyBkZSBmw6lyaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ0hvcmFzIHNlbWFuYWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnSG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdQZXLDrW9kbyBkZSB0ZW1wbyBuw6NvIGVuY29udHJhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0FkaWNpb25hciBwZXLDrW9kbyBkZSB0ZW1wbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdWZXIgcmVnaXN0cm8gZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdWaXPDo28gZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTsOjbyBmb3JhbSBlbmNvbnRyYWRvcyBkYWRvcyBwYXJhIGVzdGUgZGlhLic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2HDp8OjbyBkbyBBZ2VudGUgcGFyYSB2ZXIgbyBudW1lcm8gZGUgZGlhcyBpbmNvbXBsZXRvcyBkbyB1c3XDoXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdPIG5vbWUgcGFkcsOjbyBwYXJhIG5vdmFzIGHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ08gbm9tZSBwYWRyw6NvIHBhcmEgbm92b3MgcHJvamV0b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGRhdGEgZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkYXRhIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGRlc2NyacOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGRpYXMgZGUgZsOpcmlhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgaG9yYXMgZXh0cmFzLCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGhvcmFzIHNlbWFuYWlzIHBhZHLDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0VzdGFkbyBwYWRyw6NvIHBhcmEgbm92YXMgYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdFc3RhZG8gcGFkcsOjbyBwYXJhIG5vdm9zIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRXN0YWRvIHBhcmEgcGFyYSBub3ZvcyB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lIG9zIHByb2pldG9zIHBhcmEgb3MgcXVhaXMgw6kgbmVjZXNzw6FyaWEgdW1hIG9ic2VydmHDp8Ojby4gU2UgbyBSZWdFeHAgw6kgZW5jb250cmFkbyBubyBwcm9qZXRvLCB2b2PDqiB0ZW0gcXVlIGluc2VyaXIgdW1hIG9ic2VydmHDp8Ojby4gTyBSZWdFeHAgdXNhIG8gcGFyw6JtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2UgbyBtw7NkdWxvIGRlIGVzdGF0w61zdGljYXMgcG9kZSBnZXJhciBpbmZvcm1hw6fDtWVzIGRvIHRpbWUgYWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRhIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZCd9ID0gJ0VkaXRhciBlc3NlIHJlZ2lzdHJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1BhcmEgcXVhbnRvcyBkaWFzIGF0csOhcyB2b2PDqiBwb2RlIGluc2VyaXIgdW5pZGFkZXMgZGUgdHJhYmFsaG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG9zIGVsZW1lbnRvcyBkcm9wZG93biBuYSB0ZWxhIGRlIGVkacOnw6NvIHPDo28gYWx0ZXJhZGFzIHBhcmEgY2FtcG9zIGRlIGF1dG9jb21wbGV0aW9uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnU2UgYXRpdmFkbywgbyB1c3XDoXJpbyB0ZW0gcGVybWlzc8OjbyBwYXJhIGVudHJhciAiZW0gbGljZW7Dp2EgZGUgZsOpcmlhcyIsICJlbSBsaWNlbsOnYSBtw6lkaWNhIiBlICJlbSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMiIGRlIHVtYSBzw7MgdmV6IHBhcmEgdsOhcmlhcyBkYXRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdPIG7Dum1lcm8gbcOheGltbyBkZSBkaWFzIGRlIHRyYWJhbGhvIGFww7NzIG8gcXVhbCBhcyAidW5pZGFkZXMgZGUgdHJhYmFsaG8iIGRldmVtIHNlciBpbnNlcmlkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ08gbsO6bWVybyBtw6F4aW1vIGRlIGRpYXMgZGUgdHJhYmFsaG8gc2VtICJ1bmlkYWRlcyBkZSB0cmFiYWxobyIgIGFww7NzIG8gcXVhbCB1bSBhdmlzbyBzZXLDoSBtb3N0cmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZyd9ID0gJ1JlbGF0w7NyaW8gZGUgdGVtcG9zIGRlIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdBcyBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxpc3RhIGRlIGHDp8O1ZXMgZGUgYWNvcmRvIGNvbSBvIHByb2pldG8gc2VsZWNpb25hZG8uIENoYXZlIGNvbnTDqW0gZXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgbyBwcm9qZXRvKHMpLCBDb250ZcO6ZG8gY29udMOpbSBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSBhIGHDp8OjbyhzKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnQXMgZXhwcmVzc8O1ZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBhIGxpc3RhIGRlIHByb2pldG8gZGUgYWNvcmRvIGNvbSBncnVwb3MgZGUgdXN1w6FyaW9zLiBDaGF2ZSBjb250w6ltIGV4cHJlc3PDo28gcmVndWxhciBwYXJhIG8gcHJvamV0byAocyksIGNvbnRlw7pkbyBjb250w6ltIGxpc3RhICBzZXBhcmFkYSBwb3IgdsOtcmd1bGFzIGRlIGdydXBvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpcXVlIHNlIG8gaG9yw6FyaW8gZGUgdHJhYmFsaG8gcG9kZSBzZXIgaW5zZXJpZG8gc2VtIGhvcsOhcmlvcyBkZSBpbsOtY2lvIGUgdMOpcm1pbm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0Vzc2UgbcOzZHVsbyBmb3LDp2EgcHJlZW5jaGVyIG8gVGltZUFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRXN0ZSBtw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZMOhIHVtIGF2aXNvIHNlIGhvdXZlciBtdWl0b3MgZGlhcyBkZSB0cmFiYWxobyBuw6NvIHJlZ2lzdHJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdFZGl0YXIgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnVmlzw6NvIGdlcmFsIGRlIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZWxhdMOzcmlvIGRlIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0NvbmZpZ3VyYcOnw7VlcyBkZSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1ZlciBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdDb250YWJpbGlkYWRlIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1VzYXIgcGFyYSAgYWxndW1hcyBhw6fDtWVzIGRlIHJlZHV6aXIgYXMgaG9yYXMgZGUgdHJhYmFsaG8gKHBvciBleGVtcGxvLCBzZSBhcGVuYXMgbWV0YWRlIGRvIHRlbXBvIGRlIHZpYWdlbSDDqSBwYWdvIEtleSA9PiB2aWFqYXI7IENvbnRlbnQgPT4gNTApJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cnVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAn0KPRh9C10YIg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdmFsaWQgcHJvamVjdHMnfSA9ICfQn9C+0LrQsNC30LDRgtGMINC00LXQudGB0YLQstC40YLQtdC70YzQvdGL0LUg0L/RgNC+0LXQutGC0YsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgcHJvamVjdHMnfSA9ICfQn9C+0LrQsNC30LDRgtGMINCy0YHQtSDQv9GA0L7QtdC60YLRiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lQWNjb3VudGluZyd9ID0gJ9Cj0YfQtdGCINC30LDRgtGA0LDRgiDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICfQntGC0YfQtdGC0L3QvtGB0YLRjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICfQktCy0LXQtNC40YLQtSDQktCw0YjQuCDRgNCw0LHQvtGH0LjQtSDRh9Cw0YHRiyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn0JTQsNC90L3Ri9C1INC30LDQvdC10YHQtdC90Ysg0YPRgdC/0LXRiNC90L4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfQntGI0LjQsdC60LAg0L/RgNC4INCy0LLQvtC00LUg0L3QtdGB0LrQvtC70YzQutC40YUg0LTQsNGCISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICfQlNCw0L3QvdGL0LUg0LTQu9GPINGA0LDQt9C90YvRhSDQtNCw0YIg0LLQstC10LTQtdC90Ysg0YPRgdC/0LXRiNC90L4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICfQktCy0LXQtNC10L3QvdCw0Y8g0LTQsNGC0LAg0L3QtdCy0LXRgNC90LAhINCX0LDQvNC10L3QtdC90LAg0L3QsCDRgtC10LrRg9GJ0YPRjiEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIFRpbWUgQWNjb3VudGluZyBvZiB0aGlzIGRheT8nfSA9CiAgICAgICAgJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0LbQtdC70LDQtdGC0LUg0YPQtNCw0LvQuNGC0Ywg0YPRh9GC0LXQvdC90YvQtSDQt9Cw0YLRgNCw0YLRiyDQstGA0LXQvNC10L3QuCDQtNC70Y8g0Y3RgtC+0LPQviDQtNC90Y8/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC30LDQv9C40YHRjCDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ9Cf0LXRgNC10LnRgtC4INC6INC90LDRgdGC0YDQvtC50LrQsNC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ9Cd0LDQstC40LPQsNGG0LjRjyDQv9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9Cf0YDQtdC00YvQtNGD0YnQuNC5INC00LXQvdGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAn0KHQu9C10LTRg9GO0YnQuNC5INC00LXQvdGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ9Cf0LXRgNC10LnRgtC4INC6INGN0YLQvtC5INC00LDRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAn0JTQvdC4INCx0LXQtyDQt9Cw0L/QuNGB0LXQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICfQktGL0LHRgNCw0YLRjCDQstGB0LUg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICfQnNCw0YHRgdC+0LLRi9C5INCy0LLQvtC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAn0JLRi9Cx0LXRgNC40YLQtSDQv9GA0LjRh9C40L3RgyDQstCw0YjQtdCz0L4g0L7RgtGB0YPRgtGB0YLQstC40Y8g0LIg0LLRi9Cx0YDQsNC90L3Ri9C1INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ9CSINC+0YLQv9GD0YHQutC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICfQn9C+INCx0L7Qu9C10LfQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0JIg0L7RgtCz0YPQu9C1INC30LAg0L/QtdGA0LXRgNCw0LHQvtGC0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn0JLRi9Cx0LXRgNC40YLQtSDRhdC+0YLRjyDQsdGLINC+0LTQuNC9INC00LXQvdGMISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ9CS0YvQsdC10YDQuNGC0LUg0L/RgNC40YfQuNC90YMg0L7RgtGB0YPRgtGB0YLQstC40Y8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICfQnNCw0YHRgdC+0LLRi9C5INCy0LLQvtC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3Ri9C1INC/0L7Qu9GPINC/0L7QvNC10YfQtdC90YsgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Cd0LXQvtCx0YXQvtC00LjQvNC+INC30LDQv9C+0LvQvdC40YLRjCDQstGA0LXQvNGPINC90LDRh9Cw0LvQsCDQuCDQvtC60L7QvdGH0LDQvdC40Y8g0LjQu9C4INC/0LXRgNC40L7QtCDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ9Cf0YDQvtC10LrRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn0JfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ9Cf0YDQuNC80LXRh9Cw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzIS4nfSA9ICfQn9GA0LjQvNC10YfQsNC90LjQtSDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0L3QtSDQvNC10L3QtdC1IDgg0YHQuNC80LLQvtC70L7Qsi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ9CS0YDQtdC80Y8g0L3QsNGH0LDQu9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQntGC0YDQuNGG0LDRgtC10LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1INC90LXQtNC+0L/Rg9GB0YLQuNC80L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQndC1INC00L7Qv9GD0YHQutCw0LXRgtGB0Y8g0L/QvtCy0YLQvtGA0LXQvdC40LUuINCS0YDQtdC80Y8g0L3QsNGH0LDQu9CwINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPQtdGCINC00YDRg9Cz0L7QvNGDINC40L3RgtC10YDQstCw0LvRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0YTQvtGA0LzQsNGCISDQktCy0LXQtNC40YLQtSDQstGA0LXQvNGPINCyINGE0L7RgNC80LDRgtC1IEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICfQotC+0LvRjNC60L4gMjQ6MDAg0YDQsNC30YDQtdGI0LXQvdC+INCyINC60LDRh9C10YHRgtCy0LUg0LLRgNC10LzQtdC90Lgg0L7QutC+0L3Rh9Cw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQstC10YDQvdC+0LUg0LLRgNC10LzRjyEg0JIg0YHRg9GC0LrQsNGFINGC0L7Qu9GM0LrQviAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICfQktGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn0JLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0LTQvtC70LbQvdC+INCx0YvRgtGMINC/0L7Qt9C20LUg0LLRgNC10LzQtdC90Lgg0L3QsNGH0LDQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cd0LUg0LTQvtC/0YPRgdC60LDQtdGC0YHRjyDQv9C+0LLRgtC+0YDQtdC90LjQtS4g0JLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0YHQvtC+0YLQstC10YLRgdGC0LLRg9C10YIg0LTRgNGD0LPQvtC80YMg0LjQvdGC0LXRgNCy0LDQu9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn0J3QtdCy0LXRgNC90YvQuSDQv9C10YDQuNC+0LQhINCSINGB0YPRgtC60LDRhSDRgtC+0LvRjNC60L4gMjQg0YfQsNGB0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn0J/RgNCw0LLQuNC70YzQvdGL0Lkg0L/QtdGA0LjQvtC0INC00L7Qu9C20LXQvSDQsdGL0YLRjCDQsdC+0LvRjNGI0LUg0L3Rg9C70Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LLQtdGA0L3Ri9C5INC/0LXRgNC40L7QtCEg0J7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDQvdC1INC00L7Qv9GD0YHQutCw0LXRgtGB0Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn0JTQvtCx0LDQstC40YLRjCDQvtC00L3RgyDRgdGC0YDQvtC60YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICfQmNGC0L7Qs9C+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn0KMg0LLQsNGBINC10YHRgtGMINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0LLRi9Cx0YDQsNGC0Ywg0YLQvtC70YzQutC+INC+0LTQuNC9INGN0LvQtdC80LXQvdGCISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGFsbCBpdGVtcyd9ID0gJ9Cf0L7QutCw0LfQsNGC0Ywg0LLRgdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICfQo9C00LDQu9C40YLRjCDQt9Cw0L/QuNGB0Ywg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAn0J/QvtC00YLQstC10YDQtNC40YLQtSDQstGB0YLQsNCy0LrRgyc7CiAgICAkU2VsZi0+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/QviDQv9GA0L7QtdC60YLRgyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KfQsNGB0YsgKNC10LbQtdC80LXRgdGP0YfQvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn0KfQsNGB0YsgKNC30LAg0LLQtdGB0Ywg0YHRgNC+0Log0L3QsNCx0LvRjtC00LXQvdC40Y8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn0JLRgdC10LPQvic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICfQntGC0YfQtdGCINC+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40Y8g0L/QviDQvNC10YHRj9GG0LDQvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0LTQsNGC0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn0J7RgtGH0LXRgiDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ9CY0YLQvtCz0L4g0LfQsCDQvNC10YHRj9GGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAn0JjRgtC+0LPQviDQt9CwINCy0YHQtSDQstGA0LXQvNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgtCz0YPQu9GLINC30LAg0L/QtdGA0LXRgNCw0LHQvtGC0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ9Ce0YLQv9GD0YHQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0J7RgtGB0YPRgtGB0YLQstC40LUg0L/QviDQsdC+0LvQtdC30L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfQntGB0YLQsNC70L7RgdGMINC00L3QtdC5INC+0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ9Ce0YLRh9C10YLRiyDQv9C+INC/0YDQvtC10LrRgtGDJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfQntGC0YfQtdGCINC/0L4g0L/RgNC+0LXQutGC0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0L7QsdC30L7RgNGDINC+0YLRh9C10YLQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0YPRh9C10YLQsCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90Lgg0L/QviDQv9GA0L7QtdC60YLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0L7QsdC30L7RgNGDINC90LDRgdGC0YDQvtC10LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0YDQvtC10LrRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/RgNC+0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ9Cj0LbQtSDQtdGB0YLRjCDQv9GA0L7QtdC60YIg0YEg0YLQsNC60LjQvCDQvdCw0LjQvNC10L3QvtCy0LDQvdC40LXQvC4g0JLRi9Cx0LXRgNC40YLQtSDQtNGA0YPQs9C+0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INGD0YfQtdGC0LAg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQt9Cw0LTQsNGH0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICfQndC+0LLRi9C5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAn0KTQuNC70YzRgtGAINC00LvRjyDQn9GA0L7QtdC60YLQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICfQpNC40LvRjNGC0YAg0LTQu9GPINC30LDQtNCw0YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ9Ck0LjQu9GM0YLRgCDQtNC70Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC/0YDQvtC10LrRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC30LDQtNCw0YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC30LDQtNCw0YfRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0LfQsNC00LDRh9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQo9C20LUg0LXRgdGC0Ywg0LfQsNC00LDRh9CwINGBINGC0LDQutC40Lwg0LjQvNC10L3QtdC8LCDQktGL0LHQtdGA0LjRgtC1INC00YDRg9Cz0L7QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAn0J3QsNGB0YLRgNC+0LnQutC4INC90L7QstC+0LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ9Ca0L7QvNC80LXQvdGC0LDRgNC40LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ9Cf0L7QutCw0LfQsNGC0Ywg0L/QtdGA0LXRgNCw0LHQvtGC0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn0KDQsNC30YDQtdGI0LjRgtGMINGB0L7Qt9C00LDQvdC40LUg0L/RgNC+0LXQutGC0L7Qsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICfQndCw0YfQsNC70L4g0L/QtdGA0LjQvtC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ9Ca0L7QvdC10YYg0L/QtdGA0LjQvtC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ9CU0L3QuCDQvtGC0L/Rg9GB0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ9Cn0LDRgdC+0LIg0LIg0L3QtdC00LXQu9C1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICfQoNCw0LfRgNC10YjQtdC90L3QsNGPINC/0LXRgNC10YDQsNCx0L7RgtC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ9CU0LDRgtCwINC90LDRh9Cw0LvQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICfQktCy0LXQtNC40YLQtSDQv9GA0LDQstC40LvRjNC90YPRjiDQtNCw0YLRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfQlNCw0YLQsCDQvtC60L7QvdGH0LDQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICfQktGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyDQv9C10YDQuNC+0LTQsCDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0L/QvtC30LbQtSDQstGA0LXQvNC10L3QuCDQtdCz0L4g0L3QsNGH0LDQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAn0J7RgdGC0LDQu9C+0YHRjCwg0LTQvdC10LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn0KfQsNGB0L7QsiDQsiDQvdC10LTQtdC70Y4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfQn9C10YDQtdGA0LDQsdC+0YLQutCwL9Ch0LLQtdGA0YXRg9GA0L7Rh9C90YvQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAn0J3QtSDQt9Cw0LTQsNC90Ysg0L/QtdGA0LjQvtC00Ysg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/QtdGA0LjQtCDQstGA0LXQvNC10L3QuCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICfQn9C+0YHQvNC+0YLRgNC10YLRjCDQt9Cw0L/QuNGB0Ywg0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICfQn9GA0L7RgdC80L7RgtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ9CU0LvRjyDRjdGC0L7Qs9C+INC00L3RjyDQtNCw0L3QvdGL0LUg0L3QtSDQvdCw0LnQtNC10L3Riy4nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfQnNC+0LTRg9C70Ywg0YPQstC10LTQvtC80LvQtdC90LjQuSwg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0L3QtdC30LDQstC10YDRiNC10L3QvdGL0YUg0YDQsNCx0L7Rh9C40YUg0LTQvdC10Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ9CY0LzQtdC90LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC90L7QstGL0YUg0LTQtdC50YHRgtCy0LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0J3QsNC30LLQsNC90LjQtSDQvdC+0LLQvtCz0L4g0L/RgNC+0LXQutGC0LAg0L/Qvi3Rg9C80L7Qu9GH0LDQvdC40Y4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0LTQsNGC0Ysg0L7QutC+0L3Rh9Cw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0LTQsNGC0Ysg0L3QsNGH0LDQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC+0L/QuNGB0LDQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQvtGB0YLQsNCy0YjQuNGF0YHRjyDQtNC90LXQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQv9C10YDQtdGA0LDQsdC+0YLQutC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0YHRgtCw0L3QtNCw0YDRgtC90YvRhSDRgNCw0LHQvtGH0LjRhSDRh9Cw0YHQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDRgdGC0LDRgtGD0YHQsCDQvdC+0LLRi9GFINC00LXQudGB0YLQstC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0YHRgtCw0YLRg9GB0LAg0L3QvtCy0YvRhSDQv9GA0L7QtdC60YLQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINGB0YLQsNGC0YPRgdCwINC90L7QstGL0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQv9GA0L7QtdC60YLRiyDQtNC70Y8g0LrQvtGC0L7RgNGL0YUg0YLRgNC10LHRg9C10YLRgdGPINC30LDQvdC10YHQtdC90LjQtSDQt9Cw0LzQtdGH0LDQvdC40LkuINCV0YHQu9C4IFJlZ0V4cCDQstC10YDQvdC+INC00LvRjyDQv9GA0L7QtdC60YLQsCwg0LLRiyDQtNC+0LvQttC90Ysg0LTQvtCx0LDQstC40YLRjCDQt9Cw0LzQtdGH0LDQvdC40Y8g0YLQvtC20LUuINCU0LvRjyBSZWdFeHAg0LjRgdC/0L7Qu9GM0LfRg9C50YLQtSDQv9Cw0YDQsNC80LXRgtGAIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiwg0LzQvtC20LXRgiDQu9C4INC80L7QtNGD0LvRjCDQvtGC0YfQtdGC0L7QsiDQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L/QviDRg9GH0LXRgtGDINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0YPRh9C10YLQsCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZCd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC30LDQv9C40YHRjCDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICfQlNC70Y8g0LrQsNC60L7Qs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINC/0YDQvtGI0LXQtNGI0LjRhSDQtNC90LXQuSDQstGLINC80L7QttC10YLQtSDQstC90LXRgdGC0Lgg0LTQsNC90L3Ri9C1INC+INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICfQldGB0LvQuCDQstC60LvRjtGH0LXQvdC+LCDQvtGC0L7QsdGA0LDQttCw0Y7RgtGB0Y8g0YLQvtC70YzQutC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCwg0LrQvtGC0L7RgNGL0LUg0LfQsNC90L7RgdC40LvQuCDQt9Cw0YLRgNCw0YLRiyDQstGA0LXQvNC10L3QuCDQsiDQstGL0LHRgNCw0L3QvdGL0Lkg0L/RgNC+0LXQutGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINC00LvRjyDQstGL0LHQvtGA0LAg0L/QvtC70LXQuSDRgdC/0LjRgdC60LAg0L3QsCDRjdC60YDQsNC90LUg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQvNC+0LbQvdC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQsNCy0YLQvtC30LDQstC10YDRiNC10L3QuNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GOINGA0LDQt9GA0LXRiNC10L3QviDQstCy0L7QtNC40YLRjCDQt9C90LDRh9C10L3QuNGPICLQntGB0YLQsNC70L7RgdGMINCyINC+0YLQv9GB0LrQtSIsICLQntGB0YLQsNC70L7RgdGMINC00L3QtdC5INC/0L4g0LHQvtC70LXQt9C90LgiINC4ICLQntGB0YLQsNC70L7RgdGMINC/0LXRgNC10YDQsNCx0L7RgtC60LgiINC/0L4g0L3QtdGB0LrQvtC70YzQutC+INC00LDRgiDRgdGA0LDQt9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ9Cc0LDQutGBLiDQutC+0LvQuNGH0LXRgdGC0LLQviDRgNCw0LHQvtGH0LjRhSDQtNC90LXQuSwg0L/QvtGB0LvQtSDQutC+0YLQvtGA0YvRhSDRgNCw0LHQvtGH0LjQtSDQtdC00LjQvdC40YbRiyDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0LfQsNC90LXRgdC10L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvRjNC90L4g0LrQvtC70LjRh9C10YHRgtCy0L4g0YDQsNCx0L7Rh9C40YUg0LTQvdC10LksINC/0L7RgdC70LUg0LrQvtGC0L7RgNC+0LPQviDQstGL0LTQsNC10YLRgdGPINC/0YDQtdC00YPQv9GA0LXQttC00LXQvdC40LUg0L4g0YLQvtC8LCDRh9GC0L4g0LTQsNC90L3Ri9C1INC90LUg0LLQstC+0LTQuNC70LjRgdGMLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nJ30gPSAn0J7RgtGH0LXRgiDQviDQstGA0LXQvNC10L3QuCDQv9C+INC/0YDQvtC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICfQoNC10LPRg9C70Y/RgNC90YvQtSDQstGL0YDQsNC20LXQvdC40Y8g0LTQu9GPINGB0L7RgdGC0LDQstC70LXQvdC40Y8g0YHQv9C40YHQutCwINC00LXQudGB0YLQstC40Lkg0LIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC4INGBINCy0YvQsdGA0LDQvdC90YvQvCDQv9GA0L7QtdC60YLQvtC8LiDQmtC70Y7RhyDQtNC+0LvQttC10L0g0YHQvtC00LXRgNC20LDRgtGMINGA0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSDQtNC70Y8g0L/RgNC+0LXQutGC0LAo0L7QsiksINCh0L7QtNC10YDQttCw0L3QuNC1IC0g0YDQtdCz0YPQu9GP0YDQvdGL0LUg0LLRi9GA0LDQttC10L3QuNGPINC00LvRjyDQtNC10LnRgdGC0LLQuNGPKNC5KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAn0KDQtdCz0YPQu9GP0YDQvdGL0LUg0LLRi9GA0LDQttC10L3QuNGPINC00LvRjyDRgdC+0YHRgtCw0LLQu9C10L3QuNGPINGB0L/QuNGB0LrQsCDQtNC10LnRgdGC0LLQuNC5INCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDQs9GA0YPQv9C/INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LiDQmtC70Y7RhyDQtNC+0LvQttC10L0g0YHQvtC00LXRgNC20LDRgtGMINGA0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSDQtNC70Y8g0L/RgNC+0LXQutGC0LAo0L7QsiksINCh0L7QtNC10YDQttCw0L3QuNC1IC0g0YHQv9C40YHQvtC6INCz0YDRg9C/0L8sINGA0LDQt9C00LXQu9C10L3QvdGL0YUg0LfQsNC/0Y/RgtC+0LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIsINC80L7QttC90L4g0LvQuCDQt9Cw0L3QvtGB0LjRgtGMINGA0LDQsdC+0YfQuNC1INGH0LDRgdGLINCx0LXQtyDRg9C60LDQt9Cw0L3QuNGPINCy0YDQtdC80LXQvdC4INC90LDRh9Cw0LvQsCDQuCDQvtC60L7QvdGH0LDQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ9Ct0YLQvtGCINC80L7QtNGD0LvRjCDRg9GB0LrQvtGA0Y/QtdGCINCy0LLQvtC0INC00LDQvdC90YvRhSDQsiBUaW1lQWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfQnNC+0LTRg9C70Ywg0YPQstC10LTQvtC80LvQtdC90LjQuSwg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0L3QtdC30LDQstC10YDRiNC10L3QvdGL0YUg0YDQsNCx0L7Rh9C40YUg0LTQvdC10Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1INC30LDRgtGA0LDRgiDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ9Ce0LHQt9C+0YAg0LfQsNGC0YDQsNGCINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ9Ce0YLRh9C10YLRiyDQviDQt9Cw0YLRgNGC0LDRhSDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCDRg9GH0LXRgtCwINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAn0J/RgNC+0YHQvNC+0YLRgCDQt9Cw0YLRgNCw0YIg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICfQo9GH0LXRgiDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAn0JTQu9GPINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPLCDQtdGB0LvQuCDQvdC10LrQvtGC0L7RgNGL0LUg0LTQtdC50YHRgtCy0LjRjyDRg9C80LXQvdGM0YjQsNGO0YIg0YDQsNCx0L7Rh9C40LUg0YfQsNGB0YsgKNC90LDQv9GA0LjQvNC10YAsINC10YHQu9C4INGC0L7Qu9GM0LrQviDQv9C+0LvQvtCy0LjQvdCwINCy0YDQtdC80LXQvdC4INCyINC/0YPRgtC4INC+0L/Qu9Cw0YfQuNCy0LDQtdGC0YHRjyAtIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3ZfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdmFsaWQgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZUFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ1DDpSBzZW1lc3Rlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzIS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ8OWdmVydGlkIChUaW1tYXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdTZW1lc3RlciAoRGFnYXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3dfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFUaW1lQWNjb3VudGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnVWhhc2lidSB3YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdmFsaWQgcHJvamVjdHMnfSA9ICdPbnllc2hhIG1pcmFkaSBpbGl5byBoYWxhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgcHJvamVjdHMnfSA9ICdPbnllc2hhIG1pcmFkaSB5b3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWVBY2NvdW50aW5nJ30gPSAnVWhhc2lidSB3YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1VhcmlmdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdUYWZhZGhhbGkgaW5naXphIG1hc3NhYSB5YSBrYXppISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbmdpem8gbGltZWZhbmlraXdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdLb3NhIGthdGlrYSBrdWluZ2l6YSB0YXJlaGUgemFpZGkgeWEgbW9qYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnTWFpbmdpem8geWFsaXlvZmFuaWtpd2Ega3dhIHRhcmVoZSB6YWlkaSB5YSBtb2phISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnSW5naXpvIGxhIHRhcmVoZSBuaSBiYXRpbGkhIFRhcmVoZSBpbWViYWRpbGlzaHdhIGxlby4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIFRpbWUgQWNjb3VudGluZyBvZiB0aGlzIGRheT8nfSA9CiAgICAgICAgJ0plIHVuYXRha2Ega3VmdXRhIFVoYXNpYnUgd2EgTXVkYSBrd2Egc2lrdSB5YSBsZW8/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ0hhcmlyaSByZWtvZGkgeWEgbXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ05lbmRhIGt3ZW55ZSBtcGFuZ2lsaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnVWFiaXJpIHdhIHRhcmVoZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdTaWt1IGlsaXlvcGl0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ1Npa3UgaW5heW9md2F0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICdOZW5kYSBrd2VueWUgaGlpIHRhcmVoZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ1Npa3UgemlzaXpva3V3YSBuYSBtYWluZ2l6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdDaGFndWEgc2lrdSB6b3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdJbmdpem8gbGEgcGFtb2phJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnVGFmYWRoYWxpIGNoYWd1YSBzYWJhYnUgeWEga3V0b2t1d2VwbyBrd2Egc2lrdSB6aWxpem8gY2hhZ3VsaXdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnS2F0aWthIGxpa2l6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnS2F0aWthIHJ1aHVzYSB5YSB3YWdvbmp3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0thdGlrYSBydWh1c2EgeWEgbXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnVGFmYWRoYWxpIGNoYWd1YSBqYXBvIHNpa3UgbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1RhZmFkaGFsaSBjaGFndWEgc2FiYWJ1IHlhIGt1dG8ga3V3ZXBvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnSW5naXpvIGxhIHBhbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ1NlaGVtdSB6aW5hem90YWtpd2EgemluYSBhbGFtYSAiKiInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdVbmF0YWtpd2Ega3VqYXphIG11ZGEgd2Ega3VhbnphIG5hIGt1bWFsaXphIGF1IG11ZGEgdWxpb3R1bWlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ01yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdLYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ01hb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzIS4nfSA9ICdUYWZhZGhhbGkgd2VrYSBtYW9uaSB5ZW55ZSB6YWlkaSB5YSBoZXJ1ZmkgOCEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdNdWRhIHdhIEt1YW56YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTXVkYSBoYXNpIGhhdXJ1aHVzaXdpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnTXVkYSB1bGlvamlydWRpYSBoYXVydWh1c2l3aS4gTXVkYSB3YSBrdWFuemEgdW5hZmFuYW5hIG5hIG11ZGEgbXdpbmdpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdNdXVuZG8gYmF0aWxpISBUYWZhZGhhbGkgaW5naXphIG11ZGEgbmEgbXV1bmRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBpbmFydWh1c2l3YSBrYXRpa2EgbXVkYSB3YSBrdW1hbGl6YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdNdWRhIGJhdGlsaSEgU2lrdSBpbmEgbWFzYWEgMjQgdHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnTXVkYSB3YSBrdW1hbGl6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTXVkYSB3YSBrdW1hbGl6YSBsYXppbWEgdXdlIGJhYWRhIHlhIG11ZGEgd2Ega3VhbnphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ01hc2FhIHlhbGl5b2ppcnVkaWEgaGF5YXJ1aHVzaXdpLiBNdWRhIHdhIGt1bWFsaXphIHVuYWZhbmFuYSBtdWRhIG13aW5naW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTXVkYSBiYXRpbGkhIFNpa3UgaW5hIG1hc2FhIDI0IHR1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ011ZGEgaGFsYWxpIHVuYSBtYXNhYSB6YWlkaSB5YSBzaWZ1cmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdLaXBpbmRpIGJhdGlsaSEgVmlwaW5kaSBoYXNpIGhhdmlydWh1c2l3aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdPbmdlemEgc2FmdSBtb2phJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnSnVtbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdVbmF3ZXphIGt1Y2hhZ3VhIGVsZW1lbnRpIG1vamEga2F0aWthIGNoZWtpIGJva3NpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnT255ZXNoYSB2aXBlbmdlbGUgdnlvdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0Z1dGEgaW5naXpvIGxhIFVoYXNpYnUgd2EgTXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0hha2lraSBpbmdpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ1VuYSB1aGFraWthIHVsaWZhbnlhIGthemkgd2FrYXRpIHVwbyBsaWtpem8geWEgd2Fnb25qd2E/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB3YWthdGkgdXBvIGxpa2l6bz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ1VuYSB1aGFraWthIHVsaWZhbnlhIGthemkgd2FrYXRpIHVwbyBsaWtpem8geWEgbXVkYSB3YSBueW9uZ2V6YT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB6YWlkaSB5YSBtYXNhYSAxNj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ01hcGl0aW8geWEgbXdlemkgeWEgdWFyaWZ1IHdhIG11ZGEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdNdWRhIHdhIG55b2duZXphIChNYXNhYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSAobXdlemkgaHV1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ011ZGEgdWxpb2Jha2kgd2EgbGlraXpvIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnTGlraXpvIChzaWt1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdMaWtpem8gaWxpeW9jaHVrdWxpd2EgKG13ZXppIGh1dSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0xpa2l6byBpbGl5b2NodWt1bGl3YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0xpa2l6byBpbGl5b2Jha2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWtpem8geWEgd2Fnb25qd2EgKHNpa3UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnTGlraXpvIHlhIHdhZ29uandhIGlsaXlvY2h1a3VsaXdhIChtd2V6aSBodXUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSBpbGl5b2NodWt1bGl3YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTXdlemkgdWxpb3BpdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ013ZXppIHVqYW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ1Npa3UgemEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnTWFzYWEgeWEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdKdW1sYSB5YSBtYXNhYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ01hcGl0aW8geWEgbXJhZGkgd2EgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnTWFzYWEgKGt3YSBtd2V6aSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ01hc2FhIChtdWRhIHdvdGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnSnVtbGEga3V1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1VhcmlmdSB3YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdVYWJpcmkgd2EgbXdlemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ05lbmRhIHRhcmVoZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSaXBvdGkgemEgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ0p1bWxhIHlhIG13ZXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnSnVtbGEgeWEgbXVkYSB3b3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnTGlraXpvIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdMaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdMaWtpem8gaWxpeW9iYWtpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JpcG90aSB6YSBtcmFkaSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUmlwb3RpIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ05lbmRhIGt3ZW55ZSBtYXBpdGlvIHlhIHVhcmlmdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSGFyaXJpIFVoYXNpYnUgd2EgTXVkYSBrd2VueWUgbWlwYW5naWxpbyB5YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ09uZ2V6YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ05lbmRhIGt3ZW55ZSBtYXBpdGlvIHlhIG1wYW5naWlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnT25nZXphIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0hhcmlyaSBtaXBhbmdpbGlvIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdUYXlhcmkga3VuYSBtcmFkaSB3ZW55ZSBoaWxpIGppbmEuIFRhZmFkaGFsaSwgY2hhZ3VhIGplbmdpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEgVWhhc3VidSB3YSBNdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnT25nZXphIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdNdHVtaWFqaSBtcHlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdLaWNodWppbyBjaGEgTWlyYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdLaWNodWppbyBjaGEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnS2ljaHVqaW8gY2hhIFdhdHVtaWFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdPcm9kaGEgeWEgbWlyYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ09yb2RoYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnT25nZXphIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnVGF5YXJpIGt1bmEga2F6aSB5ZW55ZSBoaWxpIGppbmEuIFRhZmFkaGFsaSBjaGFndWEgamVuZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnT3JvZGhhIHlhIG10dW1pYWppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnTWlwYW5naWxpbyB5YSBtdHVtaWFqaSBtcHlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ0hhcmlyaSBtaXBhbmdpbGlvIHlhIG10dW1pYWppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnRzJ30gPSAnTWFvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ09ueWVzaGEgbXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUnVodXN1IHV0ZW5nZW5lemFqaSB3YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdLdWFuemEga3dhIGtpcGVuZ2VsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnS3Vpc2hhIGt3YSBraXBlbmdlbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ1Npa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnTWFzYWEga3dhIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ011ZGEgd2EgbnlvbmdlemEgdWxpb3J1aHVzaXdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdUYXJlaGUgeWEga3VhbnphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1RhZmFkaGFsaSBpbmdpemEgdGFyZWhlIGhhbGFsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ1RhcmVoZSB5YSBrdW1hbGl6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ013aXNobyB3YSBraXBlbmdlbGUgbGF6aW1hIHV3ZSBiYWFkYSB5YSBtd2Fuem8gd2Ega2lwZW5nZWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdTaWt1IHphIGxpa2l6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdNYXNhYSB5YSB3aWtpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnSGFrdW5hIHZpcGVuZ2VsZSB2eWEgbXVkYSB2aWxpdnlvcGF0aWthbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnT25nZXphIGtpcGVuZ2VsZSBjaGEgbXVkYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdPbnllc2hhIGtpcGVuZ2VsZSBjaGEgbXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ011b25la2FubyB3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdIYWt1bmEgZGF0YSB6aWxpem9wYXRpa2FuYSBrd2Egc2lrdSBoaWknOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bGkgeWEgdGFhcmlmYSBrd2Ega2lvbGVzdXJhIGNoYSB3YWthbGEga3VvbmEgaWRhZGkgeWEgc2lrdSB6YSBrYXppIHphIG10dW1pYWppIHppc2l6byBrYW1pbGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnSmluYSBsYSBjaGFndW8tbXNpbmdpIGt3YSB2aXRlbmRvIHZpcHlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdKaW5hIGxhIGNoYWd1by1tc2luZ2kga3dhIG1pcmFkaSBtaXB5YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NoYWd1by1tc2luZ2kga3dhIG1pcGFuZ2lsaW8geWEgdGFyZWhlIHlhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDaGFndW8tbXNpbmdpIGt3YSBtaXBhbmdpbGlvIHlhIHRhcmVoZSB5YSBrdWFuemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ2hhZ3VvLW1zaW5naSBrd2EgbWlwYW5naWxpbyB5YSBtYWVsZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIHNpa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ2hhZ3VvLW1zaW5naSBsYSBtdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIG1pcGFuZ2lsaW8geWEgc2lrdSB6YSBrYXdhaWRhIHphIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0hhbGkgeWEgY2hhZ3VvLW1zaW5naSBrd2Egdml0ZW5kbyB2aXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIG1pcmFkaSBtaXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIHdhdHVtaWFqaSB3YXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBtaXJhZGkgYW1iYXlvIG1hb25pIHlhbmFoaXRhamlrYS4gS2FtYSBSZWdFeHAgaW5hZmFuYW5hIGthdGlrYSBtcmFkaSwgdW5hdGFraXdhIGt1d2VrYSBtYW9uaSBwaWEuIFJlZ0V4cCBpbmF0dW1pYSBwYXJhbWV0YSB5YSBzbXgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0luYWhha2lraSBrYW1hIG1vZHVsaSB5YSB0YWt3aW11IGluYXdlemEga3V0ZW5nZW5lemEgdGFhcmlmYSB5YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzJ30gPSAnSGFyaXJpIG1wYW5naWxpbyB3YSB1aGFzaWJ1IHdhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZCd9ID0gJ0hhcmlyaSByZWtvZGkgeWEgbXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdLd2Egc2lrdSBuZ2FwaSB6aWxpem9waXRhIHVuYXdlemEga3VpbmdpemEgdml0ZW5nbyB2eWEga2F6aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnS2FtYSBpbWV3ZXplc2h3YSwgd2F0dW1pYWppIHdhbGlvd2VrYSBtdWRhIHdhIGthemkga3dhIG1yYWRpIHVsaW9jaGFndWxpd2EgbmRpbyB3YXRhb255ZXNod2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdLYW1hIGltZXdlemVzaHdhLCBlbGVtZW50aSB6YSBrdXNodWthIGNoaW5pIGt3ZW55ZSBza3JpbmkgeWEga3VoYXJpcmkgemluYWppa2FtaWxpc2hhIG1vamEga3dhIG1vamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdLYW1hIGltZXdlemVzaHdhLCBtdHVtaWFqaSBhbmFydWh1c2l3YSBrdWluZ2l6YSAia3dlbnllIGxpa2l6byIsICJrd2VueWUgbGlraXpvIHlhIHdhZ29uandhIiwgImt3ZW55ZSBsaWtpem8geWEgc2lrdSB6YSBueW9uZ2V6YSIga3dhIHRhcmVoZSB6YWlkaSB5YSBtb2phIGt3YSBta3VwdW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnS2ltYSBjaGEganV1IGNoYSBzaWt1IHphIGthemkgYmFhZGEgeWEgdml0ZW5nbyB2eWEga2F6aSBrdWluZ2l6d2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdLaW1hIGNoYSBqdXUgY2hhIHNpa3UgemEga2F6aSBiaWxhIHlhIHZpdGVuZ28gdnlhIGthemkga3VpbmdpendhIGFtYmF2eW8gIG9ueW8gbGl0YW9ueWVzaHdhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nJ30gPSAnVWFyaWZ1IHdhIG11ZGEgd2EgbXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ01hbmVubyB5YSBrYXdhaWRhIHlhbmF5byBrd2FtaXNoYSBvcm9kaGEgeWEgdml0ZW5kbyBrd2EgbXJhZGkgdWxpb2NoYWd1bGl3YS4gVWZ1bmd1byB1bmEgbWFuZW5vIHlhIGthd2FpZGEgeWEgbXJhZGkgKG1pcmFkaSksIG1hdWRodWkgeWFuYSBtYW5lbm8geWEga2F3YWlkYSB5YSBraXRlbmRvICh2aXRlbmRvKS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ01hbmVubyB5YSBrYXdhaWRhIHlhIGt1enVpYSBvcm9kaGEgeWEgbXJhZGkga3VlbmRhbmEgbmEgbWFrdW5kaSB5YSB3YXR1bWlhamkuIFVmdW5ndW8gdW5hIG1hbmVubyB5YSBrYXdhaWRhIHlhIG1yYWRpIChtaXJhZGkpLCBtYXVkaHVpIHlhbmEgbWFrdW5kaSB5YWxpeW9nYXdhbnl3YSBrd2EgYWxhbWEgeWEgbWthdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdJbmFiYWluaXNoYSBrYW1hIG1hc2FhIHlhIGthemkgeWFuYXdlemEga3VpbmdpendhIGJpbGEgeWEgbXVkYSB3YSBrdWFuemEgbmEga3VtYWxpemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0hpaSBtb2R1bGkgaW5haW5naXphIFVoYXNpYnUgd2EgTXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ0hpaSBtb2R1bGkgeWEgdGFhcmlmYSBpbmF0b2Egb255byBlbmRhcG8ga3VuYSBzaWt1IG55aW5naSB6YSBrYXppIGFtYmF6byBoYXppamFrYW1pbGlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnSGFyaXJpIHVoYXNpYnUgd2EgbXVkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ01hcGl0aW8geWEgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1VhcmlmdSB3YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdNcGFuZ2lsaW8gd2EgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdNdW9uZWthbm8gd2EgdWhhc2lidSB3YSBtdWRhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVWhhc2lidSB3YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0l0YXR1bWlrYSBrYW1hIGJhYWRoaSB5YSB2aXRlbmRvIHZpdGFwdW5ndXphIG11ZGEgd2Ega2F6aSAobWZhbm8sIGthbWEgbnVzdSB5YSBtdWRhIHdhIGt1c2FmaXJpIHVtZWxpcHdhIFVmb25ndW89PiBrdXNhZmlyaTsgbWF1ZGh1aT0+IDUwKS4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nRWRpdDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRlOjpQY2FsYyBxdyhUb2RheSBEYXlzX2luX01vbnRoIERheV9vZl9XZWVrIEFkZF9EZWx0YV9ZTUQgY2hlY2tfZGF0ZSk7CnVzZSBUaW1lOjpMb2NhbDsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUHJlUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICByZXR1cm4gMSBpZiAhJFNlbGYtPntBY2Nlc3NSb307CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgbXkgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgIE1vbnRoID0+ICRNb250aCwKICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRVc2VyeyAkU2VsZi0+e1VzZXJJRH0gfTsKCiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcmVkaXJlY3QgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheSBhcmUgb3V0IG9mIHJhbmdlCiAgICBpZiAoCiAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c3tFbmZvcmNlSW5zZXJ0fQogICAgICAgICYmICRTZWxmLT57QWN0aW9ufSBuZSAnQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnCiAgICAgICAgJiYgJFNlbGYtPntBY3Rpb259IG5lICdBZ2VudENhbGVuZGFyU21hbGwnCiAgICAgICAgKQogICAgewoKICAgICAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzaG93IGNvbmZpcm1hdGlvbiBkaWFsb2cgdG8gZGVsZXRlIHRoZSBlbnRyeSBvZiB0aGlzIGRheQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0RlbGV0ZURpYWxvZycgKSApIHsKCiAgICAgICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdGF0dXMgWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgRGF0ZQogICAgICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSB8fCAhJFBhcmFte0RheX0gKSB7CiAgICAgICAgICAgICRQYXJhbXtZZWFyfSAgPSAkWWVhcjsKICAgICAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgICAgICAgICAgJFBhcmFte0RheX0gICA9ICREYXk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkUGFyYW17WWVhcn0gID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17WWVhcn0gKTsKICAgICAgICAgICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgICAgICAgICAkUGFyYW17RGF5fSAgID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17RGF5fSApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdEZWxldGUnLAogICAgICAgICk7CgogICAgICAgICMgYnVpbGQgdGhlIHJldHVybmVkIGRhdGEgc3RydWN0dXJlCiAgICAgICAgbXkgJURhdGEgPSAoCiAgICAgICAgICAgIEhUTUwgICAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgRGlhbG9nVHlwZSA9PiAnQ29uZmlybWF0aW9uJywKICAgICAgICApOwoKICAgICAgICAjIHJldHVybiBKU09OLVN0cmluZyBiZWNhdXNlIG9mIEFKQVgtTW9kZQogICAgICAgIG15ICRPdXRwdXRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSgKICAgICAgICAgICAgRGF0YSA9PiBcJURhdGEsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRPdXRwdXRKU09OLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGRlbGV0ZSBvYmplY3QgZnJvbSBkYXRhYmFzZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEZWxldGUnICkgewogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXkgTW9udGggWWVhcikpIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKAogICAgICAgICAgICAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1llYXI9JFBhcmFte1llYXJ9O01vbnRoPSRQYXJhbXtNb250aH07RGF5PSRQYXJhbXtEYXl9IiwKICAgICAgICApOwogICAgfQoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgbWFzcyBlbnRyeQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdNYXNzRW50cnknICkgewoKICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZXMgTGVhdmVEYXkgU2ljayBPdmVydGltZSkpIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBzcGxpdCB1cCBkYXRlcwogICAgICAgIG15IEBEYXRlcyA9IHNwbGl0IC9bfF0vLCAkUGFyYW17RGF0ZXN9OwogICAgICAgIG15ICRJbnNlcnRFcnJvciA9IDA7CgogICAgICAgICMgc2F2ZSBlbnRyaWVzIGluIHRoZSBkYgogICAgICAgIGZvciBteSAkRGF0ZSAoQERhdGVzKSB7CgogICAgICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0IC9bLV0vLCAkRGF0ZTsKCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICBNb250aCAgICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheSA9PiAkUGFyYW17TGVhdmVEYXl9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgU2ljayAgICAgPT4gJFBhcmFte1NpY2t9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgPT4gJFBhcmFte092ZXJ0aW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEluc2VydEVycm9yID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgICMgcmVkaXJlY3QgdG8gZWRpdCBzY3JlZW4gd2l0aCBsb2cgbWVzc2FnZQogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDtOb3RpZmljYXRpb249JwogICAgICAgICAgICAgICAgLiAoICRJbnNlcnRFcnJvciA/ICdFcnJvcicgOiAnU3VjY2Vzc2Z1bCcgKSwKICAgICAgICApOwoKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHRoZSB0aW1lIGFjY291bnRpbmcgZWxlbWVudHMKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgcGFyYW1zCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIFllYXIgTW9udGggRGF5IE5vdGlmaWNhdGlvbikpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICB9CiAgICAkUGFyYW17UmVjb3Jkc051bWJlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUmVjb3Jkc051bWJlcicgKSB8fCA4OwogICAgJFBhcmFte0luc2VydFdvcmtpbmdVbml0c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSW5zZXJ0V29ya2luZ1VuaXRzJyApOwoKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgKTsKCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSB8fCAhJFBhcmFte0RheX0gKSB7CiAgICAgICAgJFBhcmFte1llYXJ9ICA9ICRZZWFyOwogICAgICAgICRQYXJhbXtNb250aH0gPSAkTW9udGg7CiAgICAgICAgJFBhcmFte0RheX0gICA9ICREYXk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17WWVhcn0gKTsKICAgICAgICAkUGFyYW17TW9udGh9ID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICAgICAgJFBhcmFte0RheX0gICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte0RheX0gKTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGEgdmFsaWQgZGF0ZQogICAgIyBpZiBub3QgdmFsaWQsIHNldCB0aGUgZGF0ZSB0byB0b2RheQogICAgaWYgKCAhY2hlY2tfZGF0ZSggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSApICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgICAgICAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ICAgICAgID0gJE1vbnRoOwogICAgICAgICRQYXJhbXtEYXl9ICAgICAgICAgPSAkRGF5OwogICAgICAgICRQYXJhbXsnV3JvbmdEYXRlJ30gPSAxOwogICAgfQoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICA9PiAkUGFyYW17RGF5fSwKICAgICk7CgogICAgIyBmb3IgaW5pdGlhbCB1c2UsIHRoZSBmaXJzdCBhZ2VudCB3aXRoIHJ3LXJpZ2h0IHdpbGwgYmUgcmVkaXJlY3RlZAogICAgIyB0byAnU2V0dGluZycsIHNvIGhlIGNhbiBkbyB0aGUgaW5pdGlhbCBzZXR0aW5ncwogICAgaWYgKCAhJFVzZXJ7ICRTZWxmLT57VXNlcklEfSB9ICkgewoKICAgICAgICByZXR1cm4gJFNlbGYtPl9GaXJzdFVzZXJSZWRpcmVjdCgpOwogICAgfQoKICAgIG15ICVJbmNvbXBsZXRlV29ya2luZ0RheXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE1heEFsbG93ZWRJbnNlcnREYXlzID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6TWF4QWxsb3dlZEluc2VydERheXMnKSB8fCAnMTAnOwogICAgKCAkUGFyYW17WWVhckFsbG93ZWR9LCAkUGFyYW17TW9udGhBbGxvd2VkfSwgJFBhcmFte0RheUFsbG93ZWR9ICkKICAgICAgICA9IEFkZF9EZWx0YV9ZTUQoICRZZWFyLCAkTW9udGgsICREYXksIDAsIDAsIC0kTWF4QWxsb3dlZEluc2VydERheXMgKTsKICAgIGlmICgKICAgICAgICB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApIDwgdGltZWxvY2FsKAogICAgICAgICAgICAxLCAwLCAwLCAkUGFyYW17RGF5QWxsb3dlZH0sCiAgICAgICAgICAgICRQYXJhbXtNb250aEFsbG93ZWR9IC0gMSwKICAgICAgICAgICAgJFBhcmFte1llYXJBbGxvd2VkfSAtIDE5MDAKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgIGlmICgKICAgICAgICAgICAgISRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17ICRQYXJhbXtZZWFyfSB9eyAkUGFyYW17TW9udGh9IH0KICAgICAgICAgICAgeyAkUGFyYW17RGF5fSB9CiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgICAgICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXc7WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9O0RheT0kUGFyYW17RGF5fSIsCiAgICApOwoKICAgICRQYXJhbXtNb250aF90b19UZXh0fSA9ICRNb250aEFycmF5WyAkUGFyYW17TW9udGh9IF07CgogICAgKCAkUGFyYW17WWVhckJhY2t9LCAkUGFyYW17TW9udGhCYWNrfSwgJFBhcmFte0RheUJhY2t9ICkKICAgICAgICA9IEFkZF9EZWx0YV9ZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0sIDAsIDAsIC0xICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSwgMCwgMCwgMSApOwoKICAgIG15ICRSZWR1Y2VUaW1lUmVmID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6UmVkdWNlVGltZScpOwoKICAgICMgaGFzaGVzIHRvIHN0b3JlIHNlcnZlciBzaWRlIGVycm9ycwogICAgbXkgJUVycm9ycyAgICAgICAgICA9ICgpOwogICAgbXkgJVNlcnZlckVycm9yRGF0YSA9ICgpOwogICAgbXkgJEVycm9ySW5kZXggICAgICA9IDE7CgogICAgbXkgJURhdGE7CiAgICBteSAlQWN0aW9uTGlzdCA9ICRTZWxmLT5fQWN0aW9uTGlzdCgpOwoKICAgICMgRWRpdCBXb3JraW5nIFVuaXRzCiAgICBpZiAoICRQYXJhbXtTdGF0dXN9ICkgewoKICAgICAgICAjIGFycmF5cyB0byBzYXZlIGFsbCBzdGFydCBhbmQgZW5kIHRpbWVzIGZvciBzb21lIGNoZWNrcwogICAgICAgIG15ICggQFN0YXJ0VGltZXMsIEBFbmRUaW1lcyApOwoKICAgICAgICAjIGRlbGV0ZSBwcmV2aW91cyBlbnRyaWVzIGZvciB0aGlzIGRheSBhbmQgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICVDaGVja2JveENoZWNrID0gKCk7CiAgICAgICAgZm9yIG15ICRFbGVtZW50IChxdyhMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewogICAgICAgICAgICBteSAkVmFsdWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkRWxlbWVudCApOwogICAgICAgICAgICBpZiAoJFZhbHVlKSB7CiAgICAgICAgICAgICAgICAkQ2hlY2tib3hDaGVja3skRWxlbWVudH0gPSAxOwogICAgICAgICAgICAgICAgJFBhcmFteyRFbGVtZW50fSAgICAgICAgID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRQYXJhbXskRWxlbWVudH0gPSAnJwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG1vcmUgdGhhbiBvbmUgY2hlY2sgYm94IHdhcyBjaGVja2VkIGl0IGlzIGEgc2VydmVyIGVycm9yCiAgICAgICAgaWYgKCBzY2FsYXIga2V5cyAlQ2hlY2tib3hDaGVjayA+IDEgKSB7CiAgICAgICAgICAgIGZvciBteSAkQ2hlY2tib3ggKCBzb3J0IGtleXMgJUNoZWNrYm94Q2hlY2sgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkQ2hlY2tib3ggLiAnSW52YWxpZCcgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGluc2VydCB2YWx1ZXMgKGlmIGFueSkKICAgICAgICAgICAgaWYgKCBzY2FsYXIga2V5cyAlQ2hlY2tib3hDaGVjayA+IDAgKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICAgICAgICAgICAgICBMZWF2ZURheSA9PiAkQ2hlY2tib3hDaGVja3tMZWF2ZURheX0gfHwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgU2ljayAgICAgPT4gJENoZWNrYm94Q2hlY2t7U2lja30gfHwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgPT4gJENoZWNrYm94Q2hlY2t7T3ZlcnRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzIScsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IGNoZWNrIGl0ZW0gb2JqZWN0CiAgICAgICAgbXkgJENoZWNrSXRlbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nKTsKCiAgICAgICAgSUQ6CiAgICAgICAgZm9yIG15ICRJRCAoIDEgLi4gJFBhcmFte1JlY29yZHNOdW1iZXJ9ICkgewoKICAgICAgICAgICAgIyBhcnJheXMgdG8gc2F2ZSB0aGUgc2VydmVyIGVycm9ycyBibG9jayB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcwogICAgICAgICAgICBteSAoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssIEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrICkgPSAoKTsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0SUQgQWN0aW9uSUQgUmVtYXJrIFN0YXJ0VGltZSBFbmRUaW1lIFBlcmlvZCkpIHsKICAgICAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAnWycgLiAkSUQgLiAnXScgKTsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFteyRQYXJhbWV0ZXJ9ICkgewogICAgICAgICAgICAgICAgICAgIG15ICRQYXJhbVJlZiA9IFwkUGFyYW17JFBhcmFtZXRlcn07CgogICAgICAgICAgICAgICAgICAgICMgZGVsZXRlIGxlYWRpbmcgYW5kIHRhaWxpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgJFBhcmFtUmVmID0gJENoZWNrSXRlbU9iamVjdC0+U3RyaW5nQ2xlYW4oCiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1JlZiA9PiAkUGFyYW1SZWYsCiAgICAgICAgICAgICAgICAgICAgICAgIFRyaW1MZWZ0ICA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICBUcmltUmlnaHQgPT4gMSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBuZXh0IElEIGlmICEkUGFyYW17UHJvamVjdElEfSAmJiAhJFBhcmFte0FjdGlvbklEfTsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIG1pc3NpbmcgdmFsdWVzCiAgICAgICAgICAgIGlmICggJFBhcmFte1Byb2plY3RJRH0gJiYgISRQYXJhbXtBY3Rpb25JRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtBY3Rpb25JREludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICEkUGFyYW17UHJvamVjdElEfSAmJiAkUGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UHJvamVjdElESW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNyZWF0ZSBhIHZhbGlkIHBlcmlvZAogICAgICAgICAgICBteSAkUGVyaW9kID0gJFBhcmFte1BlcmlvZH07CiAgICAgICAgICAgIGlmICggJFBlcmlvZCA9fiAvXihcZCspLChcZCspLyApIHsKICAgICAgICAgICAgICAgICRQZXJpb2QgPSAkMSAuICIuIiAuICQyOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjYWxsb3cgZm9ybWF0IGhoOm1tCiAgICAgICAgICAgIGVsc2lmICggJFBhcmFte1BlcmlvZH0gPX4gL14oXGQrKTooXGQrKS8gKSB7CiAgICAgICAgICAgICAgICAkUGVyaW9kID0gJDEgKyAkMiAvIDYwOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIHN0YXJ0IG9yIGVuZCB0aW1lcyBhcmUgbWlzc2luZywgZGVsZXRlIHRoZSBvdGhlciBlbnRyeQogICAgICAgICAgICBpZiAoICEkUGFyYW17U3RhcnRUaW1lfSB8fCAhJFBhcmFte0VuZFRpbWV9ICkgewogICAgICAgICAgICAgICAgJFBhcmFte1N0YXJ0VGltZX0gPSAnJzsKICAgICAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSAgID0gJyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkICc6MDAnIHRvIHRoZSB0aW1lLCBpZiBpdCBkb2Vzbid0IGhhdmUgaXQgeWV0CiAgICAgICAgICAgIGlmICggJFBhcmFte1N0YXJ0VGltZX0gJiYgJFBhcmFte1N0YXJ0VGltZX0gIX4gL14oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgJFBhcmFte1N0YXJ0VGltZX0gLj0gJzowMCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkUGFyYW17RW5kVGltZX0gJiYgJFBhcmFte0VuZFRpbWV9ICF+IC9eKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSAuPSAnOjAwJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoICRQYXJhbXtTdGFydFRpbWV9ID1+IC9eKFxkKyk6KFxkKykkLyApCiAgICAgICAgICAgICAgICAmJiAoICRQYXJhbXtFbmRUaW1lfSA9fiAvXihcZCspOihcZCspJC8gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkUGFyYW17U3RhcnRUaW1lfSA9fiAvXihcZCspOihcZCspJC87CiAgICAgICAgICAgICAgICBteSAkU3RhcnRUaW1lID0gJDEgKiA2MCArICQyOwogICAgICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9ID1+IC9eKFxkKyk6KFxkKykkLzsKICAgICAgICAgICAgICAgIG15ICRFbmRUaW1lID0gJDEgKiA2MCArICQyOwogICAgICAgICAgICAgICAgaWYgKCAkUmVkdWNlVGltZVJlZi0+eyAkQWN0aW9uTGlzdHsgJFBhcmFte0FjdGlvbklEfSB9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZCA9ICggJEVuZFRpbWUgLSAkU3RhcnRUaW1lICkgLyA2MAogICAgICAgICAgICAgICAgICAgICAgICAqICRSZWR1Y2VUaW1lUmVmLT57ICRBY3Rpb25MaXN0eyAkUGFyYW17QWN0aW9uSUR9IH0gfSAvIDEwMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRQZXJpb2QgPSAoICRFbmRUaW1lIC0gJFN0YXJ0VGltZSApIC8gNjA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBlbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUKICAgICAgICAgICAgICAgIGlmICggJEVuZFRpbWUgPD0gJFN0YXJ0VGltZSApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZUJlZm9yZVN0YXJ0VGltZVNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkU3RhcnRUaW1lc1skSURdID0gJFN0YXJ0VGltZTsKICAgICAgICAgICAgICAgICRFbmRUaW1lc1skSURdICAgPSAkRW5kVGltZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFte1N0YXJ0VGltZX0gJiYgJFBhcmFte1N0YXJ0VGltZX0gIX4gL14oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICggJFBhcmFte0VuZFRpbWV9ICYmICRQYXJhbXtFbmRUaW1lfSAhfiAvXihcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG5lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZAogICAgICAgICAgICBpZiAoICRQYXJhbXtTdGFydFRpbWV9ID1+IC9eLShcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lTmVnYXRpdmVTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkUGFyYW17RW5kVGltZX0gPX4gL14tKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQKICAgICAgICAgICAgUE9TSVRJT046CiAgICAgICAgICAgIGZvciAoIG15ICRQb3NpdGlvbiA9ICRJRCAtIDE7ICRQb3NpdGlvbiA+PSAxOyAkUG9zaXRpb24tLSApIHsKICAgICAgICAgICAgICAgIG5leHQgUE9TSVRJT04gaWYgIWRlZmluZWQgJFN0YXJ0VGltZXNbJFBvc2l0aW9uXTsKICAgICAgICAgICAgICAgIG5leHQgUE9TSVRJT04gaWYgIWRlZmluZWQgJFN0YXJ0VGltZXNbJElEXTsKCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFN0YXJ0VGltZXNbJFBvc2l0aW9uXSA+ICRTdGFydFRpbWVzWyRJRF0KICAgICAgICAgICAgICAgICAgICAmJiAkU3RhcnRUaW1lc1skUG9zaXRpb25dIDwgJEVuZFRpbWVzWyRJRF0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvci99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJEVuZFRpbWVzWyRQb3NpdGlvbl0gPiAkU3RhcnRUaW1lc1skSURdCiAgICAgICAgICAgICAgICAgICAgJiYgJEVuZFRpbWVzWyRQb3NpdGlvbl0gPCAkRW5kVGltZXNbJElEXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRFbmRUaW1lc1skSURdID4gJEVuZFRpbWVzWyRQb3NpdGlvbl0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIWdyZXAgey9eU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRTdGFydFRpbWVzWyRQb3NpdGlvbl0gPT0gJFN0YXJ0VGltZXNbJElEXSApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15TdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkRW5kVGltZXNbJFBvc2l0aW9uXSA9PSAkRW5kVGltZXNbJElEXSApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFN0YXJ0VGltZXNbJElEXSA+ICRTdGFydFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICAmJiAkU3RhcnRUaW1lc1skSURdIDwgJEVuZFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkRW5kVGltZXNbJElEXSA+ICRTdGFydFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICAmJiAkRW5kVGltZXNbJElEXSA8ICRFbmRUaW1lc1skUG9zaXRpb25dCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15FbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjICcyNDowMCcgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUKICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skSURdICYmICRTdGFydFRpbWVzWyRJRF0gPT0gMTQ0MCApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWUyNEhvdXJzJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyB0aW1lcyBzdXBlcmlvciB0byAyNDowMCBhcmUgbm90IGFsbG93ZWQKICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skSURdICYmICRTdGFydFRpbWVzWyRJRF0gPiAxNDQwICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZUludmFsaWQnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJEVuZFRpbWVzWyRJRF0gJiYgJEVuZFRpbWVzWyRJRF0gPiAxNDQwICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZUludmFsaWQnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCByZWZlcmVuY2UgdG8gdGhlIHNlcnZlciBlcnJvciBtZXNzYWdlcyB0byBiZSBzaG93bgogICAgICAgICAgICBpZiAoICRFcnJvcnN7JEVycm9ySW5kZXh9ICYmICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lU2VydmVyRXJyb3JCbG9ja30gPSBcQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2s7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lU2VydmVyRXJyb3JCbG9ja30gPSBcQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG92ZXJ3cml0ZSBwZXJpb2QgaWYgdGhlcmUgYXJlIHN0YXJ0IGFuZCBlbmQgdGltZXMKICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skSURdICYmICRFbmRUaW1lc1skSURdICkgewogICAgICAgICAgICAgICAgJFBlcmlvZCA9ICRFbmRUaW1lc1skSURdIC0gJFN0YXJ0VGltZXNbJElEXTsKCiAgICAgICAgICAgICAgICAjIGNvbnZlcnQgcGVyaW9kIGZyb20gbWludXRlcyB0byBob3VycwogICAgICAgICAgICAgICAgJFBlcmlvZCAvPSA2MDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBmb3IgZXJyb3JzIGluIHRoZSBwZXJpb2QKICAgICAgICAgICAgaWYgKCAkUGVyaW9kID09IDAgKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrLCAnWmVyb0hvdXJzUGVyaW9kU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OklucHV0SG91cnNXaXRob3V0U3RhcnRFbmRUaW1lJykKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICggJFBlcmlvZCA8IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQFBlcmlvZFNlcnZlckVycm9yQmxvY2ssICdOZWdhdGl2ZVBlcmlvZFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRQZXJpb2QgPiAyNCApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQFBlcmlvZFNlcnZlckVycm9yQmxvY2ssICdJbnZhbGlkSG91cnNQZXJpb2RTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrfSA9IFxAUGVyaW9kU2VydmVyRXJyb3JCbG9jazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igb24gdGhpcyByb3csIHNhdmUgYWxsIGRhdGEgaW4gdGhlIHNlcnZlciBlcnJvciBoYXNoCiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkRXJyb3JzeyRFcnJvckluZGV4fSApIHsKICAgICAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0SUQgQWN0aW9uSUQgUmVtYXJrIFN0YXJ0VGltZSBFbmRUaW1lKSkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9eyRQYXJhbWV0ZXJ9ID0gJFBhcmFteyRQYXJhbWV0ZXJ9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UGVyaW9kfSA9ICRQZXJpb2Q7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3RoZXJ3aXNlLCBzYXZlIHJvdyBvbiB0aGUgREIKICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBpbml0aWFsaXplIHRoZSBhcnJheSBvZiB3b3JraW5nIHVuaXRzCiAgICAgICAgICAgICAgICBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH0gPSAoKTsKCiAgICAgICAgICAgICAgICAjIHJlcGxhY2UgMjQ6MDAgZm9yIDIzOjU5OjU5IHRvIGJlIGEgdmFsaWQgZW50cnkgaW4gdGhlIERCCiAgICAgICAgICAgICAgICAkUGFyYW17RW5kVGltZX0gPSAkUGFyYW17RW5kVGltZX0gZXEgJzI0OjAwJyA/ICcyMzo1OTo1OScgOiAkUGFyYW17RW5kVGltZX07CgogICAgICAgICAgICAgICAgbXkgJVdvcmtpbmdVbml0ID0gKAogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUGFyYW17UHJvamVjdElEfSwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJFBhcmFte0FjdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJFBhcmFte1JlbWFya30sCiAgICAgICAgICAgICAgICAgICAgU3RhcnRUaW1lID0+ICRQYXJhbXtTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgICAgIEVuZFRpbWUgICA9PiAkUGFyYW17RW5kVGltZX0sCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICRQZXJpb2QsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcHVzaCBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH0sIFwlV29ya2luZ1VuaXQ7CgogICAgICAgICAgICAgICAgJERhdGF7WWVhcn0gICA9ICRQYXJhbXtZZWFyfTsKICAgICAgICAgICAgICAgICREYXRhe01vbnRofSAgPSAkUGFyYW17TW9udGh9OwogICAgICAgICAgICAgICAgJERhdGF7RGF5fSAgICA9ICRQYXJhbXtEYXl9OwogICAgICAgICAgICAgICAgJERhdGF7VXNlcklEfSA9ICRTZWxmLT57VXNlcklEfTsKCiAgICAgICAgICAgICAgICBpZiAoICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCglRGF0YSkgKSB7CgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzIScsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaW5jcmVtZW50IHRoZSBlcnJvciBpbmRleCBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igb24gdGhpcyByb3cKICAgICAgICAgICAgJEVycm9ySW5kZXgrKyBpZiAoIGRlZmluZWQgJEVycm9yc3skRXJyb3JJbmRleH0gKTsKICAgICAgICB9CgogICAgICAgIGlmICglU2VydmVyRXJyb3JEYXRhKSB7CiAgICAgICAgICAgICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSA9IHVuZGVmOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNob3cgV29ya2luZyBVbml0cwogICAgIyBnZXQgZXhpc3Rpbmcgd29ya2luZyB1bml0cwogICAgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBudW1iZXIgb2Ygd29ya2luZyB1bml0cyAoPXJlY29yZHMpCiAgICAjICAgIGlmIGJpZ2dlciB0aGFuIFJlY29yZHNOdW1iZXIsIG1vcmUgdGhhbiB0aGUgbnVtYmVyIG9mIGRlZmF1bHQgcmVjb3JkcyB3ZXJlIHNhdmVkIGZvcgogICAgIyAgICB0aGlzIGRhdGUKICAgIGlmICggJERhdGF7V29ya2luZ1VuaXRzfSApIHsKICAgICAgICBteSAkV29ya2luZ1VuaXRzQ291bnQgPSBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH07CiAgICAgICAgaWYgKCAkV29ya2luZ1VuaXRzQ291bnQgPiAkUGFyYW17UmVjb3Jkc051bWJlcn0gKSB7CiAgICAgICAgICAgICRQYXJhbXtSZWNvcmRzTnVtYmVyfSA9ICRXb3JraW5nVW5pdHNDb3VudDsKICAgICAgICB9CiAgICB9CgogICAgbXkgJUZyb250ZW5kOwoKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6SW5wdXRIb3Vyc1dpdGhvdXRTdGFydEVuZFRpbWUnKSApIHsKICAgICAgICAkUGFyYW17UGVyaW9kQmxvY2t9ICAgPSAnVW5pdElucHV0UGVyaW9kJzsKICAgICAgICAkRnJvbnRlbmR7UGVyaW9kTm90ZX0gPSAnKic7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkUGFyYW17UGVyaW9kQmxvY2t9ICAgPSAnVW5pdFBlcmlvZFdpdGhvdXRJbnB1dCc7CiAgICAgICAgJEZyb250ZW5ke1BlcmlvZE5vdGV9ID0gJyc7CiAgICB9CgogICAgaWYgKAogICAgICAgICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkKICAgICAgICA+IHRpbWVsb2NhbCggMSwgMCwgMCwgJFBhcmFte0RheX0sICRQYXJhbXtNb250aH0gLSAxLCAkUGFyYW17WWVhcn0gLSAxOTAwICkKICAgICAgICApCiAgICB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VuaXRCbG9jaycsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgc2ljaywgbGVhdmUgZGF5IGFuZCBvdmVydGltZQogICAgJFBhcmFte1NpY2t9ICAgICA9ICREYXRhe1NpY2t9ICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsKICAgICRQYXJhbXtMZWF2ZURheX0gPSAkRGF0YXtMZWF2ZURheX0gPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJyc7CiAgICAkUGFyYW17T3ZlcnRpbWV9ID0gJERhdGF7T3ZlcnRpbWV9ID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnOwoKICAgICRQYXJhbXtUb3RhbH0gPSAkRGF0YXtUb3RhbH07CgogICAgIyBzZXQgYWN0aW9uIGxpc3QgYW5kIHJlbGF0ZWQgY29uc3RyYWludHMKICAgICMgZ2VuZXJhdGUgYSBKYXZhU2NyaXB0IEFycmF5IHdoaWNoIHdpbGwgYmUgb3V0cHV0IHRvIHRoZSB0ZW1wbGF0ZQogICAgbXkgQEFjdGlvbklEcyA9IHNvcnQgeyAkQWN0aW9uTGlzdHskYX0gY21wICRBY3Rpb25MaXN0eyRifSB9IGtleXMgJUFjdGlvbkxpc3Q7CiAgICBteSBASlNBY3Rpb25zOwogICAgZm9yIG15ICRBY3Rpb25JRCAoQEFjdGlvbklEcykgewogICAgICAgIHB1c2ggQEpTQWN0aW9ucywgIlsnJEFjdGlvbklEJywgJyRBY3Rpb25MaXN0eyRBY3Rpb25JRH0nXSI7CiAgICB9CiAgICAkUGFyYW17SlNBY3Rpb25MaXN0fSA9ICdbJyAuICggam9pbiAnLCAnLCBASlNBY3Rpb25zICkgLiAnXSc7CgogICAgbXkgJEFjdGlvbkxpc3RDb25zdHJhaW50cyA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkFjdGlvbkxpc3RDb25zdHJhaW50cycpOwogICAgbXkgQEpTQWN0aW9uTGlzdENvbnN0cmFpbnRzOwogICAgZm9yIG15ICRQcm9qZWN0TmFtZVJlZ0V4cCAoIHNvcnQga2V5cyAleyRBY3Rpb25MaXN0Q29uc3RyYWludHN9ICkgewogICAgICAgIG15ICRBY3Rpb25OYW1lUmVnRXhwID0gJEFjdGlvbkxpc3RDb25zdHJhaW50cy0+eyRQcm9qZWN0TmFtZVJlZ0V4cH07CiAgICAgICAgc3soWyciXFxdKX17XFwkMX1zbXhnIGZvciAoICRQcm9qZWN0TmFtZVJlZ0V4cCwgJEFjdGlvbk5hbWVSZWdFeHAgKTsKICAgICAgICBwdXNoIEBKU0FjdGlvbkxpc3RDb25zdHJhaW50cywgIlsnJFByb2plY3ROYW1lUmVnRXhwJywgJyRBY3Rpb25OYW1lUmVnRXhwJ10iOwogICAgfQogICAgJFBhcmFte0pTQWN0aW9uTGlzdENvbnN0cmFpbnRzfSA9ICdbJyAuICggam9pbiAnLCAnLCBASlNBY3Rpb25MaXN0Q29uc3RyYWludHMgKSAuICddJzsKCiAgICAjIGJ1aWxkIGEgd29ya2luZyB1bml0IGFycmF5CiAgICBteSBAVW5pdHMgPSAodW5kZWYpOwogICAgaWYgKCAkRGF0YXtXb3JraW5nVW5pdHN9ICkgewogICAgICAgIHB1c2ggQFVuaXRzLCBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH0KICAgIH0KCiAgICAkRXJyb3JJbmRleCA9IDA7CgogICAgIyBidWlsZCB1bml0cwogICAgZm9yIG15ICRJRCAoIDEgLi4gJFBhcmFte1JlY29yZHNOdW1iZXJ9ICkgewogICAgICAgICRQYXJhbXtJRH0gPSAkSUQ7CiAgICAgICAgbXkgJFVuaXRSZWYgICA9ICRVbml0c1skSURdOwogICAgICAgIG15ICRTaG93RXJyb3IgPSAwOwoKICAgICAgICBpZiAoICEkVW5pdFJlZiApIHsKICAgICAgICAgICAgJEVycm9ySW5kZXgrKzsKICAgICAgICAgICAgJFNob3dFcnJvciA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBkYXRhIG9mIHByb2plY3RzCiAgICAgICAgbXkgJFByb2plY3RMaXN0ID0gJFNlbGYtPl9Qcm9qZWN0TGlzdCgKICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgICAgIHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1Byb2plY3RJRH0KICAgICAgICAgICAgICAgIHx8ICcnLAogICAgICAgICk7CgogICAgICAgICRQYXJhbXtQcm9qZWN0SUR9ID0gJFVuaXRSZWYtPntQcm9qZWN0SUR9CiAgICAgICAgICAgIHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1Byb2plY3RJRH0KICAgICAgICAgICAgfHwgJyc7CiAgICAgICAgJFBhcmFte1Byb2plY3ROYW1lfSA9ICcnOwoKICAgICAgICAjIHNldCBjb21tb24gcGFyYW1zIGZvciBwcm9qZWN0IHNlbGVjdGlvbgogICAgICAgIG15ICVQcm9qZWN0T3B0aW9uUGFyYW1zID0gKAogICAgICAgICAgICBOYW1lICAgICAgICA9PiAiUHJvamVjdElEWyRJRF0iLAogICAgICAgICAgICBJRCAgICAgICAgICA9PiAiUHJvamVjdElEJElEIiwKICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1Byb2plY3QgUHJvamVjdFNlbGVjdGlvbiAnCiAgICAgICAgICAgICAgICAuICggJEVycm9yc3skRXJyb3JJbmRleH17UHJvamVjdElESW52YWxpZH0gfHwgJycgKSwKICAgICAgICAgICAgT25DaGFuZ2UgPT4gIlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5GaWxsQWN0aW9uTGlzdCgkSUQpOyIsCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiUHJvamVjdCIpLAogICAgICAgICk7CgogICAgICAgIG15ICRFbmFibGVBdXRvQ29tcGxldGlvbiA9ICRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIikgfHwgMDsKICAgICAgICBteSAkQ2xhc3MgPSAkRW5hYmxlQXV0b0NvbXBsZXRpb24gPyAnIE1vZGVybml6ZScgOiAnJzsKCiAgICAgICAgIyBzZXQgcGFyYW1zIGZvciBtb2Rlcm4gaW5wdXRzCiAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7Q2xhc3N9IC49ICRDbGFzczsKCiAgICAgICAgaWYgKCAkRW5hYmxlQXV0b0NvbXBsZXRpb24gJiYgJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIikgKSB7CgogICAgICAgICAgICAjIGFkZCBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cwogICAgICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tEYXRhfSAgICA9ICRQcm9qZWN0TGlzdC0+e0FsbFByb2plY3RzfTsKICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RmlsdGVyc30gPSB7CiAgICAgICAgICAgICAgICBMYXN0UHJvamVjdHMgPT4gewogICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0xhc3QgUHJvamVjdHMnKSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZXMgPT4gJFByb2plY3RMaXN0LT57TGFzdFByb2plY3RzfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CgogICAgICAgICAgICAjIGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMsIGV4cGFuZCBmaWx0ZXIgZGlhbG9nCiAgICAgICAgICAgIGlmICggc2NhbGFyIEB7ICRQcm9qZWN0TGlzdC0+e0xhc3RQcm9qZWN0c30gfSA+IDEgKSB7CiAgICAgICAgICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tFeHBhbmRGaWx0ZXJzfSA9IDE7CgogICAgICAgICAgICAgICAgIyBtYWtlIHRoZSBmaWx0ZXIgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgJ0FjdGl2ZUZpbHRlcicgaXMgZW5hYmxlZAogICAgICAgICAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpBY3RpdmVGaWx0ZXIiKSApIHsKICAgICAgICAgICAgICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tGaWx0ZXJzfS0+e0xhc3RQcm9qZWN0c30tPntBY3RpdmV9ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIyBzZXQgcGFyYW1zIGZvciB0cmFkaXRpb25hbCBzZWxlY3RzIChhbmQgbW9kZXJuIGlucHV0IGZpZWxkcyBpZiBmaWx0ZXIgaXMgbm90IHVzZWQpCiAgICAgICAgICAgIG15IEBQcm9qZWN0cyA9ICggQHsgJFByb2plY3RMaXN0LT57TGFzdFByb2plY3RzfSB9LCBAeyAkUHJvamVjdExpc3QtPntBbGxQcm9qZWN0c30gfSApOwogICAgICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tEYXRhfSA9IFxAUHJvamVjdHM7CiAgICAgICAgfQoKICAgICAgICAjIGJ1aWxkIHByb2plY3RzIHNlbGVjdAogICAgICAgICRGcm9udGVuZHtQcm9qZWN0T3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAlUHJvamVjdE9wdGlvblBhcmFtcywKICAgICAgICApOwoKICAgICAgICAjIGFjdGlvbiBsaXN0IGluaXRpYWxseSBvbmx5IGNvbnRhaW5zIGVtcHR5IGFuZCBzZWxlY3RlZCBlbGVtZW50IGFzIHdlbGwgYXMgZWxlbWVudHMKICAgICAgICAjIGNvbmZpZ3VyZWQgZm9yIHNlbGVjdGVkIHByb2plY3QKICAgICAgICAjIGlmIG5vIGNvbnN0cmFpbnRzIGFyZSBjb25maWd1cmVkLCBhbGwgYWN0aW9ucyB3aWxsIGJlIGRpc3BsYXllZAogICAgICAgIG15ICRBY3Rpb25EYXRhID0gJFNlbGYtPl9BY3Rpb25MaXN0Q29uc3RyYWludHMoCiAgICAgICAgICAgIFByb2plY3RJRCA9PiAkVW5pdFJlZi0+e1Byb2plY3RJRH0gfHwgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UHJvamVjdElEfSwKICAgICAgICAgICAgUHJvamVjdExpc3QgICAgICAgICAgID0+ICRQcm9qZWN0TGlzdCwKICAgICAgICAgICAgQWN0aW9uTGlzdCAgICAgICAgICAgID0+IFwlQWN0aW9uTGlzdCwKICAgICAgICAgICAgQWN0aW9uTGlzdENvbnN0cmFpbnRzID0+ICRBY3Rpb25MaXN0Q29uc3RyYWludHMsCiAgICAgICAgKTsKICAgICAgICAkQWN0aW9uRGF0YS0+eycnfSA9ICcnOwoKICAgICAgICBpZiAoICRVbml0UmVmICYmICRVbml0UmVmLT57QWN0aW9uSUR9ICYmICRBY3Rpb25MaXN0eyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9ICkgewogICAgICAgICAgICAkQWN0aW9uRGF0YS0+eyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9ID0gJEFjdGlvbkxpc3R7ICRVbml0UmVmLT57QWN0aW9uSUR9IH07CiAgICAgICAgfQogICAgICAgIGVsc2lmICgKICAgICAgICAgICAgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH0KICAgICAgICAgICAgJiYgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17QWN0aW9uSUR9CiAgICAgICAgICAgICYmICRBY3Rpb25MaXN0eyAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0gfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkQWN0aW9uRGF0YS0+eyAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0gfQogICAgICAgICAgICAgICAgPSAkQWN0aW9uTGlzdHsgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17QWN0aW9uSUR9IH07CiAgICAgICAgfQoKICAgICAgICAkRnJvbnRlbmR7QWN0aW9uT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAoKICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gJEFjdGlvbkRhdGEsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgID0+ICRVbml0UmVmLT57QWN0aW9uSUR9IHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e0FjdGlvbklEfSB8fCAnJywKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gIkFjdGlvbklEWyRJRF0iLAogICAgICAgICAgICBJRCAgICAgICAgICA9PiAiQWN0aW9uSUQkSUQiLAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICAgICBDbGFzcyAgICAgICA9PiAnVmFsaWRhdGVfRGVwZW5kaW5nUmVxdWlyZWRBTkQgVmFsaWRhdGVfRGVwZW5kaW5nX1Byb2plY3RJRCcKICAgICAgICAgICAgICAgIC4gJElECiAgICAgICAgICAgICAgICAuICcgQWN0aW9uU2VsZWN0aW9uICcKICAgICAgICAgICAgICAgIC4gKCAkRXJyb3JzeyRFcnJvckluZGV4fXtBY3Rpb25JREludmFsaWR9IHx8ICcnICkKICAgICAgICAgICAgICAgIC4gJENsYXNzLAogICAgICAgICAgICBUaXRsZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlRhc2siKSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17UmVtYXJrfSA9ICRVbml0UmVmLT57UmVtYXJrfSB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtSZW1hcmt9IHx8ICcnOwoKICAgICAgICBteSAkUGVyaW9kOwogICAgICAgIGlmICgKICAgICAgICAgICAgKCAkVW5pdFJlZi0+e1BlcmlvZH0gJiYgJFVuaXRSZWYtPntQZXJpb2R9ID09IDAgKQogICAgICAgICAgICB8fCAoCiAgICAgICAgICAgICAgICBkZWZpbmVkICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1BlcmlvZH0KICAgICAgICAgICAgICAgICYmICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1BlcmlvZH0gPT0gMAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQZXJpb2QgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBlcmlvZCA9ICRVbml0UmVmLT57UGVyaW9kfSB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQZXJpb2R9IHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRUaW1lUGVyaW9kIChxdyhTdGFydFRpbWUgRW5kVGltZSkpIHsKICAgICAgICAgICAgaWYgKCRTaG93RXJyb3IpIHsKICAgICAgICAgICAgICAgICRQYXJhbXskVGltZVBlcmlvZH0gPSAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXskVGltZVBlcmlvZH0gLy8gJyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUGFyYW17JFRpbWVQZXJpb2R9ID0gJFVuaXRSZWYtPnskVGltZVBlcmlvZH0gLy8gJyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgKICAgICAgICAgICAgJFBlcmlvZAogICAgICAgICAgICAmJiAkUGFyYW17U3RhcnRUaW1lfSBlcSAnMDA6MDAnCiAgICAgICAgICAgICYmICRQYXJhbXtFbmRUaW1lfSBlcSAnMDA6MDAnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtTdGFydFRpbWV9ID0gJyc7CiAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSAgID0gJyc7CiAgICAgICAgfQoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVW5pdCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJUZyb250ZW5kLAogICAgICAgICAgICAgICAgJXsgJEVycm9yc3skRXJyb3JJbmRleH0gfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCBwcm9wZXIgc2VydmVyIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBzdGFydCBhbmQgZW5kIHRpbWVzCiAgICAgICAgbXkgJFNlcnZlckVycm9yQmxvY2tOYW1lOwogICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gKSB7CiAgICAgICAgICAgIGlmICggc2NhbGFyIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZVNlcnZlckVycm9yQmxvY2t9IH0gPiAwICkgewogICAgICAgICAgICAgICAgd2hpbGUgKCBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSA9IHNoaWZ0IEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZVNlcnZlckVycm9yQmxvY2t9IH07CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlcnZlckVycm9yQmxvY2tOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3InLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ICkgewogICAgICAgICAgICBpZiAoIHNjYWxhciBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lU2VydmVyRXJyb3JCbG9ja30gfSA+IDAgKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSA9IHNoaWZ0IEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9OwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdFbmRUaW1lR2VuZXJpY1NlcnZlckVycm9yJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJFBhcmFte1BlcmlvZEJsb2NrfSwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBQZXJpb2QgPT4gJFBlcmlvZCwKICAgICAgICAgICAgICAgIElEICAgICA9PiAkSUQsCiAgICAgICAgICAgICAgICAleyAkRXJyb3JzeyRFcnJvckluZGV4fSB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgYWRkIHByb3BlciBzZXJ2ZXIgZXJyb3IgbWVzc2FnZSBmb3IgdGhlIHBlcmlvZAogICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gKSB7CiAgICAgICAgICAgIGlmICggc2NhbGFyIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZFNlcnZlckVycm9yQmxvY2t9IH0gPiAwICkgewogICAgICAgICAgICAgICAgd2hpbGUgKCBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSA9IHNoaWZ0IEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZFNlcnZlckVycm9yQmxvY2t9IH07CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlcnZlckVycm9yQmxvY2tOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RHZW5lcmljU2VydmVyRXJyb3InLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZEdlbmVyaWNTZXJ2ZXJFcnJvcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyB2YWxpZGl0eSBjaGVjawogICAgICAgIGlmICgKICAgICAgICAgICAgJFBhcmFte0luc2VydFdvcmtpbmdVbml0c30KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntQcm9qZWN0SUR9CiAgICAgICAgICAgICYmICRVbml0UmVmLT57QWN0aW9uSUR9CiAgICAgICAgICAgICYmICRQYXJhbXtTaWNrfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICdTaWNrTGVhdmVNZXNzYWdlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAkUGFyYW17SW5zZXJ0V29ya2luZ1VuaXRzfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJFBhcmFte0xlYXZlRGF5fQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICdWYWNhdGlvbk1lc3NhZ2UnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9CiAgICAgICAgICAgICYmICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e0FjdGlvbklEfQogICAgICAgICAgICAmJiAkUGFyYW17T3ZlcnRpbWV9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtCbG9ja05hbWV9ID0gJ092ZXJ0aW1lTWVzc2FnZSc7CiAgICAgICAgfQogICAgfQoKICAgIGlmICgKICAgICAgICAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpCiAgICAgICAgPiB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApCiAgICAgICAgKQogICAgewogICAgICAgICRQYXJhbXtUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICggJFBhcmFte1RvdGFsfSB8fCAwICkgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVG90YWwnLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwogICAgfQoKICAgICMgdmFsaWRpdHkgY2hlY2tzIHN0YXJ0CiAgICBteSAkRXJyb3JOb3RlOwogICAgaWYgKCAkUGFyYW17VG90YWx9ICYmICRQYXJhbXtUb3RhbH0gPiAyNCApIHsKICAgICAgICAkRXJyb3JOb3RlID0gJ0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISc7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9ICYmICRQYXJhbXtUb3RhbH0gJiYgJFBhcmFte1RvdGFsfSA+IDE2ICkgewogICAgICAgICRQYXJhbXtCbG9ja05hbWV9ID0gJ01vcmUxNkhvdXJzTWVzc2FnZSc7CiAgICB9CiAgICBpZiAoJEVycm9yTm90ZSkgewogICAgICAgIGlmICgKICAgICAgICAgICAgISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgICAgICAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICdDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkUGFyYW17QmxvY2tOYW1lfSAmJiAkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Nob3dDb25maXJtYXRpb24nLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEJsb2NrTmFtZSA9PiAkUGFyYW17QmxvY2tOYW1lfSwKICAgICAgICAgICAgICAgIFllYXIgICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgICAgICBNb250aCAgICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgICAgIERheSAgICAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICRQYXJhbXtEYXRlfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkRGF0ZVNlbGVjdGlvbigKICAgICAgICAlUGFyYW0sCiAgICAgICAgVmFsaWRhdGUgPT4gMSwKICAgICAgICBQcmVmaXggICA9PiAnJywKICAgICAgICBGb3JtYXQgICA9PiAnRGF0ZUlucHV0Rm9ybWF0JywKICAgICk7CgogICAgaWYgKAogICAgICAgIHRpbWVsb2NhbCggMSwgMCwgMCwgJFBhcmFte0RheX0sICRQYXJhbXtNb250aH0gLSAxLCAkUGFyYW17WWVhcn0gLSAxOTAwICkgPCB0aW1lbG9jYWwoCiAgICAgICAgICAgIDEsIDAsIDAsICRQYXJhbXtEYXlBbGxvd2VkfSwKICAgICAgICAgICAgJFBhcmFte01vbnRoQWxsb3dlZH0gLSAxLAogICAgICAgICAgICAkUGFyYW17WWVhckFsbG93ZWR9IC0gMTkwMAogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyAkUGFyYW17WWVhcn0gfXsgJFBhcmFte01vbnRofSB9eyAkUGFyYW17RGF5fSB9CiAgICAgICAgICAgICYmICEkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWFkb25seScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9PgogICAgICAgICAgICAgICAgICAgICAgICAnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0JywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGluY29tcGxldGUgd29ya2luZyBkYXlzCiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdDsKICAgICVJbmNvbXBsZXRlV29ya2luZ0RheXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgZm9yIG15ICRZZWFySUQgKCBzb3J0IGtleXMgJXsgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfSB9ICkgewogICAgICAgIGZvciBteSAkTW9udGhJRCAoIHNvcnQga2V5cyAleyAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyRZZWFySUR9IH0gKSB7CiAgICAgICAgICAgIGZvciBteSAkRGF5SUQgKAogICAgICAgICAgICAgICAgc29ydCBrZXlzICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH17JE1vbnRoSUR9IH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c0xpc3R7IiRZZWFySUQtJE1vbnRoSUQtJERheUlEIn0gPSAiJFllYXJJRC0kTW9udGhJRC0kRGF5SUQiOwogICAgICAgICAgICAgICAgJFBhcmFte0luY29tcGxldGV9ID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIFNob3cgdGV4dCwgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgYXJlIGF2YWlsYWJsZQogICAgaWYgKCAkUGFyYW17SW5jb21wbGV0ZX0gKSB7CgogICAgICAgICMgaWYgbWFzcyBlbnRyeSBvcHRpb24gaXMgZW5hYmxlZCwgc2hvdyBsaXN0IG9mIHdvcmtpbmcgZGF5cwogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6QWxsb3dNYXNzRW50cnlGb3JVc2VyIikgKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJFdvcmtpbmdEYXlzICggc29ydCBrZXlzICVJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0ICkgewogICAgICAgICAgICAgICAgbXkgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggLy0vLCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdHskV29ya2luZ0RheXN9ICk7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXknLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBEYXRlICA9PiAkSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdHskV29ya2luZ0RheXN9LAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgIyBvdGhlcndpc2Ugc2hvdyBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBhcyBhIGRyb3AtZG93bgogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjaGVjayBpZiBjdXJyZW50IGRheSBpcyBpbmNvbXBsZXRlCiAgICAgICAgICAgICMgaWYgeWVzLCBzZWxlY3QgdGhlIGN1cnJlbnQgZGF5IGluIHRoZSBkcm9wLWRvd24KICAgICAgICAgICAgIyBvdGhlcndpc2Ugc2VsZWN0IHRoZSBlbXB0eSBlbGVtZW50CiAgICAgICAgICAgIG15ICRTZWxlY3RlZElEOwoKICAgICAgICAgICAgaWYgKCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdHsiJFBhcmFte1llYXJ9LSRQYXJhbXtNb250aH0tJFBhcmFte0RheX0ifSApIHsKICAgICAgICAgICAgICAgICRTZWxlY3RlZElEID0gIiRQYXJhbXtZZWFyfS0kUGFyYW17TW9udGh9LSRQYXJhbXtEYXl9IjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJEluY29tcGxlV29ya2luZ0RheXNTZWxlY3QgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJUluY29tcGxldGVXb3JraW5nRGF5c0xpc3QsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJFNlbGVjdGVkSUQsCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gIkluY29tcGxldGVXb3JraW5nRGF5c0xpc3QiLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICBUaXRsZSA9PgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiSW5jb21wbGV0ZSBXb3JraW5nIERheXMiKSwKICAgICAgICAgICAgICAgIENsYXNzID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmNvbXBsZXRlV29ya2luZ0RheXMnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgSW5jb21wbGV0ZVdvcmtpbmdEYXlzU2VsZWN0ID0+ICRJbmNvbXBsZVdvcmtpbmdEYXlzU2VsZWN0LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRWYWNhdGlvbkNoZWNrID0gJFRpbWVPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgQ2FsZW5kYXIgPT4gJFVzZXJEYXRhe0NhbGVuZGFyfSwKICAgICk7CgogICAgJFBhcmFte1dlZWtkYXl9ID0gRGF5X29mX1dlZWsoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gKTsKCiAgICAjIGdldCB3b3JraW5nIGRheXMgb2YgdGhlIHVzZXIncyBjYWxlbmRhcgogICAgbXkgJENhbGVuZGFyTmFtZSA9ICdUaW1lV29ya2luZ0hvdXJzJzsKICAgICRDYWxlbmRhck5hbWUgLj0gJFVzZXJEYXRhe0NhbGVuZGFyfSA/ICI6OkNhbGVuZGFyJFVzZXJEYXRhe0NhbGVuZGFyfSIgOiAnJzsKICAgIG15ICRDYWxlbmRhcldvcmtpbmdIb3VycyA9ICRDb25maWdPYmplY3QtPkdldCgkQ2FsZW5kYXJOYW1lKTsKCiAgICAjIHNob3cgIm90aGVyIHRpbWVzIiBibG9jaywgaWYgbmVjZXNzYXJ5CiAgICBpZiAoCiAgICAgICAgQHsgJENhbGVuZGFyV29ya2luZ0hvdXJzLT57ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSAtIDEgXSB9IH0KICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICApCiAgICB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ090aGVyVGltZXMnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICVGcm9udGVuZCwKICAgICAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkUGFyYW17V2Vla2RheV90b19UZXh0fSA9ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSAtIDEgXTsKCiAgICAjIGludGVncmF0ZSB0aGUgaGFuZGxpbmcgZm9yIHJlcXVpcmVkIHJlbWFya3MgaW4gcmVsYXRpb24gdG8gcHJvamVjdHMKICAgICRQYXJhbXtSZW1hcmtSZWdFeHB9ID0gJFNlbGYtPl9Qcm9qZWN0MlJlbWFya1JlZ0V4cCgpOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICdFZGl0JywKICAgICk7CgogICAgaWYgKCAhJEluY29tcGxldGVXb3JraW5nRGF5c3tFbmZvcmNlSW5zZXJ0fSApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdQcm9qZWN0JywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGNyZWF0ZSBwcm9qZWN0IGxpbmssIGlmIGFsbG93ZWQKICAgICAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRVc2VyRGF0YXtDcmVhdGVQcm9qZWN0fSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDcmVhdGVQcm9qZWN0JywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoICRJbmNvbXBsZXRlV29ya2luZ0RheXN7V2FybmluZ30gKSB7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gJ1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzIScsCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoJEVycm9yTm90ZSkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvICAgICA9PiAkRXJyb3JOb3RlLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoIGRlZmluZWQgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ICkKICAgIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiAnU3VjY2Vzc2Z1bCBpbnNlcnQhJywKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBtYXNzIGVudHJ5IG5vdGlmaWNhdGlvbgogICAgaWYgKCAkUGFyYW17Tm90aWZpY2F0aW9ufSBlcSAnRXJyb3InICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvICAgICA9PiAnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzIScsCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte05vdGlmaWNhdGlvbn0gZXEgJ1N1Y2Nlc3NmdWwnICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+ICdTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IG5vdGlmaWNhdGlvbiBpZiB3cm9uZyBkYXRlIHdhcyBzZWxlY3RlZAogICAgaWYgKCAkUGFyYW17V3JvbmdEYXRlfSApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyAgICAgPT4gJ0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICk7CiAgICB9CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cgp9CgpzdWIgX0ZpcnN0VXNlclJlZGlyZWN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBmb3IgaW5pdGlhbCB1c2luZywgdGhlIGZpcnN0IGFnZW50IHdpdGggcnctcmlnaHQgd2lsbCBiZSByZWRpcmVjdGVkCiAgICAjIHRvICdTZXR0aW5nJy4gVGhlbiBoZSBjYW4gZG8gdGhlIGluaXRpYWwgc2V0dGluZ3MKCiAgICBteSAlR3JvdXBMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgIFR5cGUgICA9PiAncncnLAogICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgZm9yIG15ICRHcm91cEtleSAoIHNvcnQga2V5cyAlR3JvdXBMaXN0ICkgewogICAgICAgIGlmICggJEdyb3VwTGlzdHskR3JvdXBLZXl9IGVxICd0aW1lX2FjY291bnRpbmcnICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZyIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICBNZXNzYWdlID0+ICJObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCAiCiAgICAgICAgICAgIC4gInRpbWUgcGVyaW9kcy4gUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbiB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhIiwKICAgICk7Cn0KCnN1YiBfQWN0aW9uTGlzdCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgIG15ICVBY3Rpb25MaXN0OwogICAgbXkgJUFjdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpLT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKICAgICMgZ2V0IGFjdGlvbiBzZXR0aW5ncwogICAgQUNUSU9OSUQ6CiAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICVBY3Rpb24gKSB7CiAgICAgICAgbmV4dCBBQ1RJT05JRCBpZiAhJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvblN0YXR1c307CiAgICAgICAgbmV4dCBBQ1RJT05JRCBpZiAhJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvbn07CiAgICAgICAgJEFjdGlvbkxpc3R7JEFjdGlvbklEfSA9ICRBY3Rpb257JEFjdGlvbklEfXtBY3Rpb259OwogICAgfQogICAgJEFjdGlvbkxpc3R7Jyd9ID0gJyc7CgogICAgcmV0dXJuICVBY3Rpb25MaXN0Owp9CgpzdWIgX0FjdGlvbkxpc3RDb25zdHJhaW50cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVMaXN0OwogICAgaWYgKCAkUGFyYW17UHJvamVjdElEfSAmJiBrZXlzICV7ICRQYXJhbXtBY3Rpb25MaXN0Q29uc3RyYWludHN9IH0gKSB7CiAgICAgICAgbXkgJFByb2plY3ROYW1lOwoKICAgICAgICBQUk9KRUNUOgogICAgICAgIGZvciBteSAkUHJvamVjdCAoIEB7ICRQYXJhbXtQcm9qZWN0TGlzdH0gfSApIHsKICAgICAgICAgICAgaWYgKCAkUHJvamVjdC0+e0tleX0gZXEgJFBhcmFte1Byb2plY3RJRH0gKSB7CiAgICAgICAgICAgICAgICAkUHJvamVjdE5hbWUgPSAkUHJvamVjdC0+e1ZhbHVlfTsKICAgICAgICAgICAgICAgIGxhc3QgUFJPSkVDVDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCBkZWZpbmVkKCRQcm9qZWN0TmFtZSkgKSB7CgogICAgICAgICAgICAjIGxvb3Agb3ZlciBhY3Rpb25zIHRvIGZpbmQgbWF0Y2hlcyBmb3IgY29uZmlndXJlZCBwcm9qZWN0CiAgICAgICAgICAgICMgYW5kIGFjdGlvbiByZWctZXhwIHBhaXJzCiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3R9IH0gKSB7CgogICAgICAgICAgICAgICAgbXkgJEFjdGlvbk5hbWUgPSAkUGFyYW17QWN0aW9uTGlzdH0tPnskQWN0aW9uSUR9OwoKICAgICAgICAgICAgICAgIFBST0pFQ1ROQU1FUkVHRVhQOgogICAgICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0TmFtZVJlZ0V4cCAoIHNvcnQga2V5cyAleyAkUGFyYW17QWN0aW9uTGlzdENvbnN0cmFpbnRzfSB9ICkgewogICAgICAgICAgICAgICAgICAgIG15ICRBY3Rpb25OYW1lUmVnRXhwID0gJFBhcmFte0FjdGlvbkxpc3RDb25zdHJhaW50c30tPnskUHJvamVjdE5hbWVSZWdFeHB9OwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJFByb2plY3ROYW1lID1+IG17JFByb2plY3ROYW1lUmVnRXhwfXNteAogICAgICAgICAgICAgICAgICAgICAgICAmJiAkQWN0aW9uTmFtZSA9fiBteyRBY3Rpb25OYW1lUmVnRXhwfXNteAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkTGlzdHskQWN0aW9uSUR9ID0gJEFjdGlvbk5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgUFJPSkVDVE5BTUVSRUdFWFA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgYWxsIGF2YWlsYWJsZSBhY3Rpb25zIHdpbGwgYmUgYWRkZWQgaWYgbm8gYWN0aW9uIHdhcyBhZGRlZCBhYm92ZSAocG9zc2libGUgbWlzY29uZmlndXJhdGlvbikKICAgIGlmICggIWtleXMgJUxpc3QgKSB7CiAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQga2V5cyAleyAkUGFyYW17QWN0aW9uTGlzdH0gfSApIHsKICAgICAgICAgICAgbXkgJEFjdGlvbk5hbWUgPSAkUGFyYW17QWN0aW9uTGlzdH0tPnskQWN0aW9uSUR9OwogICAgICAgICAgICAkTGlzdHskQWN0aW9uSUR9ID0gJEFjdGlvbk5hbWU7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcJUxpc3Q7Cn0KCnN1YiBfUHJvamVjdExpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCBwcm9qZWN0IHNldHRpbmdzCiAgICBteSAlUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnLAogICAgKTsKCiAgICBpZiAoICEkU2VsZi0+e0xhc3RQcm9qZWN0c1JlZn0gKSB7CgogICAgICAgICMgZ2V0IHRoZSBsYXN0IHByb2plY3RzCiAgICAgICAgbXkgQExhc3RQcm9qZWN0cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+TGFzdFByb2plY3RzT2ZVc2VyKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgYWRkIHRoZSBmYXZvcml0ZXMKICAgICAgICAleyAkU2VsZi0+e0xhc3RQcm9qZWN0c1JlZn0gfSA9IG1hcCB7ICRfID0+IDEgfSBATGFzdFByb2plY3RzOwogICAgfQoKICAgIG15IEBMYXN0UHJvamVjdHMgPSAoCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnJywKICAgICAgICAgICAgVmFsdWUgPT4gJycsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgdGhlIHNlcGFyYXRvcgogICAgUFJPSkVDVElEOgogICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgIHNvcnQgeyAkUHJvamVjdHtQcm9qZWN0fXskYX0gY21wICRQcm9qZWN0e1Byb2plY3R9eyRifSB9CiAgICAgICAga2V5cyAleyAkUHJvamVjdHtQcm9qZWN0fSB9CiAgICAgICAgKQogICAgewogICAgICAgIG5leHQgUFJPSkVDVElEIGlmICEkU2VsZi0+e0xhc3RQcm9qZWN0c1JlZn0tPnskUHJvamVjdElEfTsKICAgICAgICBteSAlSGFzaCA9ICgKICAgICAgICAgICAgS2V5ICAgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgVmFsdWUgPT4gJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH0sCiAgICAgICAgKTsKICAgICAgICBwdXNoIEBMYXN0UHJvamVjdHMsIFwlSGFzaDsKICAgIH0KCiAgICBATGFzdFByb2plY3RzID0gJFNlbGYtPl9Qcm9qZWN0TGlzdENvbnN0cmFpbnRzKAogICAgICAgIExpc3QgICAgICAgPT4gXEBMYXN0UHJvamVjdHMsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17U2VsZWN0ZWRJRH0gfHwgJycsCiAgICApOwoKICAgIG15IEBBbGxQcm9qZWN0czsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgY2hlY2sgaWYgQXV0b0NvbXBsZXRpb24gaXMgZGlzYWJsZWQKICAgICMgaW4gdGhpcyBjYXNlIGEgc2VwYXJhdG9yIGlzIG5lZWRlZCBiZXR3ZWVuIHR3byBsaXN0cyBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsKQogICAgaWYgKAogICAgICAgICEkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiIpCiAgICAgICAgfHwgISRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciIpCiAgICAgICAgKQogICAgewogICAgICAgIGlmICggc2NhbGFyIEBMYXN0UHJvamVjdHMgPiAxICkgewoKICAgICAgICAgICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAgICAgICAgICMgYWRkIGxhc3QgcHJvamVjdHMgc2VwYXJhdG9yIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3QKICAgICAgICAgICAgbXkgJExhc3RQcm9qZWN0c1N0ciA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cycpOwoKICAgICAgICAgICAgdW5zaGlmdCBATGFzdFByb2plY3RzLCB7CiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnMCcsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAiLS0tJExhc3RQcm9qZWN0c1N0ci0tLSIsCiAgICAgICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgIyBhZGQgYWxsIHByb2plY3RzIHNlcGFyYXRvciByaWdodCBhZnRlciB0aGUgbGFzdCBzZWxlY3RlZCBwcm9qZWN0cyBsaXN0CiAgICAgICAgICAgIG15ICRBbGxQcm9qZWN0c1N0ciA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQWxsIFByb2plY3RzJyk7CgogICAgICAgICAgICBwdXNoIEBMYXN0UHJvamVjdHMsIHsKICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICcwJywKICAgICAgICAgICAgICAgIFZhbHVlICAgID0+ICItLS0kQWxsUHJvamVjdHNTdHItLS0iLAogICAgICAgICAgICAgICAgRGlzYWJsZWQgPT4gMSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBAQWxsUHJvamVjdHMgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICcnLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGFkZCBhbGwgYWxsb3dlZCBwcm9qZWN0cyB0byB0aGUgbGlzdAogICAgUFJPSkVDVElEOgogICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgIHNvcnQgeyAkUHJvamVjdHtQcm9qZWN0fXskYX0gY21wICRQcm9qZWN0e1Byb2plY3R9eyRifSB9CiAgICAgICAga2V5cyAleyAkUHJvamVjdHtQcm9qZWN0fSB9CiAgICAgICAgKQogICAgewogICAgICAgIG5leHQgUFJPSkVDVElEIGlmICEkUHJvamVjdHtQcm9qZWN0fXskUHJvamVjdElEfTsKICAgICAgICBteSAlSGFzaCA9ICgKICAgICAgICAgICAgS2V5ICAgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgVmFsdWUgPT4gJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRQYXJhbXtTZWxlY3RlZElEfSAmJiAkUGFyYW17U2VsZWN0ZWRJRH0gZXEgJFByb2plY3RJRCApIHsKICAgICAgICAgICAgJEhhc2h7U2VsZWN0ZWR9ID0gMTsKICAgICAgICB9CgogICAgICAgIHB1c2ggQEFsbFByb2plY3RzLCBcJUhhc2g7CiAgICB9CgogICAgQEFsbFByb2plY3RzID0gJFNlbGYtPl9Qcm9qZWN0TGlzdENvbnN0cmFpbnRzKAogICAgICAgIExpc3QgICAgICAgPT4gXEBBbGxQcm9qZWN0cywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtTZWxlY3RlZElEfSB8fCAnJywKICAgICk7CgogICAgbXkgJVByb2plY3RzID0gKAogICAgICAgIExhc3RQcm9qZWN0cyA9PiBcQExhc3RQcm9qZWN0cywKICAgICAgICBBbGxQcm9qZWN0cyAgPT4gXEBBbGxQcm9qZWN0cywKICAgICk7CgogICAgcmV0dXJuIFwlUHJvamVjdHM7Cn0KCnN1YiBfUHJvamVjdExpc3RDb25zdHJhaW50cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBMaXN0OwogICAgbXkgJFByb2plY3RDb3VudCAgICAgICAgICAgPSAwOwogICAgbXkgJFByb2plY3RMaXN0Q29uc3RyYWludHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpQcm9qZWN0TGlzdENvbnN0cmFpbnRzJyk7CgogICAgaWYgKCBrZXlzICV7JFByb2plY3RMaXN0Q29uc3RyYWludHN9ICkgewoKICAgICAgICAjIGdldCBncm91cHMgb2YgY3VycmVudCB1c2VyCiAgICAgICAgbXkgJUdyb3VwcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIFR5cGUgICA9PiAncm8nLAogICAgICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgICk7CiAgICAgICAgJUdyb3VwcyA9IG1hcCB7ICRHcm91cHN7JF99ID0+IDEgfSBrZXlzICVHcm91cHM7CgogICAgICAgICMgZ2V0IHByb2plY3QgbGlzdCBjb25zdHJhaW50cwogICAgICAgIG15ICVQcm9qZWN0UmVnZXg7CiAgICAgICAgZm9yIG15ICRQcm9qZWN0UmVnZXggKCBzb3J0IGtleXMgJXskUHJvamVjdExpc3RDb25zdHJhaW50c30gKSB7CiAgICAgICAgICAgIGZvciBteSAkUHJvamVjdEdyb3VwICggc3BsaXQgLyxccyovLCAkUHJvamVjdExpc3RDb25zdHJhaW50cy0+eyRQcm9qZWN0UmVnZXh9ICkgewogICAgICAgICAgICAgICAgaWYgKCAkR3JvdXBzeyRQcm9qZWN0R3JvdXB9ICkgewogICAgICAgICAgICAgICAgICAgICRQcm9qZWN0UmVnZXh7JFByb2plY3RSZWdleH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG15IEBQcm9qZWN0UmVnZXggPSBrZXlzICVQcm9qZWN0UmVnZXg7CgogICAgICAgICMgcmVkdWNlIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gY29uZmlndXJhdGlvbgogICAgICAgIGlmICggcmVmKCAkUGFyYW17TGlzdH0gKSAmJiBAUHJvamVjdFJlZ2V4ICkgewoKICAgICAgICAgICAgbXkgJEVsZW1lbnRDb3VudCA9IDA7CgogICAgICAgICAgICBmb3IgbXkgJFByb2plY3QgKCBAeyAkUGFyYW17TGlzdH0gfSApIHsKICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0TmFtZSA9ICRQcm9qZWN0LT57VmFsdWV9OwoKICAgICAgICAgICAgICAgICMgZW1wdHkgZmlyc3QgZWxlbWVudCwgbGFzdCBwcm9qZWN0cyBzZXBhcmF0b3IgYW5kIGN1cnJlbnRseSBzZWxlY3RlZCBwcm9qZWN0CiAgICAgICAgICAgICAgICBpZiAoICEkRWxlbWVudENvdW50IHx8ICEkUHJvamVjdC0+e0tleX0gfHwgJFByb2plY3QtPntLZXl9IGVxICRQYXJhbXtTZWxlY3RlZElEfSApIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBMaXN0LCAkUHJvamVjdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIFBST0pFQ1RSRUdFWFA6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0UmVnZXggKEBQcm9qZWN0UmVnZXgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkUHJvamVjdE5hbWUgPX4gbXskUHJvamVjdFJlZ2V4fXNteCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQExpc3QsICRQcm9qZWN0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFByb2plY3RDb3VudCsrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBQUk9KRUNUUkVHRVhQOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJEVsZW1lbnRDb3VudCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGZ1bGwgcHJvamVjdCBsaXN0IGlmIGNvbnN0cmFpbnRzIHJlc3VsdGVkIGluIGVtcHR5IHByb2plY3QgbGlzdCBvciBpZiBjb25zdHJhaW50cyBhcmVuJ3QKICAgICMgY29uZmlndXJlZCAocG9zc2libGUgbWlzY29uZmlndXJhdGlvbikKICAgIGlmICggISRQcm9qZWN0Q291bnQgKSB7CiAgICAgICAgQExpc3QgPSBAeyAkUGFyYW17TGlzdH0gfTsKICAgIH0KCiAgICByZXR1cm4gQExpc3Q7Cn0KCiMgaW50ZWdyYXRlIHRoZSBoYW5kbGluZyBmb3IgcmVxdWlyZWQgcmVtYXJrcyBpbiByZWxhdGlvbiB0byBwcm9qZWN0cwoKc3ViIF9Qcm9qZWN0MlJlbWFya1JlZ0V4cCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgIG15IEBQcm9qZWN0czJSZW1hcmsgPSAoKTsKICAgIG15ICVQcm9qZWN0RGF0YSAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKS0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnLAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICByZXR1cm4gJycgaWYgISRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OlByb2plY3QyUmVtYXJrUmVnRXhwJyk7CgogICAgbXkgJFByb2plY3QyUmVtYXJrUmVnRXhwID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6UHJvamVjdDJSZW1hcmtSZWdFeHAnKTsKCiAgICBmb3IgbXkgJFByb2plY3RJRCAoIHNvcnQga2V5cyAleyAkUHJvamVjdERhdGF7UHJvamVjdH0gfSApIHsKICAgICAgICBpZiAoICRQcm9qZWN0RGF0YXtQcm9qZWN0fXskUHJvamVjdElEfSA9fiBteyRQcm9qZWN0MlJlbWFya1JlZ0V4cH1zbXggKSB7CiAgICAgICAgICAgIHB1c2ggQFByb2plY3RzMlJlbWFyaywgJFByb2plY3RJRDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGpvaW4gJ3wnLCBAUHJvamVjdHMyUmVtYXJrOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgRGF0ZTo6UGNhbGMgcXcoVG9kYXkgRGF5c19pbl9Nb250aCBEYXlfb2ZfV2VlayBBZGRfRGVsdGFfWU1EIGNoZWNrX2RhdGUpOwp1c2UgVGltZTo6TG9jYWw7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBNb250aEFycmF5ID0gKAogICAgICAgICcnLCAgICAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAgICAgJ0FwcmlsJywgICAnTWF5JywKICAgICAgICAnSnVuZScsICdKdWx5JywgICAgJ0F1Z3VzdCcsICAgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywKICAgICAgICAnRGVjZW1iZXInLAogICAgKTsKICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgb3ZlcnZpZXcgYWJvdXQgdGhlIHVzZXJzIHRpbWUgYWNjb3VudGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIERheSBNb250aCBZZWFyIFVzZXJJRCBQcm9qZWN0U3RhdHVzU2hvdykpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CiAgICAkUGFyYW17QWN0aW9ufSA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFBhcmFte1VzZXJJRH0gPSAkU2VsZi0+e1VzZXJJRH07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoICRQYXJhbXtVc2VySUR9ICE9ICRTZWxmLT57VXNlcklEfSAmJiAhJFNlbGYtPntBY2Nlc3NSd30gKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgJFBhcmFte0FjdGlvbn0gPSAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnOwogICAgfQogICAgaWYgKCAkUGFyYW17VXNlcklEfSAhPSAkU2VsZi0+e1VzZXJJRH0gKSB7CiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17VXNlcn0gPSAkU2hvd25Vc2Vyc3sgJFBhcmFte1VzZXJJRH0gfTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICAoICRQYXJhbXtZZWFyQmFja30sICRQYXJhbXtNb250aEJhY2t9LCAkUGFyYW17RGF5QmFja30gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAxLCAwLCAtMSwgMCApOwogICAgKCAkUGFyYW17WWVhck5leHR9LCAkUGFyYW17TW9udGhOZXh0fSwgJFBhcmFte0RheU5leHR9ICkgPSBBZGRfRGVsdGFfWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sIDEsIDAsIDEsIDAgKTsKCiAgICAjIE92ZXJ2aWV3IHBlciBkYXkKICAgIG15ICREYXlzT2ZNb250aCA9IERheXNfaW5fTW9udGgoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSApOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGZvciBteSAkRGF5ICggMSAuLiAkRGF5c09mTW9udGggKSB7CiAgICAgICAgJFBhcmFte0RheX0gPSBzcHJpbnRmKCAiJTAyZCIsICREYXkgKTsKICAgICAgICAkUGFyYW17V2Vla2RheX0gPSBEYXlfb2ZfV2VlayggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkRGF5ICkgLSAxOwogICAgICAgIG15ICRWYWNhdGlvbkNoZWNrID0gJFRpbWVPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gJFVzZXJEYXRhe0NhbGVuZGFyfSwKICAgICAgICApOwoKICAgICAgICBteSAkRGF0ZSA9IHNwcmludGYoICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJERheSApOwogICAgICAgIG15ICREYXlTdGFydFRpbWUgPSAkVGltZU9iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkRGF0ZSAuICcgMDA6MDA6MDAnLAogICAgICAgICk7CiAgICAgICAgbXkgJERheVN0b3BUaW1lID0gJFRpbWVPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICBTdHJpbmcgPT4gJERhdGUgLiAnIDIzOjU5OjU5JywKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aW1lIHpvbmUgdG8gY2FsY3VsYXRpb24KICAgICAgICBteSAkVXNlckNhbGVuZGFyID0gJFVzZXJEYXRhe0NhbGVuZGFyfSB8fCAnJzsKICAgICAgICBteSAkWm9uZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAkVXNlckNhbGVuZGFyICk7CiAgICAgICAgaWYgKCRab25lKSB7CiAgICAgICAgICAgIG15ICRab25lU2Vjb25kcyA9ICRab25lICogNjAgKiA2MDsKICAgICAgICAgICAgJERheVN0YXJ0VGltZSA9ICREYXlTdGFydFRpbWUgLSAkWm9uZVNlY29uZHM7CiAgICAgICAgICAgICREYXlTdG9wVGltZSAgPSAkRGF5U3RvcFRpbWUgLSAkWm9uZVNlY29uZHM7CiAgICAgICAgfQoKICAgICAgICBteSAkVGhpc0RheVdvcmtpbmdUaW1lID0gJFRpbWVPYmplY3QtPldvcmtpbmdUaW1lKAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJERheVN0YXJ0VGltZSwKICAgICAgICAgICAgU3RvcFRpbWUgID0+ICREYXlTdG9wVGltZSwKICAgICAgICAgICAgQ2FsZW5kYXIgID0+ICRVc2VyQ2FsZW5kYXIsCiAgICAgICAgKSB8fCAnMCc7CgogICAgICAgIGlmICggJFBhcmFte1llYXJ9IGVxICRZZWFyICYmICRQYXJhbXtNb250aH0gZXEgJE1vbnRoICYmICRDdXJyZW50RGF5IGVxICREYXkgKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gPSAnQWN0aXZlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCRWYWNhdGlvbkNoZWNrKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gICA9ICdWYWNhdGlvbic7CiAgICAgICAgICAgICRQYXJhbXtDb21tZW50fSA9ICRWYWNhdGlvbkNoZWNrOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoJFRoaXNEYXlXb3JraW5nVGltZSkgewogICAgICAgICAgICAkUGFyYW17Q2xhc3N9ID0gJ1dvcmtpbmdEYXknOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBhcmFte0NsYXNzfSA9ICdOb25Xb3JraW5nRGF5JzsKICAgICAgICB9CgogICAgICAgIG15ICVEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNHZXQoCiAgICAgICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17Q29tbWVudH0gPSAkRGF0YXtTaWNrfQogICAgICAgICAgICA/ICdTaWNrIGxlYXZlJwogICAgICAgICAgICA6ICREYXRhe0xlYXZlRGF5fSA/ICdPbiB2YWNhdGlvbicKICAgICAgICAgICAgOiAkRGF0YXtPdmVydGltZX0gPyAnT24gb3ZlcnRpbWUgbGVhdmUnCiAgICAgICAgICAgIDogICAgICAgICAgICAgICAgICAgJyc7CgogICAgICAgICRQYXJhbXtXb3JraW5nSG91cnN9ID0gJERhdGF7VG90YWx9ID8gc3ByaW50ZiggIiUuMmYiLCAkRGF0YXtUb3RhbH0gKSA6ICcnOwoKICAgICAgICAkUGFyYW17V2Vla2RheV90b19UZXh0fSA9ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSBdOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+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+ICdPdmVydmlldycsCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldycKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVFcnJvcnMgPSAoKTsKICAgIG15ICVHZXRQYXJhbTsKCiAgICAjIGdldCB0aW1lIG9iamVjdAogICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgIGZvciAoIG15ICRQZXJpb2QgPSAxOyAkUGVyaW9kIDw9ICRQYXJhbXtQZXJpb2R9OyAkUGVyaW9kKysgKSB7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERhdGVTdGFydCBEYXRlRW5kIExlYXZlRGF5cykpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9CiAgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAiWyRQZXJpb2RdIiApOwogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17JFBhcmFtZXRlcn0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3sgJFBhcmFtZXRlciAuICctJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ01pc3NpbmdWYWx1ZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbXkgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggJy0nLCAkR2V0UGFyYW17RGF0ZVN0YXJ0fSApOwogICAgICAgIG15ICRTdGFydERhdGUgPSAkVGltZU9iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgTWludXRlID0+IDAsCiAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICk7CiAgICAgICAgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggJy0nLCAkR2V0UGFyYW17RGF0ZUVuZH0gKTsKICAgICAgICBteSAkRW5kRGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICREYXksCiAgICAgICAgICAgIEhvdXIgICA9PiAwLAogICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkU3RhcnREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0ludmFsaWQnOwogICAgICAgIH0KICAgICAgICBpZiAoICEkRW5kRGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0ludmFsaWQnOwogICAgICAgIH0KICAgICAgICBpZiAoICRTdGFydERhdGUgJiYgJEVuZERhdGUgJiYgJFN0YXJ0RGF0ZSA+PSAkRW5kRGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0JlZm9yZURhdGVTdGFydCc7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlRXJyb3JzOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIERhdGU6OlBjYWxjIHF3KFRvZGF5IERheXNfaW5fTW9udGggRGF5X29mX1dlZWsgQWRkX0RlbHRhX1lNRCBjaGVja19kYXRlKTsKdXNlIFRpbWU6OkxvY2FsOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkVGltZU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyB0aW1lIGFjY291bnRpbmcgcHJvamVjdCByZXBvcnRpbmcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUmVwb3J0aW5nUHJvamVjdCcgKSB7CgogICAgICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIlRpbWVBY2NvdW50aW5nOjpGcm9udGVuZDo6JFNlbGYtPntTdWJhY3Rpb259Iik7CgogICAgICAgIG15ICVGcm9udGVuZCA9ICgpOwoKICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICAkUGFyYW17UHJvamVjdElEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9qZWN0SUQnICk7CgogICAgICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAlQWN0aW9uICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKICAgICAgICBteSAlUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCk7CiAgICAgICAgJFBhcmFte1Byb2plY3R9ID0gJFByb2plY3R7UHJvamVjdH0tPnsgJFBhcmFte1Byb2plY3RJRH0gfTsKCiAgICAgICAgIyBnZXQgc3lzdGVtIHVzZXJzCiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMAogICAgICAgICk7CgogICAgICAgICRQYXJhbXtTaG93T25seUFjdGl2ZVVzZXJzfSA9ICRDb25maWctPntTaG93T25seUFjdGl2ZVVzZXJzfTsKCiAgICAgICAgaWYgKCAkUGFyYW17U2hvd09ubHlBY3RpdmVVc2Vyc30gKSB7CgogICAgICAgICAgICAjIGdldCByZWdpc3RlcmVkIHVzZXJzCiAgICAgICAgICAgIG15ICVSZWdpc3RlcmVkVXNlcnMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7CgogICAgICAgICAgICAjIHJlZHVjZSBzaG93biB1c2VycyB0byBvbmx5IHRoZSBvbmVzIHRoYXQgYXJlIHJlZ2lzdGVyZWQgaW4gdGltZSBhY2NvdW50aW5nCiAgICAgICAgICAgICVTaG93blVzZXJzID0gbWFwIHsgJF8gPT4gJFNob3duVXNlcnN7JF99IH0ga2V5cyAlUmVnaXN0ZXJlZFVzZXJzOwogICAgICAgIH0KCiAgICAgICAgIyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgUHJvamVjdEFjdGlvblJlcG9ydGluZyBpcyBub3QgcmV3b3JrZWQKICAgICAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkQ3VycmVudERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgICAgICk7CiAgICAgICAgbXkgJVByb2plY3REYXRhID0gKCk7CiAgICAgICAgbXkgJVByb2plY3RUaW1lID0gKCk7CgogICAgICAgIG15IEBVc2VyV2hpdGVMaXN0OwoKICAgICAgICAjIE9ubHkgb25lIGZ1bmN0aW9uIHNob3VsZCBiZSBlbm91Z2gKICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQga2V5cyAlU2hvd25Vc2VycyApIHsKCiAgICAgICAgICAgICMgT3ZlcnZpZXcgcGVyIHByb2plY3QgYW5kIGFjdGlvbgogICAgICAgICAgICAjIFJFTUFSSzogVGhpcyBpcyB0aGUgd3JvbmcgZnVuY3Rpb24gdG8gZ2V0IHRoaXMgaW5mb3JtYXRpb24KICAgICAgICAgICAgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0QWN0aW9uUmVwb3J0aW5nKAogICAgICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICRQcm9qZWN0RGF0YXsgJFBhcmFte1Byb2plY3RJRH0gfSApIHsKICAgICAgICAgICAgICAgIG15ICRVc2VyVG90YWxIb3Vyc0luUHJvamVjdDsKICAgICAgICAgICAgICAgIG15ICRBY3Rpb25zUmVmID0gJFByb2plY3REYXRheyAkUGFyYW17UHJvamVjdElEfSB9LT57QWN0aW9uc307CiAgICAgICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICV7JEFjdGlvbnNSZWZ9ICkgewogICAgICAgICAgICAgICAgICAgICRQcm9qZWN0VGltZXskQWN0aW9uSUR9LT57JFVzZXJJRH0tPntIb3Vyc30gPSAkQWN0aW9uc1JlZi0+eyRBY3Rpb25JRH0tPntUb3RhbH07CgogICAgICAgICAgICAgICAgICAgICMgcmVtZW1iZXIgdGhlIHN1bSBvZiBhbGwgaG91cnMgb2YgYWxsIHRhc2tzCiAgICAgICAgICAgICAgICAgICAgJFVzZXJUb3RhbEhvdXJzSW5Qcm9qZWN0ICs9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfS0+e1RvdGFsfSB8fCAwOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgcmVtZW1iZXIgb25seSB0aGUgdXNlcnMgdGhhdCBoYXMgYmVlbiBhZGRlZCBob3VycyB0byB0aGlzIHByb2plY3QKICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkVXNlclRvdGFsSG91cnNJblByb2plY3QgJiYgJFVzZXJUb3RhbEhvdXJzSW5Qcm9qZWN0ID4gMCApIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBVc2VyV2hpdGVMaXN0LCAkVXNlcklEOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoICRQYXJhbXtTaG93T25seUFjdGl2ZVVzZXJzfSApIHsKCiAgICAgICAgICAgICMgcmVkdWNlIHNob3duIHVzZXJzIHRvIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgYWN0aXZlIGluIHRoZSBwcm9qZWN0IChieSBhZGRpbmcgaG91cnMpCiAgICAgICAgICAgICVTaG93blVzZXJzID0gbWFwIHsgJF8gPT4gJFNob3duVXNlcnN7JF99IH0gQFVzZXJXaGl0ZUxpc3Q7CiAgICAgICAgfQoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggXCVTaG93blVzZXJzICkgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9Vc2VyRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJUYWJsZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzaG93IHRoZSBoZWFkZXIgbGluZQogICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkU2hvd25Vc2Vyc3skYX0gY21wICRTaG93blVzZXJzeyRifSB9IGtleXMgJVNob3duVXNlcnMgKSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyTmFtZScsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7IFVzZXIgPT4gJFNob3duVXNlcnN7JFVzZXJJRH0gfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYmV0dGVyIHNvbHV0aW9uIGZvciBzb3J0IGFjdGlvbnMgbmVjZXNzYXJ5CiAgICAgICAgICAgIG15ICVOZXdBY3Rpb24gPSAoKTsKICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQga2V5cyAlUHJvamVjdFRpbWUgKSB7CiAgICAgICAgICAgICAgICAkTmV3QWN0aW9ueyRBY3Rpb25JRH0gPSAkQWN0aW9ueyRBY3Rpb25JRH0tPntBY3Rpb259OwogICAgICAgICAgICB9CiAgICAgICAgICAgICVBY3Rpb24gPSAlTmV3QWN0aW9uOwoKICAgICAgICAgICAgIyBzaG93IHRoZSByZXN1bHRzCiAgICAgICAgICAgIG15ICVUb3RhbCA9ICgpOwogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCB7ICRBY3Rpb257JGF9IGNtcCAkQWN0aW9ueyRifSB9IGtleXMgJUFjdGlvbiApIHsKICAgICAgICAgICAgICAgIG15ICRUb3RhbEhvdXJzID0gMDsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9ueyRBY3Rpb25JRH0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkU2hvd25Vc2Vyc3skYX0gY21wICRTaG93blVzZXJzeyRifSB9IGtleXMgJVNob3duVXNlcnMgKSB7CiAgICAgICAgICAgICAgICAgICAgJFRvdGFsSG91cnMgKz0gJFByb2plY3RUaW1leyRBY3Rpb25JRH17JFVzZXJJRH17SG91cnN9IHx8IDA7CiAgICAgICAgICAgICAgICAgICAgJFRvdGFseyRVc2VySUR9ICs9ICRQcm9qZWN0VGltZXskQWN0aW9uSUR9eyRVc2VySUR9e0hvdXJzfSB8fCAwOwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3VycyA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwcmludGYoICIlLjJmIiwgJFByb2plY3RUaW1leyRBY3Rpb25JRH17JFVzZXJJRH17SG91cnN9IHx8IDAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgVG90YWwKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIb3VycyA9PiBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbEhvdXJzICksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFBhcmFte1RvdGFsQWxsfSA9IDA7CiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtUb3RhbEFsbH0gKz0gJFRvdGFseyRVc2VySUR9OwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRvdGFsJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgVG90YWwgPT4gc3ByaW50ZiggIiUuMmYiLCAkVG90YWx7JFVzZXJJRH0gKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyVG90YWxBbGwnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgVG90YWxBbGwgPT4gc3ByaW50ZiggIiUuMmYiLCAkUGFyYW17VG90YWxBbGx9ICksCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBteSBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEhpc3RvcnkoCiAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUGFyYW17UHJvamVjdElEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoIFxAUHJvamVjdEhpc3RvcnlBcnJheSApICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vUHJvamVjdERhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0VGFibGUnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICVGcm9udGVuZAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGZvciBteSAkUm93IChAUHJvamVjdEhpc3RvcnlBcnJheSkgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUm93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgVXNlciAgID0+ICRSb3ctPntVc2VyfSwKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICRSb3ctPntBY3Rpb259LAogICAgICAgICAgICAgICAgICAgICAgICBSZW1hcmsgPT4gJFJvdy0+e1JlbWFya30gfHwgJy0tJywKICAgICAgICAgICAgICAgICAgICAgICAgUGVyaW9kID0+IHNwcmludGYoICIlLjJmIiwgJFJvdy0+e1BlcmlvZH0gKSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZSAgID0+ICRSb3ctPntEYXRlfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzaG93IHRoZSB0b3RhbCBzdW0gb2YgaG91cnMgYXQgdGhlIGVuZCBvZiB0aGUgaGlzdG9yeSBsaXN0CiAgICAgICAgICAgICMgSSBhbHNvIGNhbiB1c2UgJFBhcmFte1RvdGFsQWxsfQogICAgICAgICAgICBteSAkUHJvamVjdFRvdGFsSG91cnMgPSBzcHJpbnRmKAogICAgICAgICAgICAgICAgIiUuMmYiLAogICAgICAgICAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0VG90YWxIb3VycygKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFBhcmFte1Byb2plY3RJRH0sCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdIaXN0b3J5VG90YWwnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgSGlzdG9yeVRvdGFsID0+ICRQcm9qZWN0VG90YWxIb3VycyB8fCAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgYnVpbGQgb3V0cHV0CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICAgICAgVGl0bGUgPT4gJ1JlcG9ydGluZ1Byb2plY3QnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJUZyb250ZW5kLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0JywKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHRpbWUgYWNjb3VudGluZyByZXBvcnRpbmcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBteSAlRnJvbnRlbmQgICA9ICgpOwogICAgbXkgJVNob3duVXNlcnMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgIFZhbGlkID0+IDAKICAgICk7CiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkQ3VycmVudERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICApOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSd30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdGF0dXMgTW9udGggWWVhciBQcm9qZWN0U3RhdHVzU2hvdykpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CgogICAgIyBDaGVjayBEYXRlCiAgICBpZiAoICEkUGFyYW17WWVhcn0gfHwgISRQYXJhbXtNb250aH0gKSB7CiAgICAgICAgJFBhcmFte1llYXJ9ICA9ICRZZWFyOwogICAgICAgICRQYXJhbXtNb250aH0gPSAkTW9udGg7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkUGFyYW17TW9udGh9ID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICB9CgogICAgIyBzdG9yZSBsYXN0IHNjcmVlbgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyktPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbicsCiAgICAgICAgVmFsdWUgPT4KICAgICAgICAgICAgIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofSIsCiAgICApOwoKICAgICRQYXJhbXtNb250aF90b19UZXh0fSA9ICRNb250aEFycmF5WyAkUGFyYW17TW9udGh9IF07CgogICAgbXkgJU1vbnRoID0gKCk7CiAgICBmb3IgbXkgJElEICggMSAuLiAxMiApIHsKICAgICAgICAkTW9udGh7IHNwcmludGYoICIlMDJkIiwgJElEICkgfSA9ICRNb250aEFycmF5WyRJRF07CiAgICB9CgogICAgJEZyb250ZW5ke01vbnRoT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFwlTW9udGgsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhcmFte01vbnRofSB8fCAnJywKICAgICAgICBOYW1lICAgICAgICA9PiAnTW9udGgnLAogICAgICAgIFNvcnQgICAgICAgID0+ICdOdW1lcmljS2V5JywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgIFRpdGxlICAgICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiTW9udGgiKSwKICAgICk7CgogICAgbXkgQFllYXIgPSAoICRZZWFyIC0gNCAuLiAkWWVhciArIDEgKTsKCiAgICAkRnJvbnRlbmR7WWVhck9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiBcQFllYXIsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhcmFte1llYXJ9IHx8ICcnLAogICAgICAgIE5hbWUgICAgICAgID0+ICdZZWFyJywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgIFRpdGxlICAgICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiWWVhciIpLAogICAgKTsKCiAgICAoICRQYXJhbXtZZWFyQmFja30sICRQYXJhbXtNb250aEJhY2t9LCAkUGFyYW17RGF5QmFja30gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAxLCAwLCAtMSwgMCApOwogICAgKCAkUGFyYW17WWVhck5leHR9LCAkUGFyYW17TW9udGhOZXh0fSwgJFBhcmFte0RheU5leHR9ICkgPSBBZGRfRGVsdGFfWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sIDEsIDAsIDEsIDAgKTsKCiAgICBteSAlVXNlclJlcG9ydCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclJlcG9ydGluZygKICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJVVzZXJCYXNpY3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlU2hvd25Vc2VycyApIHx8ICFJc0hhc2hSZWZXaXRoRGF0YSggXCVVc2VyUmVwb3J0ICkgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vVXNlckRhdGFGb3VuZE1zZycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRhYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKCiAgICAgICAgVVNFUklEOgogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgbmV4dCBVU0VSSUQgaWYgISRVc2VyUmVwb3J0eyRVc2VySUR9OwoKICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKAogICAgICAgICAgICAgICAgcXcoTGVhdmVEYXkgT3ZlcnRpbWUgV29ya2luZ0hvdXJzIFNpY2sgTGVhdmVEYXlSZW1haW5pbmcgT3ZlcnRpbWVUb3RhbCkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gc3ByaW50ZiggIiUuMmYiLCAoICRVc2VyUmVwb3J0eyRVc2VySUR9eyRQYXJhbWV0ZXJ9IHx8IDAgKSApOwogICAgICAgICAgICAgICAgJFBhcmFteyAnVG90YWwnIC4gJFBhcmFtZXRlciB9ICs9ICRQYXJhbXskUGFyYW1ldGVyfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBTaG93IE92ZXJ0aW1lIGlmIGFsbG93ZWQKICAgICAgICAgICAgaWYgKCAhJFVzZXJCYXNpY3N7JFVzZXJJRH17U2hvd092ZXJ0aW1lfSApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtPdmVydGltZX0gICAgICA9ICcnOwogICAgICAgICAgICAgICAgJFBhcmFte092ZXJ0aW1lVG90YWx9ID0gJyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRQYXJhbXtVc2VyfSAgID0gJFNob3duVXNlcnN7JFVzZXJJRH07CiAgICAgICAgICAgICRQYXJhbXtVc2VySUR9ID0gJFVzZXJJRDsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKAogICAgICAgICAgICBxdyhUb3RhbExlYXZlRGF5IFRvdGFsT3ZlcnRpbWUgVG90YWxXb3JraW5nSG91cnMKICAgICAgICAgICAgVG90YWxTaWNrIFRvdGFsTGVhdmVEYXlSZW1haW5pbmcgVG90YWxPdmVydGltZVRvdGFsKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSBzcHJpbnRmKCAiJS4yZiIsICggJFBhcmFteyRQYXJhbWV0ZXJ9ICkgfHwgMCApOwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJHcmFuZFRvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyB0aGUgcmVwb3J0IHNvcnQgYnkgcHJvamVjdHMKICAgIGlmICggISRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gfHwgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAndmFsaWQnICkgewogICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gPSAnYWxsJzsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyApIHsKICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9ID0gJ3ZhbGlkJzsKICAgIH0KCiAgICAkUGFyYW17U2hvd1Byb2plY3RzfSA9ICdTaG93ICcgLiAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IC4gJyBwcm9qZWN0cyc7CgogICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0QWN0aW9uUmVwb3J0aW5nKAogICAgICAgIFllYXIgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCA9PiAkUGFyYW17TW9udGh9LAogICAgKTsKCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggXCVQcm9qZWN0RGF0YSApICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1Byb2plY3REYXRhRm91bmRNc2cnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNMaW5rQ2xhc3N9ID0gJ0hpZGRlbic7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdFRhYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBSRU1BUks6IG1lcmdlIHRoaXMgcHJvamVjdCByZXBvcnRpbmcgbGlzdCB3aXRoIHRoZSBsaXN0IGluIG92ZXJ2aWV3CiAgICAgICAgUFJPSkVDVElEOgogICAgICAgIGZvciBteSAkUHJvamVjdElEICgKICAgICAgICAgICAgc29ydCB7ICRQcm9qZWN0RGF0YXskYX0tPntOYW1lfSBjbXAgJFByb2plY3REYXRheyRifS0+e05hbWV9IH0KICAgICAgICAgICAga2V5cyAlUHJvamVjdERhdGEKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJFByb2plY3RSZWYgPSAkUHJvamVjdERhdGF7JFByb2plY3RJRH07CiAgICAgICAgICAgIG15ICRBY3Rpb25zUmVmID0gJFByb2plY3RSZWYtPntBY3Rpb25zfTsKCiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSA9ICcnOwogICAgICAgICAgICAkUGFyYW17U3RhdHVzfSA9ICRQcm9qZWN0UmVmLT57U3RhdHVzfSA/ICcnIDogJ3Bhc3Npdic7CgogICAgICAgICAgICBteSAkVG90YWwgICAgICA9IDA7CiAgICAgICAgICAgIG15ICRUb3RhbFRvdGFsID0gMDsKCiAgICAgICAgICAgIG5leHQgUFJPSkVDVElEIGlmICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgJiYgJFBhcmFte1N0YXR1c307CgogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICgKICAgICAgICAgICAgICAgIHNvcnQgeyAkQWN0aW9uc1JlZi0+eyRhfS0+e05hbWV9IGNtcCAkQWN0aW9uc1JlZi0+eyRifS0+e05hbWV9IH0KICAgICAgICAgICAgICAgIGtleXMgJXskQWN0aW9uc1JlZn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbXkgJEFjdGlvblJlZiA9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfTsKCiAgICAgICAgICAgICAgICAkUGFyYW17UHJvamVjdElEfSAgPSAkUHJvamVjdElEOwogICAgICAgICAgICAgICAgJFBhcmFte0FjdGlvbn0gICAgID0gJEFjdGlvblJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57UGVyTW9udGh9IHx8IDAgKTsKICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJEFjdGlvblJlZi0+e1RvdGFsfSB8fCAwICk7CiAgICAgICAgICAgICAgICAkVG90YWwgICAgICArPSAkUGFyYW17SG91cnN9OwogICAgICAgICAgICAgICAgJFRvdGFsVG90YWwgKz0gJFBhcmFte0hvdXJzVG90YWx9OwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICEkUGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9ID0gJFByb2plY3RSZWYtPntOYW1lfTsKICAgICAgICAgICAgICAgICAgICBteSAkUHJvamVjdERlc2NyaXB0aW9uID0gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCAgICAgICAgICAgPT4gJFByb2plY3RSZWYtPntEZXNjcmlwdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIE5ld0xpbmUgICAgICAgID0+IDUwLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0JywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3dTcGFuICAgICAgICAgICAgPT4gKCAxICsgc2NhbGFyIGtleXMgJXskQWN0aW9uc1JlZn0gKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cyAgICAgICAgICAgICA9PiAkUGFyYW17U3RhdHVzfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAkUHJvamVjdERlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0UmVmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgICAgICAgICAgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgICAgICAgICA9PiAnTWFzdGVyQWN0aW9uTGluaycgLiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRQYXJhbXtIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJFRvdGFsICk7CiAgICAgICAgICAgICRQYXJhbXtIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFRvdGFsVG90YWwgKTsKICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ICAgICAgKz0gJFRvdGFsOwogICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSArPSAkVG90YWxUb3RhbDsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25Ub3RhbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSAgICAgIHx8PSAwOwogICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9IHx8PSAwOwoKICAgICAgICAkUGFyYW17VG90YWxIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnN9ICk7CiAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0R3JhbmRUb3RhbCcsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBidWlsZCBvdXRwdXQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gJ1JlcG9ydGluZycsCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBUaW1lOjpMb2NhbDsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJExvZ09iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIGV4cHJlc3Npb24gYWRkIHRpbWUgcGVyaW9kIHdhcyBwcmVzc2VkCiAgICBpZiAoCiAgICAgICAgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZFBlcmlvZCcgKQogICAgICAgIHx8ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJtaXRVc2VyRGF0YScgKQogICAgICAgICkKICAgIHsKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgJEdldFBhcmFte1VzZXJJRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcklEJyApOwogICAgICAgIG15ICRQZXJpb2RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRHZXRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgdmFsaWRpdHkgb2YgcGVyaW9kcwogICAgICAgIG15ICVFcnJvcnMgPSAkU2VsZi0+X0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcygKICAgICAgICAgICAgUGVyaW9kID0+ICRQZXJpb2RzLAogICAgICAgICk7CgogICAgICAgICMgaWYgdGhlIHBlcmlvZCBkYXRhIGlzIE9LCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgZ2V0IGFsbCBwYXJhbWV0ZXJzCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdWJhY3Rpb24gRGVzY3JpcHRpb24gQ2FsZW5kYXIpKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFNob3dPdmVydGltZSBDcmVhdGVQcm9qZWN0KSkgewogICAgICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRQZXJpb2QgPSAxOwogICAgICAgICAgICBteSAlUGVyaW9kRGF0YTsKCiAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U2luZ2xlVXNlclNldHRpbmdzR2V0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRHZXRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBwYXJhbWV0ZXJzIGZvciBhbGwgcmVnaXN0ZXJlZCBwZXJpb2RzCiAgICAgICAgICAgIHdoaWxlICggJFVzZXJEYXRheyRQZXJpb2R9ICkgewogICAgICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFdlZWtseUhvdXJzIE92ZXJ0aW1lIERhdGVTdGFydCBEYXRlRW5kIExlYXZlRGF5cykpIHsKICAgICAgICAgICAgICAgICAgICAkUGVyaW9kRGF0YXskUGVyaW9kfXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAiWyRQZXJpb2RdIiApCiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICRVc2VyRGF0YXskUGVyaW9kfXskUGFyYW1ldGVyfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQZXJpb2REYXRheyRQZXJpb2R9e1VzZXJTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gIlBlcmlvZFN0YXR1c1skUGVyaW9kXSIgKSB8fCAwOwogICAgICAgICAgICAgICAgJFBlcmlvZCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRHZXRQYXJhbXtQZXJpb2R9ID0gXCVQZXJpb2REYXRhOwoKICAgICAgICAgICAgIyB1cGRhdGUgcGVyaW9kcwogICAgICAgICAgICBpZiAoICEkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSglR2V0UGFyYW0pICkgewoKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICdVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhIFBsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4nLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBZGRQZXJpb2QnICkgKSB7CgogICAgICAgICAgICAgICAgIyBzaG93IHRoZSBlZGl0IHRpbWUgc2V0dGluZ3MgYWdhaW4sIGJ1dCBub3cgd2l0aCBhIG5ldyBlbXB0eSB0aW1lIHBlcmlvZCBsaW5lCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICAgICAgICAgIkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZztTdWJhY3Rpb249JEdldFBhcmFte1N1YmFjdGlvbn07VXNlcklEPSRHZXRQYXJhbXtVc2VySUR9OyIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiTmV3VGltZVBlcmlvZD0xIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBzaG93IHRoZSBvdmVydmlldyBvZiB0YXNrcyBhbmQgdXNlcnMKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nO1VzZXI9JFNlbGYtPntTdWJhY3Rpb259IiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIHByb2plY3QKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkUHJvamVjdCcgKSB7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fUHJvamVjdFNldHRpbmdzRWRpdCggQWN0aW9uID0+ICdBZGRQcm9qZWN0JyApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCBwcm9qZWN0IGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRQcm9qZWN0QWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAkUHJvamVjdElEOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CgogICAgICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoUHJvamVjdCBQcm9qZWN0RGVzY3JpcHRpb24pKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgICAgICB9CiAgICAgICAgJEdldFBhcmFte1Byb2plY3RTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2plY3RTdGF0dXMnICkKICAgICAgICAgICAgfHwgJzAnOwoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGlmICggISRHZXRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0SW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEVycm9yVHlwZX0gPSAnUHJvamVjdE1pc3NpbmdWYWx1ZSc7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjaGVjayB0aGF0IHRoZSBuYW1lIGlzIHVuaXF1ZQogICAgICAgICAgICBteSAlRXhpc3RpbmdQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICAgICAgUHJvamVjdCA9PiAkR2V0UGFyYW17UHJvamVjdH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICglRXhpc3RpbmdQcm9qZWN0KSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEVycm9yVHlwZX0gPSAnUHJvamVjdER1cGxpY2F0ZU5hbWUnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIGFkZCBwcm9qZWN0CiAgICAgICAgICAgICRQcm9qZWN0SUQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkUHJvamVjdElEKSB7CgogICAgICAgICAgICAgICAgIyBidWlsZCB0aGUgb3V0cHV0CiAgICAgICAgICAgICAgICAkU2VsZi0+X1NldHRpbmdPdmVydmlldygpOwogICAgICAgICAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBJbmZvID0+ICdQcm9qZWN0IGFkZGVkIScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHslR2V0UGFyYW19LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTm90ZSA9ICRMb2dPYmplY3QtPkdldExvZ0VudHJ5KAogICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICAgICBXaGF0ID0+ICdNZXNzYWdlJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc29tZXRoaW5nIHdlbnQgd3JvbmcKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTm90ZQogICAgICAgICAgICA/ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgSW5mbyAgICAgPT4gJE5vdGUsCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAnJzsKICAgICAgICAkU2VsZi0+X1Byb2plY3RTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnQWRkUHJvamVjdCcsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHByb2plY3QKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFByb2plY3QnICkgewogICAgICAgIG15ICRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKTsKCiAgICAgICAgIyBnZXQgcHJvamVjdCBkYXRhCiAgICAgICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgIElEID0+ICRJRCwKICAgICAgICApOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9Qcm9qZWN0U2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0VkaXRQcm9qZWN0JywKICAgICAgICAgICAgJVByb2plY3QsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCBwcm9qZWN0IGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0UHJvamVjdEFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICROb3RlID0gJyc7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1ldGVycwogICAgICAgICRHZXRQYXJhbXtJRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICkgfHwgJyc7CiAgICAgICAgJEdldFBhcmFte1Byb2plY3RTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2plY3RTdGF0dXMnICkKICAgICAgICAgICAgfHwgJzAnOwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0IFByb2plY3REZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBpZiAoICEkR2V0UGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlIG5hbWUgaXMgdW5pcXVlCiAgICAgICAgICAgIG15ICVFeGlzdGluZ1Byb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgaWYgdGhlIHByb2plY3QgbmFtZSBpcyBmb3VuZCwgY2hlY2sgdGhhdCB0aGUgSUQgaXMgZGlmZmVyZW50CiAgICAgICAgICAgIGlmICggJUV4aXN0aW5nUHJvamVjdCAmJiAkRXhpc3RpbmdQcm9qZWN0e0lEfSBuZSAkR2V0UGFyYW17SUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0SW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RFcnJvclR5cGV9ID0gJ1Byb2plY3REdXBsaWNhdGVOYW1lJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBlZGl0IHByb2plY3QKICAgICAgICAgICAgaWYgKCAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSglR2V0UGFyYW0pICkgewoKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gJ1Byb2plY3QgdXBkYXRlZCEnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTm90ZSA9ICRMb2dPYmplY3QtPkdldExvZ0VudHJ5KAogICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICAgICBXaGF0ID0+ICdNZXNzYWdlJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc29tZXRoaW5nIHdlbnQgd3JvbmcKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTm90ZQogICAgICAgICAgICA/ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgSW5mbyAgICAgPT4gJE5vdGUsCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAnJzsKICAgICAgICAkU2VsZi0+X1Byb2plY3RTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnRWRpdFByb2plY3QnLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQgdGFzawogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRUYXNrJyApIHsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9UYXNrU2V0dGluZ3NFZGl0KCBBY3Rpb24gPT4gJ0FkZFRhc2snICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB0YXNrIGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRUYXNrQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAkVGFza0lEOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CgogICAgICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgICAgICAkR2V0UGFyYW17VGFza30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVGFzaycgKSB8fCAnJzsKICAgICAgICAkR2V0UGFyYW17VGFza1N0YXR1c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVGFza1N0YXR1cycgKQogICAgICAgICAgICB8fCAnMCc7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1Rhc2t9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Rhc2tJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tUYXNrRXJyb3JUeXBlfSA9ICdUYXNrTWlzc2luZ1ZhbHVlJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlIG5hbWUgaXMgdW5pcXVlCiAgICAgICAgICAgIG15ICVFeGlzdGluZ1Rhc2sgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAkR2V0UGFyYW17VGFza30sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICglRXhpc3RpbmdUYXNrKSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Rhc2tJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7VGFza0Vycm9yVHlwZX0gPSAnVGFza0R1cGxpY2F0ZU5hbWUnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIGFkZCB0YXNrCiAgICAgICAgICAgICRUYXNrSUQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRHZXRQYXJhbXtUYXNrfSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkR2V0UGFyYW17VGFza1N0YXR1c30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJFRhc2tJRCkgewoKICAgICAgICAgICAgICAgICMgYnVpbGQgdGhlIG91dHB1dAogICAgICAgICAgICAgICAgJFNlbGYtPl9TZXR0aW5nT3ZlcnZpZXcoKTsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgSW5mbyA9PiAnVGFzayBhZGRlZCEnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyB3ZW50IHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJE5vdGUKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgIEluZm8gICAgID0+ICROb3RlLAogICAgICAgICAgICApCiAgICAgICAgICAgIDogJyc7CiAgICAgICAgJFNlbGYtPl9UYXNrU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZFRhc2snLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCB0YXNrCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRUYXNrJyApIHsKICAgICAgICBteSAkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWN0aW9uSUQnICkgfHwgJyc7CgogICAgICAgICMgZ2V0IHByb2plY3QgZGF0YQogICAgICAgIG15ICVUYXNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIElEID0+ICRJRCwKICAgICAgICApOwoKICAgICAgICBteSAlVGFza0RhdGEgPSAoCiAgICAgICAgICAgIFRhc2sgICAgICAgPT4gJFRhc2t7QWN0aW9ufSwKICAgICAgICAgICAgVGFza1N0YXR1cyA9PiAkVGFza3tBY3Rpb25TdGF0dXN9LAogICAgICAgICk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1Rhc2tTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiAgID0+ICdFZGl0VGFzaycsCiAgICAgICAgICAgIEFjdGlvbklEID0+ICRJRCwKICAgICAgICAgICAgJVRhc2tEYXRhLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgcHJvamVjdCBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFRhc2tBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CgogICAgICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgICAgICAkR2V0UGFyYW17QWN0aW9uSUR9ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWN0aW9uSUQnICkgICB8fCAnJzsKICAgICAgICAkR2V0UGFyYW17VGFza1N0YXR1c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVGFza1N0YXR1cycgKSB8fCAnMCc7CiAgICAgICAgJEdldFBhcmFte1Rhc2t9ICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rhc2snICkgICAgICAgfHwgJyc7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1Rhc2t9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Rhc2tJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjaGVjayB0aGF0IHRoZSBuYW1lIGlzIHVuaXF1ZQogICAgICAgICAgICBteSAlRXhpc3RpbmdUYXNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJEdldFBhcmFte1Rhc2t9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBpZiB0aGUgdGFzayBuYW1lIGlzIGZvdW5kLCBjaGVjayB0aGF0IHRoZSBJRCBpcyBkaWZmZXJlbnQKICAgICAgICAgICAgaWYgKCAlRXhpc3RpbmdUYXNrICYmICRFeGlzdGluZ1Rhc2t7SUR9IG5lICRHZXRQYXJhbXtBY3Rpb25JRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Rhc2tJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7VGFza0Vycm9yVHlwZX0gPSAnVGFza0R1cGxpY2F0ZU5hbWUnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIGVkaXQgYWN0aW9uICh0YXNrKQogICAgICAgICAgICBteSAkQWN0aW9uVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgICAgIEFjdGlvbklEICAgICA9PiAkR2V0UGFyYW17QWN0aW9uSUR9LAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRHZXRQYXJhbXtUYXNrfSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkR2V0UGFyYW17VGFza1N0YXR1c30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJEFjdGlvblVwZGF0ZSkgewogICAgICAgICAgICAgICAgJFNlbGYtPl9TZXR0aW5nT3ZlcnZpZXcoKTsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgSW5mbyA9PiAnVGFzayB1cGRhdGVkIScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fVGFza1NldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0VGFzaycsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB1c2VyCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFVzZXInICkgewoKICAgICAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgJE5ld1VzZXJJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOZXdVc2VySUQnICkKICAgICAgICAgICAgfHwgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZXJJRCcgKQogICAgICAgICAgICB8fCAnJzsKICAgICAgICBpZiAoICEkTmV3VXNlcklEICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICROZXdUaW1lUGVyaW9kID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ05ld1RpbWVQZXJpb2QnICk7CgogICAgICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICROZXdVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICROZXdVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciArIDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiBpdCBpcyBub3QgYW4gYWN0aW9uIGFib3V0IGFkZGluZyBhIG5ldyB0aW1lIHBlcmlvZAogICAgICAgIGlmICggISROZXdUaW1lUGVyaW9kICkgewogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IGdyb3VwIG9iamVjdAogICAgICAgICAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAgICAgICAgIG15ICVHcm91cHMgPSAkR3JvdXBPYmplY3QtPkdyb3VwTGlzdCggVmFsaWQgPT4gMSApOwogICAgICAgICAgICBteSAlR3JvdXBEYXRhID0gJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJE5ld1VzZXJJRCwKICAgICAgICAgICAgICAgIFR5cGUgICA9PiAncm8nLAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZm9yIG15ICRHcm91cEtleSAoIHNvcnQga2V5cyAlR3JvdXBzICkgewogICAgICAgICAgICAgICAgaWYgKCAkR3JvdXBzeyRHcm91cEtleX0gZXEgJ3RpbWVfYWNjb3VudGluZycgJiYgISRHcm91cERhdGF7JEdyb3VwS2V5fSApIHsKCiAgICAgICAgICAgICAgICAgICAgJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckFkZCgKICAgICAgICAgICAgICAgICAgICAgICAgR0lEICAgICAgICA9PiAkR3JvdXBLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJE5ld1VzZXJJRCwKICAgICAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBybyAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVfaW50byA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvd25lciAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5ICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcncgICAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkTmV3VXNlcklELAogICAgICAgICk7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fVXNlclNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uICAgID0+ICdBZGRVc2VyJywKICAgICAgICAgICAgU3ViYWN0aW9uID0+ICdBZGRVc2VyJywKICAgICAgICAgICAgJVVzZXIsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCB1c2VyIHNldHRpbmdzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRVc2VyJyApIHsKICAgICAgICBteSAkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcklEJyApIHx8ICcnOwogICAgICAgIGlmICggISRJRCApIHsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJ1RoZSBVc2VySUQgaXMgbm90IHZhbGlkIScsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkTmV3VGltZVBlcmlvZCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOZXdUaW1lUGVyaW9kJyApOwogICAgICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRJRCwKICAgICAgICApOwoKICAgICAgICAjIGlmIGl0IGlzIGFuIGFjdGlvbiBhYm91dCBhZGRpbmcgYSBuZXcgdGltZSBwZXJpb2QsIGluc2VydCBpdAogICAgICAgIGlmICgkTmV3VGltZVBlcmlvZCkgewogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRJRCwKICAgICAgICAgICAgICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciArIDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewoKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICdVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISBQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICVFcnJvcnMgPSAoKTsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWRkUGVyaW9kJyApCiAgICAgICAgICAgIHx8ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJtaXRVc2VyRGF0YScgKQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBjaGVjayB2YWxpZGl0eSBvZiBwZXJpb2RzCiAgICAgICAgICAgICVFcnJvcnMgPSAkU2VsZi0+X0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcygKICAgICAgICAgICAgICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgIG15ICVVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICBVc2VySUQgPT4gJElELAogICAgICAgICk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1VzZXJTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAnRWRpdFVzZXInLAogICAgICAgICAgICBTdWJhY3Rpb24gPT4gJ0VkaXRVc2VyJywKICAgICAgICAgICAgVXNlcklEICAgID0+ICRJRCwKICAgICAgICAgICAgRXJyb3JzICAgID0+IFwlRXJyb3JzLAogICAgICAgICAgICBQZXJpb2RzICAgPT4gJExhc3RQZXJpb2ROdW1iZXIsCiAgICAgICAgICAgICVVc2VyLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNldHRpbmdzIGZvciBoYW5kbGluZyB0aW1lIGFjY291bnRpbmcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBnZXQgdXNlciBkYXRhCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkVXNlckRhdGF7Q3JlYXRlUHJvamVjdH0gJiYgISRTZWxmLT57QWNjZXNzUnd9ICkgewoKICAgICAgICAjIHJldHVybiBubyBwZXJtaXNzaW9uIHNjcmVlbgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCB0aGUgdXNlciBhY3Rpb24gdG8gc2hvdyBhIG1lc3NhZ2UgaWYgYW4gdXNlciB3YXMgdXBkYXRlZCBvciBhZGRlZAogICAgbXkgJE5vdGUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcicgKTsKCiAgICAjIGJ1aWxkIG91dHB1dAogICAgJFNlbGYtPl9TZXR0aW5nT3ZlcnZpZXcoKTsKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gJ1NldHRpbmcnLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgc2hvdyBhIG5vdGlmaWNhdGlvbiBtZXNzYWdlIGlmIHByb3BlcgogICAgaWYgKCROb3RlKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTm90ZSBlcSAnRWRpdFVzZXInCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+ICdVc2VyIHVwZGF0ZWQhJywKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiAnVXNlciBhZGRlZCEnLAogICAgICAgICAgICApOwogICAgfQoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKCn0KCnN1YiBfQ2hlY2tWYWxpZGl0eVVzZXJQZXJpb2RzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUVycm9ycyA9ICgpOwogICAgbXkgJUdldFBhcmFtOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJFBhcmFte1BlcmlvZH07ICRQZXJpb2QrKyApIHsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0KICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciAuICJbJFBlcmlvZF0iICk7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRQYXJhbWV0ZXIgLiAnLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnTWlzc2luZ1ZhbHVlJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlU3RhcnR9ICk7CiAgICAgICAgbXkgJFN0YXJ0RGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICREYXksCiAgICAgICAgICAgIEhvdXIgICA9PiAwLAogICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgKTsKICAgICAgICAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlRW5kfSApOwogICAgICAgIG15ICRFbmREYXRlID0gJFRpbWVPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICApOwogICAgICAgIGlmICggISRTdGFydERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggISRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggJFN0YXJ0RGF0ZSAmJiAkRW5kRGF0ZSAmJiAkU3RhcnREYXRlID49ICRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnQmVmb3JlRGF0ZVN0YXJ0JzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVFcnJvcnM7Cn0KCnN1YiBfUHJvamVjdFNldHRpbmdzRWRpdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdQcm9qZWN0JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RQcm9qZWN0JywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvblNldHRpbmdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gJ3ZhbGlkJywKICAgICAgICAwID0+ICdpbnZhbGlkJywKICAgICk7CgogICAgbXkgJFByb2plY3RTdGF0dXMgPSAxOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtQcm9qZWN0U3RhdHVzfSApIHsKICAgICAgICAkUHJvamVjdFN0YXR1cyA9ICRQYXJhbXtQcm9qZWN0U3RhdHVzfQogICAgfQoKICAgICRQYXJhbXtTdGF0dXNPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVN0YXR1c0xpc3QsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUHJvamVjdFN0YXR1cywKICAgICAgICBOYW1lICAgICAgID0+ICdQcm9qZWN0U3RhdHVzJywKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZVByb2plY3QnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBzaG93cyBoZWFkZXIKICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ0VkaXRQcm9qZWN0JyApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyRWRpdFByb2plY3QnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyQWRkUHJvamVjdCcsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgc2VydmVyIGVycm9yIG1lc3NhZ2UgKGlmIGFueSkgZm9yIHRoZSBwcm9qZWN0IG5hbWUKICAgIGlmICggJFBhcmFte1Byb2plY3RFcnJvclR5cGV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRQYXJhbXtQcm9qZWN0RXJyb3JUeXBlfSwKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgX1NldHRpbmdPdmVydmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVQcm9qZWN0ID0gKCk7CiAgICBteSAlRGF0YSAgICA9ICgpOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBidWlsZCBvdXRwdXQKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1NldHRpbmcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uTGlzdFNldHRpbmcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uQWRkUHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBoYXNoIHRvIHNhdmUgcmVnaXN0ZXJlZCB1c2VycwogICAgbXkgJVVzZXI7CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICBpZiAoICRTZWxmLT57QWNjZXNzUnd9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25BZGRUYXNrJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwoKICAgICAgICAjIGdldCB1c2VyIGRhdGEKICAgICAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgcmVnaXN0ZXJlZCB1c2VycyAoaWYgYW55KQogICAgICAgICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKICAgICAgICBVU0VSSU5GTzoKICAgICAgICBmb3IgbXkgJFVzZXJJbmZvICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgbmV4dCBVU0VSSU5GTyBpZiAhJFVzZXJ7JFVzZXJJbmZvfTsKCiAgICAgICAgICAgICMgZGVsZXRlIGFscmVhZHkgcmVnaXN0ZXJlZCB1c2VyIGZyb20gdGhlICduZXcnIGxpc3QKICAgICAgICAgICAgZGVsZXRlICRTaG93blVzZXJzeyRVc2VySW5mb307CiAgICAgICAgfQoKICAgICAgICBpZiAoJVNob3duVXNlcnMpIHsKICAgICAgICAgICAgbXkgJE5ld1VzZXJPcHRpb24gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVNob3duVXNlcnMsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJycsCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ05ld1VzZXJJRCcsCiAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAwLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiTmV3IFVzZXIiKSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25BZGRVc2VyJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIE5ld1VzZXJPcHRpb24gPT4gJE5ld1VzZXJPcHRpb24sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdQcm9qZWN0RmlsdGVyJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICBpZiAoICRTZWxmLT57QWNjZXNzUnd9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUYXNrRmlsdGVyJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVc2VyRmlsdGVyJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgICMgU2hvdyBwcm9qZWN0IGRhdGEKICAgICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFByb2plY3QnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gJ3ZhbGlkJywKICAgICAgICAwID0+ICdpbnZhbGlkJywKICAgICk7CgogICAgIyBzaG93IGxpc3Qgb2YgYXZhaWxhYmxlIHByb2plY3RzIChpZiBhbnkpCiAgICBpZiAoICRQcm9qZWN0e1Byb2plY3R9ICkgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRQcm9qZWN0VGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CgogICAgICAgIGZvciBteSAkUHJvamVjdElEICgKICAgICAgICAgICAgc29ydCB7ICRQcm9qZWN0e1Byb2plY3R9eyRhfSBjbXAgJFByb2plY3R7UHJvamVjdH17JGJ9IH0KICAgICAgICAgICAga2V5cyAleyAkUHJvamVjdHtQcm9qZWN0fSB9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSAgICAgICAgICAgID0gJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH07CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0RGVzY3JpcHRpb259ID0gJFByb2plY3R7UHJvamVjdERlc2NyaXB0aW9ufXskUHJvamVjdElEfTsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RJRH0gICAgICAgICAgPSAkUHJvamVjdElEOwogICAgICAgICAgICAkUGFyYW17U3RhdHVzfSAgICAgICAgICAgICA9ICRTdGF0dXNMaXN0eyAkUHJvamVjdHtQcm9qZWN0U3RhdHVzfXskUHJvamVjdElEfSB9OwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFByb2plY3RSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2UsIHNob3cgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UKICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1Byb2plY3REYXRhRm91bmRNc2cnLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0FjY2Vzc1J3fSApIHsKCiAgICAgICAgIyBTaG93IGFjdGlvbiBkYXRhCiAgICAgICAgbXkgJUFjdGlvbiA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZycsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgbGlzdCBvZiBhdmFpbGFibGUgdGFza3MvYWN0aW9ucyAoaWYgYW55KQogICAgICAgIGlmICglQWN0aW9uKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCB7ICRBY3Rpb257JGF9e0FjdGlvbn0gY21wICRBY3Rpb257JGJ9e0FjdGlvbn0gfSBrZXlzICVBY3Rpb24gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9ufSAgID0gJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvbn07CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9uSUR9ID0gJEFjdGlvbklEOwogICAgICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gICA9ICRTdGF0dXNMaXN0eyAkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9uU3RhdHVzfSB9OwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZ1JvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlLCBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9TZXR0aW5nRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgdXNlciBkYXRhCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlcicsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgbGlzdCBvZiByZWdpc3RlcmVkIHVzZXJzIChpZiBhbnkpCiAgICAgICAgaWYgKCVVc2VyKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlclRhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkVXNlcnskYX0gY21wICRVc2VyeyRifSB9IGtleXMgJVVzZXIgKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgbWlzc2luZyB1c2VyIGRhdGEKICAgICAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBteSAlVXNlckdlbmVyYWxEYXRhID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkUGFyYW17VXNlcn0KICAgICAgICAgICAgICAgICAgICA9ICIkVXNlckdlbmVyYWxEYXRhe1VzZXJGaXJzdG5hbWV9ICRVc2VyR2VuZXJhbERhdGF7VXNlckxhc3RuYW1lfSAoJFVzZXJHZW5lcmFsRGF0YXtVc2VyTG9naW59KSI7CiAgICAgICAgICAgICAgICAkUGFyYW17VXNlcklEfSAgICAgPSAkVXNlcklEOwogICAgICAgICAgICAgICAgJFBhcmFte0NvbW1lbnR9ICAgID0gJFVzZXJEYXRhe0Rlc2NyaXB0aW9ufTsKICAgICAgICAgICAgICAgICRQYXJhbXtDYWxlbmRhck5vfSA9ICRVc2VyRGF0YXtDYWxlbmRhcn07CiAgICAgICAgICAgICAgICAkUGFyYW17Q2FsZW5kYXJ9ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoCiAgICAgICAgICAgICAgICAgICAgIlRpbWVab25lOjpDYWxlbmRhciIKICAgICAgICAgICAgICAgICAgICAgICAgLiAoICRQYXJhbXtDYWxlbmRhck5vfSB8fCAnJyApIC4gIk5hbWUiCiAgICAgICAgICAgICAgICApIHx8ICdEZWZhdWx0JzsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFVzZXJSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSwgc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vVXNlckRhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9UYXNrU2V0dGluZ3NFZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gJ3ZhbGlkJywKICAgICAgICAwID0+ICdpbnZhbGlkJywKICAgICk7CgogICAgbXkgJFRhc2tTdGF0dXMgPSAxOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtUYXNrU3RhdHVzfSApIHsKICAgICAgICAkVGFza1N0YXR1cyA9ICRQYXJhbXtUYXNrU3RhdHVzfQogICAgfQoKICAgICRQYXJhbXtTdGF0dXNPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVN0YXR1c0xpc3QsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkVGFza1N0YXR1cywKICAgICAgICBOYW1lICAgICAgID0+ICdUYXNrU3RhdHVzJywKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZVRhc2snLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBzaG93cyBoZWFkZXIKICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ0VkaXRUYXNrJyApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyRWRpdFRhc2snLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyQWRkVGFzaycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgc2VydmVyIGVycm9yIG1lc3NhZ2UgKGlmIGFueSkgZm9yIHRoZSB0YXNrIG5hbWUKICAgIGlmICggJFBhcmFte1Rhc2tFcnJvclR5cGV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRQYXJhbXtUYXNrRXJyb3JUeXBlfSwKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgX1VzZXJTZXR0aW5nc0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15ICVHZXRQYXJhbSA9ICgpOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEZXNjcmlwdGlvbiBTaG93T3ZlcnRpbWUgQ3JlYXRlUHJvamVjdCBDYWxlbmRhcikpIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHRoZSBkYXRlLXBpY2tlciB1c2VkIGluIHRoaXMgc2NyZWVuIGlzIG5vbi1zdGFuZGFyZAogICAgIyBUaGVyZWZvciB3ZSBoYXZlIHRvIGRlZmluZSB0aGlzIHZhciBpbiB0aGUgTGF5b3V0T2JqZWN0IGZvciBhdXRvbWF0aWMgY29uZmlnIGdlbmVyYXRpb24gaW4gdGhlIEpTIGZvb3RlcgogICAgJExheW91dE9iamVjdC0+e0hhc0RhdGVwaWNrZXJ9ID0gMTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdSZWZlcmVuY2UnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgZGVmaW5lIHN0YXR1cyBsaXN0CiAgICBteSAlU3RhdHVzTGlzdCA9ICgKICAgICAgICAxID0+ICd2YWxpZCcsCiAgICAgICAgMCA9PiAnaW52YWxpZCcsCiAgICApOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZmlsbCB1cCB0aGUgY2FsZW5kYXIgbGlzdAogICAgbXkgJENhbGVuZGFyTGlzdFJlZiA9IHsgMCA9PiAnRGVmYXVsdCcgfTsKICAgIG15ICRDYWxlbmRhckluZGV4ID0gMTsKICAgIHdoaWxlICggJENvbmZpZ09iamVjdC0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICRDYWxlbmRhckluZGV4IC4gIk5hbWUiICkgKSB7CiAgICAgICAgJENhbGVuZGFyTGlzdFJlZi0+eyRDYWxlbmRhckluZGV4fSA9ICRDb25maWdPYmplY3QtPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAkQ2FsZW5kYXJJbmRleCAuICJOYW1lIiApOwogICAgICAgICRDYWxlbmRhckluZGV4Kys7CiAgICB9CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyBnZXQgdXNlciBkYXRhCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAkUGFyYW17Q2FsZW5kYXJPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gJENhbGVuZGFyTGlzdFJlZiwKICAgICAgICBOYW1lICAgICAgICA9PiAnQ2FsZW5kYXInLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJEdldFBhcmFte0NhbGVuZGFyfSB8fCAkVXNlckRhdGF7Q2FsZW5kYXJ9IHx8IDAsCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRQYXJhbXtEZXNjcmlwdGlvbn0gPSAkR2V0UGFyYW17RGVzY3JpcHRpb259IHx8ICRVc2VyRGF0YXtEZXNjcmlwdGlvbn0gfHwgJyc7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGVVc2VyJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgPT4gKCAkR2V0UGFyYW17U2hvd092ZXJ0aW1lfSB8fCAkVXNlckRhdGF7U2hvd092ZXJ0aW1lfSApCiAgICAgICAgICAgID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJwogICAgICAgICAgICA6ICcnLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+ICggJEdldFBhcmFte0NyZWF0ZVByb2plY3R9IHx8ICRVc2VyRGF0YXtDcmVhdGVQcm9qZWN0fSApCiAgICAgICAgICAgID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJwogICAgICAgICAgICA6ICcnLAogICAgICAgICAgICB9CiAgICApOwoKICAgICMgc2hvd3MgaGVhZGVyCiAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdFZGl0VXNlcicgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckVkaXRVc2VyJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckFkZFVzZXInLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGlmIHRoZXJlIGFyZSBlcnJvcnMgdG8gc2hvdwogICAgaWYgKCAkUGFyYW17RXJyb3JzfSAmJiAleyAkUGFyYW17RXJyb3JzfSB9ICkgewoKICAgICAgICAjIHNob3cgYWxsIGV4aXN0aW5nIHBlcmlvZHMKICAgICAgICBmb3IgKCBteSAkUGVyaW9kID0gMTsgJFBlcmlvZCA8PSAkUGFyYW17UGVyaW9kc307ICRQZXJpb2QrKyApIHsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMgV2Vla2x5SG91cnMgT3ZlcnRpbWUgUGVyaW9kU3RhdHVzICkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICIkUGFyYW1ldGVyXFskUGVyaW9kXF0iICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRQYXJhbXskUGVyaW9kfXtQZXJpb2RTdGF0dXNPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte1BlcmlvZFN0YXR1c30gfHwgJFBhcmFteyRQZXJpb2R9e1BlcmlvZFN0YXR1c30sCiAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICJQZXJpb2RTdGF0dXNbJFBlcmlvZF0iLAogICAgICAgICAgICAgICAgSUQgICAgICAgICA9PiAiUGVyaW9kU3RhdHVzLSRQZXJpb2QiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlBlcmlvZCBTdGF0dXMiKSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZE92ZXJ2aWV3Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgICAgICAgPT4gJFBlcmlvZCwKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnRJbnZhbGlkID0+ICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfQogICAgICAgICAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kSW52YWxpZCA9PiAkUGFyYW17RXJyb3JzfS0+eyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9IHx8ICcnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5c0ludmFsaWQgPT4gJFBhcmFte0Vycm9yc30tPnsgJ0xlYXZlRGF5cy0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9CiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgICAgICAgICA9PiAkR2V0UGFyYW17RGF0ZVN0YXJ0fSwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICAgICAgICAgPT4gJEdldFBhcmFte0RhdGVFbmR9LAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgICAgICAgICA9PiAkR2V0UGFyYW17TGVhdmVEYXlzfSwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyAgICAgICAgPT4gJEdldFBhcmFte1dlZWtseUhvdXJzfSwKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICAgICAgICAgPT4gJEdldFBhcmFte092ZXJ0aW1lfSwKICAgICAgICAgICAgICAgICAgICBQZXJpb2RTdGF0dXNPcHRpb24gPT4gJFBhcmFteyRQZXJpb2R9e1BlcmlvZFN0YXR1c09wdGlvbn0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdEYXRlU3RhcnQnCiAgICAgICAgICAgICAgICAgICAgLiAoCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte0Vycm9yc30tPnsgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJ01pc3NpbmdWYWx1ZScKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7IFBlcmlvZCA9PiAkUGVyaW9kIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRGF0ZUVuZCcKICAgICAgICAgICAgICAgICAgICAuICggJFBhcmFte0Vycm9yc30tPnsgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9IHx8ICdNaXNzaW5nVmFsdWUnICksCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgUGVyaW9kID0+ICRQZXJpb2QgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBteSAlVXNlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U2luZ2xlVXNlclNldHRpbmdzR2V0KAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IHVzZXIgZGF0YQogICAgICAgIGlmICglVXNlcikgewogICAgICAgICAgICBteSAkTGFzdFBlcmlvZE51bWJlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGZvciAoIG15ICRQZXJpb2QgPSAxOyAkUGVyaW9kIDw9ICRMYXN0UGVyaW9kTnVtYmVyOyAkUGVyaW9kKysgKSB7CiAgICAgICAgICAgICAgICBteSAlUGVyaW9kUGFyYW0gPSAoKTsKCiAgICAgICAgICAgICAgICAjIGdldCBhbGwgbmVlZGVkIGRhdGEgdG8gZGlzcGxheQogICAgICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERhdGVTdGFydCBEYXRlRW5kIExlYXZlRGF5cyBXZWVrbHlIb3VycyBPdmVydGltZSkpIHsKICAgICAgICAgICAgICAgICAgICAkUGVyaW9kUGFyYW17JFBhcmFtZXRlcn0gPSAkVXNlcnskUGVyaW9kfXskUGFyYW1ldGVyfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQZXJpb2RQYXJhbXtQZXJpb2R9ID0gJFBlcmlvZDsKCiAgICAgICAgICAgICAgICAkUGVyaW9kUGFyYW17UGVyaW9kU3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgPT4gXCVTdGF0dXNMaXN0LAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJFVzZXJ7JFBlcmlvZH17VXNlclN0YXR1c30sCiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAiUGVyaW9kU3RhdHVzWyRQZXJpb2RdIiwKICAgICAgICAgICAgICAgICAgICBJRCAgICAgICAgID0+ICJQZXJpb2RTdGF0dXMtJFBlcmlvZCIsCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlBlcmlvZCBTdGF0dXMiKSwKICAgICAgICAgICAgICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RPdmVydmlld1JvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiBcJVBlcmlvZFBhcmFtLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUGVyaW9kT3ZlcnZpZXdSb3dOb0RhdGEnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nVmlldzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRlOjpQY2FsYyBxdyhUb2RheSBEYXlzX2luX01vbnRoIERheV9vZl9XZWVrIEFkZF9EZWx0YV9ZTUQgY2hlY2tfZGF0ZSk7CnVzZSBUaW1lOjpMb2NhbDsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQE1vbnRoQXJyYXkgPSAoCiAgICAgICAgJycsICAgICAnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICAgICAnQXByaWwnLCAgICdNYXknLAogICAgICAgICdKdW5lJywgJ0p1bHknLCAgICAnQXVndXN0JywgICAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLAogICAgICAgICdEZWNlbWJlcicsCiAgICApOwogICAgbXkgQFdlZWtkYXlBcnJheSA9ICggJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0JywgJ1N1bicsICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdmlldyBvbGRlciBkYXkgaW5zZXJ0cwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHBhcmFtcwogICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERheSBNb250aCBZZWFyIFVzZXJJRCkpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoRGF5IE1vbnRoIFllYXIpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVmlldzogTmVlZCAkTmVlZGVkIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBmb3JtYXQgdGhlIGRhdGUgcGFydHMKICAgICRQYXJhbXtZZWFyfSAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtZZWFyfSApOwogICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgJFBhcmFte0RheX0gICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte0RheX0gKTsKCiAgICAjIGlmIG5vIFVzZXJJRCBwb3N0ZWQgdXNlIHRoZSBjdXJyZW50IHVzZXIKICAgICRQYXJhbXtVc2VySUR9IHx8PSAkU2VsZi0+e1VzZXJJRH07CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICAjIGdldCBjdXJyZW50IGRhdGUgYW5kIHRpbWUKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgKTsKCiAgICBteSAkTWF4QWxsb3dlZEluc2VydERheXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhBbGxvd2VkSW5zZXJ0RGF5cycpIHx8ICcxMCc7CiAgICAoICRQYXJhbXtZZWFyQWxsb3dlZH0sICRQYXJhbXtNb250aEFsbG93ZWR9LCAkUGFyYW17RGF5QWxsb3dlZH0gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFllYXIsICRNb250aCwgJERheSwgMCwgMCwgLSRNYXhBbGxvd2VkSW5zZXJ0RGF5cyApOwoKICAgICMgcmVkaXJlY3QgdG8gdGhlIGVkaXQgc2NyZWVuLCBpZiBuZWNlc3NhcnkKICAgIGlmICgKICAgICAgICB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApID4gdGltZWxvY2FsKAogICAgICAgICAgICAxLCAwLCAwLCAkUGFyYW17RGF5QWxsb3dlZH0sCiAgICAgICAgICAgICRQYXJhbXtNb250aEFsbG93ZWR9IC0gMSwKICAgICAgICAgICAgJFBhcmFte1llYXJBbGxvd2VkfSAtIDE5MDAKICAgICAgICApICYmICRQYXJhbXtVc2VySUR9ID09ICRTZWxmLT57VXNlcklEfQogICAgICAgICkKICAgIHsKCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgIkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9O0RheT0kUGFyYW17RGF5fSIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgdGhlIG5hbWluZyBvZiB0aGUgYWdlbnQgd2hpY2ggdGltZSBhY2NvdW50aW5nIGlzIHZpc2l0ZWQKICAgIGlmICggJFBhcmFte1VzZXJJRH0gIT0gJFNlbGYtPntVc2VySUR9ICkgewogICAgICAgIG15ICVTaG93blVzZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMQogICAgICAgICk7CiAgICAgICAgJFBhcmFte1VzZXJ9ID0gJFNob3duVXNlcnN7ICRQYXJhbXtVc2VySUR9IH07CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte1dlZWtkYXl9ICAgICAgICAgPSBEYXlfb2ZfV2VlayggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSApOwogICAgJFBhcmFte1dlZWtkYXlfdG9fVGV4dH0gPSAkV2Vla2RheUFycmF5WyAkUGFyYW17V2Vla2RheX0gLSAxIF07CiAgICAkUGFyYW17TW9udGhfdG9fVGV4dH0gICA9ICRNb250aEFycmF5WyAkUGFyYW17TW9udGh9IF07CgogICAgIyBWYWx1ZXMgZm9yIHRoZSBsaW5rIGljb25zIDw+CiAgICAoICRQYXJhbXtZZWFyQmFja30sICRQYXJhbXtNb250aEJhY2t9LCAkUGFyYW17RGF5QmFja30gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSwgMCwgMCwgLTEgKTsKICAgICggJFBhcmFte1llYXJOZXh0fSwgJFBhcmFte01vbnRoTmV4dH0sICRQYXJhbXtEYXlOZXh0fSApCiAgICAgICAgPSBBZGRfRGVsdGFfWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9LCAwLCAwLCAxICk7CgogICAgJFBhcmFte0RhdGVTZWxlY3Rpb259ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBQcmVmaXggICA9PiAnJywKICAgICAgICBGb3JtYXQgICA9PiAnRGF0ZUlucHV0Rm9ybWF0JywKICAgICAgICBWYWxpZGF0ZSA9PiAxLAogICAgICAgIENsYXNzICAgID0+ICRQYXJhbXtFcnJvcnN9LT57RGF0ZUludmFsaWR9LAogICAgKTsKCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIFNob3cgV29ya2luZyBVbml0cwogICAgIyBnZXQgZXhpc3Rpbmcgd29ya2luZyB1bml0cwogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICRQYXJhbXtEYXRlfSA9ICREYXRhe0RhdGV9OwoKICAgICMgZ2V0IHByb2plY3QgYW5kIGFjdGlvbiBzZXR0aW5ncwogICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbiAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgIyBnZXQgc2ljaywgbGVhdmUgZGF5IGFuZCBvdmVydGltZQogICAgJFBhcmFte1NpY2t9ICAgICA9ICREYXRhe1NpY2t9ICAgICA/ICdjaGVja2VkJyA6ICcnOwogICAgJFBhcmFte0xlYXZlRGF5fSA9ICREYXRhe0xlYXZlRGF5fSA/ICdjaGVja2VkJyA6ICcnOwogICAgJFBhcmFte092ZXJ0aW1lfSA9ICREYXRhe092ZXJ0aW1lfSA/ICdjaGVja2VkJyA6ICcnOwoKICAgICMgb25seSBzaG93IHRoZSB1bml0IGJsb2NrIGlmIHRoZXJlIGlzIHNvbWUgZGF0YQogICAgbXkgJFVuaXRzUmVmID0gJERhdGF7V29ya2luZ1VuaXRzfTsKICAgIGlmICggJFVuaXRzUmVmLT5bMF0gKSB7CgogICAgICAgIGZvciBteSAkVW5pdFJlZiAoIEB7JFVuaXRzUmVmfSApIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVW5pdCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgPT4gJFByb2plY3R7UHJvamVjdH17ICRVbml0UmVmLT57UHJvamVjdElEfSB9LAogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgICA9PiAkQWN0aW9ueyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICRVbml0UmVmLT57UmVtYXJrfSwKICAgICAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJFVuaXRSZWYtPntTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgICAgIEVuZFRpbWUgICA9PiAkVW5pdFJlZi0+e0VuZFRpbWV9LAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAkVW5pdFJlZi0+e1BlcmlvZH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUb3RhbCA9PiBzcHJpbnRmKCAiJS4yZiIsICREYXRhe1RvdGFsfSApLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17U2lja30gfHwgJFBhcmFte0xlYXZlRGF5fSB8fCAkUGFyYW17T3ZlcnRpbWV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdGhlclRpbWVzJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBTaWNrICAgICA9PiAkUGFyYW17U2lja30sCiAgICAgICAgICAgICAgICBMZWF2ZURheSA9PiAkUGFyYW17TGVhdmVEYXl9LAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgPT4gJFBhcmFte092ZXJ0aW1lfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRWYWNhdGlvbiA9ICRUaW1lT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIENhbGVuZGFyID0+ICRVc2VyRGF0YXtDYWxlbmRhcn0sCiAgICApOwoKICAgIGlmICgkVmFjYXRpb24pIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVmFjYXRpb24nLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFZhY2F0aW9uID0+ICRWYWNhdGlvbiwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgcHJlc2VudGF0aW9uCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICdWaWV3JywKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMgQ29tbW9uClslIFRyYW5zbGF0ZSgiVGltZSBBY2NvdW50aW5nIikgfCBodG1sICVdClslIFRyYW5zbGF0ZSgiU2hvdyB2YWxpZCBwcm9qZWN0cyIpIHwgaHRtbCAlXQpbJSBUcmFuc2xhdGUoIlNob3cgYWxsIHByb2plY3RzIikgfCBodG1sICVdClslIFRyYW5zbGF0ZSgiVGltZUFjY291bnRpbmciKSB8IGh0bWwgJV0KWyUgVHJhbnNsYXRlKCJSZXBvcnRpbmciKSB8IGh0bWwgJV0KWyUgVHJhbnNsYXRlKCJQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEiKSB8IGh0bWwgJV0KWyUgVHJhbnNsYXRlKCJTdWNjZXNzZnVsIGluc2VydCEiKSB8IGh0bWwgJV0KWyUgVHJhbnNsYXRlKCJFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhIikgfCBodG1sICVdClslIFRyYW5zbGF0ZSgiU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhIikgfCBodG1sICVdClslIFRyYW5zbGF0ZSgiRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5LiIpIHwgaHRtbCAlXQpbJSBUcmFuc2xhdGUoIkxhc3QgU2VsZWN0ZWQgUHJvamVjdHMuIikgfCBodG1sICVdClslIFRyYW5zbGF0ZSgiQWxsIFByb2plY3RzLiIpIHwgaHRtbCAlXQo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIFczMDBweCI+CiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJZZWFyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuWWVhciB8IGh0bWwgJV0KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJNb250aCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5Nb250aCkgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiRGF5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuRGF5IHwgaHRtbCAlXQogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8cCBjbGFzcz0iU3BhY2luZ1RvcCBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/IikgfCBodG1sICVdCjwvcD4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIFJlY29yZCIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdPdmVydmlldztZZWFyPVslIERhdGEuWWVhciB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgdXJpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ3JlYXRlUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWdlYXIiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ3JlYXRlUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXRlIE5hdmlnYXRpb24iKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJNb250aFNlbGVjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQcmV2aW91cyBkYXkiKSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyQmFjayB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoQmFjayB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXlCYWNrIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5ZZWFyIHwgaHRtbCAlXS1bJSBEYXRhLk1vbnRoIHwgaHRtbCAlXS1bJSBEYXRhLkRheSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5leHQgZGF5IikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV07RGF5PVslIERhdGEuRGF5TmV4dCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJWYWxpZGF0ZSIgbmFtZT0iRGF0ZVNlbGVjdGlvbiIgaWQ9IkRhdGVTZWxlY3Rpb25Gb3JtIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkVkaXQiIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRlICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTmF2aWdhdGlvblNlbGVjdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gU3BhY2luZ1RvcFNtYWxsIEZ1bGxzaXplIENlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byB0aGlzIGRhdGUiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2E+ClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiQoJyNOYXZpZ2F0aW9uU2VsZWN0JykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpewogICAgJCgnI0RhdGVTZWxlY3Rpb25Gb3JtJykuc3VibWl0KCk7Cn0pOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNvbXBsZXRlV29ya2luZ0RheXMiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXlzIHdpdGhvdXQgZW50cmllcyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIFslIERhdGEuSW5jb21wbGV0ZVdvcmtpbmdEYXlzU2VsZWN0ICVdClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICAkKCcjSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCcpLnVuYmluZCgnY2hhbmdlLkluY29tcGxldGVXb3JraW5nRGF5cycpLmJpbmQoJ2NoYW5nZS5JbmNvbXBsZXRlV29ya2luZ0RheXMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIERhdGUgPSAkKHRoaXMpLnZhbCgpLnNwbGl0KCctJyk7CiAgICAgICAgaWYgKERhdGVbMF0gJiYgRGF0ZVsxXSAmJiBEYXRlWzJdKSB7CiAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSAiWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj0iICsgRGF0ZVswXSArICI7TW9udGg9IiArIERhdGVbMV0gKyAiO0RheT0iICsgRGF0ZVsyXTsKICAgICAgICB9CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkluY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeSIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRheXMgd2l0aG91dCBlbnRyaWVzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJJbmNvbXBsZXRlV29ya2luZ0RheXMiPgogICAgICAgICAgICAgICAgICAgIDxsaSBpZD0iU2VsZWN0QWxsRGF5cyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iSW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsIiBuYW1lPSJJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwiIC8+PGxhYmVsIGZvcj0iSW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsIj48ZW0+WyUgVHJhbnNsYXRlKCJTZWxlY3QgYWxsIGRheXMiKSB8IGh0bWwgJV08L2VtPjwvbGFiZWw+PC9saT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzTWFzc0VudHJ5U2luZ2xlRGF5IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iSW5jb21wbGV0ZVdvcmtpbmdEYXktWyUgRGF0YS5EYXRlIHwgaHRtbCAlXSIgbmFtZT0iSW5jb21wbGV0ZVdvcmtpbmdEYXktWyUgRGF0YS5EYXRlIHwgaHRtbCAlXSIgLz48bGFiZWwgZm9yPSJJbmNvbXBsZXRlV29ya2luZ0RheS1bJSBEYXRhLkRhdGUgfCBodG1sICVdIj5bJSBEYXRhLkRhdGUgfCBodG1sICVdPC9sYWJlbD4gLSA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhciB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgdXJpICVdO0RheT1bJSBEYXRhLkRheSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJFZGl0IikgfCBodG1sICVdPC9hPjwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXkiKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBpZD0iTWFzc0VudHJ5IiBuYW1lPSJNYXNzRW50cnkiIGNsYXNzPSJTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9Ik1hc3NFbnRyeSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJEYXRlcyIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJMZWF2ZURheSIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTaWNrIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ0aW1lIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJNYXNzRW50cnlTdWJtaXQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlLW8iPiA8L2k+WyUgVHJhbnNsYXRlKCJNYXNzIGVudHJ5IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1hc3NFbnRyeUNvbmZpcm1EaWFsb2ciIGNsYXNzPSJIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlBsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyIpIHwgaHRtbCAlXS48L2gyPgogICAgICAgICAgICAgICAgICAgIDx1bCBpZD0iTWFzc0VudHJ5Q29uZmlybVJhZGlvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJMZWF2ZURheSIgbmFtZT0iQWJzZW5jZVtdIiBpZD0iQ29uZmlybUxlYXZlRGF5IiAvPjxsYWJlbCBmb3I9IkNvbmZpcm1MZWF2ZURheSI+WyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXTwvbGFiZWw+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJTaWNrIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtU2ljayIgLz48bGFiZWwgZm9yPSJDb25maXJtU2ljayI+WyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9InJhZGlvIiBkYXRhLWFic2VuY2U9Ik92ZXJ0aW1lIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtT3ZlcnRpbWUiIC8+PGxhYmVsIGZvcj0iQ29uZmlybU92ZXJ0aW1lIj5bJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKLypnbG9iYWwgVGltZUFjY291bnRpbmc6IHRydWUgKi8KICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5NYXNzRW50cnlJbml0KHsKICAgICAgICBNc2dDaG9vc2VPbmVEYXk6ICAgIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISIpIHwgSlNPTiAlXSwKICAgICAgICBNc2dBYnNlbmNlUmVhc29uOiAgIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEiKSB8IEpTT04gJV0sCiAgICAgICAgTWFzc0VudHJ5OiAgICAgICAgICBbJSBUcmFuc2xhdGUoIk1hc3MgRW50cnkiKSB8IEpTT04gJV0sCiAgICAgICAgU3VibWl0OiAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgSlNPTiAlXSwKICAgICAgICBDYW5jZWw6ICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBKU09OICVdCiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzTWFzc0VudHJ5IikgJV0KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUmVmZXJlbmNlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhIFwiKlwiLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXRlIikgfCBodG1sICVdOiBbJSBUcmFuc2xhdGUoRGF0YS5XZWVrZGF5X3RvX1RleHQpIHwgaHRtbCAlXSBbJSBEYXRhLlllYXIgfCBodG1sICVdLVslIERhdGEuTW9udGggfCBodG1sICVdLVslIERhdGEuRGF5IHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50IEhvcml6b250YWxTY3JvbGwiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IldvcmtpbmdVbml0cyIgaWQ9IldvcmtpbmdVbml0cyIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iRWRpdCIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJSZWNvcmRzTnVtYmVyIiBpZD0iUmVjb3Jkc051bWJlciIgdmFsdWU9IlslIERhdGEuUmVjb3Jkc051bWJlciB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3RhdHVzIiB2YWx1ZT0iQWN0aW9uIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlllYXIiIHZhbHVlPSJbJSBEYXRhLlllYXIgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1vbnRoIiB2YWx1ZT0iWyUgRGF0YS5Nb250aCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRGF5IiB2YWx1ZT0iWyUgRGF0YS5EYXkgfCBodG1sICVdIiAvPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0QmxvY2siKSAlXQogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIgSGlnaENlbGxzIiBpZD0iSW5zZXJ0V29ya2luZ0hvdXJzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlByb2plY3QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlJlbWFyayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhcnQiKSB8IGh0bWwgJV0gKEhIOk1NKTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRW5kIikgfCBodG1sICVdIChISDpNTSk8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj5bJSBEYXRhLlBlcmlvZE5vdGUgfCBodG1sICVdPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlBlcmlvZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJXb3JraW5nSG91cnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0T3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RJRFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0SURbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ29tYm9fUHJvamVjdElEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbWJvX1Byb2plY3RJRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkFjdGlvbk9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb21ib19BY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb21ib19BY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUmVtYXJrW1slIERhdGEuSUQgfCBodG1sICVdXSIgaWQ9IlJlbWFya1slIERhdGEuSUQgfCBodG1sICVdIiBjbGFzcz0iVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUmVtYXJrIFslIERhdGEuUmVtYXJrSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLlJlbWFyayB8IGh0bWwgJV0iIHNpemU9IjM1IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1hcmsiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJlbWFya1slIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlBsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzIS4iKSB8IGh0bWwgJV08L3A+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+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwovKmdsb2JhbCBUaW1lQWNjb3VudGluZzogdHJ1ZSAqLwogICAgVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLkFjdGlvbkxpc3QgPSBbJSBEYXRhLkpTQWN0aW9uTGlzdCB8IGh0bWwgJV07CiAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuQWN0aW9uTGlzdENvbnN0cmFpbnRzID0gWyUgRGF0YS5KU0FjdGlvbkxpc3RDb25zdHJhaW50cyB8IGh0bWwgJV07CiAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuSW5pdCh7CiAgICAgICAgUmVtYXJrUmVnRXhwQ29udGVudDogIlslIERhdGEuUmVtYXJrUmVnRXhwIHwgaHRtbCAlXSIsCiAgICAgICAgTGFuZ3VhZ2U6IHsKICAgICAgICAgICAgU2hvd0FsbEl0ZW1zOiBbJSBUcmFuc2xhdGUoIlNob3cgYWxsIGl0ZW1zIikgfCBKU09OICVdLAogICAgICAgICAgICBQcm9qZWN0VGl0bGU6IFslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgSlNPTiAlXSwKICAgICAgICAgICAgVGFza1RpdGxlOiBbJSBUcmFuc2xhdGUoIlRhc2siKSB8IEpTT04gJV0KICAgICAgICB9CiAgICB9KTsKICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5CaW5kQ29uZmlybWF0aW9uRGlhbG9nKHsKICAgICAgICBFbGVtZW50SUQ6ICAgICAgICAgICAgICAgICAgJ0RlbGV0ZVRpbWVBY2NvdW50aW5nRW50cnknLAogICAgICAgIEVsZW1lbnRTZWxlY3RvcjogICAgICAgICAgICAnI0RlbGV0ZVRpbWVBY2NvdW50aW5nRW50cnknLAogICAgICAgIERpYWxvZ0NvbnRlbnRRdWVyeVN0cmluZzogICAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O0RlbGV0ZURpYWxvZz0xO1llYXI9WyUgRGF0YS5ZZWFyIHwgaHRtbCAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgaHRtbCAlXTtEYXk9WyUgRGF0YS5EYXkgfCBodG1sICVdJywKICAgICAgICBDb25maXJtZWRBY3Rpb25RdWVyeVN0cmluZzogJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDtTdWJhY3Rpb249RGVsZXRlO1llYXI9WyUgRGF0YS5ZZWFyIHwgaHRtbCAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgaHRtbCAlXTtEYXk9WyUgRGF0YS5EYXkgfCBodG1sICVdJywKICAgICAgICBEaWFsb2dUaXRsZTogICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5IikgfCBKU09OICVdLAogICAgICAgIFRyYW5zbGF0ZWRUZXh0OiAgICAgICAgICAgICB7CiAgICAgICAgICAgIFllczogWyUgVHJhbnNsYXRlKCJZZXMiKSB8IEpTT04gJV0sCiAgICAgICAgICAgIE5vOiAgWyUgVHJhbnNsYXRlKCJObyIpIHwgSlNPTiAlXQogICAgICAgIH0KICAgIH0pOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlNob3dDb25maXJtYXRpb24iKSAlXQpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgLy8gZGVmaW5lIHllcyBhbmQgbm8gYnV0dG9ucwogICAgdmFyIEJ1dHRvbnMgPSBbewogICAgICAgIExhYmVsOiBbJSBUcmFuc2xhdGUoIlllcyIpIHwgSlNPTiAlXSwKICAgICAgICBDbGFzczogIlByaW1hcnkiLAogICAgICAgIFR5cGU6ICJDbG9zZSIsCiAgICAgICAgfSwgewogICAgICAgIExhYmVsOiBbJSBUcmFuc2xhdGUoIk5vIikgfCBKU09OICVdLAoKICAgICAgICAvLyBkZWZpbmUgdGhlIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlICdObycgYnV0dG9uIGlzIHByZXNzZWQKICAgICAgICBGdW5jdGlvbjogZnVuY3Rpb24oKXsKCiAgICAgICAgICAgIC8vIGRpc2FibGUgWWVzIGFuZCBObyBidXR0b25zIHRvIHByZXZlbnQgbXVsdGlwbGUgc3VibWl0cwogICAgICAgICAgICAkKCdkaXYuRGlhbG9nOnZpc2libGUgZGl2LkNvbnRlbnRGb290ZXIgYnV0dG9uJykuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTsKCiAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIHRoZSBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSBzYXZlZCBlbnRyeSBhZnRlciBwcmVzc2luZyB0aGUgTm8gYnV0dG9uCiAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJykgKyAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O1N1YmFjdGlvbj1EZWxldGU7WWVhcj1bJSBEYXRhLlllYXIgfCBodG1sICVdO01vbnRoPVslIERhdGEuTW9udGggfCBodG1sICVdO0RheT1bJSBEYXRhLkRheSB8IGh0bWwgJV0nOwogICAgICAgIH0KICAgIH1dOwogICAgLy8gc2hvdyB0aGUgY29uZmlybWF0aW9uIGRpYWxvZyB0byBjb25maXJtIHRoZSBhY3Rpb24KICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCQoJyNbJSBEYXRhLkJsb2NrTmFtZSB8IGh0bWwgJV0nKSwgWyUgVHJhbnNsYXRlKCJDb25maXJtIGluc2VydCIpIHwgSlNPTiAlXSwgJzIwJScsICdDZW50ZXInLCB0cnVlLCBCdXR0b25zKTsKCi8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiU2hvd0NvbmZpcm1hdGlvbiIpICVdCgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KCjxwIGlkPSJTaWNrTGVhdmVNZXNzYWdlIiBjbGFzcz0iSGlkZGVuIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8iKSB8IGh0bWwgJV0KPC9wPgoKPHAgaWQ9IlZhY2F0aW9uTWVzc2FnZSIgY2xhc3M9IkhpZGRlbiBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyIpIHwgaHRtbCAlXQo8L3A+Cgo8cCBpZD0iT3ZlcnRpbWVNZXNzYWdlIiBjbGFzcz0iSGlkZGVuIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/IikgfCBodG1sICVdCjwvcD4KCjxwIGlkPSJNb3JlMTZIb3Vyc01lc3NhZ2UiIGNsYXNzPSJIaWRkZW4gQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/IikgfCBodG1sICVdCjwvcD4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIj4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlRpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXciKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyTGFzdCI+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+CjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwokKCcuTWFzdGVyQWN0aW9uJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgIHZhciAkTWFzdGVyQWN0aW9uTGluayA9ICQodGhpcykuZmluZCgnLk1hc3RlckFjdGlvbkxpbmsnKTsKICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJE1hc3RlckFjdGlvbkxpbmsuYXR0cignaHJlZicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiVGltZSByZXBvcnRpbmciKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZShEYXRhLk1vbnRoX3RvX1RleHQpIHwgaHRtbCAlXSBbJSBEYXRhLlllYXIgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJNb250aCBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTW9udGhTZWxlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyBMZWZ0IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQcmV2aW91cyBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJCYWNrIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhCYWNrIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJOZXh0IG1vbnRoIikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5bJSBUcmFuc2xhdGUoRGF0YS5Nb250aF90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyICVdPC9zdHJvbmc+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJjb21wb3NlIiBpZD0iRGF0ZVNlbGVjdGlvbkZvcm0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgICAgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iUmVwb3J0aW5nIiAvPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuTW9udGhPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlllYXJPcHRpb24gJV0KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJOYXZpZ2F0aW9uU2VsZWN0IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCIgYWNjZXNza2V5PSJnIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtYXJyb3ctY2lyY2xlLW8tcmlnaHQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIGRhdGUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwokKCcjTmF2aWdhdGlvblNlbGVjdCcpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICQoJyNEYXRlU2VsZWN0aW9uRm9ybScpLnN1Ym1pdCgpOwp9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJVc2VyIHJlcG9ydHMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBIb3Jpem9udGFsU2Nyb2xsIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyVGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZCBjbGFzcz0iVHdvUm93cyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIiIGNvbHNwYW49IjQiPlslIFRyYW5zbGF0ZSgiTW9udGhseSB0b3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNlbnRlciIgY29sc3Bhbj0iMiI+WyUgVHJhbnNsYXRlKCJMaWZldGltZSB0b3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV29ya2luZyBIb3VycyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJPdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTaWNrIGxlYXZlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhY2F0aW9uIHJlbWFpbmluZyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9Ik1hc3RlckFjdGlvblVzZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLldvcmtpbmdIb3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5PdmVydGltZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5MZWF2ZURheSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5TaWNrIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLk92ZXJ0aW1lVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuTGVhdmVEYXlSZW1haW5pbmcgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyR3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbFdvcmtpbmdIb3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsT3ZlcnRpbWUgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbExlYXZlRGF5IHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxTaWNrIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxPdmVydGltZVRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxMZWF2ZURheVJlbWFpbmluZyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlckdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXJUYWJsZSIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0cyIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJbJSBEYXRhLlByb2plY3RTdGF0dXNMaW5rQ2xhc3MgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07UHJvamVjdFN0YXR1c1Nob3c9WyUgRGF0YS5Qcm9qZWN0U3RhdHVzU2hvdyB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIChbJSBUcmFuc2xhdGUoRGF0YS5TaG93UHJvamVjdHMpIHwgaHRtbCAlXSkKICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIChtb250aGx5KSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAoTGlmZXRpbWUpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iIGRhdGEtcHJvamVjdC1pZD0iWyUgRGF0YS5Qcm9qZWN0SUQgfCBodG1sJV0iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCByb3dzcGFuPSJbJSBEYXRhLlJvd1NwYW4gJV0iIGNsYXNzPSJSb3dTcGFuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPjxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1SZXBvcnRpbmdQcm9qZWN0O1Byb2plY3RJRD1bJSBEYXRhLlByb2plY3RJRCB8IHVyaSAlXSIgY2xhc3M9IlslIERhdGEuQ2xhc3MgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJvamVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPjwvc3Ryb25nPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0RGVzY3JpcHRpb24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+WyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnMgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Ib3Vyc1RvdGFsIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25Ub3RhbCIpICVdClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb24iKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0R3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJHcmFuZFRvdGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJHcmFuZCB0b3RhbCIpIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdEdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3RUYWJsZSIpICVdCgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKJCgnLk1hc3RlckFjdGlvbicpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICB2YXIgJE1hc3RlckFjdGlvbkxpbmsgPSAkKHRoaXMpLnBhcmVudHMoKS5maW5kKCcuTWFzdGVyQWN0aW9uTGluaycgKyAkKHRoaXMpLmF0dHIoJ2RhdGEtcHJvamVjdC1pZCcpKTsKICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJE1hc3RlckFjdGlvbkxpbmsuYXR0cignaHJlZicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfSk7CiQoJy5NYXN0ZXJBY3Rpb25Vc2VyJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgIHZhciAkTWFzdGVyQWN0aW9uTGluayA9ICQodGhpcykuZmluZCgnLk1hc3RlckFjdGlvbkxpbmsnKTsKICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJE1hc3RlckFjdGlvbkxpbmsuYXR0cignaHJlZicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfSk7CgovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiUHJvamVjdCByZXBvcnQiKSB8IGh0bWwgJV06IFslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+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
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDE+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+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkVGFzayIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZFVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFVzZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmV3VXNlck9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiTmV3IHVzZXIiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS11c2VyIj48L2k+WyUgVHJhbnNsYXRlKCJOZXcgdXNlciIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlld1NldHRpbmciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXdTZXR0aW5nIikgJV0KCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3RTZXR0aW5nIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RGaWx0ZXIiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+PGxhYmVsIGZvcj0iRmlsdGVyUHJvamVjdHMiPlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBQcm9qZWN0cyIpIHwgaHRtbCAlXTwvbGFiZWw+PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJGaWx0ZXJQcm9qZWN0cyIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9Ikp1c3Qgc3RhcnQgdHlwaW5nIHRvIGZpbHRlci4uLiIgbmFtZT0iRmlsdGVyUHJvamVjdHMiIHZhbHVlPSIiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgUHJvamVjdHMiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdEZpbHRlciIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUYXNrRmlsdGVyIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPjxsYWJlbCBmb3I9IkZpbHRlclRhc2tzIj5bJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgVGFza3MiKSB8IGh0bWwgJV08L2xhYmVsPjwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRmlsdGVyVGFza3MiIGNsYXNzPSJGaWx0ZXJCb3giIHBsYWNlaG9sZGVyPSJKdXN0IHN0YXJ0IHR5cGluZyB0byBmaWx0ZXIuLi4iIG5hbWU9IkZpbHRlclRhc2tzIiB2YWx1ZT0iIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIFRhc2tzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRhc2tGaWx0ZXIiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlckZpbHRlciIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj48bGFiZWwgZm9yPSJGaWx0ZXJVc2VycyI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIFVzZXJzIikgfCBodG1sICVdPC9sYWJlbD48L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkZpbHRlclVzZXJzIiBjbGFzcz0iRmlsdGVyQm94IiBwbGFjZWhvbGRlcj0iSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIiBuYW1lPSJGaWx0ZXJVc2VycyIgdmFsdWU9IiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBVc2VycyIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyRmlsdGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlJlZmVyZW5jZSIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUmVmZXJlbmNlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhIFwiKlwiLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJSZWZlcmVuY2UiKSAlXQoKICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFByb2plY3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj48YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUHJvamVjdCBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iUHJvamVjdHMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlN0YXR1cyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iRmlsdGVyTWVzc2FnZSBIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbJSBJRiBEYXRhLlN0YXR1cyA9PSAnaW52YWxpZCclXWNsYXNzPSJJbnZhbGlkIlslIEVORCAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUVkaXRQcm9qZWN0O0lEPVslIERhdGEuUHJvamVjdElEIHwgdXJpICVdIj5bJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgdGl0bGU9IlslIERhdGEuUHJvamVjdERlc2NyaXB0aW9uIHwgaHRtbCAlXSI+WyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gfCB0cnVuY2F0ZSg0MCkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5TdGF0dXMpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFByb2plY3RSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0VGFibGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdCIpICVdCgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgQ29yZS5VSS5UYWJsZS5Jbml0VGFibGVGaWx0ZXIoJCgnI0ZpbHRlclByb2plY3RzJyksICQoJyNQcm9qZWN0cycpKTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFNldHRpbmciKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj48YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVGFzayBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9TZXR0aW5nRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9TZXR0aW5nRGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iVGFza3MiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuU3RhdHVzID09ICdpbnZhbGlkJyVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249RWRpdFRhc2s7QWN0aW9uSUQ9WyUgRGF0YS5BY3Rpb25JRCB8IHVyaSAlXSI+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuU3RhdHVzKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nUm93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFNldHRpbmciKSAlXQoKWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgIENvcmUuVUkuVGFibGUuSW5pdFRhYmxlRmlsdGVyKCQoJyNGaWx0ZXJUYXNrcycpLCAkKCcjVGFza3MnKSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdVcGRhdGVUYXNrIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZGRUYXNrIikgJV0KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBUYXNrIikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFkZFRhc2siKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJFZGl0VGFzayIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFRhc2sgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRWRpdFRhc2siKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iVGFza1VwZGF0ZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXUFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uSUQiIHZhbHVlPSJbJSBEYXRhLkFjdGlvbklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRhc2siPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVGFzayIgaWQ9IlRhc2siIHZhbHVlPSJbJSBEYXRhLlRhc2sgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5UYXNrSW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRhc2tFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIlRhc2tNaXNzaW5nVmFsdWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGFza1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGFza01pc3NpbmdWYWx1ZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUYXNrRHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUYXNrU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJUYXNrRHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUYXNrU3RhdHVzIj5bJSBUcmFuc2xhdGUoIlN0YXR1cyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlN0YXR1c09wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgaWQ9IlN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSI+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1VwZGF0ZVRhc2siKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRVc2VyIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+PGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlVzZXIgTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFVzZXJUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlVzZXJzIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDYWxlbmRhciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iRmlsdGVyTWVzc2FnZSBIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFVzZXJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1FZGl0VXNlcjtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPlslIERhdGEuVXNlciB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkNvbW1lbnQgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLkNhbGVuZGFyKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRVc2VyUm93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0VXNlclRhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFVzZXIiKSAlXQoKWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgIENvcmUuVUkuVGFibGUuSW5pdFRhYmxlRmlsdGVyKCQoJyNGaWx0ZXJVc2VycycpLCAkKCcjVXNlcnMnKSk7CiAgICBDb3JlLlVJLkluaXRXaWRnZXRBY3Rpb25Ub2dnbGUoKTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZVVzZXIiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFkZFVzZXIiKSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTmV3IFVzZXIgU2V0dGluZ3MiKSB8IGh0bWwgJV06IFslIERhdGEuVXNlckZpcnN0bmFtZSB8IGh0bWwgJV0gWyUgRGF0YS5Vc2VyTGFzdG5hbWUgfCBodG1sICVdIChbJSBEYXRhLlVzZXJMb2dpbiB8IGh0bWwgJV0pPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFkZFVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJFZGl0VXNlciIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFVzZXIgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRWRpdFVzZXIiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iVXNlclVwZGF0ZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iWyUgRGF0YS5TdWJhY3Rpb24gfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlVzZXJJRCIgdmFsdWU9IlslIERhdGEuVXNlcklEIHwgaHRtbCAlXSIgLz4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOYW1lIj5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVmFsdWUiPlslIERhdGEuVXNlckZpcnN0bmFtZSB8IGh0bWwgJV0gWyUgRGF0YS5Vc2VyTGFzdG5hbWUgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5hbWUiPlslIFRyYW5zbGF0ZSgiVXNlcm5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVmFsdWUiPlslIERhdGEuVXNlckxvZ2luIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJEZXNjcmlwdGlvbiI+WyUgVHJhbnNsYXRlKCJDb21tZW50cyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgcm93cz0iMSIgbmFtZT0iRGVzY3JpcHRpb24iIGlkPSJEZXNjcmlwdGlvbiIgY29scz0iNDAiPlslIERhdGEuRGVzY3JpcHRpb24gJV08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJTaG93T3ZlcnRpbWUiIGlkPSJTaG93T3ZlcnRpbWUiIHZhbHVlPSIxIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IE92ZXJ0aW1lIikgfCBodG1sICVdIiBbJSBEYXRhLlNob3dPdmVydGltZSAlXSAvPlslIFRyYW5zbGF0ZSgiU2hvdyBPdmVydGltZSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJDcmVhdGVQcm9qZWN0IiBpZD0iQ3JlYXRlUHJvamVjdCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFsbG93IHByb2plY3QgY3JlYXRpb24iKSB8IGh0bWwgJV0iIFslIERhdGEuQ3JlYXRlUHJvamVjdCAlXSAvPlslIFRyYW5zbGF0ZSgiQWxsb3cgcHJvamVjdCBjcmVhdGlvbiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ2FsZW5kYXIiPlslIFRyYW5zbGF0ZSgiQ2FsZW5kYXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DYWxlbmRhck9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiUGVyaW9kIEJlZ2luIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJQZXJpb2QgRW5kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJEYXlzIG9mIFZhY2F0aW9uIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyBwZXIgV2VlayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQXV0aG9yaXplZCBPdmVydGltZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGVyaW9kT3ZlcnZpZXdSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJEYXRlU3RhcnQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBuYW1lPSJEYXRlU3RhcnRbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuRGF0ZVN0YXJ0IHwgaHRtbCAlXSIgY2xhc3M9IkRhdGVwaWNrZXJFbGVtZW50IFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuRGF0ZVN0YXJ0SW52YWxpZCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN0YXJ0IERhdGUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVTdGFydC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkRhdGVTdGFydEludmFsaWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlU3RhcnQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlU3RhcnRJbnZhbGlkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZVN0YXJ0TWlzc2luZ1ZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVTdGFydE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkRhdGVFbmRbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuRGF0ZUVuZCB8IGh0bWwgJV0iIGNsYXNzPSJEYXRlcGlja2VyRWxlbWVudCBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkRhdGVFbmRJbnZhbGlkIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRW5kIERhdGUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVFbmQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlRW5kSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVFbmQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlRW5kSW52YWxpZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkRhdGVFbmRNaXNzaW5nVmFsdWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlRW5kLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVFbmRNaXNzaW5nVmFsdWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlRW5kQmVmb3JlRGF0ZVN0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlRW5kQmVmb3JlRGF0ZVN0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJMZWF2ZURheXMtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBuYW1lPSJMZWF2ZURheXNbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuTGVhdmVEYXlzIHwgaHRtbCAlXSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuTGVhdmVEYXlzSW52YWxpZCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkxlYXZlIERheXMiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxlYXZlRGF5cy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxlYXZlRGF5cy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iV2Vla2x5SG91cnMtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBuYW1lPSJXZWVrbHlIb3Vyc1tbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5XZWVrbHlIb3VycyB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIldlZWtseSBIb3VycyIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJPdmVydGltZS1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9Ik92ZXJ0aW1lW1slIERhdGEuUGVyaW9kIHwgaHRtbCAlXV0iIHZhbHVlPSJbJSBEYXRhLk92ZXJ0aW1lIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUGVyaW9kU3RhdHVzT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RPdmVydmlld1JvdyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQZXJpb2RPdmVydmlld1Jvd05vRGF0YSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIHRpbWUgcGVyaW9kcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBlcmlvZE92ZXJ2aWV3Um93Tm9EYXRhIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXMTAwcGMgUmlnaHQgU3BhY2luZ1RvcFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFkZCB0aW1lIHBlcmlvZCIpIHwgaHRtbCAlXSIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIHRpbWUgcGVyaW9kIikgfCBodG1sICVdIiBuYW1lPSJBZGRQZXJpb2QiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFBsdXMiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPiBbJSBUcmFuc2xhdGUoIkFkZCB0aW1lIHBlcmlvZCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iIG5hbWU9IlN1Ym1pdFVzZXJEYXRhIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSI+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwovKmdsb2JhbCBUaW1lQWNjb3VudGluZzogdHJ1ZSAqLwogICAgVGltZUFjY291bnRpbmcuQWdlbnQuRGF0ZXBpY2tlci5Jbml0KCQoJy5EYXRlcGlja2VyRWxlbWVudCcpLCB7CiAgICAgICAgRGF0ZUluRnV0dXJlOiBmYWxzZSwKICAgICAgICBXZWVrRGF5U3RhcnQ6IDEKICAgIH0pOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlVXNlciIpICVdCiAgICA8L2Rpdj4KPC9kaXY+CgpbJSBSZW5kZXJCbG9ja0VuZCgiU2V0dGluZyIpICVdCg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiVmlldyBUaW1lIFJlY29yZCIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyIikgJV0KICAgICAgICAtIFslIFRyYW5zbGF0ZSgiVmlldyBvZiAiKSB8IGh0bWwgJV0gWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlciIpICVdCiAgICA8L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTW9udGhTZWxlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUHJldmlvdXMgZGF5IikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhckJhY2sgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aEJhY2sgfCB1cmkgJV07RGF5PVslIERhdGEuRGF5QmFjayB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTmV4dCBkYXkiKSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyTmV4dCB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoTmV4dCB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXlOZXh0IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuWWVhciB8IGh0bWwgJV0tWyUgRGF0YS5Nb250aCB8IGh0bWwgJV0tWyUgRGF0YS5EYXkgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJEYXRlU2VsZWN0aW9uIiBjbGFzcz0iVmFsaWRhdGUiIGlkPSJEYXRlU2VsZWN0aW9uRm9ybSI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJWaWV3IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlVzZXJJRCIgICAgdmFsdWU9IlslIERhdGEuVXNlcklEIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkRhdGVTZWxlY3Rpb24gJV0KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJOYXZpZ2F0aW9uU2VsZWN0IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBkYXRlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKJCgnI05hdmlnYXRpb25TZWxlY3QnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAkKCcjRGF0ZVNlbGVjdGlvbkZvcm0nKS5zdWJtaXQoKTsKfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQoKICAgICAgICAgICAgPC9kaXY+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==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5vdGlmaWNhdGlvbjo6VGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgVXNlcklEIHBhcmFtCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAkUGFyYW17VXNlcklEfSB8fCBkaWUgIkdvdCBubyBVc2VySUQhIjsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aW1lIG9iamVjdAogICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpCiAgICApOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkWWVhciwKICAgICAgICBNb250aCA9PiAkTW9udGgsCiAgICAgICAgRGF5ICAgPT4gJERheSwKICAgICk7CiAgICBpZiAoICRVc2VyeyAkU2VsZi0+e1VzZXJJRH0gfSApIHsKICAgICAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgcmVkaXJlY3QgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheSBhcmUgb3V0IG9mIHJhbmdlCiAgICAgICAgaWYgKCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze1dhcm5pbmd9ICkgewoKICAgICAgICAgICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+Tm90aWZ5KAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICdQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJyc7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6OkluY29tcGxldGVXb3JraW5nRGF5czsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBVc2VySUQgcGFyYW0KICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIGFjdGlvbiwgZ3JvdXAsIGxhYmVsLCBpbWFnZSBhbmQgcHJpbwogICAgbXkgJEFjdGlvbiA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CiAgICBteSAkR3JvdXAgID0gJ3RpbWVfYWNjb3VudGluZyc7CgogICAgIyBkbyBub3Qgc2hvdyBpY29uIGlmIGZyb250ZW5kIG1vZHVsZSBpcyBub3QgcmVnaXN0ZXJlZAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259OwoKICAgICMgZ2V0IGdyb3VwIG9iamVjdAogICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgIyBnZXQgdGhlIGdyb3VwIGlkCiAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJEdyb3VwLAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHRoZSBncm91cCBpcyBub3QgZm91bmQKICAgIHJldHVybiBpZiAhJEdyb3VwSUQ7CgogICAgIyBnZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcHJpdmlsZWdlCiAgICBteSAlR3JvdXBzID0gJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzIGlmIHRoZSBhZ2VudCBkb2Vzbid0IGhhdmUgdGhlIGFwcHJvcHJpYXRlIHR5cGUgaW4gdGhlIGFwcHJvcHJpYXRlIGdyb3VwCiAgICByZXR1cm4gaWYgISRHcm91cHN7JEdyb3VwSUR9OwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICApOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgIERheSAgID0+ICREYXksCiAgICApOwoKICAgICMgZGVueSBhY2Nlc3MsIGlmIHVzZXIgaGFzIG5vIHZhbGlkIHBlcmlvZAogICAgcmV0dXJuIGlmICEkVXNlckN1cnJlbnRQZXJpb2R7ICRTZWxmLT57VXNlcklEfSB9OwoKICAgICMgZ2V0IHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMKICAgIG15ICRDb3VudCAgICAgICAgICAgICAgICAgPSAwOwogICAgbXkgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBZRUFSSUQ6CiAgICBmb3IgbXkgJFllYXJJRCAoIHNvcnQga2V5cyAleyAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9IH0gKSB7CgogICAgICAgIG5leHQgWUVBUklEIGlmICEkWWVhcklEOwogICAgICAgIG5leHQgWUVBUklEIGlmICEkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyRZZWFySUR9OwogICAgICAgIG5leHQgWUVBUklEIGlmIHJlZiAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyRZZWFySUR9IG5lICdIQVNIJzsKCiAgICAgICAgIyBleHRyYWN0IHllYXIKICAgICAgICBteSAlWWVhciA9ICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gfTsKCiAgICAgICAgTU9OVEg6CiAgICAgICAgZm9yIG15ICRNb250aElEICggc29ydCBrZXlzICVZZWFyICkgewoKICAgICAgICAgICAgbmV4dCBNT05USCBpZiAhJE1vbnRoSUQ7CiAgICAgICAgICAgIG5leHQgTU9OVEggaWYgISRZZWFyeyRNb250aElEfTsKICAgICAgICAgICAgbmV4dCBNT05USCBpZiByZWYgJFllYXJ7JE1vbnRoSUR9IG5lICdIQVNIJzsKCiAgICAgICAgICAgICMgZXh0cmFjdCBtb250aAogICAgICAgICAgICBteSAlTW9udGggPSAleyAkWWVhcnskTW9udGhJRH0gfTsKCiAgICAgICAgICAgICRDb3VudCArPSBzY2FsYXIga2V5cyAlTW9udGg7CiAgICAgICAgfQogICAgfQoKICAgICMgcmVtb3ZlIGN1cnJlbnQgZGF5IGJlY2F1c2UgaXQgbWFrZXMgbm8gc2Vuc2UgdG8gc2hvdyB0aGUgY3VycmVudCBkYXkgYXMgaW5jb21wbGV0ZQogICAgaWYgKCAkQ291bnQgPiAwICkgewogICAgICAgICRDb3VudC0tOwogICAgfQoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgVG9vbEJhciBvYmplY3QgcGFyYW1ldGVycwogICAgbXkgJENsYXNzID0gJFBhcmFte0NvbmZpZ30tPntDc3NDbGFzc307CiAgICBteSAkVGV4dCAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0luY29tcGxldGUgd29ya2luZyBkYXlzJyk7CiAgICBteSAkVVJMICAgPSAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9OwogICAgbXkgJEljb24gID0gJFBhcmFte0NvbmZpZ30tPntJY29ufTsKCiAgICByZXR1cm4gKCkgaWYgISRDb3VudDsKCiAgICBteSAlUmV0dXJuID0gKAogICAgICAgIDEwMDA4MTAgPT4gewogICAgICAgICAgICBCbG9jayAgICAgICA9PiAnVG9vbEJhckl0ZW0nLAogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAkVGV4dCwKICAgICAgICAgICAgQ291bnQgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICBDbGFzcyAgICAgICA9PiAkQ2xhc3MsCiAgICAgICAgICAgIEljb24gICAgICAgID0+ICRJY29uLAogICAgICAgICAgICBMaW5rICAgICAgICA9PiAkVVJMIC4gJ0FjdGlvbj0nIC4gJEFjdGlvbiwKICAgICAgICAgICAgQWNjZXNzS2V5ICAgPT4gJycsCiAgICAgICAgICAgIH0KICAgICk7CgogICAgcmV0dXJuICVSZXR1cm47Cn0KCjE7Cg==
Iy0tCiMgS2VybmVsL1N5c3RlbS9UaW1lQWNjb3VudGluZy5wbSAtIGFsbCB0aW1lIGFjY291bnRpbmcgZnVuY3Rpb25zCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgRGF0ZTo6UGNhbGMgcXcoVG9kYXkgRGF5c19pbl9Nb250aCBEYXlfb2ZfV2VlayBjaGVja19kYXRlKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nIC0gdGltZSBhY2NvdW50aW5nIGxpYgoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgdGltZSBhY2NvdW50aW5nIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gVXNlckN1cnJlbnRQZXJpb2RHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgY3VycmVudCBwZXJpb2QgZGF0YSBvZiB0aGUgc3BlY2lmaWVkIHVzZXIKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICcyMDA1JywKICAgICAgICBNb250aCA9PiAnMTInLAogICAgICAgIERheSAgID0+ICcyNCcsCiAgICApOwoKVGhlIHJldHVybmVkIGhhc2ggY29udGFpbnMgdGhlIGZvbGxvd2luZyBlbGVtZW50czoKCiAgICAlVXNlckRhdGEgPSAoCiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDEyMywKICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gJzIwMDUtMTItMjQnLAogICAgICAgICAgICBEYXRlRW5kICAgICA9PiAnMjAwNS0xMi0yNCcsCiAgICAgICAgICAgIFdlZWtseUhvdXJzID0+IDQwLjQsCiAgICAgICAgICAgIExlYXZlRGF5cyAgID0+IDEyLAogICAgICAgICAgICBPdmVyVGltZSAgICA9PiAzNCwKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBVc2VyQ3VycmVudFBlcmlvZEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgZm9yIG15ICROZWVkZWRQYXJhbSAocXcoWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWRQYXJhbX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJVc2VyQ3VycmVudFBlcmlvZEdldDogTmVlZCAkTmVlZGVkUGFyYW0hIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBidWlsZCBkYXRlIHN0cmluZyBmb3IgZ2l2ZW4gcGFyYW1zCiAgICBteSAkRGF0ZSA9IHNwcmludGYoICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gKSAuICcgMDA6MDA6MDAnOwoKICAgICMgY2hlY2sgY2FjaGUKICAgIGlmICggJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9ICkgewoKICAgICAgICByZXR1cm4gJXsgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9IH07CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgV0hFUkUgZGF0ZV9zdGFydCA8PSA/CiAgICAgICAgICAgICAgICBBTkQgZGF0ZV9lbmQgID49ID8KICAgICAgICAgICAgICAgIEFORCBzdGF0dXMgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCREYXRlLCBcJERhdGUsIFwxLCBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRVc2VyUmVmID0gewogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQZXJpb2QgICAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICksCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+IHN1YnN0ciggJFJvd1szXSwgMCwgMTAgKSwKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJvd1s0XSwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJFJvd1s1XSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJFJvd1s2XSwKICAgICAgICB9OwogICAgICAgICREYXRheyAkUm93WzBdIH0gPSAkVXNlclJlZjsKICAgIH0KCiAgICAjIGNoZWNrIGZvciB2YWxpZCB1c2VyIGRhdGEKICAgIHJldHVybiBpZiAhJURhdGE7CgogICAgIyBzdG9yZSB1c2VyIGRhdGEgaW4gY2FjaGUKICAgICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9eyREYXRlfSA9IFwlRGF0YTsKCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFVzZXJSZXBvcnRpbmcoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBsZWF2ZSBkYXlzLCBvdmVydGltZXMsCndvcmtpbmcgaG91cnMgZXRjLiBvZiBhbGwgdXNlcnMKCiAgICBteSAlRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclJlcG9ydGluZygKICAgICAgICBZZWFyICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggPT4gJzEyJywKICAgICAgICBEYXkgICA9PiAnMTInLCAgICAgICMgT3B0aW9uYWwKICAgICk7Cgo9Y3V0CgpzdWIgVXNlclJlcG9ydGluZyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGxvZyBvYmplY3QKICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBmb3IgbXkgJE5lZWRlZFBhcmFtIChxdyhZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZFBhcmFtfSAmJiAkTmVlZGVkUGFyYW0gbmUgJ0RheScgKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVXNlclJlcG9ydGluZzogTmVlZCAkTmVlZGVkUGFyYW0hIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHZhbGlkIGRhdGUgdmFsdWVzCiAgICByZXR1cm4gaWYgIWNoZWNrX2RhdGUoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gfHwgMSApOwoKICAgICMgZ2V0IGRheXMgb2YgbW9udGggaWYgbm90IHByb3ZpZGVkCiAgICAkUGFyYW17RGF5fSB8fD0gRGF5c19pbl9Nb250aCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9ICk7CgogICAgbXkgJVVzZXJDdXJyZW50UGVyaW9kID0gJFNlbGYtPlVzZXJDdXJyZW50UGVyaW9kR2V0KCVQYXJhbSk7CiAgICBteSAkWWVhclN0YXJ0ICAgICAgICAgPSAxOTcwOwogICAgbXkgJE1vbnRoU3RhcnQgICAgICAgID0gMTsKICAgIG15ICREYXlTdGFydCAgICAgICAgICA9IDE7CiAgICBteSAkWWVhckVuZCAgICAgICAgICAgPSAkUGFyYW17WWVhcn07CiAgICBteSAkTW9udGhFbmQgICAgICAgICAgPSAkUGFyYW17TW9udGh9OwogICAgbXkgJERheUVuZCAgICAgICAgICAgID0gJFBhcmFte0RheX07CgogICAgbXkgJURhdGE7CgogICAgVVNFUklEOgogICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJVVzZXJDdXJyZW50UGVyaW9kICkgewoKICAgICAgICBpZiAoICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtEYXRlU3RhcnR9ID1+IG17IFxBIChcZHs0fSktKFxkezJ9KS0oXGR7Mn0pIH14bXMgKSB7CiAgICAgICAgICAgICRZZWFyU3RhcnQgID0gJDE7CiAgICAgICAgICAgICRNb250aFN0YXJ0ID0gJDI7CiAgICAgICAgICAgICREYXlTdGFydCAgID0gJDM7CiAgICAgICAgfQoKICAgICAgICBpZiAoICFjaGVja19kYXRlKCAkWWVhclN0YXJ0LCAkTW9udGhTdGFydCwgJERheVN0YXJ0ICkgKSB7CgogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdVc2VyUmVwb3J0aW5nOiBJbnZhbGlkIHN0YXJ0IGRhdGUgZm9yIHVzZXIgJwogICAgICAgICAgICAgICAgICAgIC4gIiRVc2VySUQ6ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtEYXRlU3RhcnR9IiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgVVNFUklEOwogICAgICAgIH0KCiAgICAgICAgbXkgJUN1cnJlbnRVc2VyRGF0YSA9ICgKICAgICAgICAgICAgTGVhdmVEYXRlICAgICAgICA9PiAwLAogICAgICAgICAgICBTaWNrICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVGFyZ2V0U3RhdGUgICAgICA9PiAwLAogICAgICAgICAgICBMZWF2ZURheVRvdGFsICAgID0+IDAsCiAgICAgICAgICAgIFNpY2tUb3RhbCAgICAgICAgPT4gMCwKICAgICAgICAgICAgU2lja1RvdGFsICAgICAgICA9PiAwLAogICAgICAgICAgICBUYXJnZXRTdGF0ZVRvdGFsID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENhbGVuZGFyID0geyAkU2VsZi0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKSB9LT57Q2FsZW5kYXJ9OwoKICAgICAgICBZRUFSOgogICAgICAgIGZvciBteSAkWWVhciAoICRZZWFyU3RhcnQgLi4gJFllYXJFbmQgKSB7CgogICAgICAgICAgICBteSAkTW9udGhTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCA/ICRNb250aFN0YXJ0IDogMTsKICAgICAgICAgICAgbXkgJE1vbnRoRW5kUG9pbnQgICA9ICRZZWFyID09ICRZZWFyRW5kICAgPyAkTW9udGhFbmQgICA6IDEyOwoKICAgICAgICAgICAgTU9OVEg6CiAgICAgICAgICAgIGZvciBteSAkTW9udGggKCAkTW9udGhTdGFydFBvaW50IC4uICRNb250aEVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgIG15ICREYXlTdGFydFBvaW50ID0KICAgICAgICAgICAgICAgICAgICAkWWVhciA9PSAkWWVhclN0YXJ0ICYmICRNb250aCA9PSAkTW9udGhTdGFydAogICAgICAgICAgICAgICAgICAgID8gJERheVN0YXJ0CiAgICAgICAgICAgICAgICAgICAgOiAxCiAgICAgICAgICAgICAgICAgICAgOwoKICAgICAgICAgICAgICAgIG15ICREYXlFbmRQb2ludCA9CiAgICAgICAgICAgICAgICAgICAgJFllYXIgPT0gJFllYXJFbmQgJiYgJE1vbnRoID09ICRNb250aEVuZAogICAgICAgICAgICAgICAgICAgID8gJERheUVuZAogICAgICAgICAgICAgICAgICAgIDogRGF5c19pbl9Nb250aCggJFllYXIsICRNb250aCApCiAgICAgICAgICAgICAgICAgICAgOwoKICAgICAgICAgICAgICAgIERBWToKICAgICAgICAgICAgICAgIGZvciBteSAkRGF5ICggJERheVN0YXJ0UG9pbnQgLi4gJERheUVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAkU2VsZi0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBteSAkTGVhdmVEYXkgICAgPSAwOwogICAgICAgICAgICAgICAgICAgIG15ICRTaWNrICAgICAgICA9IDA7CiAgICAgICAgICAgICAgICAgICAgbXkgJE92ZXJ0aW1lICAgID0gMDsKICAgICAgICAgICAgICAgICAgICBteSAkVGFyZ2V0U3RhdGUgPSAwOwoKICAgICAgICAgICAgICAgICAgICBpZiAoICRXb3JraW5nVW5pdHtMZWF2ZURheX0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlUb3RhbH0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgJExlYXZlRGF5ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkV29ya2luZ1VuaXR7U2lja30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7U2lja1RvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkU2ljayA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFdvcmtpbmdVbml0e092ZXJ0aW1lfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkT3ZlcnRpbWUgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICBteSAkVmFjYXRpb25DaGVjayA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyktPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCAgICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyID0+ICRDYWxlbmRhciB8fCAnJywKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIG15ICRXZWVrZGF5ID0gRGF5X29mX1dlZWsoICRZZWFyLCAkTW9udGgsICREYXkgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRXZWVrZGF5ICE9IDYKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJFdlZWtkYXkgIT0gNwogICAgICAgICAgICAgICAgICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgJiYgISRTaWNrCiAgICAgICAgICAgICAgICAgICAgICAgICYmICEkTGVhdmVEYXkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtUYXJnZXRTdGF0ZVRvdGFsfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKz0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e1dlZWtseUhvdXJzfSAvIDU7CiAgICAgICAgICAgICAgICAgICAgICAgICRUYXJnZXRTdGF0ZSA9ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtXZWVrbHlIb3Vyc30gLyA1OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTW9udGggPT0gJE1vbnRoRW5kICYmICRZZWFyID09ICRZZWFyRW5kICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlfSAgKz0gJFRhcmdldFN0YXRlOwogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1dvcmtpbmdIb3Vyc30gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtMZWF2ZURheX0gICAgICs9ICRMZWF2ZURheTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtTaWNrfSAgICAgICAgICs9ICRTaWNrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZX0gICAgICA9ICRDdXJyZW50VXNlckRhdGF7V29ya2luZ0hvdXJzfSAtICRDdXJyZW50VXNlckRhdGF7VGFyZ2V0U3RhdGV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVUb3RhbH0gPSAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH17T3ZlcnRpbWV9CiAgICAgICAgICAgICsgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0KICAgICAgICAgICAgLSAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlVG90YWx9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVVbnRpbH0gICAgID0gJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSAtICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlSZW1haW5pbmd9ID0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e0xlYXZlRGF5c30gLSAkQ3VycmVudFVzZXJEYXRhe0xlYXZlRGF5VG90YWx9OwoKICAgICAgICAkRGF0YXskVXNlcklEfSA9IFwlQ3VycmVudFVzZXJEYXRhOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gUHJvamVjdFNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggYWxsIHRoZSBwcm9qZWN0cycgZGF0YQoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnIHx8ICdpbnZhbGlkJywgb3B0aW9uYWwgZGVmYXVsdCB2YWxpZCAmJiBpbnZhbGlkCiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RTZXR0aW5nc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRXaGVyZSA9ICcnOwogICAgaWYgKCAkUGFyYW17U3RhdHVzfSApIHsKICAgICAgICAkV2hlcmUgPSAnIFdIRVJFIHN0YXR1cyA9ICc7CiAgICAgICAgJFdoZXJlIC49ICRQYXJhbXtTdGF0dXN9IGVxICdpbnZhbGlkJyA/ICInMCciIDogIicxJyI7CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiCiAgICAgICAgICAgIFNFTEVDVCBpZCwgcHJvamVjdCwgZGVzY3JpcHRpb24sIHN0YXR1cwogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19wcm9qZWN0CiAgICAgICAgICAgICRXaGVyZSIsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgbXkgJElEID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtQcm9qZWN0fXskSUR9ICAgICAgICAgICAgPSAkUm93WzFdOwogICAgICAgICREYXRhe1Byb2plY3REZXNjcmlwdGlvbn17JElEfSA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7UHJvamVjdFN0YXR1c317JElEfSAgICAgID0gJFJvd1szXTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFByb2plY3RHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgcmVxdWVzdGVkIHByb2plY3QgZGF0YQoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCggSUQgPT4gMiApOwoKVGhpcyByZXR1cm5zIHNvbWV0aGluZyBsaWtlOgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICgKICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJ2ludGVybmFsJywKICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ2Rlc2NyaXB0aW9uJywKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoIFByb2plY3QgPT4gJ2ludGVybmFsJyApOwoKVGhpcyByZXR1cm5zIHNvbWV0aGluZyBsaWtlOgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICgKICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ2Rlc2NyaXB0aW9uJywKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgUHJvamVjdEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17SUR9ICYmICEkUGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIElEIG9yIHByb2plY3QgbmFtZSEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVQcm9qZWN0OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIElECiAgICBpZiAoICRQYXJhbXtJRH0gKSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgcHJvamVjdCwgZGVzY3JpcHRpb24sIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17SUR9IF0sCiAgICAgICAgKTsKICAgICAgICB3aGlsZSAoIG15IEBEYXRhID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICVQcm9qZWN0ID0gKAogICAgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtJRH0sCiAgICAgICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJERhdGFbMF0sCiAgICAgICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJERhdGFbMV0sCiAgICAgICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gJERhdGFbMl0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgbG9vayBmb3IgdGhlIHRhc2sgZGF0YSB3aXRoIHRoZSB0YXNrIG5hbWUKICAgIGVsc2UgewoKICAgICAgICAjIFNRTAogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgU0VMRUNUIGlkLCBkZXNjcmlwdGlvbiwgc3RhdHVzCiAgICAgICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19wcm9qZWN0CiAgICAgICAgICAgICAgICBXSEVSRSBwcm9qZWN0ID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1Byb2plY3R9IF0sCiAgICAgICAgKTsKICAgICAgICB3aGlsZSAoIG15IEBEYXRhID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICVQcm9qZWN0ID0gKAogICAgICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAkRGF0YVsyXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVQcm9qZWN0Owp9Cgo9aXRlbSBQcm9qZWN0U2V0dGluZ3NJbnNlcnQoKQoKaW5zZXJ0cyBhIG5ldyBwcm9qZWN0IGluIHRoZSBkYgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLCAgICAjIG9wdGlvbmFsCiAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdkZXNjcmlwdGlvbicsICMgb3B0aW9uYWwKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSB8fCAwLCAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICByZXR1cm5zIElEIG9mIGNyZWF0ZWQgcHJvamVjdAoKPWN1dAoKc3ViIFByb2plY3RTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtQcm9qZWN0fSB8fD0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3ROYW1lJyk7CiAgICAkUGFyYW17UHJvamVjdERlc2NyaXB0aW9ufSB8fD0gJyc7CgogICAgaWYgKCAkUGFyYW17UHJvamVjdFN0YXR1c30gbmUgJzAnICYmICRQYXJhbXtQcm9qZWN0U3RhdHVzfSBuZSAnMScgKSB7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3RTdGF0dXMnKTsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgaW5zZXJ0IHByb2plY3QgcmVjb3JkCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3Byb2plY3QgKHByb2plY3QsIGRlc2NyaXB0aW9uLCBzdGF0dXMpCiAgICAgICAgICAgIFZBTFVFUyAoPywgPywgPyknLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1Byb2plY3R9LCBcJFBhcmFte1Byb2plY3REZXNjcmlwdGlvbn0sIFwkUGFyYW17UHJvamVjdFN0YXR1c30gXSwKICAgICk7CgogICAgIyBnZXQgaWQgb2YgbmV3bHkgY3JlYXRlZCBwcm9qZWN0IHJlY29yZAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgV0hFUkUgcHJvamVjdCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtQcm9qZWN0fSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICRQcm9qZWN0SUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUHJvamVjdElEID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJFByb2plY3RJRDsKfQoKPWl0ZW0gUHJvamVjdFNldHRpbmdzVXBkYXRlKCkKCnVwZGF0ZXMgYSBwcm9qZWN0CgogICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSgKICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0U2V0dGluZ3NVcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIFByb2plY3QpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBTUUwKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFVQREFURSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICBTRVQgcHJvamVjdCA9ID8sIGRlc2NyaXB0aW9uID0gPywgc3RhdHVzID0gPwogICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte1Byb2plY3R9LCBcJFBhcmFte1Byb2plY3REZXNjcmlwdGlvbn0sIFwkUGFyYW17UHJvamVjdFN0YXR1c30sIFwkUGFyYW17SUR9LAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBBY3Rpb25TZXR0aW5nc0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIGFsbCB0aGUgYWN0aW9ucyBzZXR0aW5ncwoKICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKPWN1dAoKc3ViIEFjdGlvblNldHRpbmdzR2V0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkLCBhY3Rpb24sIHN0YXR1cwogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRheyAkUm93WzBdIH17QWN0aW9ufSAgICAgICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtBY3Rpb25TdGF0dXN9ID0gJFJvd1syXTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIEFjdGlvbkdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSByZXF1ZXN0ZWQgYWN0aW9uICh0YXNrKSBkYXRhCgogICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCggSUQgPT4gMiApOwoKVGhpcyByZXR1cm5zIHNvbWV0aGluZyBsaWtlOgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICgKICAgICAgICBBY3Rpb24gICAgICAgPT4gJ015IHRhc2snLAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgKTsKCiAgICBvcgoKICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoIEFjdGlvbiA9PiAnTXkgdGFzaycgKTsKClRoaXMgcmV0dXJucyBzb21ldGhpbmcgbGlrZToKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QgPSAoCiAgICAgICAgSUQgICAgICAgICAgID0+IDIsCiAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFjdGlvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17SUR9ICYmICEkUGFyYW17QWN0aW9ufSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgSUQgb3IgQWN0aW9uIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJVRhc2s7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgSUQKICAgIGlmICggJFBhcmFte0lEfSApIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBhY3Rpb24sIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uCiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJRH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVRhc2sgPSAoCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgPT4gJFBhcmFte0lEfSwKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIHRhc2sgbmFtZQogICAgZWxzZSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgaWQsIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uCiAgICAgICAgICAgICAgICBXSEVSRSBhY3Rpb24gPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17QWN0aW9ufSBdLAogICAgICAgICk7CiAgICAgICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAlVGFzayA9ICgKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICAgICAgICAgIElEICAgICAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVUYXNrOwp9Cgo9aXRlbSBBY3Rpb25TZXR0aW5nc0luc2VydCgpCgppbnNlcnRzIGEgbmV3IGFjdGlvbiBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgIEFjdGlvbiAgICAgICA9PiAnbWVldGluZycsICAgIyBvcHRpb25hbAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxIHx8IDAsICAgICAgIyBvcHRpb25hbAogICAgKTsKCj1jdXQKCnN1YiBBY3Rpb25TZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtBY3Rpb259IHx8PSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0QWN0aW9uTmFtZScpIHx8ICcnOwogICAgaWYgKCAkUGFyYW17QWN0aW9uU3RhdHVzfSBuZSAnMCcgJiYgJFBhcmFte0FjdGlvblN0YXR1c30gbmUgJzEnICkgewogICAgICAgICRQYXJhbXtBY3Rpb25TdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvblN0YXR1cycpOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfYWN0aW9uIChhY3Rpb24sIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/KScsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17QWN0aW9ufSwgXCRQYXJhbXtBY3Rpb25TdGF0dXN9LCBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQWN0aW9uU2V0dGluZ3NVcGRhdGUoKQoKdXBkYXRlcyBhbiBhY3Rpb24gKHRhc2spCgogICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzVXBkYXRlKAogICAgICAgIEFjdGlvbklEICAgICA9PiAxMjMsCiAgICAgICAgQWN0aW9uICAgICAgID0+ICdpbnRlcm5hbCcsCiAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFjdGlvblNldHRpbmdzVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhBY3Rpb25JRCBBY3Rpb24pKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBTUUwKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFVQREFURSB0aW1lX2FjY291bnRpbmdfYWN0aW9uCiAgICAgICAgICAgIFNFVCBhY3Rpb24gPSA/LCBzdGF0dXMgPSA/CiAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17QWN0aW9ufSwgXCRQYXJhbXtBY3Rpb25TdGF0dXN9LCBcJFBhcmFte0FjdGlvbklEfQogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBVc2VyTGlzdCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB1c2VyIGRhdGEgb2YgYWxsIHVzZXJzCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKPWN1dAoKc3ViIFVzZXJMaXN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkLCBkZXNjcmlwdGlvbiwgc2hvd19vdmVydGltZSwgY3JlYXRlX3Byb2plY3QsIGNhbGVuZGFyCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRheyAkUm93WzBdIH17VXNlcklEfSAgICAgICAgPSAkUm93WzBdOwogICAgICAgICREYXRheyAkUm93WzBdIH17RGVzY3JpcHRpb259ICAgPSAkUm93WzFdOwogICAgICAgICREYXRheyAkUm93WzBdIH17U2hvd092ZXJ0aW1lfSAgPSAkUm93WzJdOwogICAgICAgICREYXRheyAkUm93WzBdIH17Q3JlYXRlUHJvamVjdH0gPSAkUm93WzNdOwogICAgICAgICREYXRheyAkUm93WzBdIH17Q2FsZW5kYXJ9ICAgICAgPSAkUm93WzRdOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gVXNlckdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB1c2VyIGRhdGEgb2Ygb25lIHVzZXIKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+IDE1LAogICAgKTsKCj1jdXQKCnN1YiBVc2VyR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgZGF0YQogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdVc2VyR2V0OiBOZWVkIFVzZXJJRCEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGRlc2NyaXB0aW9uLCBzaG93X292ZXJ0aW1lLCBjcmVhdGVfcHJvamVjdCwgY2FsZW5kYXIKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcgogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRhe1VzZXJJRH0gICAgICAgID0gJFBhcmFte1VzZXJJRH07CiAgICAgICAgJERhdGF7RGVzY3JpcHRpb259ICAgPSAkUm93WzBdOwogICAgICAgICREYXRhe1Nob3dPdmVydGltZX0gID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtDcmVhdGVQcm9qZWN0fSA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7Q2FsZW5kYXJ9ICAgICAgPSAkUm93WzNdOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gVXNlclNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGNvbXBsZXRlIHVzZXIgcGVyaW9kIGRhdGEgZm9yIGFsbCB1c2VycwoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzR2V0KCk7CgpyZXR1cm5zOgogICAgJVVzZXJEYXRhID0gKAogICAgICAgIDMgPT4gewogICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIyMDE1LTEyLTMxIiwKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIyMDE1LTAxLTAxIiwKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICIyMy4wMCIsCiAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAiMC4wMCIsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMywKICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAiNDAuMDAiLAogICAgICAgICAgICB9LAogICAgICAgICAgICAyID0+IHsKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIyMDE1LTEyLTMxIiwKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIyMDE1LTAxLTAxIiwKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICIyMy4wMCIsCiAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAiMC4wMCIsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgICA9PiAyLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMywKICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAiMzIuMDAiLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgNCA9PiB7CiAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIjIwMTUtMTItMzEiLAogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIjIwMTUtMDEtMDEiLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gIjIzLjAwIiwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICIwLjAwIiwKICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiA0LAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICI0MC4wMCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgVXNlclNldHRpbmdzR2V0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkLCBwcmVmZXJlbmNlX3BlcmlvZCwgZGF0ZV9zdGFydCwgZGF0ZV9lbmQsIHdlZWtseV9ob3VycywgbGVhdmVfZGF5cywKICAgICAgICAgICAgICAgIG92ZXJ0aW1lLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1VzZXJJRH0gICAgICA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1BlcmlvZH0gICAgICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e0RhdGVTdGFydH0gICA9IHN1YnN0ciggJFJvd1syXSwgMCwgMTAgKTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17RGF0ZUVuZH0gICAgID0gc3Vic3RyKCAkUm93WzNdLCAwLCAxMCApOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtXZWVrbHlIb3Vyc30gPSAkUm93WzRdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtMZWF2ZURheXN9ICAgPSAkUm93WzVdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtPdmVydGltZX0gICAgPSAkUm93WzZdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtVc2VyU3RhdHVzfSAgPSAkUm93WzddOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gU2luZ2xlVXNlclNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIHJlcXVlc3RlZCB1c2VyJ3MgcGVyaW9kIGRhdGEKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCggVXNlcklEID0+IDEgKTsKCj1jdXQKCnN1YiBTaW5nbGVVc2VyU2V0dGluZ3NHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgdXNlcl9pZCwgcHJlZmVyZW5jZV9wZXJpb2QsIGRhdGVfc3RhcnQsIGRhdGVfZW5kLCB3ZWVrbHlfaG91cnMsIGxlYXZlX2RheXMsCiAgICAgICAgICAgICAgICBvdmVydGltZSwgc3RhdHVzCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kIFdIRVJFIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtVc2VySUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVVc2VyRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1VzZXJJRH0gICAgICA9ICRSb3dbMF07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17UGVyaW9kfSAgICAgID0gJFJvd1sxXTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtEYXRlU3RhcnR9ICAgPSBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICk7CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17RGF0ZUVuZH0gICAgID0gc3Vic3RyKCAkUm93WzNdLCAwLCAxMCApOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1dlZWtseUhvdXJzfSA9ICRSb3dbNF07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17TGVhdmVEYXlzfSAgID0gJFJvd1s1XTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtPdmVydGltZX0gICAgPSAkUm93WzZdOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1VzZXJTdGF0dXN9ICA9ICRSb3dbN107CiAgICB9CgogICAgcmV0dXJuICVVc2VyRGF0YTsKfQoKPWl0ZW0gVXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoKQoKcmV0dXJucyB0aGUgbnVtYmVyIG9mIHRoZSBsYXN0IHJlZ2lzdGVyZWQgcGVyaW9kIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIKCiAgICBteSAkTGFzdFBlcmlvZE51bWJlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoIFVzZXJJRCA9PiAxICk7Cgo9Y3V0CgpzdWIgVXNlckxhc3RQZXJpb2ROdW1iZXJHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgbWF4KHByZWZlcmVuY2VfcGVyaW9kKQogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZAogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCk7CiAgICBteSAkTGFzdFBlcmlvZE51bWJlciA9ICRSb3dbMF0gfHwgMDsKCiAgICByZXR1cm4gJExhc3RQZXJpb2ROdW1iZXI7Cn0KCj1pdGVtIFVzZXJTZXR0aW5nc0luc2VydCgpCgppbnNlcnQgbmV3IHVzZXIgZGF0YSBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICBVc2VySUQgICAgICAgPT4gJzInLAogICAgICAgIFBlcmlvZCAgICAgICA9PiAnMicsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcgKFVzZXJJRCBQZXJpb2QpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIHVzZXIgZXhpc3RzCiAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJJRCAkUGFyYW17VXNlcklEfSBkb2VzIG5vdCBleGlzdCEiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtXZWVrbHlIb3Vyc30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlcldlZWtseUhvdXJzJykKICAgICAgICB8fCAnNDAnOwogICAgJFBhcmFte0xlYXZlRGF5c30gID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJMZWF2ZURheXMnKSB8fCAnMjUnOwogICAgJFBhcmFte1VzZXJTdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJTdGF0dXMnKSAgICB8fCAnMSc7CiAgICAkUGFyYW17T3ZlcnRpbWV9ICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlck92ZXJ0aW1lJykgIHx8ICcwJzsKICAgICRQYXJhbXtEYXRlRW5kfSAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZUVuZCcpCiAgICAgICAgfHwgJzIwMTUtMTItMzEnOwogICAgJFBhcmFte0RhdGVTdGFydH0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRhdGVTdGFydCcpCiAgICAgICAgfHwgJzIwMTUtMDEtMDEnOwogICAgJFBhcmFte0Rlc2NyaXB0aW9ufSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGVzY3JpcHRpb24nKQogICAgICAgIHx8ICdQdXQgeW91ciBkZXNjcmlwdGlvbiBoZXJlLic7CgogICAgJFBhcmFte0RhdGVTdGFydH0gLj0gJyAwMDowMDowMCc7CiAgICAkUGFyYW17RGF0ZUVuZH0gICAuPSAnIDAwOjAwOjAwJzsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZGVsZXRlICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QgKHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LAogICAgICAgICAgICAgICAgZGF0ZV9lbmQsIHdlZWtseV9ob3VycywgbGVhdmVfZGF5cywgb3ZlcnRpbWUsIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgICAgICBcJFBhcmFte1BlcmlvZH0sICAgIFwkUGFyYW17RGF0ZVN0YXJ0fSwgXCRQYXJhbXtEYXRlRW5kfSwKICAgICAgICAgICAgXCRQYXJhbXtXZWVrbHlIb3Vyc30sIFwkUGFyYW17TGVhdmVEYXlzfSwgXCRQYXJhbXtPdmVydGltZX0sICBcJFBhcmFte1VzZXJTdGF0dXN9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgc2VsZWN0IFVzZXJJRAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtVc2VySUR9LCBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICRVc2VySUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVXNlcklEID0gJFJvd1swXTsKICAgIH0KCiAgICBpZiAoICFkZWZpbmVkICRVc2VySUQgKSB7CgogICAgICAgICMgZGIgaW5zZXJ0CiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3VzZXIgKHVzZXJfaWQsIGRlc2NyaXB0aW9uKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LCA/KScsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0sIFwkUGFyYW17RGVzY3JpcHRpb259LCBdLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIFVzZXJTZXR0aW5nc1VwZGF0ZSgpCgp1cGRhdGVzIHVzZXIgZGF0YSBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU29tZSBUZXh0JywKICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEgfHwgMCwKICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEgfHwgMCwKICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICAgPT4gJzIwMTUtMTItMTInLAogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgID0+ICcyMDE1LTEyLTMxJywKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzICA9PiAnMzgnLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgID0+ICcyNScsCiAgICAgICAgICAgICAgICBPdmVydGltZSAgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgICA9PiAxIHx8IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIDIgPT4gewogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgID0+ICcyMDE1LTEyLTEyJywKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgICA9PiAnMjAxNS0xMi0zMScsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyAgPT4gJzM4JywKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICAgPT4gMSB8fCAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICAzID0+IC4uLi4uLgogICAgICAgIH0KICAgICk7Cgo9Y3V0CgpzdWIgVXNlclNldHRpbmdzVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGRlbGV0ZSAkU2VsZi0+eydDYWNoZTo6VXNlckN1cnJlbnRQZXJpb2RHZXQnfTsKCiAgICBteSAkVXNlcklEID0gJFBhcmFte1VzZXJJRH07CgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17UGVyaW9kfS0+ezF9e0RhdGVTdGFydH0gJiYgIWRlZmluZWQgJFBhcmFte1BlcmlvZH0tPnsxfXtEYXRlRW5kfSApIHsKCiAgICAgICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVXNlclNldHRpbmdVcGRhdGU6IE5vIGRhdGEgZm9yIHVzZXIgaWQgJFVzZXJJRCEiCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IHZhbHVlcwogICAgJFBhcmFte1Nob3dPdmVydGltZX0gIHx8PSAwOwogICAgJFBhcmFte0NyZWF0ZVByb2plY3R9IHx8PSAwOwogICAgJFBhcmFte0NhbGVuZGFyfSAgICAgIHx8PSAwOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgU0VUIGRlc2NyaXB0aW9uID0gPywgc2hvd19vdmVydGltZSA9ID8sIGNyZWF0ZV9wcm9qZWN0ID0gPywgY2FsZW5kYXIgPSA/CiAgICAgICAgICAgIFdIRVJFIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtEZXNjcmlwdGlvbn0sIFwkUGFyYW17U2hvd092ZXJ0aW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtDcmVhdGVQcm9qZWN0fSwgXCRQYXJhbXtDYWxlbmRhcn0sIFwkUGFyYW17VXNlcklEfQogICAgICAgIF0sCiAgICApOwoKICAgICMgdXBkYXRlIGFsbCBwZXJpb2RzCiAgICBmb3IgbXkgJFBlcmlvZCAoIHNvcnQga2V5cyAleyAkUGFyYW17UGVyaW9kfSB9ICkgewoKICAgICAgICAjIGRiIGluc2VydAogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFVQREFURSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgICAgIFNFVCBsZWF2ZV9kYXlzID0gPywgZGF0ZV9zdGFydCA9ID8sIGRhdGVfZW5kID0gPywgb3ZlcnRpbWUgPSA/LCB3ZWVrbHlfaG91cnMgPSA/LAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ID8KICAgICAgICAgICAgICAgIFdIRVJFIHVzZXJfaWQgPSA/CiAgICAgICAgICAgICAgICAgICAgQU5EIHByZWZlcmVuY2VfcGVyaW9kID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17TGVhdmVEYXlzfSwgICBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtEYXRlU3RhcnR9LAogICAgICAgICAgICAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17RGF0ZUVuZH0sICAgICBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtPdmVydGltZX0sCiAgICAgICAgICAgICAgICBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtXZWVrbHlIb3Vyc30sIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e1VzZXJTdGF0dXN9LAogICAgICAgICAgICAgICAgXCRVc2VySUQsIFwkUGVyaW9kLAogICAgICAgICAgICAgICAgXQogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIFdvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgYW5kCnRoZSBpbmZvcm1hdGlvbiBpZiB0aGUgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgYXJlIGluIHRoZSBhbGxvd2VkCnJhbmdlLgoKICAgIG15ICVXb3JraW5nVW5pdHNDaGVjayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBXb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIFVzZXJJRCIKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJURhdGEgICAgICAgICAgICAgICAgPSAoKTsKICAgIG15ICRXb3JraW5nVW5pdElEICAgICAgID0gMDsKICAgIG15ICVDb21wbGV0ZVdvcmtpbmdEYXlzID0gKCk7CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgbXkgJFVzZXJJRCA9ICRQYXJhbXtVc2VySUR9OwoKICAgICMgVE9ETzogU2VhcmNoIG9ubHkgaW4gdGhlIEN1cnJlbnRVc2VyUGVyaW9kCiAgICAjIFRPRE86IFNlYXJjaCBvbmx5IHdvcmtpbmcgdW5pdHMgd2hlcmUgYWN0aW9uX2lkIGFuZCBwcm9qZWN0X2lkIGlzIHRydWUKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgRElTVElOQ1QgdGltZV9zdGFydAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkVXNlcklEIF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIGlmICggJFJvd1swXSA9fiAvXihcZCspLShcZCspLShcZCspLyApIHsKICAgICAgICAgICAgJENvbXBsZXRlV29ya2luZ0RheXN7JDF9eyQyfXskM30gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlVXNlckN1cnJlbnRQZXJpb2QgPSAkU2VsZi0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgIERheSAgID0+ICREYXksCiAgICApOwoKICAgIG15ICRXb3JraW5nRGF5cyA9IDA7CiAgICBteSAkWWVhclN0YXJ0ICAgPSAxOTcwOwogICAgbXkgJE1vbnRoU3RhcnQgID0gMTsKICAgIG15ICREYXlTdGFydCAgICA9IDE7CiAgICBteSAkWWVhckVuZCAgICAgPSAkWWVhcjsKICAgIG15ICRNb250aEVuZCAgICA9ICRNb250aDsKICAgIG15ICREYXlFbmQgICAgICA9ICREYXk7CgogICAgaWYgKAogICAgICAgICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfS0+e0RhdGVTdGFydH0KICAgICAgICAmJiAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9ID1+IC9eKFxkKyktKFxkKyktKFxkKykvCiAgICAgICAgKQogICAgewogICAgICAgICRZZWFyU3RhcnQgID0gJDE7CiAgICAgICAgJE1vbnRoU3RhcnQgPSAkMjsKICAgICAgICAkRGF5U3RhcnQgICA9ICQzOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRDYWxlbmRhciA9IHsgJFNlbGYtPlVzZXJHZXQoIFVzZXJJRCA9PiAkVXNlcklEICkgfS0+e0NhbGVuZGFyfTsKCiAgICBmb3IgbXkgJFllYXIgKCAkWWVhclN0YXJ0IC4uICRZZWFyRW5kICkgewoKICAgICAgICBteSAkTW9udGhTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCA/ICRNb250aFN0YXJ0IDogMTsKICAgICAgICBteSAkTW9udGhFbmRQb2ludCAgID0gJFllYXIgPT0gJFllYXJFbmQgICA/ICRNb250aEVuZCAgIDogMTI7CgogICAgICAgIGZvciBteSAkTW9udGggKCAkTW9udGhTdGFydFBvaW50IC4uICRNb250aEVuZFBvaW50ICkgewoKICAgICAgICAgICAgbXkgJERheVN0YXJ0UG9pbnQgPSAkWWVhciA9PSAkWWVhclN0YXJ0ICYmICRNb250aCA9PSAkTW9udGhTdGFydCA/ICREYXlTdGFydCA6IDE7CiAgICAgICAgICAgIG15ICREYXlFbmRQb2ludCA9ICRZZWFyID09ICRZZWFyRW5kCiAgICAgICAgICAgICAgICAmJiAkTW9udGggPT0gJE1vbnRoRW5kID8gJERheUVuZCA6IERheXNfaW5fTW9udGgoICRZZWFyLCAkTW9udGggKTsKICAgICAgICAgICAgbXkgJE1vbnRoU3RyaW5nID0gc3ByaW50ZiggIiUwMmQiLCAkTW9udGggKTsKCiAgICAgICAgICAgIGZvciBteSAkRGF5ICggJERheVN0YXJ0UG9pbnQgLi4gJERheUVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgIG15ICRWYWNhdGlvbkNoZWNrID0gJFRpbWVPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgICAgICAgICAgICAgWWVhciAgICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgIERheSAgICAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgPT4gJENhbGVuZGFyIHx8ICcnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkRGF0ZSA9IHNwcmludGYoICIlMDRkLSUwMmQtJTAyZCIsICRZZWFyLCAkTW9udGgsICREYXkgKTsKICAgICAgICAgICAgICAgIG15ICREYXlTdGFydFRpbWUgPSAkVGltZU9iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkRGF0ZSAuICcgMDA6MDA6MDAnICk7CiAgICAgICAgICAgICAgICBteSAkRGF5U3RvcFRpbWUgID0gJFRpbWVPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJERhdGUgLiAnIDIzOjU5OjU5JyApOwoKICAgICAgICAgICAgICAgICMgYWRkIHRpbWUgem9uZSB0byBjYWxjdWxhdGlvbgogICAgICAgICAgICAgICAgbXkgJFpvbmUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoICJUaW1lWm9uZTo6Q2FsZW5kYXIiIC4gKCAkQ2FsZW5kYXIgfHwgJycgKSApOwogICAgICAgICAgICAgICAgaWYgKCRab25lKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFpvbmVTZWNvbmRzID0gJFpvbmUgKiA2MCAqIDYwOwogICAgICAgICAgICAgICAgICAgICREYXlTdGFydFRpbWUgPSAkRGF5U3RhcnRUaW1lIC0gJFpvbmVTZWNvbmRzOwogICAgICAgICAgICAgICAgICAgICREYXlTdG9wVGltZSAgPSAkRGF5U3RvcFRpbWUgLSAkWm9uZVNlY29uZHM7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbXkgJFRoaXNEYXlXb3JraW5nVGltZSA9ICRUaW1lT2JqZWN0LT5Xb3JraW5nVGltZSgKICAgICAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJERheVN0YXJ0VGltZSwKICAgICAgICAgICAgICAgICAgICBTdG9wVGltZSAgPT4gJERheVN0b3BUaW1lLAogICAgICAgICAgICAgICAgICAgIENhbGVuZGFyICA9PiAkQ2FsZW5kYXIgfHwgJycsCiAgICAgICAgICAgICAgICApIHx8ICcwJzsKCiAgICAgICAgICAgICAgICBteSAkRGF5U3RyaW5nID0gc3ByaW50ZiggIiUwMmQiLCAkRGF5ICk7CgogICAgICAgICAgICAgICAgaWYgKCAkVGhpc0RheVdvcmtpbmdUaW1lICYmICEkVmFjYXRpb25DaGVjayApIHsKICAgICAgICAgICAgICAgICAgICAkV29ya2luZ0RheXMrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkVGhpc0RheVdvcmtpbmdUaW1lCiAgICAgICAgICAgICAgICAgICAgJiYgISRWYWNhdGlvbkNoZWNrCiAgICAgICAgICAgICAgICAgICAgJiYgISRDb21wbGV0ZVdvcmtpbmdEYXlzeyRZZWFyfXskTW9udGhTdHJpbmd9eyREYXlTdHJpbmd9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICREYXRhe0luY29tcGxldGV9eyRZZWFyfXskTW9udGhTdHJpbmd9eyREYXlTdHJpbmd9ID0gJFdvcmtpbmdEYXlzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgbXkgJE1heEludGVydmFsbE9mSW5jb21wbGV0ZURheXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMnKSB8fCAnNSc7CiAgICBteSAkTWF4SW50ZXJ2YWxsT2ZJbmNvbXBsZXRlRGF5c0JlZm9yZVdhcm5pbmcKICAgICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5c0JlZm9yZVdhcm5pbmcnKQogICAgICAgIHx8ICczJzsKICAgIGZvciBteSAkWWVhciAoIHNvcnQga2V5cyAleyAkRGF0YXtJbmNvbXBsZXRlfSB9ICkgewoKICAgICAgICBmb3IgbXkgJE1vbnRoICggc29ydCBrZXlzICV7ICREYXRhe0luY29tcGxldGV9eyRZZWFyfSB9ICkgewoKICAgICAgICAgICAgZm9yIG15ICREYXkgKCBzb3J0IGtleXMgJXsgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9eyRNb250aH0gfSApIHsKCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9eyRNb250aH17JERheX0KICAgICAgICAgICAgICAgICAgICA8ICRXb3JraW5nRGF5cyAtICRNYXhJbnRlcnZhbGxPZkluY29tcGxldGVEYXlzCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICREYXRhe0VuZm9yY2VJbnNlcnR9ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICgKICAgICAgICAgICAgICAgICAgICAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn17JE1vbnRofXskRGF5fQogICAgICAgICAgICAgICAgICAgIDwgJFdvcmtpbmdEYXlzIC0gJE1heEludGVydmFsbE9mSW5jb21wbGV0ZURheXNCZWZvcmVXYXJuaW5nCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICREYXRhe1dhcm5pbmd9ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFdvcmtpbmdVbml0c0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB3b3JraW5nIHVuaXRzIGRhdGEKCiAgICBteSAlV29ya2luZ1VuaXRzRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgIFllYXIgICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggID0+ICc3JywKICAgICAgICBEYXkgICAgPT4gJzEzJywKICAgICAgICBVc2VySUQgPT4gJzEyMycsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREYXRlICAgICAgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CiAgICBteSAkRGF0ZVN0YXJ0ID0gJERhdGUgLiAiIDAwOjAwOjAwIjsKICAgIG15ICREYXRlU3RvcCAgPSAkRGF0ZSAuICIgMjM6NTk6NTkiOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBhc2sgdGhlIGRhdGFiYXNlCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LCB0aW1lX2VuZCwgcGVyaW9kCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHRpbWVfc3RhcnQgPj0gPwogICAgICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPD0gPwogICAgICAgICAgICAgICAgQU5EIHVzZXJfaWQgPSA/CiAgICAgICAgICAgIE9SREVSIGJ5IGlkJywKICAgICAgICBCaW5kID0+IFsgXCREYXRlU3RhcnQsIFwkRGF0ZVN0b3AsIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICBteSAlRGF0YSA9ICgKICAgICAgICBUb3RhbCA9PiAwLAogICAgICAgIERhdGUgID0+ICREYXRlLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAkUm93WzRdICF+IG17XiAoLis/KSBccyAoXGQrOlxkKykgOiAoXGQrKSB9eG1zOwoKICAgICAgICAjIGNoZWNrIGlmIGl0IGlzIGEgc3BlY2lhbCB3b3JraW5nIHVuaXQKICAgICAgICBpZiAoICRSb3dbMV0gPT0gLTEgKSB7CiAgICAgICAgICAgIG15ICRBY3Rpb25JRCA9ICRSb3dbMl07CgogICAgICAgICAgICAkRGF0YXtTaWNrfSAgICAgPSAkQWN0aW9uSUQgPT0gLTEgPyAxIDogMDsKICAgICAgICAgICAgJERhdGF7TGVhdmVEYXl9ID0gJEFjdGlvbklEID09IC0yID8gMSA6IDA7CiAgICAgICAgICAgICREYXRhe092ZXJ0aW1lfSA9ICRBY3Rpb25JRCA9PSAtMyA/IDEgOiAwOwoKICAgICAgICAgICAgbmV4dCBST1c7CiAgICAgICAgfQoKICAgICAgICBteSAkU3RhcnRUaW1lID0gJDI7CiAgICAgICAgbXkgJEVuZFRpbWUgICA9ICcnOwogICAgICAgIGlmICggJFJvd1s1XSA9fiBte14oLis/KVxzKFxkKzpcZCspOihcZCspfXhtcyApIHsKICAgICAgICAgICAgJEVuZFRpbWUgPSAkMjsKCiAgICAgICAgICAgICMgcmVwbGFjZSAyMzo1OTo1OSB3aXRoIDI0OjAwCiAgICAgICAgICAgIGlmICggJEVuZFRpbWUgZXEgJzIzOjU5JyAmJiAkMyBlcSAnNTknICkgewogICAgICAgICAgICAgICAgJEVuZFRpbWUgPSAnMjQ6MDAnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAoCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFJvd1sxXSwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRSb3dbMl0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAkUm93WzNdLAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJFN0YXJ0VGltZSwKICAgICAgICAgICAgRW5kVGltZSAgID0+ICRFbmRUaW1lLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gZGVmaW5lZCggJFJvd1s2XSApID8gc3ByaW50ZiggIiUuMmYiLCAkUm93WzZdICkgOiAwLAogICAgICAgICk7CgogICAgICAgICMgb25seSBjb3VudCBjb21wbGV0ZSB3b3JraW5nIHVuaXRzCiAgICAgICAgaWYgKCAkUm93WzFdICYmICRSb3dbMl0gKSB7CiAgICAgICAgICAgICREYXRhe1RvdGFsfSArPSAkV29ya2luZ1VuaXR7UGVyaW9kfTsKICAgICAgICB9CgogICAgICAgIHB1c2ggQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9LCBcJVdvcmtpbmdVbml0OwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gV29ya2luZ1VuaXRzSW5zZXJ0KCkKCmluc2VydCB3b3JraW5nIHVuaXRzIGluIHRoZSBkYgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgIFllYXIgID0+ICcyMDA1JywKICAgICAgICBNb250aCA9PiAnMDcnLAogICAgICAgIERheSAgID0+ICcwMicsCiAgICAgICAgTGVhdmVEYXkgPT4gMSwgfHwgMAogICAgICAgIFNpY2sgICAgID0+IDEsIHx8IDAKICAgICAgICBPdmVydGltZSA9PiAxLCB8fCAwCiAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUHJvamVjdElEID0+IDEsCiAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gMjMsCiAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NvbWVUZXh0JywKICAgICAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAnNzozMCcsCiAgICAgICAgICAgICAgICBFbmRUaW1lICAgPT4gJzExOjAwJywKICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnOC41JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgeyAuLi4uLi4gfSwKICAgICAgICBdLAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhZZWFyIE1vbnRoIERheSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiV29ya2luZ1VuaXRzSW5zZXJ0OiBOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRGF0ZSA9IHNwcmludGYgIiUwNGQtJTAyZC0lMDJkIiwgJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fTsKCiAgICAjIGFkZCBzcGVjaWFsIHRpbWUgd29ya2luZyB1bml0cwogICAgbXkgJVNwZWNpYWxBY3Rpb24gPSAoCiAgICAgICAgJ1NpY2snICAgICA9PiAnLTEnLAogICAgICAgICdMZWF2ZURheScgPT4gJy0yJywKICAgICAgICAnT3ZlcnRpbWUnID0+ICctMycsCiAgICApOwoKICAgIEVMRU1FTlQ6CiAgICBmb3IgbXkgJEVsZW1lbnQgKHF3KExlYXZlRGF5IFNpY2sgT3ZlcnRpbWUpKSB7CgogICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJFBhcmFteyRFbGVtZW50fTsKCiAgICAgICAgbXkgJVVuaXQgPSAoCiAgICAgICAgICAgIFByb2plY3RJRCA9PiAtMSwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRTcGVjaWFsQWN0aW9ueyRFbGVtZW50fSwKICAgICAgICAgICAgUmVtYXJrICAgID0+ICcnLAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJycsCiAgICAgICAgICAgIEVuZFRpbWUgICA9PiAnJywKICAgICAgICAgICAgUGVyaW9kICAgID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgcHVzaCBAeyAkUGFyYW17V29ya2luZ1VuaXRzfSB9LCBcJVVuaXQ7CiAgICB9CgogICAgIyBpbnNlcnQgbmV3IHdvcmtpbmcgdW5pdHMKICAgIFVOSVRSRUY6CiAgICBmb3IgbXkgJFVuaXRSZWYgKCBAeyAkUGFyYW17V29ya2luZ1VuaXRzfSB9ICkgewoKICAgICAgICBteSAkU3RhcnRUaW1lID0gJERhdGUgLiAnICcgLiAoICRVbml0UmVmLT57U3RhcnRUaW1lfSB8fCAnMDA6MDAnICkgLiAnOjAwJzsKICAgICAgICBteSAkRW5kVGltZSAgID0gJERhdGUgLiAnICcgLiAoICRVbml0UmVmLT57RW5kVGltZX0gICB8fCAnMDA6MDAnICkgLiAnOjAwJzsKCiAgICAgICAgIyAnJyBkb2VzIG5vdCB3b3JrIGluIGludGVnZXIgZmllbGQgb2YgUG9zdGdyZVNRTAogICAgICAgICRVbml0UmVmLT57UHJvamVjdElEfSB8fD0gMDsKICAgICAgICAkVW5pdFJlZi0+e0FjdGlvbklEfSAgfHw9IDA7CiAgICAgICAgJFVuaXRSZWYtPntQZXJpb2R9ICAgIHx8PSAwOwoKICAgICAgICAjIGJ1aWxkIERRTAogICAgICAgIG15ICRTUUwgPSAnCiAgICAgICAgICAgIElOU0VSVCBJTlRPIHRpbWVfYWNjb3VudGluZ190YWJsZSAodXNlcl9pZCwgcHJvamVjdF9pZCwgYWN0aW9uX2lkLCByZW1hcmssIHRpbWVfc3RhcnQsCiAgICAgICAgICAgICAgICB0aW1lX2VuZCwgcGVyaW9kLCBjcmVhdGVkICkKICAgICAgICAgICAgVkFMVUVTICAoID8sID8sID8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wKSc7CiAgICAgICAgbXkgJEJpbmQgPSBbCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgXCRVbml0UmVmLT57UHJvamVjdElEfSwgXCRVbml0UmVmLT57QWN0aW9uSUR9LAogICAgICAgICAgICBcJFVuaXRSZWYtPntSZW1hcmt9LCBcJFN0YXJ0VGltZSwgXCRFbmRUaW1lLCBcJFVuaXRSZWYtPntQZXJpb2R9LAogICAgICAgIF07CgogICAgICAgICMgZGIgaW5zZXJ0CiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICAgICAgQmluZCA9PiAkQmluZAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIFdvcmtpbmdVbml0c0RlbGV0ZSgpCgpkZWxldGVzIHdvcmtpbmcgdW5pdHMgaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICAgICAgWWVhciAgID0+ICcyMDE1JywKICAgICAgICBNb250aCAgPT4gJzcnLAogICAgICAgIERheSAgICA9PiAnMTMnLAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0RlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhZZWFyIE1vbnRoIERheSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiV29ya2luZ1VuaXRzSW5zZXJ0OiBOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRGF0ZSAgICAgID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9OwogICAgbXkgJFN0YXJ0VGltZSA9ICREYXRlIC4gJyAwMDowMDowMCc7CiAgICBteSAkRW5kVGltZSAgID0gJERhdGUgLiAnIDIzOjU5OjU5JzsKCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBERUxFVEUgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgdGltZV9zdGFydCA+PSA/CiAgICAgICAgICAgICAgICBBTkQgdGltZV9zdGFydCA8PSA/CiAgICAgICAgICAgICAgICBBTkQgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFN0YXJ0VGltZSwgXCRFbmRUaW1lLCBcJFBhcmFte1VzZXJJRH0sIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nKCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGhvdXJzIGRlcGVuZGVudCBwcm9qZWN0IGFuZCBhY3Rpb24gZGF0YQoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEFjdGlvblJlcG9ydGluZygKICAgICAgICBZZWFyICA9PiAyMDA1LAogICAgICAgIE1vbnRoID0+IDcsCiAgICAgICAgVXNlcklEID0+IDEyMywgIyBvcHRpb25hbDsgbm8gVXNlcklEIG1lYW5zICdvZiBhbGwgdXNlcnMnCiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RBY3Rpb25SZXBvcnRpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhZZWFyIE1vbnRoKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXskUGFyYW1ldGVyfSApIHx8ICcnOwogICAgICAgIGlmICggISRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlByb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgJFBhcmFtZXRlciEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgaG91cnMgcGVyIG1vbnRoCiAgICBteSAkRGF5c0luTW9udGggPSBEYXlzX2luX01vbnRoKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0gKTsKICAgIG15ICREYXRlU3RyaW5nID0gJFBhcmFte1llYXJ9IC4gIi0iIC4gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICBteSAkU1FMRGF0ZSA9ICIkRGF0ZVN0cmluZy0kRGF5c0luTW9udGggMjM6NTk6NTkiOwoKICAgIG15ICRTUUwgPSAnCiAgICAgICAgU0VMRUNUIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcGVyaW9kCiAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICBXSEVSRSBwcm9qZWN0X2lkICE9IC0xCiAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0IDw9ID8nOwogICAgbXkgQEJpbmQgPSAoIFwkU1FMRGF0ZSApOwoKICAgIGlmICggJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFNRTCAuPSAnIEFORCB1c2VyX2lkID0gPyc7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXtVc2VySUR9OwogICAgfQoKICAgICMgdG90YWwgaG91cnMKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBcQEJpbmQsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgUk9XOgogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CgogICAgICAgIG5leHQgUk9XIGlmICEkUm93WzJdOwoKICAgICAgICAkRGF0YXsgJFJvd1swXSB9LT57QWN0aW9uc30tPnsgJFJvd1sxXSB9LT57VG90YWx9ICs9ICRSb3dbMl07CiAgICB9CgogICAgbXkgJFNRTERhdGVTdGFydCA9ICIkRGF0ZVN0cmluZy0wMSAwMDowMDowMCI7CgogICAgJFNRTCA9ICcKICAgICAgICBTRUxFQ1QgcHJvamVjdF9pZCwgYWN0aW9uX2lkLCBwZXJpb2QKICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgIFdIRVJFIHByb2plY3RfaWQgIT0gLTEKICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPj0gPwogICAgICAgICAgICBBTkQgdGltZV9zdGFydCA8PSA/JzsKCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gWyBcJFNRTERhdGVTdGFydCwgXCRTUUxEYXRlIF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAhJFJvd1syXTsKCiAgICAgICAgJERhdGF7ICRSb3dbMF0gfS0+e0FjdGlvbnN9LT57ICRSb3dbMV0gfS0+e1Blck1vbnRofSArPSAkUm93WzJdOwogICAgfQoKICAgICMgYWRkIHJlYWRhYmxlIGNvbXBvbmVudHMKICAgIG15ICVQcm9qZWN0ID0gJFNlbGYtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbiAgPSAkU2VsZi0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICBmb3IgbXkgJFByb2plY3RJRCAoIHNvcnQga2V5cyAlRGF0YSApIHsKCiAgICAgICAgJERhdGF7JFByb2plY3RJRH0tPntOYW1lfSAgICAgICAgPSAkUHJvamVjdHtQcm9qZWN0fS0+eyRQcm9qZWN0SUR9IHx8ICcnOwogICAgICAgICREYXRheyRQcm9qZWN0SUR9LT57U3RhdHVzfSAgICAgID0gJFByb2plY3R7UHJvamVjdFN0YXR1c30tPnskUHJvamVjdElEfTsKICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e0Rlc2NyaXB0aW9ufSA9ICRQcm9qZWN0e1Byb2plY3REZXNjcmlwdGlvbn0tPnskUHJvamVjdElEfTsKCiAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkRGF0YXskUHJvamVjdElEfS0+e0FjdGlvbnN9OwoKICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICV7JEFjdGlvbnNSZWZ9ICkgewogICAgICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e0FjdGlvbnN9LT57JEFjdGlvbklEfS0+e05hbWV9ID0gJEFjdGlvbnskQWN0aW9uSUR9LT57QWN0aW9ufSB8fCAnJzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aXRlbSBQcm9qZWN0VG90YWxIb3VycygpCgpyZXR1cm5zIHRoZSBzdW0gb2YgYWxsIGhvdXJzIHJlbGF0ZWQgdG8gYSBwcm9qZWN0CgogICAgbXkgJFByb2plY3RUb3RhbEhvdXJzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0VG90YWxIb3VycygKICAgICAgICBQcm9qZWN0SUQgID0+IDE1LAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0VG90YWxIb3VycyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtCiAgICBpZiAoICEkUGFyYW17UHJvamVjdElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1Byb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgUHJvamVjdElEIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGFzayB0aGUgZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBTVU0ocGVyaW9kKQogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSBwcm9qZWN0X2lkID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1Byb2plY3RJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRUb3RhbCA9IDA7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVG90YWwgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiAkVG90YWw7Cn0KCj1pdGVtIFByb2plY3RIaXN0b3J5KCkKCnJldHVybnMgYW4gYXJyYXkgd2l0aCBhbGwgV29ya2luZ1VuaXRzIHJlbGF0ZWQgdG8gYSBwcm9qZWN0CgogICAgbXkgQFByb2plY3RIaXN0b3J5QXJyYXkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RIaXN0b3J5KAogICAgICAgIFByb2plY3RJRCAgPT4gMTUsCiAgICApOwoKVGhpcyB3b3VsZCByZXR1cm4KCiAgICBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICgKICAgICAgICB7CiAgICAgICAgICAgIElEICAgICAgICA9PiA5OTksCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAxNSwKICAgICAgICAgICAgVXNlciAgICAgID0+ICdUb20nLAogICAgICAgICAgICBBY3Rpb25JRCAgPT4gNiwKICAgICAgICAgICAgQWN0aW9uICAgID0+ICdtaXNjJywKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdyZW1hcmsnLAogICAgICAgICAgICBUaW1lU3RhcnQgPT4gJzc6MDAnLAogICAgICAgICAgICBUaW1lRW5kICAgPT4gJzE4OjAwJywKICAgICAgICAgICAgRGF0ZSAgICAgID0+ICcyMDA4LTEwLTMxJywgIyB0aGUgZGF0ZSBvZiB0aGUgd29ya2luZyB1bml0CiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAxMSwKICAgICAgICAgICAgQ3JlYXRlZCAgID0+ICcyMDA4LTExLTAxJywgIyB0aGUgaW5zZXJ0IHRpbWUgb2YgdGhlIHdvcmtpbmcgdW5pdAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBJRCAgICAgICAgPT4gOTk5LAogICAgICAgICAgICBVc2VySUQgICAgPT4gMTYsCiAgICAgICAgICAgIFVzZXIgICAgICA9PiAnTWFuZScsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiA3LAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ2RldmVsb3BtZW50JywKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdyZW1hcmsnLAogICAgICAgICAgICBUaW1lU3RhcnQgPT4gJzc6MDAnLAogICAgICAgICAgICBUaW1lRW5kICAgPT4gJzE4OjAwJywKICAgICAgICAgICAgUGVyaW9kICAgID0+IDExLAogICAgICAgICAgICBEYXRlICAgICAgPT4gJzIwMDgtMTEtMDMnLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJzIwMDgtMTEtMDMnLAogICAgICAgIH0KICAgICk7Cgo9Y3V0CgpzdWIgUHJvamVjdEhpc3RvcnkgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBwYXJhbQogICAgaWYgKCAhJFBhcmFte1Byb2plY3RJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdQcm9qZWN0QWN0aW9uUmVwb3J0aW5nOiBOZWVkIFByb2plY3RJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2FsbCBhY3Rpb24gZGF0YSB0byBnZXQgdGhlIHJlYWRhYmxlIG5hbWUgb2YgdGhlIGFjdGlvbgogICAgbXkgJUFjdGlvbkRhdGEgPSAkU2VsZi0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICAjIGdldCB1c2VyIGxpc3QKICAgIG15ICVTaG93blVzZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxpc3QoCiAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBhc2sgdGhlIGRhdGFiYXNlCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkLCB1c2VyX2lkLCBhY3Rpb25faWQsIHJlbWFyaywgdGltZV9zdGFydCwgdGltZV9lbmQsIHBlcmlvZCwgY3JlYXRlZAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSBwcm9qZWN0X2lkID0gPwogICAgICAgICAgICBPUkRFUiBCWSB0aW1lX3N0YXJ0JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtQcm9qZWN0SUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQERhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbXkgJFVzZXJSZWYgPSB7CiAgICAgICAgICAgIElEICAgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgVXNlciAgICAgID0+ICRTaG93blVzZXJzeyAkUm93WzFdIH0sCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkUm93WzJdLAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJEFjdGlvbkRhdGF7ICRSb3dbMl0gfXtBY3Rpb259LAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJFJvd1szXSB8fCAnJywKICAgICAgICAgICAgVGltZVN0YXJ0ID0+ICRSb3dbNF0sCiAgICAgICAgICAgIFRpbWVFbmQgICA9PiAkUm93WzVdLAogICAgICAgICAgICBEYXRlICAgICAgPT4gJFJvd1s0XSwKICAgICAgICAgICAgUGVyaW9kICAgID0+ICRSb3dbNl0sCiAgICAgICAgICAgIENyZWF0ZWQgICA9PiAkUm93WzddLAogICAgICAgIH07CiAgICAgICAgJFVzZXJSZWYtPntEYXRlfSA9fiBzeyhcZFxkXGRcZC1cZFxkLVxkXGQpIFxzIC4rIH17JDF9eG1zOwoKICAgICAgICBwdXNoIEBEYXRhLCAkVXNlclJlZjsKICAgIH0KCiAgICByZXR1cm4gQERhdGE7Cn0KCj1pdGVtIExhc3RQcm9qZWN0c09mVXNlcigpCgpyZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGxhc3QgcHJvamVjdHMgb2YgdGhlIGN1cnJlbnQgdXNlcgoKICAgIG15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBMYXN0UHJvamVjdHNPZlVzZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEIgogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAjIEkgZG9uJ3QgdXNlIGRpc3RpbmN0IGJlY2F1c2Ugb2YgT1JERVIgQlkgcHJvYmxlbXMgb2YgUG9zdGdyZVNRTAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHByb2plY3RfaWQgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8KICAgICAgICAgICAgICAgIEFORCBwcm9qZWN0X2lkIDw+IC0xCiAgICAgICAgICAgIE9SREVSIEJZIHRpbWVfc3RhcnQgREVTQycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICBMaW1pdCA9PiA0MCwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlUHJvamVjdHM7CiAgICBteSAkQ291bnRlciA9IDA7CiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbmV4dCBST1cgaWYgJENvdW50ZXIgPiA3OwogICAgICAgIG5leHQgUk9XIGlmICRQcm9qZWN0c3sgJFJvd1swXSB9OwoKICAgICAgICAkUHJvamVjdHN7ICRSb3dbMF0gfSA9IDE7CiAgICAgICAgJENvdW50ZXIrKzsKICAgIH0KCiAgICByZXR1cm4ga2V5cyAlUHJvamVjdHM7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlN0YXRzOjpEeW5hbWljOjpUaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRlOjpQY2FsYyBxdyggQWRkX0RlbHRhX0RheXMgQWRkX0RlbHRhX1lNRCApOwp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgR2V0T2JqZWN0TmFtZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAnVGltZUFjY291bnRpbmcnOwp9CgpzdWIgR2V0T2JqZWN0QXR0cmlidXRlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgc2V0IHByZWRlZmluZWQgc3RhcnQgdGltZQogICAgbXkgJFRpbWVTdGFtcCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyktPkN1cnJlbnRUaW1lc3RhbXAoKTsKICAgIG15ICgkRGF0ZSkgPSBzcGxpdCAvXHMrLywgJFRpbWVTdGFtcDsKICAgIG15ICRUb2RheSA9IHNwcmludGYgIiVzIDIzOjU5OjU5IiwgJERhdGU7CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyBnZXQgcHJvamVjdCBsaXN0CiAgICBteSAlUHJvamVjdExpc3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJywKICAgICk7CgogICAgIyBnZXQgYWN0aW9uIGxpc3QKICAgIG15ICVBY3Rpb25MaXN0U291cmNlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbkxpc3Q7CgogICAgZm9yIG15ICRBY3Rpb24gKCBzb3J0IGtleXMgJUFjdGlvbkxpc3RTb3VyY2UgKSB7CiAgICAgICAgJEFjdGlvbkxpc3R7JEFjdGlvbn0gPSAkQWN0aW9uTGlzdFNvdXJjZXskQWN0aW9ufS0+e0FjdGlvbn07CiAgICB9CgogICAgIyBnZXQgdXNlciBsaXN0CiAgICBteSAlVXNlckxpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgbXkgQEF0dHJpYnV0ZXMgPSAoCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnUHJvamVjdCcpLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMCwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdQcm9qZWN0JywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMCwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiAkUHJvamVjdExpc3R7UHJvamVjdH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdVc2VyJyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1VzZXInLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdNdWx0aVNlbGVjdEZpZWxkJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAwLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IFwlVXNlckxpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdTb3J0IHNlcXVlbmNlJyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAxLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDAsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1NvcnRTZXF1ZW5jZScsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ1NlbGVjdEZpZWxkJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIFVwICAgPT4gJ2FzY2VuZGluZycsCiAgICAgICAgICAgICAgICBEb3duID0+ICdkZXNjZW5kaW5nJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1Rhc2snKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnUHJvamVjdEFjdGlvbicsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ011bHRpU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDAsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gXCVBY3Rpb25MaXN0LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnUGVyaW9kJyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1BlcmlvZCcsCiAgICAgICAgICAgIFRpbWVQZXJpb2RGb3JtYXQgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsICAgICAgICAjICdEYXRlSW5wdXRGb3JtYXRMb25nJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnVGltZScsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgVGltZVN0YXJ0ID0+ICdUaW1lQWNjb3VudGluZ1BlcmlvZFN0YXJ0JywKICAgICAgICAgICAgICAgIFRpbWVTdG9wICA9PiAnVGltZUFjY291bnRpbmdQZXJpb2RTdG9wJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gQEF0dHJpYnV0ZXM7Cn0KCnN1YiBHZXRIZWFkZXJMaW5lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSBASGVhZGVyTGluZSA9ICgiIik7CgogICAgIyBVc2VycyBhcyBYLXZhbHVlCiAgICBpZiAoICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gJiYgJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSBlcSAnVXNlcicgKSB7CgogICAgICAgICMgdXNlciBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIG15IEBVc2VySURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHVzZXJzCiAgICAgICAgVVNFUklEOgogICAgICAgIGZvciBteSAkVXNlcklEIChAVXNlcklEcykgewogICAgICAgICAgICBteSAkVXNlck5hbWUgPSAkVXNlck9iamVjdC0+VXNlck5hbWUoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHB1c2ggQEhlYWRlckxpbmUsICRVc2VyTmFtZTsKICAgICAgICB9CiAgICB9CgogICAgIyBQcm9qZWN0cyBhcyBYLXZhbHVlCiAgICBlbHNlIHsKICAgICAgICAjIHByb2plY3RzIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFByb2plY3RJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgUFJPSkVDVElEOgogICAgICAgIGZvciBteSAkUHJvamVjdElEIChAUHJvamVjdElEcykgewogICAgICAgICAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcHVzaCBASGVhZGVyTGluZSwgJFByb2plY3REYXRhe1Byb2plY3R9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXEBIZWFkZXJMaW5lOwp9CgpzdWIgR2V0U3RhdFRhYmxlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSBAU3RhdEFycmF5OwogICAgbXkgQFVzZXJJRHM7CgogICAgIyBVc2VycyBhcyBYLXZhbHVlCiAgICBpZiAoICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gJiYgJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSBlcSAnVXNlcicgKSB7CgogICAgICAgICMgdXNlciBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIEBVc2VySURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgc3RhdCBkYXRhCiAgICAgICAgbXkgJFN0YXREYXRhID0gJFNlbGYtPl9HZXRTdGF0RGF0YSgKICAgICAgICAgICAgUGFyYW0gICA9PiBcJVBhcmFtLAogICAgICAgICAgICBVc2VySURzID0+IFxAVXNlcklEcywKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIHN0YXQgZGF0YQogICAgICAgIHJldHVybiBpZiAhJFN0YXREYXRhOwogICAgICAgIHJldHVybiBpZiByZWYgJFN0YXREYXRhIG5lICdBUlJBWSc7CgogICAgICAgIG15IEBSYXdTdGF0QXJyYXkgPSBAeyRTdGF0RGF0YX07CiAgICAgICAgcmV0dXJuIGlmICFAUmF3U3RhdEFycmF5OwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0TGlzdCA9ICV7ICRQcm9qZWN0RGF0YXtQcm9qZWN0fSB8fCB7fSB9OwoKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKICAgICAgICBteSAlQWN0aW9uTGlzdCA9IG1hcCB7ICggJF8gPT4gJEFjdGlvbkRhdGF7JF99LT57QWN0aW9ufSApIH0ga2V5cyAlQWN0aW9uRGF0YTsKCiAgICAgICAgbXkgQFNvcnRlZFByb2plY3RJRHMgPSBzb3J0IHsgJFByb2plY3RMaXN0eyRhfSBjbXAgJFByb2plY3RMaXN0eyRifSB9IGtleXMgJVByb2plY3RMaXN0OwogICAgICAgIG15IEBTb3J0ZWRBY3Rpb25JRHMgID0gc29ydCB7ICRBY3Rpb25MaXN0eyRhfSBjbXAgJEFjdGlvbkxpc3R7JGJ9IH0ga2V5cyAlQWN0aW9uTGlzdDsKCiAgICAgICAgIyByZS1zb3J0IHByb2plY3RzIGRlcGVuZGluZyBvbiBzZWxlY3RlZCBzZXF1ZW5jZQogICAgICAgIGlmICgKICAgICAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWVTZXJpZXN9ICkKICAgICAgICAgICAgJiYgJFBhcmFte1ZhbHVlU2VyaWVzfS0+WzBdLT57U2VsZWN0ZWRWYWx1ZXN9LT5bMF0gZXEgJ0Rvd24nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIEBTb3J0ZWRQcm9qZWN0SURzID0gcmV2ZXJzZSBAU29ydGVkUHJvamVjdElEczsKICAgICAgICB9CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCBwcm9qZWN0IGxpc3QKICAgICAgICBTT1JURURQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRTb3J0ZWRQcm9qZWN0SUQgKEBTb3J0ZWRQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0KICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZFByb2plY3RJRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0gfHwgW10gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFNPUlRFRFBST0pFQ1RJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgdGhlIGN1cnJlbnQgcHJvamVjdCBkYXRhIG9mIGN1cnJlbnQgcHJvamVjdAogICAgICAgICAgICBteSBAUHJvamVjdFN0YXREYXRhID0gZ3JlcCB7ICRfLT57UHJvamVjdElEfSA9PSAkU29ydGVkUHJvamVjdElEIH0gQFJhd1N0YXRBcnJheTsKCiAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCBhY3Rpb24gbGlzdAogICAgICAgICAgICBTT1JURURBQ1RJT05JRDoKICAgICAgICAgICAgZm9yIG15ICRTb3J0ZWRBY3Rpb25JRCAoQFNvcnRlZEFjdGlvbklEcykgewoKICAgICAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0KICAgICAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRBY3Rpb25JRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0gfHwgW10gfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IFNPUlRFREFDVElPTklEOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBjdXJyZW50IGFjdGlvbiBvdXQgb2YgdGhlIGN1cnJlbnQgcHJvamVjdAogICAgICAgICAgICAgICAgbXkgQEFjdGlvblN0YXREYXRhID0gZ3JlcCB7ICRfLT57QWN0aW9uSUR9ID09ICRTb3J0ZWRBY3Rpb25JRCB9IEBQcm9qZWN0U3RhdERhdGE7CgogICAgICAgICAgICAgICAgbXkgQFJvd0RhdGE7CgogICAgICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgICAgICBteSAkUm93TGFiZWwgPSAiJFByb2plY3RMaXN0eyRTb3J0ZWRQcm9qZWN0SUR9OjokQWN0aW9uTGlzdHskU29ydGVkQWN0aW9uSUR9IjsKICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzZWxlY3RlZCB1c2VycwogICAgICAgICAgICAgICAgVVNFUklEOgogICAgICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CgogICAgICAgICAgICAgICAgICAgICMgYXQgbGVhc3QgZ2V0ICcwJyBmb3IgdXNlciBkYXRhCiAgICAgICAgICAgICAgICAgICAgbXkgJFVzZXJQZXJpb2RTdW0gPSAwOwoKICAgICAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBwZXJpb2QgZGF0YSBvZiB1c2VyCiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRQZXJpb2REYXRhICggZ3JlcCB7ICRfLT57VXNlcklEfSA9PSAkVXNlcklEIH0gQEFjdGlvblN0YXREYXRhICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVXNlclBlcmlvZFN1bSArPSAkUGVyaW9kRGF0YS0+e1BlcmlvZH07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHNhZmUgdXNlciBkYXRhIHRvIHJvdyBkYXRhCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFVzZXJQZXJpb2RTdW07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBzdG9yZSBjdXJyZW50IHJvdyB0byBnbG9iYWwgc3RhdCBhcnJheQogICAgICAgICAgICAgICAgcHVzaCBAU3RhdEFycmF5LCBcQFJvd0RhdGE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBQcm9qZWN0cyBhcyBYLXZhbHVlCiAgICBlbHNlIHsKCiAgICAgICAgIyBwcm9qZWN0cyBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIG15IEBQcm9qZWN0SURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgd2UgbmVlZCB0byBnZXQgYWxsIHVzZXJzCiAgICAgICAgbXkgJVVzZXJJRHMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdTaG9ydCcsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgQFVzZXJJRHMgPSBrZXlzICVVc2VySURzOwoKICAgICAgICAjIGdldCBjYWxjdWxhdGVkIHN0YXRzIGRhdGEKICAgICAgICBteSAkU3RhdERhdGEgPSAkU2VsZi0+X0dldFN0YXREYXRhKAogICAgICAgICAgICBQYXJhbSAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgIFVzZXJJRHMgPT4gXEBVc2VySURzLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgc3RhdCBkYXRhCiAgICAgICAgcmV0dXJuIGlmICEkU3RhdERhdGE7CiAgICAgICAgcmV0dXJuIGlmIHJlZiAkU3RhdERhdGEgbmUgJ0FSUkFZJzsKCiAgICAgICAgbXkgQFJhd1N0YXRBcnJheSA9IEB7JFN0YXREYXRhfTsKICAgICAgICByZXR1cm4gaWYgIUBSYXdTdGF0QXJyYXk7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlVXNlckxpc3QgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSBAU29ydGVkVXNlcklEcyA9IHNvcnQgeyAkVXNlckxpc3R7JGF9IGNtcCAkVXNlckxpc3R7JGJ9IH0ga2V5cyAlVXNlckxpc3Q7CgogICAgICAgICMgcmUtc29ydCB1c2VycyBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc2VxdWVuY2UKICAgICAgICBpZiAoCiAgICAgICAgICAgIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1ZhbHVlU2VyaWVzfSApCiAgICAgICAgICAgICYmICRQYXJhbXtWYWx1ZVNlcmllc30tPlswXS0+e1NlbGVjdGVkVmFsdWVzfS0+WzBdIGVxICdEb3duJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBAU29ydGVkVXNlcklEcyA9IHJldmVyc2UgQFNvcnRlZFVzZXJJRHM7CiAgICAgICAgfQoKICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgdXNlciBsaXN0CiAgICAgICAgU09SVEVEVVNFUklEOgogICAgICAgIGZvciBteSAkU29ydGVkVXNlcklEIChAU29ydGVkVXNlcklEcykgewoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCB1c2VycwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9CiAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRVc2VySUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9IHx8IFtdIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBTT1JURURVU0VSSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IHRoZSBjdXJyZW50IHVzZXIgZGF0YSBvZiBjdXJyZW50IHVzZXIKICAgICAgICAgICAgbXkgQFVzZXJTdGF0RGF0YSA9IGdyZXAgeyAkXy0+e1VzZXJJRH0gPT0gJFNvcnRlZFVzZXJJRCB9IEBSYXdTdGF0QXJyYXk7CgogICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICMgYWRkIGRlc2NyaXB0aXZlIGZpcnN0IGNvbHVtbgogICAgICAgICAgICBteSAkUm93TGFiZWwgPSAkVXNlckxpc3R7JFNvcnRlZFVzZXJJRH07CiAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIFBST0pFQ1RJRDoKICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKEBQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAgICAgIyBhdCBsZWFzdCBnZXQgJzAnIGZvciB1c2VyIGRhdGEKICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0UGVyaW9kU3VtID0gMDsKCiAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBwZXJpb2QgZGF0YSBvZiB1c2VyCiAgICAgICAgICAgICAgICBmb3IgbXkgJFBlcmlvZERhdGEgKCBncmVwIHsgJF8tPntQcm9qZWN0SUR9ID09ICRQcm9qZWN0SUQgfSBAVXNlclN0YXREYXRhICkgewogICAgICAgICAgICAgICAgICAgICRQcm9qZWN0UGVyaW9kU3VtICs9ICRQZXJpb2REYXRhLT57UGVyaW9kfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHNhZmUgdXNlciBkYXRhIHRvIHJvdyBkYXRhCiAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCAkUHJvamVjdFBlcmlvZFN1bTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzdG9yZSBjdXJyZW50IHJvdyB0byBnbG9iYWwgc3RhdCBhcnJheQogICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICB9CgogICAgfQoKICAgIHJldHVybiBAU3RhdEFycmF5Owp9CgpzdWIgR2V0U3RhdFRhYmxlUHJldmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBTdGF0QXJyYXk7CiAgICBteSBAVXNlcklEczsKCiAgICAjIFVzZXJzIGFzIFgtdmFsdWUKICAgIGlmICggJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSAmJiAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9IGVxICdVc2VyJyApIHsKCiAgICAgICAgIyB1c2VyIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgQFVzZXJJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0TGlzdCA9ICV7ICRQcm9qZWN0RGF0YXtQcm9qZWN0fSB8fCB7fSB9OwoKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKICAgICAgICBteSAlQWN0aW9uTGlzdCA9IG1hcCB7ICggJF8gPT4gJEFjdGlvbkRhdGF7JF99LT57QWN0aW9ufSApIH0ga2V5cyAlQWN0aW9uRGF0YTsKCiAgICAgICAgbXkgQFNvcnRlZFByb2plY3RJRHMgPSBzb3J0IHsgJFByb2plY3RMaXN0eyRhfSBjbXAgJFByb2plY3RMaXN0eyRifSB9IGtleXMgJVByb2plY3RMaXN0OwogICAgICAgIG15IEBTb3J0ZWRBY3Rpb25JRHMgID0gc29ydCB7ICRBY3Rpb25MaXN0eyRhfSBjbXAgJEFjdGlvbkxpc3R7JGJ9IH0ga2V5cyAlQWN0aW9uTGlzdDsKCiAgICAgICAgIyByZS1zb3J0IHByb2plY3RzIGRlcGVuZGluZyBvbiBzZWxlY3RlZCBzZXF1ZW5jZQogICAgICAgIGlmICgKICAgICAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWVTZXJpZXN9ICkKICAgICAgICAgICAgJiYgJFBhcmFte1ZhbHVlU2VyaWVzfS0+WzBdLT57U2VsZWN0ZWRWYWx1ZXN9LT5bMF0gZXEgJ0Rvd24nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIEBTb3J0ZWRQcm9qZWN0SURzID0gcmV2ZXJzZSBAU29ydGVkUHJvamVjdElEczsKICAgICAgICB9CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCBwcm9qZWN0IGxpc3QKICAgICAgICBTT1JURURQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRTb3J0ZWRQcm9qZWN0SUQgKEBTb3J0ZWRQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0KICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZFByb2plY3RJRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0gfHwgW10gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFNPUlRFRFBST0pFQ1RJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIGFjdGlvbiBsaXN0CiAgICAgICAgICAgIFNPUlRFREFDVElPTklEOgogICAgICAgICAgICBmb3IgbXkgJFNvcnRlZEFjdGlvbklEIChAU29ydGVkQWN0aW9uSURzKSB7CgogICAgICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufQogICAgICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZEFjdGlvbklEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSB8fCBbXSB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG5leHQgU09SVEVEQUNUSU9OSUQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbXkgQFJvd0RhdGE7CgogICAgICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgICAgICBteSAkUm93TGFiZWwgPSAiJFByb2plY3RMaXN0eyRTb3J0ZWRQcm9qZWN0SUR9OjokQWN0aW9uTGlzdHskU29ydGVkQWN0aW9uSUR9IjsKICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzZWxlY3RlZCB1c2VycwogICAgICAgICAgICAgICAgVVNFUklEOgogICAgICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CgogICAgICAgICAgICAgICAgICAgICMgc2FmZSB1c2VyIGRhdGEgdG8gcm93IGRhdGEKICAgICAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCBpbnQgcmFuZCA1MDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHN0b3JlIGN1cnJlbnQgcm93IHRvIGdsb2JhbCBzdGF0IGFycmF5CiAgICAgICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIFByb2plY3RzIGFzIFgtdmFsdWUKICAgIGVsc2UgewoKICAgICAgICAjIHByb2plY3RzIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFByb2plY3RJRHMgPSBAeyAkUGFyYW17WFZhbHVlfXtTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgd2UgbmVlZCB0byBnZXQgYWxsIHVzZXJzCiAgICAgICAgbXkgJVVzZXJJRHMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdTaG9ydCcsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgQFVzZXJJRHMgPSBrZXlzICVVc2VySURzOwoKICAgICAgICAjIGdldCBsaXN0IG9mIG5lZWRlZCBkYXRhCiAgICAgICAgbXkgJVVzZXJMaXN0ID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgQFNvcnRlZFVzZXJJRHMgPSBzb3J0IHsgJFVzZXJMaXN0eyRhfSBjbXAgJFVzZXJMaXN0eyRifSB9IGtleXMgJVVzZXJMaXN0OwoKICAgICAgICAjIHJlLXNvcnQgdXNlcnMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHNlcXVlbmNlCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtWYWx1ZVNlcmllc30gKQogICAgICAgICAgICAmJiAkUGFyYW17VmFsdWVTZXJpZXN9LT5bMF0tPntTZWxlY3RlZFZhbHVlc30tPlswXSBlcSAnRG93bicKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgQFNvcnRlZFVzZXJJRHMgPSByZXZlcnNlIEBTb3J0ZWRVc2VySURzOwogICAgICAgIH0KCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIHVzZXIgbGlzdAogICAgICAgIFNPUlRFRFVTRVJJRDoKICAgICAgICBmb3IgbXkgJFNvcnRlZFVzZXJJRCAoQFNvcnRlZFVzZXJJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgdXNlcnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntVc2VyfQogICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkVXNlcklEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntVc2VyfSB8fCBbXSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgU09SVEVEVVNFUklEOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICMgYWRkIGRlc2NyaXB0aXZlIGZpcnN0IGNvbHVtbgogICAgICAgICAgICBteSAkUm93TGFiZWwgPSAkVXNlckxpc3R7JFNvcnRlZFVzZXJJRH07CiAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIFBST0pFQ1RJRDoKICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKEBQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAgICAgIyBzYWZlIHVzZXIgZGF0YSB0byByb3cgZGF0YQogICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgaW50IHJhbmQgNTA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc3RvcmUgY3VycmVudCByb3cgdG8gZ2xvYmFsIHN0YXQgYXJyYXkKICAgICAgICAgICAgcHVzaCBAU3RhdEFycmF5LCBcQFJvd0RhdGE7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBAU3RhdEFycmF5Owp9CgpzdWIgRXhwb3J0V3JhcHBlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyB3cmFwIGlkcyB0byB1c2VkIHNwZWxsaW5nCiAgICBmb3IgbXkgJFVzZSAocXcoVXNlQXNWYWx1ZVNlcmllcyBVc2VBc1Jlc3RyaWN0aW9uIFVzZUFzWHZhbHVlKSkgewoKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7ICRQYXJhbXskVXNlfSB9ICkgewogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50OwogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgbXkgJEVsZW1lbnROYW1lID0gJEVsZW1lbnQtPntFbGVtZW50fTsKICAgICAgICAgICAgbXkgJFZhbHVlcyAgICAgID0gJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBpZiAoICRFbGVtZW50TmFtZSBlcSAnVXNlcicgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQtPntDb250ZW50fQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRWxlbWVudE5hbWUgZXEgJ1Byb2plY3QnICkgewoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAlVG1wUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIElEID0+ICRJRC0+e0NvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRUbXBQcm9qZWN0RGF0YXtQcm9qZWN0fTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdEFjdGlvbicgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICVUbXBBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIElEID0+ICRJRC0+e0NvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRUbXBBY3Rpb25EYXRhe0FjdGlvbn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gXCVQYXJhbTsKfQoKc3ViIEltcG9ydFdyYXBwZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKICAgIG15ICRMb2dPYmplY3QgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgd3JhcCB1c2VkIHNwZWxsaW5nIHRvIGlkcwogICAgZm9yIG15ICRVc2UgKHF3KFVzZUFzVmFsdWVTZXJpZXMgVXNlQXNSZXN0cmljdGlvbiBVc2VBc1h2YWx1ZSkpIHsKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7ICRQYXJhbXskVXNlfSB9ICkgewogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50OwogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgbXkgJEVsZW1lbnROYW1lID0gJEVsZW1lbnQtPntFbGVtZW50fTsKICAgICAgICAgICAgbXkgJFZhbHVlcyAgICAgID0gJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBpZiAoICRFbGVtZW50TmFtZSBlcSAnVXNlcicgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgVXNlckxvZ2luID0+ICRJRC0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIGlmICgkVXNlcklEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFVzZXJJRDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW1wb3J0OiBDYW4nIGZpbmQgdGhlIHVzZXIgJElELT57Q29udGVudH0hIgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkSUQgPSB1bmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRWxlbWVudE5hbWUgZXEgJ1Byb2plY3QnICkgewoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAlUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdCA9PiAkSUQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggJFByb2plY3R7SUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRQcm9qZWN0e0lEfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW1wb3J0OiBDYW4nIGZpbmQgcHJvamVjdCAkSUQtPntDb250ZW50fSEiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRCA9IHVuZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdEFjdGlvbicgKSB7CiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJUFjdGlvbiA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJElELT57Q29udGVudH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoICRBY3Rpb257SUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRBY3Rpb257SUR9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbXBvcnQ6IENhbicgZmluZCBhY3Rpb24gJElELT57Q29udGVudH0hIgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkSUQgPSB1bmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gXCVQYXJhbTsKfQoKc3ViIF9HZXRTdGF0RGF0YSB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBAUmV0dXJuOwogICAgbXkgQFVzZXJJRHMgPSBAeyAkUGFyYW17VXNlcklEc30gfHwgW10gfTsKCiAgICBteSAlRGF0ZUluZGV4VG9OYW1lID0gKAogICAgICAgICdTZWNvbmQnID0+IDAsCiAgICAgICAgJ01pbnV0ZScgPT4gMSwKICAgICAgICAnSG91cicgICA9PiAyLAogICAgICAgICdEYXknICAgID0+IDMsCiAgICAgICAgJ01vbnRoJyAgPT4gNCwKICAgICAgICAnWWVhcicgICA9PiA1LAogICAgKTsKCiAgICAjIGxvb3Bpbmcgb3ZlciBhbGwgb3Igc2VsZWN0ZWQgdXNlcnMKICAgIGZvciBteSAkVXNlcklEIChAVXNlcklEcykgewoKICAgICAgICBteSAkU3RhcnREYXRlOwogICAgICAgIG15ICRTdG9wRGF0ZTsKCiAgICAgICAgIyBnZXQgdGltZSBvYmplY3QKICAgICAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgICAgICMgY2hlY2sgaWYgdGltZSBwZXJpb2QgaGFzIGJlZW4gc2VsZWN0ZWQKICAgICAgICBpZiAoICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdGFydH0gKSB7CgogICAgICAgICAgICAjIGdldCBVTklYIHRpbWUtc3RhbXAgb2Ygc3RhcnQgYW5kIGVuZCB2YWx1ZXMKICAgICAgICAgICAgJFN0YXJ0RGF0ZSA9ICRUaW1lT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkU3RvcERhdGUgPSAkVGltZU9iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntUaW1lQWNjb3VudGluZ1BlcmlvZFN0b3B9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgSU1QT1JUQU5UOgogICAgICAgICAgICAjIElmIG5vIHRpbWUgcGVyaW9kIGhhZCBiZWVuIHNlbGVjdGVkIHByZXZpb3VzIG1vbnRoIHdpbGwgYmUgdXNlZCBhcyBwZXJpb2QhCgogICAgICAgICAgICAjIGdldCBjdXJyZW50IGRhdGUgdmFsdWVzCiAgICAgICAgICAgIG15IEBDdXJyZW50RGF0ZSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBmaXJzdCBkYXkgb2YgcHJldmlvdXMgbW9udGgKICAgICAgICAgICAgbXkgQE5ld1N0YXJ0RGF0ZSA9IEFkZF9EZWx0YV9ZTUQoCiAgICAgICAgICAgICAgICAkQ3VycmVudERhdGVbICREYXRlSW5kZXhUb05hbWV7J1llYXInfSBdLAogICAgICAgICAgICAgICAgJEN1cnJlbnREYXRlWyAkRGF0ZUluZGV4VG9OYW1leydNb250aCd9IF0sCiAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIC0xLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IGZpcnN0IGRheSBvZiBuZXh0IG1vbnRoIHJlbGF0aXZlIHRvIHByZXZpb3VzIG1vbnRoCiAgICAgICAgICAgIG15IEBOZXdTdG9wRGF0ZSA9IEFkZF9EZWx0YV9ZTUQoCiAgICAgICAgICAgICAgICAkTmV3U3RhcnREYXRlWzBdLAogICAgICAgICAgICAgICAgJE5ld1N0YXJ0RGF0ZVsxXSwKICAgICAgICAgICAgICAgICROZXdTdGFydERhdGVbMl0sCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgKzEsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgbGFzdCBvZiBkYXkgcHJldmlvdXMgbW9udGgKICAgICAgICAgICAgQE5ld1N0b3BEYXRlID0gQWRkX0RlbHRhX1lNRCgKICAgICAgICAgICAgICAgICROZXdTdG9wRGF0ZVswXSwKICAgICAgICAgICAgICAgICROZXdTdG9wRGF0ZVsxXSwKICAgICAgICAgICAgICAgICROZXdTdG9wRGF0ZVsyXSwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgLTEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNhbGN1bGF0ZSBVTklYIHRpbWVzdGFtcHMgZm9yIHN0YXJ0IGFuZCBzdG9wIGRhdGUKICAgICAgICAgICAgJFN0YXJ0RGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJE5ld1N0YXJ0RGF0ZVswXSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkTmV3U3RhcnREYXRlWzFdLAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICROZXdTdGFydERhdGVbMl0sCiAgICAgICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTdG9wRGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJE5ld1N0b3BEYXRlWzBdLAogICAgICAgICAgICAgICAgTW9udGggID0+ICROZXdTdG9wRGF0ZVsxXSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkTmV3U3RvcERhdGVbMl0sCiAgICAgICAgICAgICAgICBIb3VyICAgPT4gMjMsCiAgICAgICAgICAgICAgICBNaW51dGUgPT4gNTksCiAgICAgICAgICAgICAgICBTZWNvbmQgPT4gNTksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNhbGN1bGF0ZSBudW1iZXIgb2YgZGF5cyB3aXRoaW4gdGhlIGdpdmVuIHJhbmdlCiAgICAgICAgbXkgJERheXMgPSBpbnQoICggJFN0b3BEYXRlIC0gJFN0YXJ0RGF0ZSApIC8gODY0MDAgKSArIDE7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgREFZOgogICAgICAgIGZvciBteSAkRGF5ICggMCAuLiAkRGF5cyApIHsKCiAgICAgICAgICAgICMgZ2V0IGRheSByZWxhdGl2ZSB0byBzdGFydCBkYXRlCiAgICAgICAgICAgIG15ICREYXRlT2ZQZXJpb2QgPSAkU3RhcnREYXRlICsgJERheSAqIDg2NDAwOwoKICAgICAgICAgICAgIyBnZXQgbmVlZGVkIGRhdGUgdmFsdWVzIG91dCBvZiB0aW1lLXN0YW1wCiAgICAgICAgICAgIG15IEBEYXRlVmFsdWVzID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVPZlBlcmlvZCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IHdvcmtpbmcgdW5pdCBmb3IgdXNlciBhbmQgZGF5CiAgICAgICAgICAgIG15ICVXb3JraW5nVW5pdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgICAgICAgICAgWWVhciAgID0+ICREYXRlVmFsdWVzWyAkRGF0ZUluZGV4VG9OYW1leydZZWFyJ30gXSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkRGF0ZVZhbHVlc1sgJERhdGVJbmRleFRvTmFtZXsnTW9udGgnfSBdLAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICREYXRlVmFsdWVzWyAkRGF0ZUluZGV4VG9OYW1leydEYXknfSBdLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGV4dHJhY3QgZGV0YWlsZWQgaW5mb3JtYXRpb24KICAgICAgICAgICAgbXkgQERheVdvcmtpbmdVbml0cyA9IEB7ICRXb3JraW5nVW5pdHtXb3JraW5nVW5pdHN9IHx8IFtdIH07CgogICAgICAgICAgICAjIGNoZWNrIGZvciBwcm9qZWN0IHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgICAgICBteSAlU2VsZWN0ZWRQcm9qZWN0SURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICAgICAgbXkgQEZpbHRlcmVkUHJvamVjdFdVcyA9IGdyZXAgewogICAgICAgICAgICAgICAgICAgICRTZWxlY3RlZFByb2plY3RJRHN7ICRfLT57UHJvamVjdElEfSB9CiAgICAgICAgICAgICAgICB9IEBEYXlXb3JraW5nVW5pdHM7CgogICAgICAgICAgICAgICAgQERheVdvcmtpbmdVbml0cyA9IEBGaWx0ZXJlZFByb2plY3RXVXM7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHRhc2sgcmVzdHJpY3Rpb25zCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0KICAgICAgICAgICAgICAgICYmIHJlZiAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IGVxICdBUlJBWScKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgYnVpbGQgbWF0Y2hpbmcgaGFzaCBmb3Igc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgbXkgJVNlbGVjdGVkQWN0aW9uSURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBteSBARmlsdGVyZWRBY3Rpb25XVXMgPSBncmVwIHsgJFNlbGVjdGVkQWN0aW9uSURzeyAkXy0+e0FjdGlvbklEfSB9IH0gQERheVdvcmtpbmdVbml0czsKCiAgICAgICAgICAgICAgICBARGF5V29ya2luZ1VuaXRzID0gQEZpbHRlcmVkQWN0aW9uV1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1c2VyIHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1VzZXJ9CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntVc2VyfSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15ICVTZWxlY3RlZFVzZXJJRHMgPSBtYXAgeyAoICRfID0+IDEgKSB9IEB7ICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VXNlcn0gfTsKCiAgICAgICAgICAgICAgICAjIGZpbHRlciBvbmx5IHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15IEBGaWx0ZXJlZFVzZXJXVXMgPSBncmVwIHsgJFNlbGVjdGVkVXNlcklEc3sgJF8tPntVc2VySUR9IH0gfSBARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgICAgIEBEYXlXb3JraW5nVW5pdHMgPSBARmlsdGVyZWRVc2VyV1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGRvIG5vdCBzdG9yZSBkYXRhIGlmIG5vIGRhdGEgaXMgYXZhaWxhYmxlCiAgICAgICAgICAgIG5leHQgREFZIGlmICFARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgIyBhZGQgZGF0YSB0byBnbG9iYWwgcmVzdWx0IHNldAogICAgICAgICAgICBwdXNoIEBSZXR1cm4sIEBEYXlXb3JraW5nVW5pdHM7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcQFJldHVybjsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBkZWNsYXJlIGV4dGVybmFsbHkgZGVmaW5lZCB2YXJpYWJsZXMgdG8gYXZvaWQgZXJyb3JzIHVuZGVyICd1c2Ugc3RyaWN0Jwp1c2UgdmFycyBxdygkU2VsZik7CgpteSAkUmFuZG9tTnVtYmVyID0gaW50KCByYW5kKDEwMDAwKSApOwoKIyBkYXRhIGZvciB0aGUgbmV3IGFjdGlvbiAodGFzaykKbXkgJU5ld0FjdGlvbkRhdGEgPSAoCiAgICBBY3Rpb24gICAgICAgPT4gJ1Rlc3RBY3Rpb24nIC4gJFJhbmRvbU51bWJlciwKICAgIEFjdGlvblN0YXR1cyA9PiAxLAopOwoKIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdApteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiMgY3JlYXRlIGEgbmV3IGFjdGlvbiAodGFzaykKbXkgJEluc2VydCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoJU5ld0FjdGlvbkRhdGEpOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkSW5zZXJ0LAogICAgJ0luc2VydCB0ZXN0IGFjdGlvbiBzZXR0aW5ncyBpbnRvIGRhdGFiYXNlJywKKTsKCiMgZ2V0IHRoZSBhY3Rpb24gZGF0YSB0aGF0IHdhcyBpbnNlcnRlZCBhYm92ZQpteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KCBBY3Rpb24gPT4gJE5ld0FjdGlvbkRhdGF7QWN0aW9ufSApOwoKIyB2ZXJpZnkgdGhhdCB0aGUgZGF0YSBzYXZlZCBpbiB0aGUgREIgaXMgdGhlIHNhbWUgdGhhdCB3YXMgaW5zZXJ0ZWQKJFNlbGYtPklzKAogICAgJEFjdGlvbkRhdGF7QWN0aW9uU3RhdHVzfSwKICAgICROZXdBY3Rpb25EYXRhe0FjdGlvblN0YXR1c30sCiAgICAnQ29tcGFyZSBhY3Rpb24gc3RhdHVzIHNhdmVkIGluIERCIHdpdGggdGhlIGluc2VydGVkIG9uZScsCik7CgojIG1vZGlmeSB0aGUgYWN0aW9uIG5hbWUKbXkgJFVwZGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NVcGRhdGUoCiAgICBBY3Rpb25JRCAgICAgPT4gJEFjdGlvbkRhdGF7SUR9LAogICAgQWN0aW9uICAgICAgID0+ICROZXdBY3Rpb25EYXRhe0FjdGlvbn0gLiAnbW9kaWZpZWQnLAogICAgQWN0aW9uU3RhdHVzID0+IDEsCik7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHVwZGF0ZWQKJFNlbGYtPlRydWUoCiAgICAkVXBkYXRlLAogICAgJ1VwZGF0ZSB0ZXN0IGFjdGlvbiBzZXR0aW5ncycsCik7CgojIGdldCBhbGwgYWN0aW9ucyBkYXRhCm15ICVBbGxBY3Rpb25zID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKIyB2ZXJpZnkgdGhlIGxhc3QgbW9kaWZpY2F0aW9uCiRTZWxmLT5JcygKICAgICRBbGxBY3Rpb25zeyAkQWN0aW9uRGF0YXtJRH0gfXtBY3Rpb259LAogICAgJE5ld0FjdGlvbkRhdGF7QWN0aW9ufSAuICdtb2RpZmllZCcsCiAgICAnQ29tcGFyZSBhY3Rpb24gbmFtZSBzYXZlZCBpbiBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZScsCik7CgojIGRhdGEgZm9yIHRoZSBuZXcgcHJvamVjdApteSAlTmV3UHJvamVjdERhdGEgPSAoCiAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJ1Rlc3RQcm9qZWN0JyAuICRSYW5kb21OdW1iZXIsCiAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1Rlc3QnLAogICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCik7CgojIGNyZWF0ZSBhIG5ldyBwcm9qZWN0Cm15ICRQcm9qZWN0SUQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCglTmV3UHJvamVjdERhdGEpOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkUHJvamVjdElELAogICAgJ0luc2VydCB0ZXN0IHByb2plY3Qgc2V0dGluZ3MgaW50byBkYXRhYmFzZScsCik7CgojIGdldCB0aGUgYWN0aW9uIGRhdGEgdGhhdCB3YXMgaW5zZXJ0ZWQgYWJvdmUKbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KCBJRCA9PiAkUHJvamVjdElEICk7CgojIHZlcmlmeSB0aGF0IHRoZSBkYXRhIHNhdmVkIGluIHRoZSBEQiBpcyB0aGUgc2FtZSB0aGF0IHdhcyBpbnNlcnRlZAokU2VsZi0+SXMoCiAgICAkUHJvamVjdERhdGF7UHJvamVjdH0sCiAgICAkTmV3UHJvamVjdERhdGF7UHJvamVjdH0sCiAgICAnQ29tcGFyZSBwcm9qZWN0IG5hbWUgc2F2ZWQgaW4gREIgd2l0aCB0aGUgaW5zZXJ0ZWQgb25lJywKKTsKJFNlbGYtPklzKAogICAgJFByb2plY3REYXRhe1Byb2plY3REZXNjcmlwdGlvbn0sCiAgICAkTmV3UHJvamVjdERhdGF7UHJvamVjdERlc2NyaXB0aW9ufSwKICAgICdDb21wYXJlIHByb2plY3QgZGVzY3JpcHRpb24gc2F2ZWQgaW4gREIgd2l0aCB0aGUgaW5zZXJ0ZWQgb25lJywKKTsKJFNlbGYtPklzKAogICAgJFByb2plY3REYXRhe1Byb2plY3RTdGF0dXN9LAogICAgJE5ld1Byb2plY3REYXRhe1Byb2plY3RTdGF0dXN9LAogICAgJ0NvbXBhcmUgcHJvamVjdCBzdGF0dXMgc2F2ZWQgaW4gREIgd2l0aCB0aGUgaW5zZXJ0ZWQgb25lJywKKTsKCiMgbW9kaWZ5IHRoZSBwcm9qZWN0IG5hbWUKJFVwZGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzVXBkYXRlKAogICAgSUQgICAgICAgICAgICAgICAgID0+ICRQcm9qZWN0SUQsCiAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJE5ld1Byb2plY3REYXRhe1Byb2plY3R9IC4gJ21vZGlmaWVkJywKICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnVGVzdCcsCiAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGFjdGlvbiB3YXMgdXBkYXRlZAokU2VsZi0+VHJ1ZSgKICAgICRVcGRhdGUsCiAgICAnVXBkYXRlIHRlc3QgcHJvamVjdCBzZXR0aW5ncycsCik7CgojIGdldCBhbGwgcHJvamVjdHMgZGF0YQpteSAlQWxsUHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCggU3RhdHVzID0+ICd2YWxpZCcgKTsKCiMgdmVyaWZ5IHRoZSBsYXN0IG1vZGlmaWNhdGlvbgokU2VsZi0+SXMoCiAgICAkQWxsUHJvamVjdHN7UHJvamVjdH17JFByb2plY3RJRH0sCiAgICAkTmV3UHJvamVjdERhdGF7UHJvamVjdH0gLiAnbW9kaWZpZWQnLAogICAgJ0NvbXBhcmUgcHJvamVjdCBuYW1lIHNhdmVkIGluIERCIHdpdGggdGhlIHNwZWNpZmllZCBpbiB0aGUgdXBkYXRlJywKKTsKCiMgY3JlYXRlIG5ldyB1c2VyCm15ICRVc2VyTG9naW4gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpLT5UZXN0VXNlckNyZWF0ZSgpOwpteSAkVXNlcklEICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgIFVzZXJMb2dpbiA9PiAkVXNlckxvZ2luLAopOwoKIyBvYnRhaW4gdGhlIGxhc3QgcmVnaXN0ZXJlZCBwZXJpb2Qgb2YgdGhlIHRlc3QgdXNlcgpteSAkTGFzdFBlcmlvZE51bWJlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoIFVzZXJJRCA9PiAkVXNlcklEICkgKyAxOwoKIyBjcmVhdGUgcmVnaXN0cnkgZm9yIHRoZSBuZXcgdXNlciBpbiBUQQokSW5zZXJ0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciwKKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIHVzZXIgd2FzIHN1Y2Nlc3NmdWxseSBpbnNlcnRlZAokU2VsZi0+VHJ1ZSgKICAgICRJbnNlcnQsCiAgICAnSW5zZXJ0IHRlc3QgdXNlciBzZXR0aW5ncyBpbnRvIGRhdGFiYXNlJywKKTsKCiMgaW5zZXJ0IGFub3RoZXIgcGVyaW9kIGVudHJ5IGZvciB0aGUgc2FtZSB1c2VyCiRJbnNlcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgUGVyaW9kID0+ICRMYXN0UGVyaW9kTnVtYmVyICsgMSwKKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIHVzZXIgd2FzIHN1Y2Nlc3NmdWxseSBpbnNlcnRlZAokU2VsZi0+VHJ1ZSgKICAgICRJbnNlcnQsCiAgICAnSW5zZXJ0IHRpbWUgcGVyaW9kIGZvciB0ZXN0IHVzZXIgc2V0dGluZ3MgaW50byBkYXRhYmFzZScsCik7CgokUmFuZG9tTnVtYmVyID0gaW50KCByYW5kKDEwMCkgKTsKCiMgdXBkYXRlIHVzZXIgZGF0YQokVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICBVc2VySUQgICAgICAgID0+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+IDAsCiAgICAgICAgfSwKICAgIH0sCik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IFN5c0NvbmZpZyBvYmplY3QKICAgICAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwogICAgICAgICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgZGlzYWJsZSBNYXNzRW50cnkgZmVhdHVyZXMKICAgICAgICAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlcicsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICd0aW1lX2FjY291bnRpbmcnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIG9iamVjdAogICAgICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICAgICAgIyBnZXQgY3VycmVudCBzeXN0ZW0gdGVzdCB0aW1lCiAgICAgICAgbXkgKCAkU2VjQ3VycmVudCwgJE1pbkN1cnJlbnQsICRIb3VyQ3VycmVudCwgJERheUN1cnJlbnQsICRNb250aEN1cnJlbnQsICRZZWFyQ3VycmVudCApCiAgICAgICAgICAgID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgICAgICAgICApOwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyQ3VycmVudC0kTW9udGhDdXJyZW50LSREYXlDdXJyZW50IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJDdXJyZW50LSRNb250aEN1cnJlbnQtJERheUN1cnJlbnQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICAgICAkU2VsZW5pdW0tPmdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQiKTsKCiAgICAgICAgIyBhZGQgYWRkaXRpb25hbCByb3cKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEBpZD0nTW9yZUlucHV0RmllbGRzJ11bXEB0eXBlPSdidXR0b24nXSIpLT5jbGljaygpOwoKICAgICAgICAjIGNoZWNrIHRpbWUgYWNjb3VudGluZyBlZGl0IGZpZWxkIElEcywgZmlyc3QgYW5kIGFkZGVkIHJvdwogICAgICAgIGZvciBteSAkUm93ICggMSwgOSApIHsKICAgICAgICAgICAgZm9yIG15ICRFZGl0RmllbGRJRCAoCiAgICAgICAgICAgICAgICBxdyhQcm9qZWN0SUQgQWN0aW9uSUQgUmVtYXJrIFN0YXJ0VGltZSBFbmRUaW1lIFBlcmlvZCkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkRWRpdEZpZWxkSUQkUm93IiwgJ2NzcycgKTsKICAgICAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yIG15ICRFZGl0UmVzdElEICgKICAgICAgICAgICAgcXcoTW9udGggRGF5IFllYXIgRGF5RGF0ZXBpY2tlckljb24gTmF2aWdhdGlvblNlbGVjdCBJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0IExlYXZlRGF5IFNpY2sgT3ZlcnRpbWUpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJEVkaXRSZXN0SUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGVkaXQgdGltZSBhY2NvdW50aW5nIGZvciB0ZXN0IGNyZWF0ZWQgdXNlcgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Byb2plY3RJRDFfU2VhcmNoIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICBzbGVlcCAxOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvLypbdGV4dCgpPSckUHJvamVjdFRpdGxlJ10iKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNBY3Rpb25JRDFfU2VhcmNoIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICBzbGVlcCAxOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvLypbdGV4dCgpPSckQWN0aW9uVGl0bGUnXSIpLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N0YXJ0VGltZTEiLCAnY3NzJyApLT5zZW5kX2tleXMoJzEwOjAwJyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRW5kVGltZTEiLCAgICdjc3MnICktPnNlbmRfa2V5cygnMTY6MDAnKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSZW1hcmsxIiwgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCdTZWxlbml1bSB0ZXN0IHJlbWFyaycpOwoKICAgICAgICAjIHZlcmlmeSB0aGF0IHBlcmlvZCBjYWxjdWxhdGUgY29ycmVjdCB0aW1lCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNQZXJpb2QxIiwgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICc2LjAwJywKICAgICAgICAgICAgIlBlcmlvZCB0aW1lIGNvcnJlY3RseSBjYWxjdWxhdGVkIiwKICAgICAgICApOwogICAgICAgIHNsZWVwIDE7CgogICAgICAgICMgc3VibWl0IHdvcmsgYWNjb3VudGluZyBlZGl0IHRpbWUgcmVjb3JkCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+Y2xpY2soKTsKCiAgICAgICAgIyB2ZXJpZnkgc3VibWl0IG1lc3NhZ2UKICAgICAgICBteSAkU3VibWl0TWVzc2FnZSA9ICdTdWNjZXNzZnVsIGluc2VydCEnOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFN1Ym1pdE1lc3NhZ2UgKSA+IC0xLAogICAgICAgICAgICAiJFN1Ym1pdE1lc3NhZ2UgLSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgLSBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIC0gZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgLSByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCAtIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIC0gcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ3RpbWVfYWNjb3VudGluZycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCBjdXJyZW50IHN5c3RlbSB0ZXN0IHRpbWUKICAgICAgICBteSAoICRTZWNDdXJyZW50LCAkTWluQ3VycmVudCwgJEhvdXJDdXJyZW50LCAkRGF5Q3VycmVudCwgJE1vbnRoQ3VycmVudCwgJFllYXJDdXJyZW50ICkKICAgICAgICAgICAgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICAgICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgZW5kIHRpbWUgKyAxIGRheSBvZiBjdXJyZW50IHRpbWUKICAgICAgICBteSAoICRTZWNFbmQsICRNaW5FbmQsICRIb3VyRW5kLCAkRGF5RW5kLCAkTW9udGhFbmQsICRZZWFyRW5kICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgKyA2MCAqIDYwICogMjQsCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhckN1cnJlbnQtJE1vbnRoQ3VycmVudC0kRGF5Q3VycmVudCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICAgICAkU2VsZW5pdW0tPmdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3OyIpOwoKICAgICAgICAjIGNoZWNrIHBhZ2UgbGF5b3V0CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgdmVyaWZ5IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldyB2YWx1ZXMKICAgICAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKICAgICAgICBteSBAVGVzdCA9ICgKICAgICAgICAgICAgJFByb2plY3RUaXRsZSwgJEFjdGlvblRpdGxlLCAnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldycsICdPbiBvdmVydGltZSBsZWF2ZScsICdPdmVydGltZSAoSG91cnMpJywKICAgICAgICAgICAgJ1ZhY2F0aW9uIChEYXlzKScsICdTaWNrIExlYXZlIChEYXlzKScsIEBXZWVrZGF5QXJyYXkKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJENoZWNrIChAVGVzdCkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hlY2sgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRDaGVjayAtIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIC0gZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSAtIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIC0gcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgLSByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCAtIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgc2V0IE1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cyBTeXNDb25maWcgb24gNTAgZGF5cyBmb3IgdGVzdCBwdXJwb3NlCiAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMnLAogICAgICAgICAgICBWYWx1ZSA9PiA1MCwKICAgICAgICApOwoKICAgICAgICAjIHVzZSBhIGNhbGVuZGFyIHdpdGggdGhlIHNhbWUgYnVzaW5lc3MgaG91cnMgZm9yIGV2ZXJ5IGRheSBzbyB0aGF0IHRoZSBVVCBydW5zIGNvcnJlY3RseQogICAgICAgICMgb24gZXZlcnkgZGF5IG9mIHRoZSB3ZWVrIGFuZCBvdXRzaWRlIHVzdWFsIGJ1c2luZXNzIGhvdXJzLgogICAgICAgIG15ICVXZWVrOwogICAgICAgIG15IEBEYXlzID0gcXcoU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0KTsKICAgICAgICBmb3IgbXkgJERheSAoQERheXMpIHsKICAgICAgICAgICAgJFdlZWt7JERheX0gPSBbIDAgLi4gMjMgXTsKICAgICAgICB9CiAgICAgICAgJENvbmZpZ09iamVjdC0+U2V0KAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwogICAgICAgICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnLCAndGltZV9hY2NvdW50aW5nJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIGdldCB0ZXN0IHVzZXIgSUQKICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgaW5zZXJ0IHRlc3QgdXNlciBpbnRvIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAnMScsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBvYmplY3QKICAgICAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgICAgICMgZ2V0IHRlc3Qgc3RhcnQgdGltZSAtIDQwIGRheXMgb2YgY3VycmVudCB0aW1lCiAgICAgICAgbXkgKCAkU2VjU3RhcnQsICRNaW5TdGFydCwgJEhvdXJTdGFydCwgJERheVN0YXJ0LCAkTW9udGhTdGFydCwgJFllYXJTdGFydCApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpIC0gNjAgKiA2MCAqIDI0ICogNDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgd29yayB0ZXN0IHRpbWUgKyAxIHNlY29uZCB0aGVuIHN0YXJ0IHRpbWUKICAgICAgICBteSAoICRTZWNDdXJyZW50LCAkTWluQ3VycmVudCwgJEhvdXJDdXJyZW50LCAkRGF5Q3VycmVudCwgJE1vbnRoQ3VycmVudCwgJFllYXJDdXJyZW50ICkKICAgICAgICAgICAgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgLSA2MCAqIDYwICogMjQgKiA0MCArIDEsCiAgICAgICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgZW5kIHRpbWUgKyAxIGRheSBvZiBjdXJyZW50IHRpbWUKICAgICAgICBteSAoICRTZWNFbmQsICRNaW5FbmQsICRIb3VyRW5kLCAkRGF5RW5kLCAkTW9udGhFbmQsICRZZWFyRW5kICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgKyA2MCAqIDYwICogMjQsCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhclN0YXJ0LSRNb250aFN0YXJ0LSREYXlTdGFydCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAgICAgJFNlbGVuaXVtLT5nZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmciKTsKCiAgICAgICAgIyBzZWxlY3QgbW9udGggYW5kIHllYXIgdGhhdCBhcmUgdXNlZCBmb3IgdGVzdGluZwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI01vbnRoIG9wdGlvblt2YWx1ZT0nJE1vbnRoU3RhcnQnXSIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjWWVhciBvcHRpb25bdmFsdWU9JyRZZWFyU3RhcnQnXSIsICAgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNOYXZpZ2F0aW9uU2VsZWN0IiwgICAgICAgICAgICAgICAgICAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIGNoZWNrIHBhZ2UgbGF5b3V0CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgdmVyaWZ5IHRoZXJlIGlzIGxpbmsgdG8gdGVzdCB1c2VyIHJlcG9ydHMKICAgICAgICBteSAkVXNlclJlcG9ydEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiRUZXN0VXNlckxvZ2luICRUZXN0VXNlckxvZ2luIiwgJ2xpbmtfdGV4dCcgKTsKICAgICAgICAkVXNlclJlcG9ydEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAkVXNlclJlcG9ydEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwoKICAgICAgICAjIHZlcmlmeSB0aGVyZSBpcyBsaW5rIHRvIHRlc3QgdXNlciBwcm9qZWN0IHJlcG9ydHMKICAgICAgICBteSAkUHJvamVjdFJlcG9ydEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiRQcm9qZWN0VGl0bGUiLCAnbGlua190ZXh0JyApOwogICAgICAgICRQcm9qZWN0UmVwb3J0RWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICRQcm9qZWN0UmVwb3J0RWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CgogICAgICAgICMgc2VsZWN0IHRlc3QgY3JlYXRlZCBwcm9qZWN0CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICRQcm9qZWN0VGl0bGUsICdsaW5rX3RleHQnICktPmNsaWNrKCk7CgogICAgICAgICMgY2hlY2sgcGFnZSBsYXlvdXQKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgdGVzdCBjcmVhdGVkIGFjdGlvbgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEFjdGlvblRpdGxlICkgPiAtMSwKICAgICAgICAgICAgIiRBY3Rpb25UaXRsZSAtIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBEQiBvYmplY3QKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBnZXQgREIgY2xlYW4tdXAgZGF0YQogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSAtIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgLSBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCAtIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIC0gcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgLSByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICd0aW1lX2FjY291bnRpbmcnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBhbm90aGVyIHRlc3QgdXNlcgogICAgICAgIG15ICRUZXN0VXNlciA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKCk7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlciwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICAgICAkU2VsZW5pdW0tPmdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciKTsKCiAgICAgICAgIyBjaGVjayB0aW1lIGFjY291bnQgc2V0dGluZyBwYWdlIElEcwogICAgICAgIGZvciBteSAkU2V0dGluZ1BhZ2VJRCAoCiAgICAgICAgICAgIHF3KE5ld1VzZXJJRCBGaWx0ZXJQcm9qZWN0cyBGaWx0ZXJUYXNrcyBGaWx0ZXJVc2VycyBDb3JlX1VJX0F1dG9nZW5lcmF0ZWRJRF8wCiAgICAgICAgICAgIENvcmVfVUlfQXV0b2dlbmVyYXRlZElEXzEgQ29yZV9VSV9BdXRvZ2VuZXJhdGVkSURfMikKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkU2V0dGluZ1BhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgYnV0dG9ucwogICAgICAgIGZvciBteSAkU2V0dGluZ0J1dHRvbiAoICdBZGQnLCAnQWRkIHRhc2snLCAnTmV3IHVzZXInICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9JyRTZXR0aW5nQnV0dG9uJ11bXEB0eXBlPSdzdWJtaXQnXSIpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGNsaWNrIG9uICdBZGQgcHJvamVjdCcKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nQWRkJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5jbGljaygpOwoKICAgICAgICAjIGNoZWNrIHByb2plY3QgcGFnZSBJRHMKICAgICAgICBmb3IgbXkgJFByb2plY3RQYWdlSUQgKHF3KFByb2plY3QgUHJvamVjdERlc2NyaXB0aW9uIFByb2plY3RTdGF0dXMpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkUHJvamVjdFBhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgICAgICAgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdERlc2NyaXB0aW9uID0gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCc7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUHJvamVjdCIsICAgICAgICAgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCRQcm9qZWN0VGl0bGUpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Byb2plY3REZXNjcmlwdGlvbiIsICdjc3MnICktPnNlbmRfa2V5cygkUHJvamVjdERlc2NyaXB0aW9uKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5jbGljaygpOwoKICAgICAgICAjIHZlcmlmeSBjcmVhdGVkIHRlc3QgcHJvamVjdAogICAgICAgIGZvciBteSAkUHJvamVjdFZlcmlmeSAoICRQcm9qZWN0VGl0bGUsICRQcm9qZWN0RGVzY3JpcHRpb24gKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRQcm9qZWN0VmVyaWZ5ICkgPiAtMSwKICAgICAgICAgICAgICAgICIkUHJvamVjdFZlcmlmeSAtIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2xpY2sgb24gJ0FkZCB0YXNrJwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQgdGFzayddW1xAdHlwZT0nc3VibWl0J10iKS0+Y2xpY2soKTsKCiAgICAgICAgIyBjaGVjayB0YXNrIHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRUYXNrUGFnZUlEIChxdyhUYXNrIFRhc2tTdGF0dXMpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkVGFza1BhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHRlc3QgdGFzawogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdUYXNrICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Rhc2siLCAnY3NzJyApLT5zZW5kX2tleXMoJEFjdGlvblRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5jbGljaygpOwoKICAgICAgICAjIHZlcmlmeSBjcmVhdGVkIHRlc3QgdGFzawogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEFjdGlvblRpdGxlICkgPiAtMSwKICAgICAgICAgICAgIiRBY3Rpb25UaXRsZSAtIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0ZXN0IHVzZXIgdG8gdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICBteSAkQXV0b0NvbXBsZXRlVXNlciA9ICIkVGVzdFVzZXIgJFRlc3RVc2VyIjsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNOZXdVc2VySURfU2VhcmNoIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICBzbGVlcCAxOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvLypbdGV4dCgpPSckQXV0b0NvbXBsZXRlVXNlciddIiktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J05ldyB1c2VyJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5jbGljaygpOwoKICAgICAgICAjIGNoZWNrIGVkaXQgdXNlciBwYWdlCiAgICAgICAgZm9yIG15ICRFZGl0VXNlclBhZ2VJRCAoCiAgICAgICAgICAgIHF3KERlc2NyaXB0aW9uIFNob3dPdmVydGltZSBDcmVhdGVQcm9qZWN0IENhbGVuZGFyIERhdGVTdGFydC0xIERhdGVFbmQtMSBMZWF2ZURheXMtMQogICAgICAgICAgICBXZWVrbHlIb3Vycy0xIE92ZXJ0aW1lLTEgUGVyaW9kU3RhdHVzLTEpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJEVkaXRVc2VyUGFnZUlEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBjbGljayAnQWRkIHRpbWUgcGVyaW9kJwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQgdGltZSBwZXJpb2QnXVtcQHR5cGU9J3N1Ym1pdCddIiktPmNsaWNrKCk7CgogICAgICAgICMgY2hlY2sgZm9yIG5ldyBhZGRlZCB0aW1lIHBlcmlvZCBmaWVsZHMKICAgICAgICBmb3IgbXkgJE5ld1RpbWVQZXJpb2RJRCAocXcoRGF0ZVN0YXJ0LTIgRGF0ZUVuZC0yIExlYXZlRGF5cy0yIFdlZWtseUhvdXJzLTIgT3ZlcnRpbWUtMiBQZXJpb2RTdGF0dXMtMikpCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyROZXdUaW1lUGVyaW9kSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGVkaXQgdXNlciBzZXR0aW5nCiAgICAgICAgbXkgJFVzZXJEZXNjcmlwdGlvbiA9ICdTZWxlbml1bSB0ZXN0IHVzZXIgc2V0dGluZyc7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGVzY3JpcHRpb24iLCAgICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGVzY3JpcHRpb24iLCAgICdjc3MnICktPnNlbmRfa2V5cygkVXNlckRlc2NyaXB0aW9uKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTaG93T3ZlcnRpbWUiLCAgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDcmVhdGVQcm9qZWN0IiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgc2xlZXAgMTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5jbGljaygpOwoKICAgICAgICAjIHZlcmlmeSB0ZXN0IHVzZXIgc2V0dGluZwogICAgICAgIG15ICRTZXR0aW5nVXNlciA9ICIkVGVzdFVzZXIgJFRlc3RVc2VyICgkVGVzdFVzZXIpIjsKICAgICAgICBmb3IgbXkgJFNldHRpbmdVc2VyVmVyaWZ5ICggJFNldHRpbmdVc2VyLCAkVXNlckRlc2NyaXB0aW9uICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkU2V0dGluZ1VzZXJWZXJpZnkgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRTZXR0aW5nVXNlclZlcmlmeSAtIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIC0gZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSAtIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgLSByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCAtIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBuZWVkZWQgb2JqZWN0CiAgICAgICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAgICAgIyBzZXQgTWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzIFN5c0NvbmZpZyBvbiA1MCBkYXlzIGZvciB0ZXN0IHB1cnBvc2UKICAgICAgICAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cycsCiAgICAgICAgICAgIFZhbHVlID0+IDUwLAogICAgICAgICk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CiAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICd0aW1lX2FjY291bnRpbmcnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIG9iamVjdAogICAgICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICAgICAgIyBnZXQgdGVzdCBzdGFydCB0aW1lIC0gNDAgZGF5cyBvZiBjdXJyZW50IHRpbWUKICAgICAgICBteSAoICRTZWNTdGFydCwgJE1pblN0YXJ0LCAkSG91clN0YXJ0LCAkRGF5U3RhcnQsICRNb250aFN0YXJ0LCAkWWVhclN0YXJ0ICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgLSA2MCAqIDYwICogMjQgKiA0MCwKICAgICAgICApOwoKICAgICAgICAjIGdldCB3b3JrIHRlc3QgdGltZSArIDEgc2Vjb25kIHRoZW4gc3RhcnQgdGltZQogICAgICAgIG15ICggJFNlY0N1cnJlbnQsICRNaW5DdXJyZW50LCAkSG91ckN1cnJlbnQsICREYXlDdXJyZW50LCAkTW9udGhDdXJyZW50LCAkWWVhckN1cnJlbnQgKQogICAgICAgICAgICA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSAtIDYwICogNjAgKiAyNCAqIDQwICsgMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGVzdCBlbmQgdGltZSArIDEgZGF5IG9mIGN1cnJlbnQgdGltZQogICAgICAgIG15ICggJFNlY0VuZCwgJE1pbkVuZCwgJEhvdXJFbmQsICREYXlFbmQsICRNb250aEVuZCwgJFllYXJFbmQgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSArIDYwICogNjAgKiAyNCwKICAgICAgICApOwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyU3RhcnQtJE1vbnRoU3RhcnQtJERheVN0YXJ0IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJFbmQtJE1vbnRoRW5kLSREYXlFbmQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgYWRkIHdvcmtpbmcgdW5pdHMgZm9yIHRlc3QgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgICAgICAgPT4gJFllYXJDdXJyZW50LAogICAgICAgICAgICBNb250aCAgICAgICAgPT4gJE1vbnRoQ3VycmVudCwKICAgICAgICAgICAgRGF5ICAgICAgICAgID0+ICREYXlDdXJyZW50LAogICAgICAgICAgICBMZWF2ZURheSAgICAgPT4gMSwKICAgICAgICAgICAgU2ljayAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAxLAogICAgICAgICAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTZWxlbml1bSB0ZXN0IHJlbWFyaycsCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICc1JywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJENvbmZpZ09iamVjdC0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdWaWV3IG9mIHRlc3QgY3JlYXRlZCB3b3JrIHVuaXQgZGF5CiAgICAgICAgJFNlbGVuaXVtLT5nZXQoCiAgICAgICAgICAgICIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nVmlldztZZWFyPSRZZWFyQ3VycmVudDtNb250aD0kTW9udGhDdXJyZW50O0RheT0kRGF5Q3VycmVudDtVc2VySUQ9JFRlc3RVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBwYWdlIGxheW91dAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIGNoZWNrIHRpbWUgYWNjb3VudGluZyB2aWV3IHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRJRCAocXcoTW9udGggRGF5IFllYXIgRGF5RGF0ZXBpY2tlckljb24gTmF2aWdhdGlvblNlbGVjdCBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBmb3IgdGVzdCBwcm9qZWN0IGFuZCBhY3Rpb24KICAgICAgICBmb3IgbXkgJENoZWNrICggJFByb2plY3RUaXRsZSwgJEFjdGlvblRpdGxlICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hlY2sgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRDaGVjayAtIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIC0gZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSAtIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIC0gcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgLSByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCAtIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ3RpbWVfYWNjb3VudGluZycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCB0ZXN0IHN0YXJ0IHRpbWUgLSA0MCBkYXlzIG9mIGN1cnJlbnQgdGltZQogICAgICAgIG15ICggJFNlY1N0YXJ0LCAkTWluU3RhcnQsICRIb3VyU3RhcnQsICREYXlTdGFydCwgJE1vbnRoU3RhcnQsICRZZWFyU3RhcnQgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSAtIDYwICogNjAgKiAyNCAqIDQwLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHdvcmsgdGVzdCB0aW1lICsgMSBzZWNvbmQgdGhlbiBzdGFydCB0aW1lCiAgICAgICAgbXkgKCAkU2VjQ3VycmVudCwgJE1pbkN1cnJlbnQsICRIb3VyQ3VycmVudCwgJERheUN1cnJlbnQsICRNb250aEN1cnJlbnQsICRZZWFyQ3VycmVudCApCiAgICAgICAgICAgID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpIC0gNjAgKiA2MCAqIDI0ICogNDAgKyAxLAogICAgICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZXN0IGVuZCB0aW1lICsgMSBkYXkgb2YgY3VycmVudCB0aW1lCiAgICAgICAgbXkgKCAkU2VjRW5kLCAkTWluRW5kLCAkSG91ckVuZCwgJERheUVuZCwgJE1vbnRoRW5kLCAkWWVhckVuZCApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgdmVyaWZ5IHRoZXJlIGlzIG5vdGlmaWNhdGlvbiBtZXNzYWdlCiAgICAgICAgbXkgJE5vdGlmaWNhdGlvbk1lc3NhZ2UgPSAnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJzsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICROb3RpZmljYXRpb25NZXNzYWdlICkgPiAtMSwKICAgICAgICAgICAgIiROb3RpZmljYXRpb25NZXNzYWdlIC0gZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIC0gZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSAtIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIC0gcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgLSByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCAtIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ3RpbWVfYWNjb3VudGluZycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCB0ZXN0IHN0YXJ0IHRpbWUgLSA0MCBkYXlzIG9mIGN1cnJlbnQgdGltZQogICAgICAgIG15ICggJFNlY1N0YXJ0LCAkTWluU3RhcnQsICRIb3VyU3RhcnQsICREYXlTdGFydCwgJE1vbnRoU3RhcnQsICRZZWFyU3RhcnQgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSAtIDYwICogNjAgKiAyNCAqIDQwLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHdvcmsgdGVzdCB0aW1lICsgMSBzZWNvbmQgdGhlbiBzdGFydCB0aW1lCiAgICAgICAgbXkgKCAkU2VjQ3VycmVudCwgJE1pbkN1cnJlbnQsICRIb3VyQ3VycmVudCwgJERheUN1cnJlbnQsICRNb250aEN1cnJlbnQsICRZZWFyQ3VycmVudCApCiAgICAgICAgICAgID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpIC0gNjAgKiA2MCAqIDI0ICogNDAgKyAxLAogICAgICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZXN0IGVuZCB0aW1lICsgMSBkYXkgb2YgY3VycmVudCB0aW1lCiAgICAgICAgbXkgKCAkU2VjRW5kLCAkTWluRW5kLCAkSG91ckVuZCwgJERheUVuZCwgJE1vbnRoRW5kLCAkWWVhckVuZCApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgdmVyaWZ5IHRoZXJlIGlzIHRvb2wgYmFyIGZvciBpbmNvbXBsZXRlIGRheXMKICAgICAgICBteSAkVG9vbEJhckluY29tcGxldGVEYXlzID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQHRpdGxlLCBcJ0luY29tcGxldGUgd29ya2luZyBkYXlzOicpXSIpOwogICAgICAgICRUb29sQmFySW5jb21wbGV0ZURheXMtPmlzX2VuYWJsZWQoKTsKICAgICAgICAkVG9vbEJhckluY29tcGxldGVEYXlzLT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgLSBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIC0gZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgLSByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCAtIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIC0gcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBDb25maXJtYXRpb25EaWFsb2cuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICogQG5hbWUgRGlhbG9nRGF0YQogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQG1lbWJlciB7QXJyYXl9CiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyB2YXJpYWJsZSBzdG9yZXMgdGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgcGFzc2VkIGZyb20gdGhlIERUTCBhbmQgY29udGFpbiBhbGwgdGhlIGRhdGEgdGhhdCB0aGUgZGlhbG9nIG5lZWRzLgogICAgICovCiAgICB2YXIgRGlhbG9nRGF0YSA9IFtdOwoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIFNob3dXYWl0aW5nRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBQb3NpdGlvblRvcCAtIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBkaWFsb2cuCiAgICAgKiBAZGVzY3JpcHRpb24gU2hvd3Mgd2FpdGluZyBkaWFsb2cgdW50aWwgc2VhcmNoIHNjcmVlbiBpcyByZWFkeS4KICAgICAqLwogICAgZnVuY3Rpb24gU2hvd1dhaXRpbmdEaWFsb2coUG9zaXRpb25Ub3ApewogICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCc8ZGl2IGNsYXNzPSJTcGFjaW5nIENlbnRlciI+PHNwYW4gY2xhc3M9IkFKQVhMb2FkZXIiIHRpdGxlPSInICsgQ29yZS5Db25maWcuR2V0KCdMb2FkaW5nTXNnJykgKyAnIj48L3NwYW4+PC9kaXY+JywgJycsIFBvc2l0aW9uVG9wLCAnQ2VudGVyJywgdHJ1ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAbmFtZSBTaG93Q29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBmYWxzZS4KICAgICAqIEBwYXJhbSB7RXZlbnRPYmplY3R9IEV2ZW50IC0gZXZlbnQgb2JqZWN0IG9mIHRoZSBjbGlja2VkIGVsZW1lbnQuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBzaG93cyBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgd2l0aCAyIGJ1dHRvbnM6IFllcyBhbmQgTm8gb3IgYSBtZXNzYWdlIGRpYWxvZyB3aXRoIG9uZSBidXR0b246IE9rLgogICAgICovCiAgICBUYXJnZXROUy5TaG93Q29uZmlybWF0aW9uRGlhbG9nID0gZnVuY3Rpb24gKEV2ZW50KSB7CgogICAgICAgIHZhciBMb2NhbERpYWxvZ0RhdGEsCiAgICAgICAgICAgIFBvc2l0aW9uVG9wLAogICAgICAgICAgICBEYXRhLAogICAgICAgICAgICBCdXR0b25zOwoKICAgICAgICAvLyBnZXQgZ2xvYmFsIHNhdmVkIERpYWxvZ0RhdGEgZm9yIHRoaXMgZnVuY3Rpb24KICAgICAgICBMb2NhbERpYWxvZ0RhdGEgPSBEaWFsb2dEYXRhWyQoRXZlbnQudGFyZ2V0KS5hdHRyKCdpZCcpXTsKCiAgICAgICAgLy8gZGVmaW5lIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGlhbG9nCiAgICAgICAgUG9zaXRpb25Ub3AgPSAkKHdpbmRvdykuaGVpZ2h0KCkgKiAwLjM7CgogICAgICAgIC8vIHNob3cgd2FpdGluZyBkaWFsb2cKICAgICAgICBTaG93V2FpdGluZ0RpYWxvZyhQb3NpdGlvblRvcCk7CgogICAgICAgIC8vIGFqYXggY2FsbCB0byB0aGUgbW9kdWxlIHRoYXQgZXhlY3V0ZXMgdGhlIGFjdGlvbiB3aGVuIHByZXNzaW5nIHRoZSBjb25maXJtYXRpb24gYnV0dG9uCiAgICAgICAgRGF0YSA9IExvY2FsRGlhbG9nRGF0YS5EaWFsb2dDb250ZW50UXVlcnlTdHJpbmc7CiAgICAgICAgQ29yZS5BSkFYLkZ1bmN0aW9uQ2FsbChDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJyksIERhdGEsIGZ1bmN0aW9uIChSZXNwb25zZSkgewoKICAgICAgICAgICAgLy8gJ0NvbmZpcm1hdGlvbicgb3BlbnMgYSBkaWFsb2cgd2l0aCAyIGJ1dHRvbnM6IFllcyBhbmQgTm8KICAgICAgICAgICAgaWYgKFJlc3BvbnNlLkRpYWxvZ1R5cGUgPT09ICdDb25maXJtYXRpb24nKSB7CgogICAgICAgICAgICAgICAgLy8gZGVmaW5lIHllcyBhbmQgbm8gYnV0dG9ucwogICAgICAgICAgICAgICAgQnV0dG9ucyA9IFt7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IExvY2FsRGlhbG9nRGF0YS5UcmFuc2xhdGVkVGV4dC5ZZXMsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICJQcmltYXJ5IiwKCiAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5lIHRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSAnWWVzJyBidXR0b24gaXMgcHJlc3NlZAogICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbigpewoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZSBZZXMgYW5kIE5vIGJ1dHRvbnMgdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXRzCiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2Rpdi5EaWFsb2c6dmlzaWJsZSBkaXYuQ29udGVudEZvb3RlciBidXR0b24nKS5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gdGhlIG1vZHVsZSB0aGF0IGRvZXMgdGhlIGNvbmZpcm1lZCBhY3Rpb24gYWZ0ZXIgcHJlc3NpbmcgdGhlIFllcyBidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArIExvY2FsRGlhbG9nRGF0YS5Db25maXJtZWRBY3Rpb25RdWVyeVN0cmluZzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IExvY2FsRGlhbG9nRGF0YS5UcmFuc2xhdGVkVGV4dC5ObywKICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiCiAgICAgICAgICAgICAgICB9XTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gJ01lc3NhZ2UnIG9wZW5zIGEgZGlhbG9nIHdpdGggMSBidXR0b246IE9rCiAgICAgICAgICAgIGVsc2UgaWYgKFJlc3BvbnNlLkRpYWxvZ1R5cGUgPT09ICdNZXNzYWdlJykgewoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSBPayBidXR0b24KICAgICAgICAgICAgICAgIEJ1dHRvbnMgPSBbewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMb2NhbERpYWxvZ0RhdGEuVHJhbnNsYXRlZFRleHQuT2ssCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICJQcmltYXJ5IiwKICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiCiAgICAgICAgICAgICAgICB9XTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gc2hvdyB0aGUgY29uZmlybWF0aW9uIGRpYWxvZyB0byBjb25maXJtIHRoZSBhY3Rpb24KICAgICAgICAgICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coUmVzcG9uc2UuSFRNTCwgTG9jYWxEaWFsb2dEYXRhLkRpYWxvZ1RpdGxlLCBQb3NpdGlvblRvcCwgIkNlbnRlciIsIHRydWUsIEJ1dHRvbnMpOwogICAgICAgIH0sICdqc29uJyk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfTsKCiAgICAvKioKICAgICAqIEBuYW1lIEJpbmRDb25maXJtYXRpb25EaWFsb2cKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9IERhdGEgLSBEaWFsb2dEYXRhLgogICAgICogQGRlc2NyaXB0aW9uICBCaW5kcyBjb25mb3JtYXRpb24gZGlhbG9nIHRvIGFuIGVsZW1lbnQKICAgICAqLwogICAgVGFyZ2V0TlMuQmluZENvbmZpcm1hdGlvbkRpYWxvZyA9IGZ1bmN0aW9uIChEYXRhKSB7CiAgICAgICAgRGlhbG9nRGF0YVtEYXRhLkVsZW1lbnRJRF0gPSBEYXRhOwoKICAgICAgICAvLyBiaW5kaW5nIGEgY2xpY2sgZXZlbnQgdG8gdGhlIGRlZmluZWQgZWxlbWVudAogICAgICAgICQoRGlhbG9nRGF0YVtEYXRhLkVsZW1lbnRJRF0uRWxlbWVudFNlbGVjdG9yKS5iaW5kKCdjbGljaycsIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5TaG93Q29uZmlybWF0aW9uRGlhbG9nKTsKICAgIH07CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZyB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIKICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBkYXRlcGlja2VyIGZ1bmN0aW9uIGZvciBUQS4KICovClRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgdmFyIFZhY2F0aW9uRGF5cywKICAgICAgICBWYWNhdGlvbkRheXNPbmVUaW1lLAogICAgICAgIExvY2FsaXphdGlvbkRhdGEsCiAgICAgICAgRGF0ZXBpY2tlckNvdW50ID0gMDsKCiAgICBpZiAoIUNvcmUuRGVidWcuQ2hlY2tEZXBlbmRlbmN5KCdDb3JlLlVJLkRhdGVwaWNrZXInLCAnJChbXSkuZGF0ZXBpY2tlcicsICdqUXVlcnkgVUkgZGF0ZXBpY2tlcicpKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIENoZWNrRGF0ZQogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIKICAgICAqIEBmdW5jdGlvbgogICAgICogQHJldHVybnMge09iamVjdH0gLSBhcnJheSB3aXRoIGRhdGUgZGF0YQogICAgICogQHBhcmFtIHtqUXVlcnlPYmplY3R9IERhdGVPYmplY3QgLSBvYmplY3QgdGhhdCB3aWxsIGJlIGNoZWNrZWQKICAgICAqIEBkZXNjcmlwdGlvbiBSZXZpZXcgaWYgYSBkYXRlIG9iamVjdCBoYXZlIGNvcnJlY3QgdmFsdWVzCiAgICAgKiAgICAgIElmIG5vIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgY2xvc2UgaXMgZ2l2ZW4gKHZpYSB0aGUgQnV0dG9uIGRlZmluaXRpb24pLAogICAgICogICAgICB0aGUgZGlhbG9nIGlzIGp1c3QgY2xvc2VkLiBPdGhlcndpc2UgdGhlIGRlZmluZWQgQ2xvc2UgYnV0dG9uIGlzIHRyaWdnZXJlZCwKICAgICAqICAgICAgd2hpY2ggaW52b2tlcyB0aGUgY2FsbGJhY2sgYW5kIHRoZSBjbG9zaW5nIG9mIHRoZSBkaWFsb2cuCiAgICAgKi8KICAgIGZ1bmN0aW9uIENoZWNrRGF0ZShEYXRlT2JqZWN0KSB7CiAgICAgICAgdmFyIERheURlc2NyaXB0aW9uID0gJycsCiAgICAgICAgICAgIERheUNsYXNzID0gJyc7CgogICAgICAgIC8vIEdldCBkZWZpbmVkIGRheXMgZnJvbSBDb25maWcsIGlmIG5vdCBkb25lIGFscmVhZHkKICAgICAgICBpZiAodHlwZW9mIFZhY2F0aW9uRGF5cyA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgVmFjYXRpb25EYXlzID0gQ29yZS5Db25maWcuR2V0KCdEYXRlcGlja2VyLlZhY2F0aW9uRGF5cycpLlRpbWVWYWNhdGlvbkRheXM7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgVmFjYXRpb25EYXlzT25lVGltZSA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgVmFjYXRpb25EYXlzT25lVGltZSA9IENvcmUuQ29uZmlnLkdldCgnRGF0ZXBpY2tlci5WYWNhdGlvbkRheXMnKS5UaW1lVmFjYXRpb25EYXlzT25lVGltZTsKICAgICAgICB9CgogICAgICAgIC8vIENoZWNrIGlmIGRhdGUgaXMgb25lIG9mIHRoZSB2YWNhdGlvbiBkYXlzCiAgICAgICAgaWYgKHR5cGVvZiBWYWNhdGlvbkRheXNbRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV0gIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgICAgIHR5cGVvZiBWYWNhdGlvbkRheXNbRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICBEYXlEZXNjcmlwdGlvbiArPSBWYWNhdGlvbkRheXNbRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldOwogICAgICAgICAgICBEYXlDbGFzcyA9ICdIaWdobGlnaHQgJzsKICAgICAgICB9CgogICAgICAgIC8vIENoZWNrIGlmIGRhdGUgaXMgb25lIG9mIHRoZSBvbmUgdGltZSB2YWNhdGlvbiBkYXlzCiAgICAgICAgaWYgKHR5cGVvZiBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV0gIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgICAgIHR5cGVvZiBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV1bRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV0gIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgICAgIHR5cGVvZiBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV1bRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICBEYXlEZXNjcmlwdGlvbiArPSBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV1bRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldOwogICAgICAgICAgICBEYXlDbGFzcyA9ICdIaWdobGlnaHQgJzsKICAgICAgICB9CgogICAgICAgIGlmIChEYXlDbGFzcy5sZW5ndGgpIHsKICAgICAgICAgICAgcmV0dXJuIFt0cnVlLCBEYXlDbGFzcywgRGF5RGVzY3JpcHRpb25dOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIFt0cnVlLCAnJ107CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9ICRFbGVtZW50IFRoZSBqUXVlcnkgb2JqZWN0KHMpIG9mIGEgdGV4dCBpbnB1dCBmaWVsZCB3aGljaCBzaG91bGQgZ2V0IGEgZGF0ZXBpY2tlci4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBEYXRlcGlja2VyT3B0aW9ucyBPYmplY3Qgd2l0aCB0d28gcG9zc2libGUga2V5czoKICAgICAqICAgICAgICAgICAgICAgICAgICAgIERhdGVJbkZ1dHVyZTogdHJ1ZXxmYWxzZSwKICAgICAqICAgICAgICAgICAgICAgICAgICAgIFdlZWtEYXlTdGFydDogMC03IChzdW5kYXkgLSBzYXR1cmRheSkKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBkYXRlcGlja2VyIG9uIHNpbmdsZSBlbGVtZW50cyBmb3IgVEEuCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IHlldCBhdmFpbGFibGUgaW4gdGhlIE9UUlMgQ29yZS4KICAgICAqICAgICAgSWYgaXQgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBPVFJTIENvcmUgd2UgY291bGQgcmVtb3ZlIHRoaXMgZmlsZSBoZXJlLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCRFbGVtZW50LCBEYXRlcGlja2VyT3B0aW9ucykgewogICAgICAgIHZhciAkRGF0ZXBpY2tlckVsZW1lbnQsCiAgICAgICAgICAgIE9wdGlvbnM7CgogICAgICAgIC8vIFRPRE86IGNoZWNrIGlmIHRoaXMgaXMgc3RpbGwgbmVlZGVkCiAgICAgICAgLy8gZnVuY3Rpb24gTGVhZGluZ1plcm8oTnVtYmVyKSB7CiAgICAgICAgLy8gICAgIGlmIChOdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggPT09IDEpIHsKICAgICAgICAvLyAgICAgICAgIHJldHVybiAnMCcgKyBOdW1iZXI7CiAgICAgICAgLy8gICAgIH0KICAgICAgICAvLyAgICAgZWxzZSB7CiAgICAgICAgLy8gICAgICAgICByZXR1cm4gTnVtYmVyOwogICAgICAgIC8vICAgICB9CiAgICAgICAgLy8gfQoKICAgICAgICBpZiAodHlwZW9mIExvY2FsaXphdGlvbkRhdGEgPT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIExvY2FsaXphdGlvbkRhdGEgPSBDb3JlLkNvbmZpZy5HZXQoJ0RhdGVwaWNrZXIuTG9jYWxpemF0aW9uJyk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgTG9jYWxpemF0aW9uRGF0YSA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb3JlLkV4Y2VwdGlvbi5BcHBsaWNhdGlvbkVycm9yKCdEYXRlcGlja2VyIGxvY2FsaXphdGlvbiBkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZCEnLCAnSW50ZXJuYWxFcnJvcicpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBEZWZpbmUgb3B0aW9ucyBoYXNoCiAgICAgICAgT3B0aW9ucyA9IHsKICAgICAgICAgICAgICAgIGJlZm9yZVNob3dEYXk6IGZ1bmN0aW9uIChEYXRlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENoZWNrRGF0ZShEYXRlT2JqZWN0KTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBzaG93T246ICdmb2N1cycsCiAgICAgICAgICAgICAgICBwcmV2VGV4dDogTG9jYWxpemF0aW9uRGF0YS5QcmV2VGV4dCwKICAgICAgICAgICAgICAgIG5leHRUZXh0OiBMb2NhbGl6YXRpb25EYXRhLk5leHRUZXh0LAogICAgICAgICAgICAgICAgc2hvd01vbnRoQWZ0ZXJZZWFyOiAwLAogICAgICAgICAgICAgICAgZGF0ZUZvcm1hdDogJ3l5LW1tLWRkJywKICAgICAgICAgICAgICAgIG1vbnRoTmFtZXM6IExvY2FsaXphdGlvbkRhdGEuTW9udGhOYW1lcywKICAgICAgICAgICAgICAgIG1vbnRoTmFtZXNTaG9ydDogTG9jYWxpemF0aW9uRGF0YS5Nb250aE5hbWVzU2hvcnQsCiAgICAgICAgICAgICAgICBkYXlOYW1lczogTG9jYWxpemF0aW9uRGF0YS5EYXlOYW1lcywKICAgICAgICAgICAgICAgIGRheU5hbWVzU2hvcnQ6IExvY2FsaXphdGlvbkRhdGEuRGF5TmFtZXNTaG9ydCwKICAgICAgICAgICAgICAgIGRheU5hbWVzTWluOiBMb2NhbGl6YXRpb25EYXRhLkRheU5hbWVzTWluLAogICAgICAgICAgICAgICAgaXNSVEw6IExvY2FsaXphdGlvbkRhdGEuSXNSVEwKICAgICAgICB9OwoKICAgICAgICBPcHRpb25zLmJlZm9yZVNob3cgPSBmdW5jdGlvbiAoSW5wdXQpIHsKICAgICAgICAgICAgdmFyIFZhbHVlID0gJChJbnB1dCkucHJldkFsbCgnaW5wdXQ6dGV4dCcpLnZhbCgpOwogICAgICAgICAgICAkKElucHV0KS52YWwoJycpOwogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZGVmYXVsdERhdGU6IG5ldyBEYXRlKFZhbHVlKQogICAgICAgICAgICB9OwogICAgICAgIH07CgogICAgICAgIE9wdGlvbnMub25TZWxlY3QgPSBmdW5jdGlvbiAoRGF0ZVRleHQpIHsKICAgICAgICAgICAgJCh0aGlzKS5wcmV2QWxsKCdpbnB1dDp0ZXh0JykudmFsKERhdGVUZXh0KTsKICAgICAgICB9OwoKICAgICAgICBpZiAoaXNKUXVlcnlPYmplY3QoJEVsZW1lbnQpKSB7CiAgICAgICAgICAgICRFbGVtZW50LmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyICRTaW5nbGVFbGVtZW50ID0gJCh0aGlzKTsKICAgICAgICAgICAgICAgIGlmICgkU2luZ2xlRWxlbWVudC5pcygnaW5wdXQ6dGV4dCcpKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gSW5jcmVtZW50IG51bWJlciBvZiBpbml0aWFsaXplZCBkYXRlcGlja2VycyBvbiB0aGlzIHNpdGUKICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyQ291bnQrKzsKCiAgICAgICAgICAgICAgICAgICAgJERhdGVwaWNrZXJFbGVtZW50ID0gJCgnPGlucHV0PicpLmF0dHIoJ3R5cGUnLCAnaGlkZGVuJykuYXR0cignaWQnLCAnRGF0ZXBpY2tlcicgKyBEYXRlcGlja2VyQ291bnQpOwogICAgICAgICAgICAgICAgICAgICRTaW5nbGVFbGVtZW50LmFmdGVyKCREYXRlcGlja2VyRWxlbWVudCk7CgogICAgICAgICAgICAgICAgICAgIE9wdGlvbnMuZmlyc3REYXkgPSBEYXRlcGlja2VyT3B0aW9ucy5XZWVrRGF5U3RhcnQ7CiAgICAgICAgICAgICAgICAgICAgJERhdGVwaWNrZXJFbGVtZW50LmRhdGVwaWNrZXIoT3B0aW9ucyk7CgogICAgICAgICAgICAgICAgICAgIC8vIGFkZCBkYXRlcGlja2VyIGljb24gYW5kIGNsaWNrIGV2ZW50CiAgICAgICAgICAgICAgICAgICAgJERhdGVwaWNrZXJFbGVtZW50LmFmdGVyKCc8YSBocmVmPSIjIiBjbGFzcz0iRGF0ZXBpY2tlckljb24gRGF0ZXBpY2tlck51bWJlcicgKyBEYXRlcGlja2VyQ291bnQgKyAnIiB0aXRsZT0iJyArIExvY2FsaXphdGlvbkRhdGEuSWNvblRleHQgKyAnIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FsZW5kYXIiPjwvaT48L3NwYW4+PC9hPicpOwogICAgICAgICAgICAgICAgICAgICREYXRlcGlja2VyRWxlbWVudC5uZXh0KCdhLkRhdGVwaWNrZXJJY29uJykuY2xpY2soZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgQ2xhc3NlcyA9ICQodGhpcykuYXR0cignY2xhc3MnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVwaWNrZXJOdW1iZXIgPSBDbGFzc2VzLnJlcGxhY2UoL14uKkRhdGVwaWNrZXJOdW1iZXIoWzAtOV0rKS4qL2csICIkMSIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0RhdGVwaWNrZXInICsgRGF0ZXBpY2tlck51bWJlcikuZGF0ZXBpY2tlcignc2hvdycpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBzaG93IHRoZSBkYXRlcGlja2VyIGNvbnRhaW5lciBkaXYuCiAgICAgICAgICAgICAgICAgICAgJCgnI3VpLWRhdGVwaWNrZXItZGl2JykuaGlkZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9OwoKICAgIHJldHVybiBUYXJnZXROUzsKfShUaW1lQWNjb3VudGluZy5BZ2VudC5EYXRlcGlja2VyIHx8IHt9KSk7Cg==
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBlZGl0IHNjcmVlbi4KICovClRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBUYXJnZXROUy5BY3Rpb25MaXN0ID0gIiI7CiAgICBUYXJnZXROUy5BY3Rpb25MaXN0Q29uc3RyYWludHMgPSAiIjsKICAgIC8vIEFkZHMgb3B0aW9uIHRvIGEgc2VsZWN0aW9uCgogICAgZnVuY3Rpb24gQWRkU2VsZWN0aW9uT3B0aW9uKCRTZWxlY3Rpb25FbGVtZW50LCBPcHRpb25UZXh0LCBPcHRpb25WYWx1ZSwgU2VsZWN0ZWRPcHRpb24pIHsKICAgICAgICB2YXIgJE9wdGlvbiA9ICQoJzxvcHRpb24gdmFsdWU9IicgKyBPcHRpb25WYWx1ZSArICciPicgKyBPcHRpb25UZXh0ICsgJzwvb3B0aW9uPicpOwoKICAgICAgICBpZiAoT3B0aW9uVmFsdWUgPT09IFNlbGVjdGVkT3B0aW9uKSB7CiAgICAgICAgICAgICRPcHRpb24ucHJvcCgnc2VsZWN0ZWQnLCB0cnVlKTsKICAgICAgICB9CgogICAgICAgICRTZWxlY3Rpb25FbGVtZW50LmFwcGVuZCgkT3B0aW9uKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtTdHJpbmd9IFdvcmtpbmdVbml0SUQgLSBUaGUgSUQgb2YgdGhlIHdvcmtpbmcgdW5pdCB3ZSBhcmUgaW4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBGaWxscyBvcHRpb25zIG9mIGFjdGlvbiBzZWxlY3Rpb24gYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QKICAgICAqLwogICAgVGFyZ2V0TlMuRmlsbEFjdGlvbkxpc3QgPSBmdW5jdGlvbiAoV29ya2luZ1VuaXRJRCkgewogICAgICAgIHZhciBQcm9qZWN0TmFtZSA9ICQoJyNQcm9qZWN0SUQnICsgV29ya2luZ1VuaXRJRCArICcgb3B0aW9uOnNlbGVjdGVkJykudGV4dCgpLAogICAgICAgICAgICBBY3Rpb25MaXN0ID0gVGFyZ2V0TlMuQWN0aW9uTGlzdCwKICAgICAgICAgICAgQWN0aW9uTGlzdENvbnN0cmFpbnRzID0gVGFyZ2V0TlMuQWN0aW9uTGlzdENvbnN0cmFpbnRzLAogICAgICAgICAgICAkQWN0aW9uU2VsZWN0aW9uID0gJCgiI0FjdGlvbklEIiArIFdvcmtpbmdVbml0SUQpLAogICAgICAgICAgICBTZWxlY3RlZEFjdGlvbklEID0gJEFjdGlvblNlbGVjdGlvbi52YWwoKSwKICAgICAgICAgICAgT3B0aW9uQ291bnQgPSAwOwoKICAgICAgICAvLyByZW1vdmUgcHJldmlvdXMgYWN0aW9ucywgbGVhdmUgZmlyc3QgZWxlbWVudCAoZW1wdHkgZWxlbWVudCkKICAgICAgICAkQWN0aW9uU2VsZWN0aW9uLmZpbmQoJ29wdGlvbicpLmZpbHRlcignOm5vdCg6Zmlyc3QpJykucmVtb3ZlKCk7CgogICAgICAgICQuZWFjaChBY3Rpb25MaXN0LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBBY3Rpb25JRCA9IHRoaXNbMF0sCiAgICAgICAgICAgICAgICBBY3Rpb25OYW1lID0gdGhpc1sxXTsKCiAgICAgICAgICAgICQuZWFjaChBY3Rpb25MaXN0Q29uc3RyYWludHMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBQcm9qZWN0TmFtZVJlZ0V4cCA9IG5ldyBSZWdFeHAodGhpc1swXSksCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uTmFtZVJlZ0V4cCA9IG5ldyBSZWdFeHAodGhpc1sxXSk7CgogICAgICAgICAgICAgICAgLy8gYWRkIGFjdGlvbiB0byBzZWxlY3Rpb24KICAgICAgICAgICAgICAgIGlmIChQcm9qZWN0TmFtZVJlZ0V4cC50ZXN0KFByb2plY3ROYW1lKSAmJiBBY3Rpb25OYW1lUmVnRXhwLnRlc3QoQWN0aW9uTmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICBBZGRTZWxlY3Rpb25PcHRpb24oJEFjdGlvblNlbGVjdGlvbiwgQWN0aW9uTmFtZSwgQWN0aW9uSUQsIFNlbGVjdGVkQWN0aW9uSUQpOwogICAgICAgICAgICAgICAgICAgIE9wdGlvbkNvdW50Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBhbGwgYWN0aW9ucyB3aWxsIGJlIGFkZGVkIGlmIG5vIGFjdGlvbiB3YXMgYWRkZWQgYWJvdmUgKHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24pCiAgICAgICAgaWYgKCFPcHRpb25Db3VudCkgewogICAgICAgICAgICAvLyBpZ25vcmUgZmlyc3QgZWxlbWVudCBiZWNhdXNlIGl0J3MgdGhlIGVtcHR5IGVsZW1lbnQgd2hpY2ggaXMgYWxyZWFkeSBwYXJ0IG9mIHRoZSBsaXN0CiAgICAgICAgICAgICQuZWFjaChBY3Rpb25MaXN0LCBmdW5jdGlvbiAoSW5kZXgpIHsKICAgICAgICAgICAgICAgIHZhciBBY3Rpb25JRCA9IHRoaXNbMF0sCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uTmFtZSA9IHRoaXNbMV07CiAgICAgICAgICAgICAgICBpZiAoSW5kZXggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgQWRkU2VsZWN0aW9uT3B0aW9uKCRBY3Rpb25TZWxlY3Rpb24sIEFjdGlvbk5hbWUsIEFjdGlvbklELCBTZWxlY3RlZEFjdGlvbklEKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfTsKCgogICAgZnVuY3Rpb24gSW5pdEFkZFJvdygpIHsKICAgICAgICAkKCcjTW9yZUlucHV0RmllbGRzJykudW5iaW5kKCdjbGljay5Nb3JlSW5wdXRGaWVsZHMnKS5iaW5kKCdjbGljay5Nb3JlSW5wdXRGaWVsZHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciAkTGFzdFJvdyA9ICQoJyNJbnNlcnRXb3JraW5nSG91cnMgdGJvZHkgdHIuV29ya2luZ0hvdXJzOmxhc3QnKSwKICAgICAgICAgICAgICAgICROZXdSb3csIE5ld1Jvd0hUTUwsCiAgICAgICAgICAgICAgICBSZWNvcmROdW1iZXIgPSBwYXJzZUludCgkKCcjUmVjb3Jkc051bWJlcicpLnZhbCgpLCAxMCkgKyAxOwoKICAgICAgICAgICAgQ29yZS5VSS5JbnB1dEZpZWxkcy5EZWFjdGl2YXRlKCQoJy5Xb3JraW5nSG91cnMnKSk7CiAgICAgICAgICAgICROZXdSb3cgPSAkTGFzdFJvdy5jbG9uZSgpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gJE5ld1Jvdy5odG1sKCk7CgogICAgICAgICAgICAvLyBOb3cgdGFrZSB0aGUgbGFzdCByb3cgYW5kIHJlcGxhY2UgYWxsIG51bWJlcnMgd2l0aCB0aGUgbmV3IHJlY29yZCBudW1iZXIKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUHJvamVjdElEWzAtOV0rL2csICdQcm9qZWN0SUQnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUHJvamVjdElEXFtbMC05XSsvZywgJ1Byb2plY3RJRFsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvRmlsbEFjdGlvbkxpc3RcKFswLTldKy9nLCAnRmlsbEFjdGlvbkxpc3QoJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0FjdGlvbklEWzAtOV0rL2csICdBY3Rpb25JRCcgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9BY3Rpb25JRFxbWzAtOV0rL2csICdBY3Rpb25JRFsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUmVtYXJrWzAtOV0rL2csICdSZW1hcmsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUmVtYXJrXFtbMC05XSsvZywgJ1JlbWFya1snICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvU3RhcnRUaW1lWzAtOV0rL2csICdTdGFydFRpbWUnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvU3RhcnRUaW1lXFtbMC05XSsvZywgJ1N0YXJ0VGltZVsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvRW5kVGltZVswLTldKy9nLCAnRW5kVGltZScgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9FbmRUaW1lXFtbMC05XSsvZywgJ0VuZFRpbWVbJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1BlcmlvZFswLTldKy9nLCAnUGVyaW9kJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1BlcmlvZFxbWzAtOV0rL2csICdQZXJpb2RbJyArIFJlY29yZE51bWJlcik7CgogICAgICAgICAgICAvLyBOb3cgd3JpdGUgdGhpcyBIVE1MIGJhY2sgdG8gdGhlIGpxdWVyeSBvYmplY3QKICAgICAgICAgICAgJE5ld1Jvdy5odG1sKE5ld1Jvd0hUTUwpOwoKICAgICAgICAgICAgLy8gSWYgbGFzdCByb3cgY29udGFpbmVkIHZhbHVlcywgdGhlc2UgbXVzdCBiZSByZW1vdmVkCiAgICAgICAgICAgICROZXdSb3cKICAgICAgICAgICAgICAgIC5maW5kKCdpbnB1dDp0ZXh0JykudmFsKCcnKS5lbmQoKQogICAgICAgICAgICAgICAgLmZpbmQoJ3NlbGVjdCBvcHRpb24nKS5wcm9wKCdzZWxlY3RlZCcsIGZhbHNlKTsKCiAgICAgICAgICAgIC8vIE5vdyBhZGQgdGhpcyByb3cgdG8gdGhlIHRhYmxlCiAgICAgICAgICAgICRMYXN0Um93LmFmdGVyKCROZXdSb3cpOwoKICAgICAgICAgICAgLy8gU2F2ZSBuZXcgUmVjb3JkTnVtYmVyCiAgICAgICAgICAgICQoJyNSZWNvcmRzTnVtYmVyJykudmFsKFJlY29yZE51bWJlcik7CgogICAgICAgICAgICAvLyBSZS1pbml0aWF0ZSB0aGUgJ29kZC9ldmVuJyBjb2xvdXJzIG9mIHRoZSB0YWJsZQogICAgICAgICAgICAkKCcjSW5zZXJ0V29ya2luZ0hvdXJzIHRib2R5IHRyJykKICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnRXZlbicpCiAgICAgICAgICAgICAgICAuZmlsdGVyKCc6b2RkJykuYWRkQ2xhc3MoJ0V2ZW4nKTsKCiAgICAgICAgICAgIC8vIE1vZGVybml6ZSBmaWVsZHMKICAgICAgICAgICAgQ29yZS5VSS5JbnB1dEZpZWxkcy5BY3RpdmF0ZSgkKCcuV29ya2luZ0hvdXJzJykpOwogICAgICAgIH0pOwogICAgfQoKICAgIGZ1bmN0aW9uIFJlY2FsY3VsYXRlVG90YWxIb3VycygpIHsKICAgICAgICB2YXIgVG90YWwgPSAwOwogICAgICAgICQoJy5QZXJpb2QnKS5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIFZhbHVlID0gcGFyc2VGbG9hdCgkKHRoaXMpLnZhbCgpKTsKICAgICAgICAgICAgaWYgKCFpc05hTihWYWx1ZSkpIHsKICAgICAgICAgICAgICAgIFRvdGFsICs9IFZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgJCgnLlRvdGFsSG91cnMnKS50ZXh0KFRvdGFsLnRvRml4ZWQoMikpOwogICAgfQoKICAgIGZ1bmN0aW9uIEluaXRQZXJpb2RDYWxjdWxhdGlvbigpIHsKICAgICAgICAvLyBpbml0IGNhbGN1bGF0aW9uIG9mIHBlcmlvZCBmaWVsZCBhZnRlciB3b3JraW5nIGhvdXJzIHdoZXJlIGFkZGVkL3N1YnN0cmFjdGVkL3doYXRldmVyLi4uCiAgICAgICAgJCgnLlBlcmlvZCcpLnVuYmluZCgnY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJykuYmluZCgnY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgIHZhciBGaWVsZFZhbHVlID0gJCh0aGlzKS52YWwoKTsKCiAgICAgICAgICAgLy8gcmVwbGFjZSAsIHdpdGggLgogICAgICAgICAgIEZpZWxkVmFsdWUgPSBGaWVsZFZhbHVlLnJlcGxhY2UoLywvZywgIi4iKTsKCiAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGVudGVyZWQgdmFsdWUgb25seSBjb25zaXN0cyBvZiBhbGxvd2VkIHZhbHVlcwogICAgICAgICAgIC8vIGlmIG5vdCwgd2UgZG8gbm90IGV2YWwgZm9yIHNlY3VyaXR5IHJlYXNvbnMKICAgICAgICAgICBpZiAoRmllbGRWYWx1ZS5tYXRjaCgvXlswLTlcLitcLSBdKyQvKSkgewogICAgICAgICAgICAgICAvLyBDYWxjdWxhdGlvbgogICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBuby1ldmFsICovCiAgICAgICAgICAgICAgICAgICBGaWVsZFZhbHVlID0gZXZhbChGaWVsZFZhbHVlKTsKICAgICAgICAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBuby1ldmFsICovCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgY2F0Y2ggKENhbGNFcnJvcikgewogICAgICAgICAgICAgICAgICAgRmllbGRWYWx1ZSA9IDA7CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIC8vIHNldCBuZXcgdmFsdWUKICAgICAgICAgICAgICAgJCh0aGlzKS52YWwoRmllbGRWYWx1ZS50b0ZpeGVkKDIpKTsKCiAgICAgICAgICAgICAgIC8vIG5vdyBTdGFydFRpbWUgYW5kIEVuZFRpbWUgd2lsbCBub3QgbWF0Y2ggdGhlIHBlcmlvZCBhbnltb3JlCiAgICAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGVzZSBlbnRyaWVzCiAgICAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcuU3RhcnRUaW1lLCAuRW5kVGltZScpLnZhbCgnJyk7CgogICAgICAgICAgIH0KICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgJCh0aGlzKS52YWwoJycpOwogICAgICAgICAgIH0KCiAgICAgICAgICAgLy8gbm93IHJlLWNhbGN1bGF0ZSB0aGUgdG90YWwgaG91cnMgc3VtCiAgICAgICAgICAgUmVjYWxjdWxhdGVUb3RhbEhvdXJzKCk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIGluaXQgcGVyaW9kIGNhbGN1bGF0aW9uIG9uIHN0YXJ0dGltZSBhbmQgZW5kdGltZSBmaWVsZHMKICAgICAgICAkKCcuU3RhcnRUaW1lLCAuRW5kVGltZScpLnVuYmluZCgnY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJykuYmluZCgnY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgJFN0YXJ0VGltZSwgJEVuZFRpbWUsCiAgICAgICAgICAgICAgICBTdGFydFRpbWVIb3VyLCBTdGFydFRpbWVNaW51dGUsIEVuZFRpbWVIb3VyLCBFbmRUaW1lTWludXRlLAogICAgICAgICAgICAgICAgU3RhcnREYXRlLCBFbmREYXRlLCBUb2RheSwKICAgICAgICAgICAgICAgIFBlcmlvZDsKCiAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdTdGFydFRpbWUnKSkgewogICAgICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICQodGhpcyk7CiAgICAgICAgICAgICAgICAkRW5kVGltZSA9ICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuRW5kVGltZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcuU3RhcnRUaW1lJyk7CiAgICAgICAgICAgICAgICAkRW5kVGltZSA9ICQodGhpcyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIG9ubHkgY2FsY3VsYXRlIGlmIGJvdGggZmllbGRzIGFyZSBmaWxsZWQKICAgICAgICAgICAgaWYgKCRTdGFydFRpbWUudmFsKCkgJiYgJEVuZFRpbWUudmFsKCkpIHsKICAgICAgICAgICAgICAgIC8vIGV4dHJhY3QgaG91cnMgYW5kIG1pbnV0ZXMKICAgICAgICAgICAgICAgIFN0YXJ0VGltZUhvdXIgPSAkU3RhcnRUaW1lLnZhbCgpLnNwbGl0KC86LylbMF0gfHwgMDsKICAgICAgICAgICAgICAgIFN0YXJ0VGltZU1pbnV0ZSA9ICRTdGFydFRpbWUudmFsKCkuc3BsaXQoLzovKVsxXSB8fCAwOwogICAgICAgICAgICAgICAgRW5kVGltZUhvdXIgPSAkRW5kVGltZS52YWwoKS5zcGxpdCgvOi8pWzBdIHx8IDA7CiAgICAgICAgICAgICAgICBFbmRUaW1lTWludXRlID0gJEVuZFRpbWUudmFsKCkuc3BsaXQoLzovKVsxXSB8fCAwOwoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSBkYXRlIG9iamVjdHMKICAgICAgICAgICAgICAgIFRvZGF5ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgIFN0YXJ0RGF0ZSA9IG5ldyBEYXRlKFRvZGF5LmdldFllYXIoKSwgVG9kYXkuZ2V0TW9udGgoKSwgVG9kYXkuZ2V0RGF0ZSgpLCBTdGFydFRpbWVIb3VyLCBTdGFydFRpbWVNaW51dGUsIDApOwogICAgICAgICAgICAgICAgRW5kRGF0ZSA9IG5ldyBEYXRlKFRvZGF5LmdldFllYXIoKSwgVG9kYXkuZ2V0TW9udGgoKSwgVG9kYXkuZ2V0RGF0ZSgpLCBFbmRUaW1lSG91ciwgRW5kVGltZU1pbnV0ZSwgMCk7CgogICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICBQZXJpb2QgPSBFbmREYXRlLmdldFRpbWUoKSAtIFN0YXJ0RGF0ZS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICBQZXJpb2QgPSBQZXJpb2QgLyAoMTAwMCAqIDYwICogNjApOwoKICAgICAgICAgICAgICAgIC8vIHNldCBuZXcgdmFsdWUKICAgICAgICAgICAgICAgIGlmICghaXNOYU4oUGVyaW9kKSkgewogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuUGVyaW9kJykudmFsKFBlcmlvZC50b0ZpeGVkKDIpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuUGVyaW9kJykudmFsKCcnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZWNhbGN1bGF0ZVRvdGFsSG91cnMoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge09iamVjdH0gT3B0aW9ucyB0aGUgZGlmZmVyZW50IHBvc3NpYmxlIG9wdGlvbnM6CiAgICAgKiAgICAgICAgICAgICAgICAgIFJlbWFya1JlZ0V4cENvbnRlbnQgLSB0aGUgcmVndWxhciBleHByZXNzaW9uIGZvciB0aGUgcmVtYXJrIHZhbGlkYXRpb24gY2hlY2sKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGFsbCBuZWVkZWQgSlMgZm9yIHRoZSBFZGl0IHNjcmVlbgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKE9wdGlvbnMpIHsKICAgICAgICB2YXIgTG9jYWxPcHRpb25zID0gT3B0aW9ucyB8fCB7fSwKICAgICAgICAgICAgUmVtYXJrUmVnRXhwQ29udGVudCA9IExvY2FsT3B0aW9ucy5SZW1hcmtSZWdFeHBDb250ZW50LAogICAgICAgICAgICAvLyBBZGQgc29tZSBzcGVjaWFsIHZhbGlkYXRpb24gbWV0aG9kcyBmb3IgdGhlIGVkaXQgc2NyZWVuCiAgICAgICAgICAgIC8vIERlZmluZSBhbGwgYXZhaWxhYmxlIGVsZW1lbnRzIChvbmx5IHRoZSBwcmVmaXhlcykgaW4gYSByb3cKICAgICAgICAgICAgRWxlbWVudFByZWZpeGVzID0gWydQcm9qZWN0SUQnLCAnQWN0aW9uSUQnLCAnUmVtYXJrJywgJ1N0YXJ0VGltZScsICdFbmRUaW1lJywgJ1BlcmlvZCddOwoKICAgICAgICAvLyBWYWxpZGF0ZXMgdGhlIHByb2plY3Q6IGlmIHNvbWUgb3RoZXIgZmllbGQgaW4gdGhpcyByb3cgaXMgZmlsbGVkLCB0aGUgcHJvamVjdCBzZWxlY3QgbXVzdCBiZSBmaWxsZWQsIHRvbwogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1Byb2plY3QnLCBmdW5jdGlvbiAoVmFsdWUsIEVsZW1lbnQpIHsKICAgICAgICAgICAgdmFyIElELAogICAgICAgICAgICAgICAgUmVzdWx0ID0gdHJ1ZTsKCiAgICAgICAgICAgIC8vIEdldCBJRAogICAgICAgICAgICAvLyBPdXIgRWxlbWVudCBjYW4gYmUgdGhlIHNlbGVjdCBlbGVtZW50IG9yIHRoZSBhdXRvY29tcGxldGlvbiBpbnB1dCBmaWVsZAogICAgICAgICAgICBpZiAoJChFbGVtZW50KS5pcygnc2VsZWN0JykpIHsKICAgICAgICAgICAgICAgIElEID0gJChFbGVtZW50KS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1Byb2plY3RJRCcsICcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIElEID0gJChFbGVtZW50KS5wcmV2QWxsKCdzZWxlY3QnKS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1Byb2plY3RJRCcsICcnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFWYWx1ZSkgewogICAgICAgICAgICAgICAgJC5lYWNoKEVsZW1lbnRQcmVmaXhlcywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGlmICghUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzICE9PSAnUHJvamVjdElEJyAmJiAkKCcjJyArIHRoaXMgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBSZXN1bHQ7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0JywgewogICAgICAgICAgICAvKmVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqLwogICAgICAgICAgICBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0OiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSByZW1hcmtzOiBkZXBlbmRpbmcgb24gdGhlIHByb2plY3QsIHJlbWFya3MgbXVzdCBiZSBlbnRlcmVkIG9yIG5vdAogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1JlbWFyaycsIGZ1bmN0aW9uIChWYWx1ZSwgRWxlbWVudCkgewogICAgICAgICAgICB2YXIgSUQgPSAkKEVsZW1lbnQpLmF0dHIoJ2lkJykucmVwbGFjZSgnUmVtYXJrJywgJycpLAogICAgICAgICAgICAgICAgUmVtYXJrUmVnRXhwID0gbmV3IFJlZ0V4cCgiXigiICsgUmVtYXJrUmVnRXhwQ29udGVudCArICIpJCIpLAogICAgICAgICAgICAgICAgUmVtYXJrQ2hlY2sgPSBSZW1hcmtSZWdFeHAudGVzdCgkKCcjUHJvamVjdElEJyArIElEKS52YWwoKSk7CgogICAgICAgICAgICBpZiAoJCgnI1Byb2plY3RJRCcgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAhKFJlbWFya0NoZWNrICYmIFZhbHVlLmxlbmd0aCA8IDgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZFJ1bGUoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1JlbWFyaycsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUmVtYXJrOiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSBzdGFydCB0aW1lOiBpZiBhIHByb2plY3QgaXMgZ2l2ZW4gYW5kIG5vIHRpbWUgcGVyaW9kIGlzIGdpdmVuLCB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZE1ldGhvZCgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfU3RhcnRUaW1lJywgZnVuY3Rpb24gKFZhbHVlLCBFbGVtZW50KSB7CiAgICAgICAgICAgIHZhciBJRCA9ICQoRWxlbWVudCkuYXR0cignaWQnKS5yZXBsYWNlKCdTdGFydFRpbWUnLCAnJyk7CgogICAgICAgICAgICBpZiAoIVZhbHVlICYmICQoJyNQcm9qZWN0SUQnICsgSUQpLnZhbCgpICYmICEkKCcjUGVyaW9kJyArIElEKS52YWwoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZFJ1bGUoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1N0YXJ0VGltZScsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfU3RhcnRUaW1lOiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSB0aW1lIHBlcmlvZDogaWYgYSBwcm9qZWN0IGlzIGdpdmVuIGFuZCBubyBzdGFydCB0aW1lIGlzIGdpdmVuLCB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZE1ldGhvZCgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUGVyaW9kJywgZnVuY3Rpb24gKFZhbHVlLCBFbGVtZW50KSB7CiAgICAgICAgICAgIHZhciBJRCA9ICQoRWxlbWVudCkuYXR0cignaWQnKS5yZXBsYWNlKCdQZXJpb2QnLCAnJyk7CgogICAgICAgICAgICBpZiAoIVZhbHVlICYmICQoJyNQcm9qZWN0SUQnICsgSUQpLnZhbCgpICYmICEkKCcjU3RhcnRUaW1lJyArIElEKS52YWwoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZFJ1bGUoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1BlcmlvZCcsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUGVyaW9kOiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gaW5pdGlhdGUgIm1vcmUgaW5wdXQgZmllbGRzIiBmdW5jdGlvbmFsaXR5CiAgICAgICAgSW5pdEFkZFJvdygpOwoKICAgICAgICAvLyBpbml0aWF0ZSBwZXJpb2QgY2FsY3VsYXRpb24KICAgICAgICBJbml0UGVyaW9kQ2FsY3VsYXRpb24oKTsKCiAgICAgICAgLy8gU2VsZWN0IG9ubHkgb25lIGNoZWNrYm94IGluIHRoZSBncm91cCAnQWJzZW5jZScKICAgICAgICAkKCIuQWJzZW5jZSBpbnB1dDpjaGVja2JveCIpLmNsaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgJCgiLkFic2VuY2UgaW5wdXQ6Y2hlY2tib3giKS5wcm9wKCJjaGVja2VkIiwgZmFsc2UpOwogICAgICAgICAgICAkKHRoaXMpLnByb3AoImNoZWNrZWQiLCB0cnVlKTsKICAgICAgICB9KTsKICAgIH07CgoKICAgIC8qKgogICAgICogQG5hbWUgTWFzc0VudHJ5SW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge09iamVjdH0gTGFuZ3VhZ2Ugb2JqZWN0IHdpdGggdGV4dCB0cmFuc2xhdGlvbnMKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBqYXZhc2NyaXB0IGZvciB0aGUgbWFzcyBlbnRyeSBmdW5jdGlvbmFsaXR5CiAgICAgKi8KICAgIFRhcmdldE5TLk1hc3NFbnRyeUluaXQgPSBmdW5jdGlvbihMYW5ndWFnZSkgewogICAgICAgICQoJyNJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwnKS51bmJpbmQoJ2NsaWNrLlNlbGVjdEFsbERheXMnKS5iaW5kKCdjbGljay5TZWxlY3RBbGxEYXlzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgU3RhdGUgPSAkKHRoaXMpLnByb3AoJ2NoZWNrZWQnKTsKICAgICAgICAgICAgJCgndWwuSW5jb21wbGV0ZVdvcmtpbmdEYXlzIGxpIGlucHV0OmNoZWNrYm94JykucHJvcCgnY2hlY2tlZCcsIFN0YXRlKTsKICAgICAgICB9KTsKICAgICAgICAkKCcjTWFzc0VudHJ5U3VibWl0JykudW5iaW5kKCdjbGljay5NYXNzRW50cnlTdWJtaXQnKS5iaW5kKCdjbGljay5NYXNzRW50cnlTdWJtaXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciAkV29ya2luZ0RheUNoZWNrYm94ZXMgPSAkKCd1bC5JbmNvbXBsZXRlV29ya2luZ0RheXMgbGkgaW5wdXQ6Y2hlY2tib3g6Y2hlY2tlZCcpLmZpbHRlcignW25hbWUhPUluY29tcGxldGVXb3JraW5nRGF5LUFsbF0nKTsKCiAgICAgICAgICAgIGlmICghJFdvcmtpbmdEYXlDaGVja2JveGVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgYWxlcnQoTGFuZ3VhZ2UuTXNnQ2hvb3NlT25lRGF5KTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU2hvdyBvdmVybGF5CiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCQoJyNNYXNzRW50cnlDb25maXJtRGlhbG9nJyksIExhbmd1YWdlLk1hc3NFbnRyeSwgJzE1MHB4JywgJ0NlbnRlcicsIHRydWUsIFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMYWJlbDogTGFuZ3VhZ2UuU3VibWl0LAogICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkU2VsZWN0ZWRSYWRpbyA9ICQoJyNNYXNzRW50cnlDb25maXJtUmFkaW8gbGkgaW5wdXQ6cmFkaW86Y2hlY2tlZCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWJzZW5jZVJlYXNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3RlZERhdGVzID0gJyc7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRTZWxlY3RlZFJhZGlvLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoTGFuZ3VhZ2UuTXNnQWJzZW5jZVJlYXNvbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCBhYnNlbmNlIHJlYXNvbgogICAgICAgICAgICAgICAgICAgICAgICBBYnNlbmNlUmVhc29uID0gJFNlbGVjdGVkUmFkaW8uZGF0YSgnYWJzZW5jZScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoQWJzZW5jZVJlYXNvbiA9PT0gJ0xlYXZlRGF5JykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI01hc3NFbnRyeSBpbnB1dFtuYW1lPUxlYXZlRGF5XScpLnZhbCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBYnNlbmNlUmVhc29uID09PSAnU2ljaycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNNYXNzRW50cnkgaW5wdXRbbmFtZT1TaWNrXScpLnZhbCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBYnNlbmNlUmVhc29uID09PSAnT3ZlcnRpbWUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9T3ZlcnRpbWVdJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBjb2xsZWN0IGRhdGVzCiAgICAgICAgICAgICAgICAgICAgICAgICQoJ3VsLkluY29tcGxldGVXb3JraW5nRGF5cyBsaSBpbnB1dDpjaGVja2JveDpjaGVja2VkJykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgRGF0ZUl0ZW0gPSAkKHRoaXMpLmF0dHIoJ25hbWUnKS5yZXBsYWNlKC9JbmNvbXBsZXRlV29ya2luZ0RheS0vLCAiIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRGF0ZUl0ZW0gIT09ICdBbGwnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGVkRGF0ZXMgKz0gRGF0ZUl0ZW0gKyAnfCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9RGF0ZXNdJykudmFsKENvbGxlY3RlZERhdGVzKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3cgd2FpdGluZyBpY29uCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5EaWFsb2c6dmlzaWJsZScpCiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuQ29udGVudEZvb3RlcicpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbXB0eSgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbmQoKQogICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLklubmVyQ29udGVudCcpCiAgICAgICAgICAgICAgICAgICAgICAgIC53aWR0aCgkKCcuRGlhbG9nOnZpc2libGUnKS5maW5kKCcuSW5uZXJDb250ZW50Jykud2lkdGgoKSkKICAgICAgICAgICAgICAgICAgICAgICAgLmVtcHR5KCkKICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgnPHNwYW4gY2xhc3M9IkFKQVhMb2FkZXIiPjwvc3Bhbj4nKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN1Ym1pdCBmb3JtCiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNNYXNzRW50cnknKS5zdWJtaXQoKTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIENsYXNzOiAnUHJpbWFyeScKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IExhbmd1YWdlLkNhbmNlbCwKICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBDb3JlLlVJLkRpYWxvZy5DbG9zZURpYWxvZygkKCcuRGlhbG9nOnZpc2libGUnKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0pOwogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzIHx8IHt9KSk7Cg==
PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vdGhpcmRwYXJ0eS9xdW5pdC0xLjE4LjAvcXVuaXQuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgoKICAgIDx0aXRsZT5UaW1lQWNjb3VudGluZyBmb3IgT1RSUyAmbmRhc2g7IFVuaXRUZXN0IFJlc3VsdHM8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGgxIGlkPSJxdW5pdC1oZWFkZXIiPlRpbWVBY2NvdW50aW5nIGZvciBPVFJTICZuZGFzaDsgVW5pdFRlc3QgUmVzdWx0czwvaDE+CiAgICA8aDIgaWQ9InF1bml0LWJhbm5lciI+PC9oMj4KICAgIDxoMiBpZD0icXVuaXQtdXNlckFnZW50Ij48L2gyPgogICAgPG9sIGlkPSJxdW5pdC10ZXN0cyI+PC9vbD4KCgogICAgPCEtLSBVbml0VGVzdCBjb2RlIGdvZXMgaGVyZSAtLT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMS4xOC4wL3F1bml0LmpzIj48L3NjcmlwdD4KICAgIDwhLS0KICAgICAgICBOb3cgYWx3YXlzIGxvYWQgbGlicmFyeSBmaXJzdCBhbmQgdGhlbiB0aGUgVW5pdFRlc3QgZmlsZSBmb3IgaXQuCiAgICAgICAgVGhlIFVuaXRUZXN0IGZpbGUgaXMgcmVzcG9uc2libGUgZm9yIHJ1bm5pbnQgdGhlIHRlc3RzLgogICAgLS0+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS0yLjEuNC9qcXVlcnkuanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuRGVidWcuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5EYXRhLmpzIj48L3NjcmlwdD4KCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkpTT04uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Db25maWcuanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvanF1ZXJ5LXVpLTEuMTEuNC9qcXVlcnktdWkuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktdmFsaWRhdGUtMS4xMy4xL2pxdWVyeS52YWxpZGF0ZS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkFwcC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLkRpYWxvZy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkZvcm0uRXJyb3JUb29sdGlwcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLkFjY2Vzc2liaWxpdHkuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5SaWNoVGV4dEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkZvcm0uVmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5Vbml0VGVzdC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLlJ1blVuaXRUZXN0cygpOwogICAgPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4K
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKClRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyA9IChmdW5jdGlvbiAoTmFtZXNwYWNlKSB7CiAgICBOYW1lc3BhY2UuUnVuVW5pdFRlc3RzID0gZnVuY3Rpb24oKXsKCiAgICAgICAgLyoKICAgICAgICAgKiBDcmVhdGUgYSBmb3JtIGNvbnRhaW5lciBmb3IgdGhlIHRlc3RzCiAgICAgICAgICovCiAgICAgICAgdmFyICRUZXN0Rm9ybSA9ICQoJzxmb3JtIGlkPSJUZXN0Rm9ybSI+PC9mb3JtPicpLAogICAgICAgICAgICAkVGFibGU7CgogICAgICAgIG1vZHVsZSgnVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzJyk7CiAgICAgICAgdGVzdCgnY2xpZW50LXNpZGUgdGltZSBwZXJpb2QgY2FsY3VsYXRpb25zJywgZnVuY3Rpb24oKXsKCiAgICAgICAgICAgIGV4cGVjdCgyMCk7CgogICAgICAgICAgICAkVGVzdEZvcm0uYXBwZW5kKCc8dGFibGU+PHRyPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48L3RkPjwvdHI+PC90YWJsZT4nKTsKICAgICAgICAgICAgJFRhYmxlID0gJFRlc3RGb3JtLmZpbmQoJ3RyOmVxKDApIHRkJyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iU3RhcnRUaW1lMSIgbmFtZT0iU3RhcnRUaW1lMSIgY2xhc3M9IlN0YXJ0VGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJFbmRUaW1lMSIgbmFtZT0iRW5kVGltZTEiIGNsYXNzPSJFbmRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlBlcmlvZDEiIG5hbWU9IlBlcmlvZDEiIGNsYXNzPSJQZXJpb2QiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZSA9ICRUZXN0Rm9ybS5maW5kKCd0cjplcSgxKSB0ZCcpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlN0YXJ0VGltZTIiIG5hbWU9IlN0YXJ0VGltZTIiIGNsYXNzPSJTdGFydFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iRW5kVGltZTIiIG5hbWU9IkVuZFRpbWUyIiBjbGFzcz0iRW5kVGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJQZXJpb2QyIiBuYW1lPSJQZXJpb2QyIiBjbGFzcz0iUGVyaW9kIiAvPicpOwogICAgICAgICAgICAkVGFibGUgPSAkVGVzdEZvcm0uZmluZCgndHI6ZXEoMikgdGQnKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJTdGFydFRpbWUzIiBuYW1lPSJTdGFydFRpbWUzIiBjbGFzcz0iU3RhcnRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IkVuZFRpbWUzIiBuYW1lPSJFbmRUaW1lMyIgY2xhc3M9IkVuZFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iUGVyaW9kMyIgbmFtZT0iUGVyaW9kMyIgY2xhc3M9IlBlcmlvZCIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPHNwYW4gaWQ9IlRvdGFsSG91cnMiIG5hbWU9IlRvdGFsSG91cnMiIGNsYXNzPSJUb3RhbEhvdXJzIj48L3NwYW4+Jyk7CiAgICAgICAgICAgICQoJ2JvZHknKS5hcHBlbmQoJFRlc3RGb3JtKTsKCiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFJ1biB0aGUgdGVzdHMKICAgICAgICAgICAgICovCgogICAgICAgICAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuSW5pdCgpOwoKICAgICAgICAgICAgLy8gVGVzdDogdGltZSBjYWxjdWxhdGlvbiBvbiB0aW1lIHBlcmlvZCBmaWVsZAogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMi4wMCcsICdOb3JtYWwgbnVtYmVyIGVudHJ5Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnZm9vYmFyJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnTm90IGEgbnVtYmVyICg9ImZvb2JhciIpJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnMiArIDMnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzUuMDAnLCAnRWFzeSBjYWxjdWxhdGlvbicpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJ2FsZXJ0KCJodWh1Iik7Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnRXZpbCBqYXZhc2NyaXB0IGNvZGUnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyLjIzICsgMS4wOScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMy4zMicsICdDYWxjdWxhdGlvbiB3aXRoIG5vbi1pbnRlZ2VycycpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzIuMDAwMSArIDEuNScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMy41MCcsICdDYWxjdWxhdGlvbiB3aXRoIGEgbnVtYmVyIHdpdGggbW9yZSB0aGFuIDIgZGVjaW1hbHMnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcxLDIgKyAxLDMnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzIuNTAnLCAnTnVtYmVycyB3aXRoICwgaW5zdGVhZCBvZiAuJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnNS44IC0gMS4yJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICc0LjYwJywgJ1N1YnN0cmFjdGlvbicpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJycpOwoKICAgICAgICAgICAgLy8gVGVzdDogY2FsY3VsYXRlIHBlcmlvZCBmcm9tIGVudGVyZWQgc3RhcnQgYW5kIGVuZCB0aW1lCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnJywgJ09ubHkgc3RhcnQgdGltZSBlbnRlcmVkJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJycsICdPbmx5IGVuZCB0aW1lIGVudGVyZWQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzEuMDAnLCAnQm90aCB0aW1lcyBlbnRlcmVkJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTowNicpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwOjAwJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMC45MCcsICdFYXN5IGNhbGN1bGF0aW9uIHdpdGggdHdvIHRpbWVzIG9mIHRoZSBmb3JtYXQgSEg6TU0nKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCc5OjAwJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMTE6MzAnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcyLjUwJywgJ0Vhc3kgY2FsY3VsYXRpb24gd2l0aCB0d28gdGltZXMgb2YgdGhlIGZvcm1hdCBISDpNTScpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzksNScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwLDUnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnU3RhcnRUaW1lIGFuZCBFbmRUaW1lIGZvcm1hdCBhcmUgd3JvbmcnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCc5OjUnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMDo1Jyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMS4wMCcsICdTdGFydFRpbWUgYW5kIEVuZFRpbWUgZm9ybWF0IGFyZSBzbGlnaHRseSB3cm9uZycpOwoKICAgICAgICAgICAgLy8gVGVzdDogQ2FsY3VsYXRpb24gb2YgdG90YWwgaG91cnMKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzk6NScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwOjUnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMS4wMCcsICdFYXN5IHN0YXJ0Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnZhbCgnMi41Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMy41MCcsICdTZWNvbmQgcGVyaW9kIGZpZWxkJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnZhbCgnMS41ICsgOSw1Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTIuMDAnLCAnU2Vjb25kIHBlcmlvZCBmaWVsZCBnZXRzIGFuIGFkZGl0aW9uYWwgY2FsY3VsYXRpb24gd2l0aCBvbmUgd3JvbmcgY29tbWEnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QzJykudmFsKCc0LjM1Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QzJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTYuMzUnLCAnVGhpcmQgZmllbGQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxNDowMCcpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJ29wZW5lbmQnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTUuMzUnLCAnRmlyc3Qgcm93OiBzdGFydHRpbWUgYW5kIGVuZHRpbWUgZmllbGRzIGhhdmUgd3JvbmcgaW5wdXQnKTsKCgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBDbGVhbnVwIGRpdiBjb250YWluZXIgYW5kIGNvbnRlbnRzCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkKCcjVGVzdEZvcm0nKS5yZW1vdmUoKTsKICAgICAgICB9KTsKCiAgICB9OwoKICAgIHJldHVybiBOYW1lc3BhY2U7Cn0oVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzIHx8IHt9KSk7Cg==
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgVGltZSBBY2NvdW50aW5nIERlZmF1bHQgQ1NTCiAqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAc3Vic2VjdGlvbiAgbGVmdCBhbmQgcmlnaHQgYXJyb3dzCiAqLwoKLkFycm93IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDEwcHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBmbG9hdDogbGVmdDsKICAgIG1hcmdpbi10b3A6IC0ycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDRweDsKfQoKLkFycm93IGkgewogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICM1NTU7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgc3BlY2lhbCBzZXR0aW5nczogcmVwb3J0aW5nCiAqLwoKZGl2Lk1vbnRoU2VsZWN0aW9uIHsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKfQoKLk1vbnRoU2VsZWN0aW9uIC5BcnJvdyB7CiAgICBtYXJnaW4tdG9wOiAxcHg7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgSW5jb21wbGV0ZVdvcmtpbmdEYXlzIHNlbGVjdAogKi8KI0luY29tcGxldGVXb3JraW5nRGF5c0xpc3Qgb3B0aW9uW3NlbGVjdGVkPXNlbGVjdGVkXSB7CiAgICBmb250LXdlaWdodDogYm9sZDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICBwcm9qZWN0IGFuZCBhY3Rpb24gZHJvcGRvd25zCiAqLwouUHJvamVjdFNlbGVjdGlvbiB7CiAgICB3aWR0aDogMzAwcHg7Cn0KCi5BY3Rpb25TZWxlY3Rpb24gewogICAgd2lkdGg6IDMwMHB4Owp9Cgp9IC8qIGVuZCBAbWVkaWEgKi8=
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgVGltZSBBY2NvdW50aW5nIEFkZGl0aW9uYWwgVGFibGUgU2V0dGluZ3MKICovCgpAbWVkaWEgc2NyZWVuLHByb2plY3Rpb24sdHYsaGFuZGhlbGQgewoKLyoqCiAqIEBzdWJzZWN0aW9uICBkYXRhIHRhYmxlIGVsZW1lbnRzIHdpdGhvdXQgaG92ZXIKICovCgouTm9Ib3ZlciB0Ym9keSB0cjpob3ZlciB0ZCB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTsKICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCi5Ob0hvdmVyIHRyLkV2ZW46aG92ZXIgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTsKfQoKLk5vSG92ZXIgdHIuR3JhbmRUb3RhbDpob3ZlciB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0ZDRkNGOwp9CgovKioKICogQHN1YnNlY3Rpb24gIHNwZWNpYWwgdGFibGUgaGVpZ2h0CiAqLwoKLkhpZ2hDZWxscyB0Ym9keSB0ZCB7CiAgICBoZWlnaHQ6IDMwcHg7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgZml4ZWQgZGF0YSB0YWJsZSB3aWR0aHMKICovCgouRGF0YVRhYmxlIHRkLkZpeGVkLkRheSB7CiAgICB3aWR0aDogNTBweDsKfQoKLkRhdGFUYWJsZSB0ZC5GaXhlZC5XZWVrZGF5IHsKICAgIHdpZHRoOiA4MHB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIHRhYmxlIGNvbG91cnMgZm9yIG92ZXJ2aWV3CiAqLwoKLkRhdGFUYWJsZSB0ci5WYWNhdGlvbiB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJDQ0NDOwp9CgouRGF0YVRhYmxlIHRyLk5vbldvcmtpbmdEYXkgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRTBFMDsKfQoKLkRhdGFUYWJsZSB0ci5BY3RpdmUgdGQgewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDAwMDA7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDAwMDsKICAgIGNvbG9yOiAjMUExQTFBOwp9CgouRGF0YVRhYmxlIHRyLkFjdGl2ZSB0ZDpmaXJzdC1jaGlsZCB7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDAwMDA7Cn0KCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkOmxhc3QtY2hpbGQsCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkLkxhc3QgewogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDAwMDsKfQoKLkRhdGFUYWJsZSB0ci5HcmFuZFRvdGFsIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNDRkNGQ0Y7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgZGF0YSB0YWJsZSB3aXRoIHR3byBoZWFkZXIgcm93cwogKi8KCi5EYXRhVGFibGUgdGhlYWQuVHdvUm93cyB7CiAgICBiYWNrZ3JvdW5kOiBub25lOwp9CgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgdHIgewogICAgYmFja2dyb3VuZDogI2VlZWVlZTsKfQoKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyOmZpcnN0LWNoaWxkIHRoIHsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICBwYWRkaW5nLWJvdHRvbTogMnB4Owp9CgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgdHI6bGFzdC1jaGlsZCB0aCwKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyLkxhc3QgdGggewogICAgYm9yZGVyLXRvcDogbm9uZTsKICAgIHBhZGRpbmctdG9wOiAzcHg7Cn0KCnRyLk1hc3RlckFjdGlvbiB0ZC5Sb3dTcGFuIHsKICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCnRkLlJvd1NwYW57CiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNjY2M7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9CgouRGF0YVRhYmxlIGEuRGF0ZXBpY2tlckljb24gaSB7CiAgICBjb2xvcjogIzAwMDsKICAgIG1hcmdpbi1sZWZ0OiAycHg7Cn0KCi5EYXRhVGFibGUgYS5EYXRlcGlja2VySWNvbjpob3ZlciBpIHsKICAgIGNvbG9yOiAjZjcyOwp9CgojVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCB7CiAgICBib3JkZXItY29sb3I6ICNkZGQ7CiAgICBib3JkZXItaW1hZ2U6IG5vbmU7CiAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgYm9yZGVyLXdpZHRoOiAxcHg7CiAgICBwYWRkaW5nOiA3cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKfQovKiBlbmQgQG1lZGlhICov
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgdmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycsCiAgICAnS2VybmVsOjpDb25maWcnLAopOwoKPWhlYWQxIE5BTUUKClRpbWVBY2NvdW50aW5nLnBtIC0gY29kZSB0byBleGVjdXRlIGR1cmluZyBwYWNrYWdlIGluc3RhbGxhdGlvbgoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgZnVuY3Rpb25zCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb2RlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgndmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgcmVidWlsZCBaWloqIGZpbGVzCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyktPldyaXRlRGVmYXVsdCgpOwoKICAgICMgZGVmaW5lIHRoZSBaWlogZmlsZXMKICAgIG15IEBaWlpGaWxlcyA9ICgKICAgICAgICAnWlpaQUF1dG8ucG0nLAogICAgICAgICdaWlpBdXRvLnBtJywKICAgICk7CgogICAgIyByZWxvYWQgdGhlIFpaWiBmaWxlcyAobW9kX3Blcmwgd29ya2Fyb3VuZCkKICAgIGZvciBteSAkWlpaRmlsZSAoQFpaWkZpbGVzKSB7CgogICAgICAgIFBSRUZJWDoKICAgICAgICBmb3IgbXkgJFByZWZpeCAoQElOQykgewogICAgICAgICAgICBteSAkRmlsZSA9ICRQcmVmaXggLiAnL0tlcm5lbC9Db25maWcvRmlsZXMvJyAuICRaWlpGaWxlOwogICAgICAgICAgICBuZXh0IFBSRUZJWCBpZiAhLWYgJEZpbGU7CiAgICAgICAgICAgIGRvICRGaWxlOwogICAgICAgICAgICBsYXN0IFBSRUZJWDsKICAgICAgICB9CiAgICB9CgogICAgIyBhbHdheXMgZGlzY2FyZCB0aGUgY29uZmlnIG9iamVjdCBiZWZvcmUgcGFja2FnZSBjb2RlIGlzIGV4ZWN1dGVkLAogICAgIyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY29uZmlnIG9iamVjdCB3aWxsIGJlIGNyZWF0ZWQgbmV3bHksIHNvIHRoYXQgaXQKICAgICMgd2lsbCB1c2UgdGhlIHJlY2VudGx5IHdyaXR0ZW4gbmV3IGNvbmZpZyBmcm9tIHRoZSBwYWNrYWdlCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoCiAgICAgICAgT2JqZWN0cyA9PiBbJ0tlcm5lbDo6Q29uZmlnJ10sCiAgICApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ29kZUluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZUluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlSW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWRkIHRoZSBncm91cCB0aW1lX2FjY291bnRpbmcKICAgICRTZWxmLT5fR3JvdXBBZGQoCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3RpbWVfYWNjb3VudGluZycsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0dyb3VwIGZvciBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXIuJywKICAgICk7CgogICAgIyBkZWxldGUgdGhlIGdyb3VwIGNhY2hlIHRvIGF2b2lkIHBlcm1pc3Npb24gcHJvYmxlbXMKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdHcm91cCcgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVuaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgdW5pbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVbmluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlVW5pbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWFjdGl2YXRlIHRoZSBncm91cCB0aW1lX2FjY291bnRpbmcKICAgICRTZWxmLT5fR3JvdXBEZWFjdGl2YXRlKAogICAgICAgIE5hbWUgPT4gJ3RpbWVfYWNjb3VudGluZycsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxKCkKClRoaXMgZnVuY3Rpb24gaXMgb25seSBleGVjdXRlZCBpZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSB2ZXJzaW9uIGlzIHNtYWxsZXIgdGhhbiA0LjAuOTEuCgpteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl80XzBfOTEoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxIHsgICAgIyMgbm8gY3JpdGljCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgogICAgJFNlbGYtPl9NaWdyYXRlQ29uZmlncygpOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfR3JvdXBBZGQoKQoKYWRkIGEgZ3JvdXAKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9Hcm91cEFkZCgKICAgICAgICBOYW1lICAgICAgICA9PiAndGhlLWdyb3VwLW5hbWUnLAogICAgICAgIERlc2NyaXB0aW9uID0+ICdUaGUgZ3JvdXAgZGVzY3JpcHRpb24uJywKICAgICk7Cgo9Y3V0CgpzdWIgX0dyb3VwQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE5hbWUgRGVzY3JpcHRpb24pKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgIEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgdmFsaWQgbGlzdAogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgbXkgJVZhbGlkTGlzdFJldmVyc2UgPSByZXZlcnNlICVWYWxpZExpc3Q7CgogICAgIyBnZXQgZ3JvdXAgb2JqZWN0CiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGdldCBsaXN0IG9mIGFsbCBncm91cHMKICAgIG15ICVHcm91cExpc3QgPSAkR3JvdXBPYmplY3QtPkdyb3VwTGlzdCgpOwoKICAgICMgcmV2ZXJzZSB0aGUgZ3JvdXAgbGlzdCBmb3IgZWFzaWVyIGxvb2t1cAogICAgbXkgJUdyb3VwTGlzdFJldmVyc2UgPSByZXZlcnNlICVHcm91cExpc3Q7CgogICAgIyBjaGVjayBpZiBncm91cCBhbHJlYWR5IGV4aXN0cwogICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBMaXN0UmV2ZXJzZXsgJFBhcmFte05hbWV9IH07CgogICAgIyByZWFjdGl2YXRlIHRoZSBncm91cAogICAgaWYgKCRHcm91cElEKSB7CgogICAgICAgICMgZ2V0IGN1cnJlbnQgZ3JvdXAgZGF0YQogICAgICAgIG15ICVHcm91cERhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwR2V0KAogICAgICAgICAgICBJRCAgICAgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgcmVhY3RpdmF0ZSBncm91cAogICAgICAgICRHcm91cE9iamVjdC0+R3JvdXBVcGRhdGUoCiAgICAgICAgICAgICVHcm91cERhdGEsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBhZGQgdGhlIGdyb3VwCiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gaWYgISRHcm91cE9iamVjdC0+R3JvdXBBZGQoCiAgICAgICAgICAgIE5hbWUgICAgPT4gJFBhcmFte05hbWV9LAogICAgICAgICAgICBDb21tZW50ID0+ICRQYXJhbXtEZXNjcmlwdGlvbn0sCiAgICAgICAgICAgIFZhbGlkSUQgPT4gJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGxvb2t1cCB0aGUgbmV3IGdyb3VwIGlkCiAgICBteSAkTmV3R3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgID0+ICRQYXJhbXtOYW1lfSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBhZGQgdXNlciByb290IHRvIHRoZSBncm91cAogICAgJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckFkZCgKICAgICAgICBHSUQgICAgICAgID0+ICROZXdHcm91cElELAogICAgICAgIFVJRCAgICAgICAgPT4gMSwKICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgcm8gICAgICAgID0+IDEsCiAgICAgICAgICAgIG1vdmVfaW50byA9PiAxLAogICAgICAgICAgICBjcmVhdGUgICAgPT4gMSwKICAgICAgICAgICAgb3duZXIgICAgID0+IDEsCiAgICAgICAgICAgIHByaW9yaXR5ICA9PiAxLAogICAgICAgICAgICBydyAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX0dyb3VwRGVhY3RpdmF0ZSgpCgpkZWFjdGl2YXRlIGEgZ3JvdXAKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9Hcm91cERlYWN0aXZhdGUoCiAgICAgICAgTmFtZSA9PiAndGhlLWdyb3VwLW5hbWUnLAogICAgKTsKCj1jdXQKCnN1YiBfR3JvdXBEZWFjdGl2YXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtOYW1lfSApIHsKICAgICAgICBLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBOYW1lIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZ3JvdXAgb2JqZWN0CiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGxvb2t1cCBncm91cCBpZAogICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKAogICAgICAgIEdyb3VwID0+ICRQYXJhbXtOYW1lfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkR3JvdXBJRDsKCiAgICAjIGdldCB2YWxpZCBsaXN0CiAgICBteSAlVmFsaWRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICBteSAlVmFsaWRMaXN0UmV2ZXJzZSA9IHJldmVyc2UgJVZhbGlkTGlzdDsKCiAgICAjIGdldCBjdXJyZW50IGdyb3VwIGRhdGEKICAgIG15ICVHcm91cERhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwR2V0KAogICAgICAgIElEICAgICA9PiAkR3JvdXBJRCwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBkZWFjdGl2YXRlIGdyb3VwCiAgICAkR3JvdXBPYmplY3QtPkdyb3VwVXBkYXRlKAogICAgICAgICVHcm91cERhdGEsCiAgICAgICAgVmFsaWRJRCA9PiAkVmFsaWRMaXN0UmV2ZXJzZXtpbnZhbGlkfSwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfTWlncmF0ZUNvbmZpZ3MoKQoKY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X01pZ3JhdGVDb25maWdzKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVDb25maWdzIHsKCiAgICAjIGNyZWF0ZSBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgIG15ICRDb25maWdPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgbWlncmF0ZSB0aW1lIGFjY291bnRpbmcgbm90aWZpY2F0aW9uIFN5c0NvbmZpZwogICAgIyBnZXQgc2V0dGluZyBjb250ZW50IGZvciB0aW1lIGFjY291bnRpbmcgU3lzQ29uZmlnCiAgICBteSAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVOb3RpZnknKTsKCiAgICBpZiAoICRTZXR0aW5nLT57J1RpbWVBY2NvdW50aW5nJ30tPntNb2R1bGV9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAkU2V0dGluZy0+eydUaW1lQWNjb3VudGluZyd9LT57TW9kdWxlfSA9ICJLZXJuZWw6Ok91dHB1dDo6SFRNTDo6Tm90aWZpY2F0aW9uOjpUaW1lQWNjb3VudGluZyI7CgogICAgICAgICMgc2V0IG5ldyBzZXR0aW5nCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6Ok5vdGlmeU1vZHVsZSMjIzg4OC1UaW1lQWNjb3VudGluZycsCiAgICAgICAgICAgIFZhbHVlID0+ICRTZXR0aW5nLT57J1RpbWVBY2NvdW50aW5nJ30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1pZ3JhdGUgdGltZSBhY2NvdW50aW5nIHRvb2wgYmFyIFN5c0NvbmZpZwogICAgIyBnZXQgc2V0dGluZyBjb250ZW50IGZvciB0aW1lIGFjY291bnRpbmcgU3lzQ29uZmlnCiAgICAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6OlRvb2xCYXJNb2R1bGUnKTsKCiAgICBpZiAoICRTZXR0aW5nLT57JzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJ30tPntNb2R1bGV9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAkU2V0dGluZy0+eycyMDEtVGltZUFjY291bnRpbmc6OkluY29tcGxldGVXb3JraW5nRGF5cyd9LT57TW9kdWxlfQogICAgICAgICAgICA9ICJLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VG9vbEJhcjo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzIjsKCiAgICAgICAgIyBzZXQgbmV3IHNldHRpbmcKICAgICAgICBteSAkU3VjY2VzcyA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6VG9vbEJhck1vZHVsZSMjIzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4gJFNldHRpbmctPnsnMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMnfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDEuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMS4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTUwODI3MDAzMTU3KzAyJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydlndYU+cex99zTvZgJCFsCHuGpUAAkRGmgAzZohCSAAESICQM90BUsKKoyFIEKYpYsFqG1IkoDori3g1SBJRarOLC0USep/X29t7b2+8f53ye3/v7vef9jfd5DgCkgEyuMBdWAUAokogj/L0ZsXHxDOwAgAEeYIA9ABxubrZXWFgwkCvQl83IlTuBf9GrmwBSvK8xFXuB/0+q3GyxBAAoTM6zePxcrpyL5JyZL8lW2CflTEvOUDCMUrBYfkA5ayg4dYatP/vMsKeCeUIRT86Rcs7mCXkK7pXzhjwpX86IIpfiPAE/X87X5WycKRUK5PxGESvkc+Q5oEgKu4TPTZOznZxJ4sgItpznAIAjpX7ByV+whF8gUSTFzsouFAtS0yQMc64Fw97FhcUI4Odn8iUSZhiHm8ER8xjsLGE2R1QIwEzOn0VR1JYhL7KTvYuTE9PBxv6LQv3Xxb8pRW9n6EX4555B9P4/bH/ll9UAAGtKXpstf9iSqwDoXAeAxt0/bMZ7AFCW963j8hf50BXzkiaRZLva2ubn59sI+FwbRUF/1/90+Bv64ns2iu1+Lw/Dh5/CkWZKGIq6cbMys6RiRm42h8tnMP88xP848K/PYR3BT+GL+SJ5RLR8ygSiVHm7RTyBRJAlYghE/6mJ/zDsT5qZa7mojR8BLdEGqFymAeTnfoCiEgGSsFu+Av3et2B8NFDcvBj90Zm5/yzo33eFyxSPXEHq5zh2RCSDKxXnzawpriVAAwJQBjSgCfSAETAHTOAAnIEb8AS+YB4IBZEgDiwGXJAGhEAM8sEysBoUg1KwBewA1aAONIJm0AoOg05wDJwG58AlcAXcAPeADIyAp2ASvALTEARhITJEhTQhfcgEsoIcIBY0F/KFgqEIKA5KglIhESSFlkFroVKoHKqG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K0b1R5vHHMaOjfuNX3my8MnI0+yn0xPFP6v+XPvM/Nl3v3j+0j8ZOznyXPz806+bXmi+2Pdy9sueqbCph6+Er6Zfl7zRfLP/Lett37uYd6PT+e+x7ys/WHzo/hj08f4n4adPvwHJ4vTiCmVuZHN0cmVhbQplbmRvYmoKNiAwIG9iagpbL0lDQ0Jhc2VkIDUgMCBSXQplbmRvYmoKNyAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDEzIDAgUgo+PgpzdHJlYW0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz48eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHJkZjphYm91dD0iIj4KPGRjOmxhbmd1YWdlPmVuPC9kYzpsYW5ndWFnZT4KPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KPGRjOmRhdGU+MjAxNS0wOC0yN1QwMDozMTo1NyswMjowMDwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8cGRmOlByb2R1Y2VyPkFwYWNoZSBGT1AgVmVyc2lvbiAxLjE8L3BkZjpQcm9kdWNlcj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE1LTA4LTI3VDAwOjMxOjU3KzAyOjAwPC94bXA6Q3JlYXRlRGF0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MjkgMTUzLjgxMSA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4zMzggNjY3LjYyOSA1NDIuNjk4IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjU1LjYyOSAyNTMuNDMyIDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjcxMiA2NTUuNjI5IDU0Mi4wNzIgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MCAwIFIKL0ggL0kKCj4+CmVuZG9iago2MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDYzNC40IG51bGxdCj4+CmVuZG9iago2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDMuNjI5IDIyNi4wNTggNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MyAwIFIKL0ggL0kKCj4+CmVuZG9iago2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuOTI4IDY0My42MjkgNTQyLjI4OCA2NTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjY2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNTQ2LjAgbnVsbF0KPj4KZW5kb2JqCjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYzMS42MjkgMjU0Ljk0NCA2NDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS43IDYzMS42MjkgNTQyLjA2IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA0NzkuNiBudWxsXQo+PgplbmRvYmoKNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjE5LjYyOSAyNDcuNDM0IDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1Ljc2IDYxOS42MjkgNTQyLjEyIDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA0MDEuMiBudWxsXQo+PgplbmRvYmoKNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjA3LjYyOSAyNTIuMDU5IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjcyMiA2MDcuNjI5IDU0Mi4wODIgNjE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MiAwIFIKL0ggL0kKCj4+CmVuZG9iago3NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDM1OC44IG51bGxdCj4+CmVuZG9iago3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1OTUuNjI5IDI2My41ODIgNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NSAwIFIKL0ggL0kKCj4+CmVuZG9iago3NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuNjMyIDU5NS42MjkgNTQxLjk5MiA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMzA0LjQgbnVsbF0KPj4KZW5kb2JqCjc5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4My42MjkgNDA3LjI1MyA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjgwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC40OTEgNTgzLjYyOSA1NDAuODUxIDU5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzggMCBSCi9IIC9JCgo+PgplbmRvYmoKODEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAyMjYuMCBudWxsXQo+PgplbmRvYmoKODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTcxLjYyOSAzMzMuNTIgNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MSAwIFIKL0ggL0kKCj4+CmVuZG9iago4MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMDc4IDU3MS42MjkgNTQxLjQzOCA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMTU5LjYgbnVsbF0KPj4KZW5kb2JqCjg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1OS42MjkgMTgyLjQzNyA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4yNzQgNTU5LjYyOSA1NDIuNjM0IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODQgMCBSCi9IIC9JCgo+PgplbmRvYmoKODcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1NDcuNjI5IDIwNC45MjkgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NyAwIFIKL0ggL0kKCj4+CmVuZG9iago4OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuOTU2IDU0Ny42MjkgNTQyLjMxNiA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNzAwLjggbnVsbF0KPj4KZW5kb2JqCjkxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUzNS42MjkgMTczLjM4MyA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjkyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4zNDQgNTM1LjYyOSA1NDIuNzA0IDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA2MjYuNCBudWxsXQo+PgplbmRvYmoKOTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTIzLjYyOSAxNjQuODg4IDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjU4MyA1MjMuNjI5IDU0Mi45NDMgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MyAwIFIKL0ggL0kKCj4+CmVuZG9iago5NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDU1OC4wIG51bGxdCj4+CmVuZG9iago5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MTEuNjI5IDIwOS41MDMgNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NiAwIFIKL0ggL0kKCj4+CmVuZG9iago5OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMDYgNTExLjYyOSA1NDIuNDIgNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NiAwIFIKL0ggL0kKCj4+CmVuZG9iago5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDQ4OS42IG51bGxdCj4+CmVuZG9iagoxMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDk5LjYyOSAyMjEuNzE5IDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS45NjIgNDk5LjYyOSA1NDIuMzIyIDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEwMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ4Ny42MjkgMTQ5LjM2NyA0OTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjM3MiA0ODcuNjI5IDU0Mi43MzIgNDk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNjQ0LjggbnVsbF0KPj4KZW5kb2JqCjEwNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NzUuNjI5IDE5OC45NTYgNDg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4xNDIgNDc1LjYyOSA1NDIuNTAyIDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDU2OC40IG51bGxdCj4+CmVuZG9iagoxMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDYzLjYyOSAxOTQuNTkxIDQ3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMTc4IDQ2My42MjkgNTQyLjUzOCA0NzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTEyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDUxLjYyOSAxNjEuNzYgNDYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4yNzggNDUxLjYyOSA1NDIuNjM4IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTExIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDY2Ni4zMzkgbnVsbF0KPj4KZW5kb2JqCjExNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MzkuNjI5IDM2MS44OTYgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC44NSA0MzkuNjI5IDU0MS4yMSA0NDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA2MDAuNzQxIG51bGxdCj4+CmVuZG9iagoxMTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDI3LjYyOSAzODguNTgxIDQzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjM5IDQyNy42MjkgNTQwLjk5OSA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA1MzUuMTQzIG51bGxdCj4+CmVuZG9iagoxMjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDE1LjYyOSAzOTEuMDExIDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjE5IDQxNS42MjkgNTQwLjk3OSA0MjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA0NjkuNTQ1IG51bGxdCj4+CmVuZG9iagoxMjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDAzLjYyOSAzNzguMjYyIDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNzIxIDQwMy42MjkgNTQxLjA4MSA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA0MDMuOTQ3IG51bGxdCj4+CmVuZG9iagoxMjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzkxLjYyOSAzNjUuMzUzIDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODIzIDM5MS42MjkgNTQxLjE4MyA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAzMzguMzQ5IG51bGxdCj4+CmVuZG9iagoxMzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzc5LjYyOSAzNjUuMTgzIDM4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODI0IDM3OS42MjkgNTQxLjE4NCAzODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAyNzIuNzUxIG51bGxdCj4+CmVuZG9iagoxMzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzY3LjYyOSA0OTkuMDM0IDM3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuODMyIDM2Ny42MjkgNTQwLjE5MiAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAxODAuNzUzIG51bGxdCj4+CmVuZG9iagoxMzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzU1LjYyOSAzNjMuNDMgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC44MzggMzU1LjYyOSA1NDEuMTk4IDM2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDExNS4xNTUgbnVsbF0KPj4KZW5kb2JqCjEzOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNDMuNjI5IDM5NC43NTYgMzUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC41ODkgMzQzLjYyOSA1NDAuOTQ5IDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDcwOC4wIG51bGxdCj4+CmVuZG9iagoxNDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzMxLjYyOSAzMTkuNzA0IDM0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMTg1IDMzMS42MjkgNTQxLjU0NSAzNDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA2MzAuNjY5IG51bGxdCj4+CmVuZG9iagoxNDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzE5LjYyOSAyNjguOTE1IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuNTg3IDMxOS42MjkgNTQxLjk0NyAzMjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA1NDEuMzM4IG51bGxdCj4+CmVuZG9iagoxNDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzA3LjYyOSAzMjkuNzg0IDMxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMTA1IDMwNy42MjkgNTQxLjQ2NSAzMTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA0NjQuMDA3IG51bGxdCj4+CmVuZG9iagoxNTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjk1LjYyOSAzMTEuMjg3IDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMjUxIDI5NS42MjkgNTQxLjYxMSAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAzOTguNjc2IG51bGxdCj4+CmVuZG9iagoxNTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjgzLjYyOSAzMTMuNjE4IDI5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMjMzIDI4My42MjkgNTQxLjU5MyAyOTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAzMzMuMzQ1IG51bGxdCj4+CmVuZG9iagoxNTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjcxLjYyOSAzMTQuMTg1IDI4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMjI4IDI3MS42MjkgNTQxLjU4OCAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAyNjguMDE0IG51bGxdCj4+CmVuZG9iagoxNjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjU5LjYyOSAzMTYuNTE2IDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMjEgMjU5LjYyOSA1NDEuNTcgMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMjAyLjY4MyBudWxsXQo+PgplbmRvYmoKMTYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI0Ny42MjkgMzE2LjEyOCAyNTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjIxMyAyNDcuNjI5IDU0MS41NzMgMjU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMTM3LjM1MiBudWxsXQo+PgplbmRvYmoKMTY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIzNS42MjkgMzIxLjUzNiAyNDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjE3IDIzNS42MjkgNTQxLjUzIDI0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjIzLjYyOSAzMzAuMDkyIDIzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMTAyIDIyMy42MjkgNTQxLjQ2MiAyMzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA2NjEuNzU2IG51bGxdCj4+CmVuZG9iagoxNzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjExLjYyOSAzMjcuODcxIDIyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMTIgMjExLjYyOSA1NDEuNDggMjIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNTk3LjU1OSBudWxsXQo+PgplbmRvYmoKMTc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE5OS42MjkgMzE5Ljg2MyAyMDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjE4MyAxOTkuNjI5IDU0MS41NDMgMjA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNTMzLjM2MiBudWxsXQo+PgplbmRvYmoKMTc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE4Ny42MjkgMzA1LjEzMSAxOTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjMgMTg3LjYyOSA1NDEuNjYgMTk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNDY5LjE2NSBudWxsXQo+PgplbmRvYmoKMTgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE3NS42MjkgMzM4LjQ5OSAxODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjAzNSAxNzUuNjI5IDU0MS4zOTUgMTg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNDA0Ljk2OCBudWxsXQo+PgplbmRvYmoKMTg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE2My42MjkgMzI4LjM2OSAxNzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjExNSAxNjMuNjI5IDU0MS40NzUgMTczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMzI4Ljc3MSBudWxsXQo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE1MS42MjkgNDgwLjc0NCAxNjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjkwNCAxNTEuNjI5IDU0MC4yNjQgMTYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMjY0LjU3NCBudWxsXQo+PgplbmRvYmoKMTkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEzOS42MjkgMzc1Ljc2MSAxNDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0Ljc0IDEzOS42MjkgNTQxLjEgMTQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMjAwLjM3NyBudWxsXQo+PgplbmRvYmoKMTkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEyNy42MjkgMzI3LjMxMyAxMzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjEyNCAxMjcuNjI5IDU0MS40ODQgMTM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMTM2LjE4IG51bGxdCj4+CmVuZG9iagoxOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTE1LjYyOSAzNjQuOTQ0IDEyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODI2IDExNS42MjkgNTQxLjE4NiAxMjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTk5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEwMy42MjkgNDM4LjQyMyAxMTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjI0MyAxMDMuNjI5IDU0MC42MDMgMTEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjAxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNjQ5LjYgbnVsbF0KPj4KZW5kb2JqCjIwMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA5MS42MjkgMzMwLjQ0MSAxMDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjA5OSA5MS42MjkgNTQxLjQ1OSAxMDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA1NzMuMiBudWxsXQo+PgplbmRvYmoKMjA1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDc5LjYyOSAzMjIuNjAyIDg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjA2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4xNjEgNzkuNjI5IDU0MS41MjEgODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDcgMCBvYmoKPDwgL0xlbmd0aCAyMDggMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nNW9yY4sSZIkeI+v8B8Ya9kXoBFALBmDmVthEuhDo08926GrBzWX+f1hEl2E3U09gqg6sjKrEq/iLUJupqamJMQszMT/8kP8CPa//wn/6TN9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MCBSCi9IIC9JCgo+PgplbmRvYmoKMjQyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNDIwLjQgbnVsbF0KPj4KZW5kb2JqCjI0MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2OTcuMDA1IDI1Ni43MTMgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS42ODQgNjk3LjAwNSA1NDIuMDQ0IDcwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDkgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjg1LjAwNSAxMjUuMjc3IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuNTUyIDY4NS4wMDUgNTQyLjkxMiA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgNjMwLjMxNCBudWxsXQo+PgplbmRvYmoKMjQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMjI2Ljg0MSA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjkyIDY3My4wMDUgNTQyLjI4IDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDkgMCBSIC9YWVogNzIuMCAzMzkuMTYzIG51bGxdCj4+CmVuZG9iagoyNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjYxLjAwNSAyMTQuMzk5IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMDIyIDY2MS4wMDUgNTQyLjM4MiA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjEyIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDkuMDA1IDE3NS4zMjEgNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4zMyA2NDkuMDA1IDU0Mi42OSA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjEyIDAgUiAvWFlaIDcyLjAgNDI0LjMgbnVsbF0KPj4KZW5kb2JqCjI1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzcuMDA1IDI2Mi42OTMgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS42MzYgNjM3LjAwNSA1NDEuOTk2IDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjI1LjAwNSAxMzIuODYxIDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzAuMDg4IDYyNS4wMDUgNTQyLjgwOCA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDYxMy4wMDUgMTE5LjAzNiA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMwLjE5IDYxMy4wMDUgNTQyLjkxIDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCA2NzguOCBudWxsXQo+PgplbmRvYmoKMjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYwMS4wMDUgMTcxLjg3IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjkuOTQ2IDYwMS4wMDUgNTQyLjY2NiA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNjI0LjQgbnVsbF0KPj4KZW5kb2JqCjI3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODkuMDA1IDE2Ny43ODMgNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjcxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOS45OCA1ODkuMDA1IDU0Mi43IDU5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAw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YmoKNTAzCmVuZG9iagoxIDAgb2JqCjw8IC9UeXBlIC9QYWdlcwovQ291bnQgMTkKL0tpZHMgWzggMCBSIDUyIDAgUiAyMzcgMCBSIDIxNSAwIFIgMTggMCBSIDI4IDAgUiAzMSAwIFIgMzQgMCBSIDQwIDAgUiA0MyAwIFIgNDYgMCBSIDQ5IDAgUiAyMDkgMCBSIDIxMiAwIFIgMjIyIDAgUiAyMjUgMCBSIDIyOCAwIFIgMjMxIDAgUiAyMzQgMCBSIF0gPj4KZW5kb2JqCjIgMCBvYmoKPDwKICAvVHlwZSAvQ2F0YWxvZwogIC9QYWdlcyAxIDAgUgogIC9MYW5nIChlbikKICAvTWV0YWRhdGEgNyAwIFIKICAvUGFnZUxhYmVscyA5IDAgUgo+PgoKZW5kb2JqCjMgMCBvYmoKPDwKICAvRm9udCA8PAogIC9GMTkgMjgwIDAgUgogIC9GMTUgMjg2IDAgUgogIC9GMTYgMjkyIDAgUgo+PgoKICAvUHJvY1NldCBbL1BERiAvSW1hZ2VCIC9JbWFnZUMgL1RleHRdCiAgL1hPYmplY3QgPDwKICAvSW0xIDEwIDAgUgogIC9JbTIgMTEgMCBSCiAgL0ltMyAxOSAwIFIKICAvSW00IDIwIDAgUgo+PgoKICAvQ29sb3JTcGFjZSA8PCAvRGVmYXVsdFJHQiA2IDAgUiA+PgoKPj4KCmVuZG9iago5IDAgb2JqCjw8IC9OdW1zIFswIDw8IC9QICgxKSA+PgogMSA8PCAvUCAoaWkpID4+CiAyIDw8IC9QIChpaWkpID4+CiAzIDw8IC9QIChpdikgPj4KIDQgPDwgL1AgKHYpID4+CiA1IDw8IC9QICgxKSA+PgogNiA8PCAvUCAoMikgPj4KIDcgPDwgL1AgKDMpID4+CiA4IDw8IC9QICg0KSA+PgogOSA8PCAvUCAoNSkgPj4KIDEwIDw8IC9QICg2KSA+PgogMTEgPDwgL1AgKDcpID4+CiAxMiA8PCAvUCAoOCkgPj4KIDEzIDw8IC9QICg5KSA+PgogMTQgPDwgL1AgKDEwKSA+PgogMTUgPDwgL1AgKDExKSA+PgogMTYgPDwgL1AgKDEyKSA+PgogMTcgPDwgL1AgKDEzKSA+PgogMTggPDwgL1AgKDE0KSA+PgpdID4+CgplbmRvYmoKeHJlZgowIDMwNAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAyNTM4MTQgMDAwMDAgbiAKMDAwMDI1NDAwOCAwMDAwMCBuIAowMDAwMjU0MTEzIDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDE0NSAwMDAwMCBuIAowMDAwMDAyODIzIDAwMDAwIG4gCjAwMDAwMDI4NTYgMDAwMDAgbiAKMDAwMDEwNjE4MCAwMDAwMCBuIAowMDAwMjU0MzQ4IDAwMDAwIG4gCjAwMDAwMDM4MDQgMDAwMDAgbiAKMDAwMDA1MjMzMSAwMDAwMCBuIAowMDAwMTA1NTkzIDAwMDAwIG4gCjAwMDAxMDU2MTQgMDAwMDAgbiAKMDAwMDEwNTYzNCAwMDAwMCBuIAowMDAwMTA1NjU2IDAwMDAwIG4gCjAwMDAxMDU2NzggMDAwMDAgbiAKMDAwMDEwNjM3MiAwMDAwMCBuIAowMDAwMTIwOTc1IDAwMDAwIG4gCjAwMDAxMDYzOTIgMDAwMDAgbiAKMDAwMDExMjU2MyAwMDAwMCBuIAowMDAwMTE5NzQzIDAwMDAwIG4gCjAwMDAxMTk3NjQgMDAwMDAgbiAKMDAwMDExOTc4NSAwMDAwMCBuIAowMDAwMTE5ODcwIDAwMDAwIG4gCjAwMDAxMjA5NDggMDAwMDAgbiAKMDAwMDEyMDAwOCAwMDAwMCBuIAowMDAwMTIxMTg1IDAwMDAwIG4gCjAwMDAxMjM5MzcgMDAwMDAgbiAKMDAwMDEyMTIwNSAwMDAwMCBuIAowMDAwMTI0MTMwIDAwMDAwIG4gCjAwMDAxMjUwMTkgMDAwMDAgbiAKMDAwMDEyNDE1MSAwMDAwMCBuIAowMDAwMTI1MjEyIDAwMDAwIG4gCjAwMDAxMjY5MDUgMDAwMDAgbiAKMDAwMDEyNTIzMiAwMDAwMCBuIAowMDAwMTI1MzI3IDAwMDAwIG4gCjAwMDAxMjY4NzggMDAwMDAgbiAKMDAwMDEyNTQ2MyAwMDAwMCBuIAowMDAwMTI3MTE1IDAwMDAwIG4gCjAwMDAxMjg3MjUgMDAwMDAgbiAKMDAwMDEyNzEzNiAwMDAwMCBuIAowMDAwMTI4OTE4IDAwMDAwIG4gCjAwMDAxMzA1ODUgMDAwMDAgbiAKMDAwMDEyODkzOSAwMDAwMCBuIAowMDAwMTMwNzc4IDAwMDAwIG4gCjAwMDAxMzI0NzIgMDAwMDAgbiAKMDAwMDEzMDc5OSAwMDAwMCBuIAowMDAwMTMyNjY1IDAwMDAwIG4gCjAwMDAxMzQyOTYgMDAwMDAgbiAKMDAwMDEzMjY4NiAwMDAwMCBuIAowMDAwMTM0NDg5IDAwMDAwIG4gCjAwMDAxNzkzOTYgMDAwMDAgbiAKMDAwMDEzNDUxMCAwMDAwMCBuIAowMDAwMTM0NTg4IDAwMDAwIG4gCjAwMDAxNzg1OTAgMDAwMDAgbiAKMDAwMDEzNDcyNCAwMDAwMCBuIAowMDAwMTM0ODY0IDAwMDAwIG4gCjAwMDAxMzQ5NDIgMDAwMDAgbiAKMDAwMDEzNTA3OSAwMDAwMCBuIAowMDAwMTM1MjE5IDAwMDAwIG4gCjAwMDAxMzUyOTcgMDAwMDAgbiAKMDAwMDEzNTQzNSAwMDAwMCBuIAowMDAwMTM1NTc1IDAwMDAwIG4gCjAwMDAxMzU2NTMgMDAwMDAgbiAKMDAwMDEzNTc5MSAwMDAwMCBuIAowMDAwMTM1OTMxIDAwMDAwIG4gCjAwMDAxMzYwMDkgMDAwMDAgbiAKMDAwMDEzNjE0NyAwMDAwMCBuIAowMDAwMTM2Mjg0IDAwMDAwIG4gCjAwMDAxMzYzNjIgMDAwMDAgbiAKMDAwMDEzNjUwMCAwMDAwMCBuIAowMDAwMTM2NjM4IDAwMDAwIG4gCjAwMDAxMzY3MTYgMDAwMDAgbiAKMDAwMDEzNjg1NCAwMDAwMCBuIAowMDAwMTM2OTk0IDAwMDAwIG4gCjAwMDAxMzcwNzIgMDAwMDAgbiAKMDAwMDEzNzIxMCAwMDAwMCBuIAowMDAwMTM3MzUwIDAwMDAwIG4gCjAwMDAxMzc0MjggMDAwMDAgbiAKMDAwMDEzNzU2NiAwMDAwMCBuIAowMDAwMTM3NzA2IDAwMDAwIG4gCjAwMDAxMzc3ODQgMDAwMDAgbiAKMDAwMDEzNzkyMSAwMDAwMCBuIAowMDAwMTM4MDYxIDAwMDAwIG4gCjAwMDAxMzgxMzkgMDAwMDAgbiAKMDAwMDEzODI3NyAwMDAwMCBuIAowMDAwMTM4NDE3IDAwMDAwIG4gCjAwMDAxMzg0OTUgMDAwMDAgbiAKMDAwMDEzODYzMiAwMDAwMCBuIAowMDAwMTM4NzcyIDAwMDAwIG4gCjAwMDAxMzg4NTAgMDAwMDAgbiAKMDAwMDEzODk4OCAwMDAwMCBuIAowMDAwMTM5MTI4IDAwMDAwIG4gCjAwMDAxMzkyMDYgMDAwMDAgbiAKMDAwMDEzOTM0NCAwMDAwMCBuIAowMDAwMTM5NDg0IDAwMDAwIG4gCjAwMDAxMzk1NjIgMDAwMDAgbiAKMDAwMDEzOTcwMCAwMDAwMCBuIAowMDAwMTM5ODM4IDAwMDAwIG4gCjAwMDAxMzk5MTYgMDAwMDAgbiAKMDAwMDE0MDA1NSAwMDAwMCBuIAowMDAwMTQwMTk2IDAwMDAwIG4gCjAwMDAxNDAyNzUgMDAwMDAgbiAKMDAwMDE0MDQxNCAwMDAwMCBuIAowMDAwMTQwNTU2IDAwMDAwIG4gCjAwMDAxNDA2MzUgMDAwMDAgbiAKMDAwMDE0MDc3NSAwMDAwMCBuIAowMDAwMTQwOTE3IDAwMDAwIG4gCjAwMDAxNDA5OTYgMDAwMDAgbiAKMDAwMDE0MTEzNiAwMDAwMCBuIAowMDAwMTQxMjc4IDAwMDAwIG4gCjAwMDAxNDEzNTcgMDAwMDAgbiAKMDAwMDE0MTQ5NSAwMDAwMCBuIAowMDAwMTQxNjM3IDAwMDAwIG4gCjAwMDAxNDE3MTggMDAwMDAgbiAKMDAwMDE0MTg1OCAwMDAwMCBuIAowMDAwMTQxOTk4IDAwMDAwIG4gCjAwMDAxNDIwNzkgMDAwMDAgbiAKMDAwMDE0MjIxOSAwMDAwMCBuIAowMDAwMTQyMzYxIDAwMDAwIG4gCjAwMDAxNDI0NDIgMDAwMDAgbiAKMDAwMDE0MjU4MiAwMDAwMCBuIAowMDAwMTQyNzI0IDAwMDAwIG4gCjAwMDAxNDI4MDUgMDAwMDAgbiAKMDAwMDE0Mjk0NSAwMDAwMCBuIAowMDAwMTQzMDg3IDAwMDAwIG4gCjAwMDAxNDMxNjggMDAwMDAgbiAKMDAwMDE0MzMwOCAwMDAwMCBuIAowMDAwMTQzNDUwIDAwMDAwIG4gCjAwMDAxNDM1MzEgMDAwMDAgbiAKMDAwMDE0MzY3MSAwMDAwMCBuIAowMDAwMTQzODEzIDAwMDAwIG4gCjAwMDAxNDM4OTQgMDAwMDAgbiAKMDAwMDE0NDAzNCAwMDAwMCBuIAowMDAwMTQ0MTc2IDAwMDAwIG4gCjAwMDAxNDQyNTcgMDAwMDAgbiAKMDAwMDE0NDM5NiAwMDAwMCBuIAowMDAwMTQ0NTM4IDAwMDAwIG4gCjAwMDAxNDQ2MTkgMDAwMDAgbiAKMDAwMDE0NDc1OSAwMDAwMCBuIAowMDAwMTQ0OTAxIDAwMDAwIG4gCjAwMDAxNDQ5ODAgMDAwMDAgbiAKMDAwMDE0NTEyMCAwMDAwMCBuIAowMDAwMTQ1MjYyIDAwMDAwIG4gCjAwMDAxNDUzNDMgMDAwMDAgbiAKMDAwMDE0NTQ4MyAwMDAwMCBuIAowMDAwMTQ1NjI1IDAwMDAwIG4gCjAwMDAxNDU3MDYgMDAwMDAgbiAKMDAwMDE0NTg0NiAwMDAwMCBuIAowMDAwMTQ1OTg4IDAwMDAwIG4gCjAwMDAxNDYwNjkgMDAwMDAgbiAKMDAwMDE0NjIwOSAwMDAwMCBuIAowMDAwMTQ2MzUxIDAwMDAwIG4gCjAwMDAxNDY0MzIgMDAwMDAgbiAKMDAwMDE0NjU3MiAwMDAwMCBuIAowMDAwMTQ2NzE0IDAwMDAwIG4gCjAwMDAxNDY3OTUgMDAwMDAgbiAKMDAwMDE0NjkzNSAwMDAwMCBuIAowMDAwMTQ3MDc3IDAwMDAwIG4gCjAwMDAxNDcxNTggMDAwMDAgbiAKMDAwMDE0NzI5OCAwMDAwMCBuIAowMDAwMTQ3NDM4IDAwMDAwIG4gCjAwMDAxNDc1MTkgMDAwMDAgbiAKMDAwMDE0NzY1OSAwMDAwMCBuIAowMDAwMTQ3ODAxIDAwMDAwIG4gCjAwMDAxNDc4ODIgMDAwMDAgbiAKMDAwMDE0ODAyMiAwMDAwMCBuIAowMDAwMTQ4MTYyIDAwMDAwIG4gCjAwMDAxNDgyNDEgMDAwMDAgbiAKMDAwMDE0ODM4MSAwMDAwMCBuIAowMDAwMTQ4NTIzIDAwMDAwIG4gCjAwMDAxNDg2MDQgMDAwMDAgbiAKMDAwMDE0ODc0NCAwMDAwMCBuIAowMDAwMTQ4ODg0IDAwMDAwIG4gCjAwMDAxNDg5NjUgMDAwMDAgbiAKMDAwMDE0OTEwNSAwMDAwMCBuIAowMDAwMTQ5MjQ3IDAwMDAwIG4gCjAwMDAxNDkzMjggMDAwMDAgbiAKMDAwMDE0OTQ2OCAwMDAwMCBuIAowMDAwMTQ5NjA3IDAwMDAwIG4gCjAwMDAxNDk2ODggMDAwMDAgbiAKMDAwMDE0OTgyOCAwMDAwMCBuIAowMDAwMTQ5OTcwIDAwMDAwIG4gCjAwMDAxNTAwNTEgMDAwMDAgbiAKMDAwMDE1MDE5MSAwMDAwMCBuIAowMDAwMTUwMzMzIDAwMDAwIG4gCjAwMDAxNTA0MTQgMDAwMDAgbiAKMDAwMDE1MDU1NCAwMDAwMCBuIAowMDAwMTUwNjk2IDAwMDAwIG4gCjAwMDAxNTA3NzcgMDAwMDAgbiAKMDAwMDE1MDkxNyAwMDAwMCBuIAowMDAwMTUxMDU2IDAwMDAwIG4gCjAwMDAxNTExMzcgMDAwMDAgbiAKMDAwMDE1MTI3NyAwMDAwMCBuIAowMDAwMTUxNDE5IDAwMDAwIG4gCjAwMDAxNTE0OTkgMDAwMDAgbiAKMDAwMDE1MTYzOSAwMDAwMCBuIAowMDAwMTUxNzgxIDAwMDAwIG4gCjAwMDAxNTE4NjAgMDAwMDAgbiAKMDAwMDE1MjAwMCAwMDAwMCBuIAowMDAwMTUyMTQyIDAwMDAwIG4gCjAwMDAxNTIyMjEgMDAwMDAgbiAKMDAwMDE1MjM2MCAwMDAwMCBuIAowMDAwMTUyNTAxIDAwMDAwIG4gCjAwMDAxNTI1ODAgMDAwMDAgbiAKMDAwMDE1MjcxOCAwMDAwMCBuIAowMDAwMTUyODU4IDAwMDAwIG4gCjAwMDAxNzk2MDcgMDAwMDAgbiAKMDAwMDE4MTY2OSAwMDAwMCBuIAowMDAwMTc5NjMwIDAwMDAwIG4gCjAwMDAxODE4NjQgMDAwMDAgbiAKMDAwMDE4NDQ0MSAwMDAwMCBuIAowMDAwMTgxODg2IDAwMDAwIG4gCjAwMDAxODQ2MzYgMDAwMDAgbiAKMDAwMDE4NjAzMiAwMDAwMCBuIAowMDAwMTg0NjU4IDAwMDAwIG4gCjAwMDAxODQ3MzggMDAwMDAgbiAKMDAwMDE4NTk5NSAwMDAwMCBuIAowMDAwMTg0ODc3IDAwMDAwIG4gCjAwMDAxODUwMTcgMDAwMDAgbiAKMDAwMDE4NjI0NSAwMDAwMCBuIAowMDAwMTg2OTYyIDAwMDAwIG4gCjAwMDAxODYyNjYgMDAwMDAgbiAKMDAwMDE4NzE1NyAwMDAwMCBuIAowMDAwMTg4NTA5IDAwMDAwIG4gCjAwMDAxODcxNzggMDAwMDAgbiAKMDAwMDE4ODcwNCAwMDAwMCBuIAowMDAwMTg5Nzc0IDAwMDAwIG4gCjAwMDAxODg3MjYgMDAwMDAgbiAKMDAwMDE4OTk2OSAwMDAwMCBuIAowMDAwMTkyMTUwIDAwMDAwIG4gCjAwMDAxODk5OTAgMDAwMDAgbiAKMDAwMDE5MjM0NSAwMDAwMCBuIAowMDAwMTkyOTQ0IDAwMDAwIG4gCjAwMDAxOTIzNjcgMDAwMDAgbiAKMDAwMDE5MzEzOSAwMDAwMCBuIAowMDAwMjA3MDUzIDAwMDAwIG4gCjAwMDAxOTMxNjAgMDAwMDAgbiAKMDAwMDE5MzIzOSAwMDAwMCBuIAowMDAwMjA2ODQwIDAwMDAwIG4gCjAwMDAxOTMzNzkgMDAwMDAgbiAKMDAwMDE5MzUyMSAwMDAwMCBuIAowMDAwMTkzNjAwIDAwMDAwIG4gCjAwMDAxOTM3NDAgMDAwMDAgbiAKMDAwMDE5Mzg4MiAwMDAwMCBuIAowMDAwMTkzOTYyIDAwMDAwIG4gCjAwMDAxOTQxMDEgMDAwMDAgbiAKMDAwMDE5NDI0MyAwMDAwMCBuIAowMDAwMTk0MzI1IDAwMDAwIG4gCjAwMDAxOTQ0NjUgMDAwMDAgbiAKMDAwMDE5NDYwNSAwMDAwMCBuIAowMDAwMTk0Njg3IDAwMDAwIG4gCjAwMDAxOTQ4MjcgMDAwMDAgbiAKMDAwMDE5NDk2OSAwMDAwMCBuIAowMDAwMTk1MDQ5IDAwMDAwIG4gCjAwMDAxOTUxODkgMDAwMDAgbiAKMDAwMDE5NTMyOSAwMDAwMCBuIAowMDAwMTk1NDA5IDAwMDAwIG4gCjAwMDAxOTU1NDkgMDAwMDAgbiAKMDAwMDE5NTY5MSAwMDAwMCBuIAowMDAwMTk1NzcxIDAwMDAwIG4gCjAwMDAxOTU5MTAgMDAwMDAgbiAKMDAwMDE5NjA1MiAwMDAwMCBuIAowMDAwMTk2MTMyIDAwMDAwIG4gCjAwMDAxOTYyNzEgMDAwMDAgbiAKMDAwMDE5NjQxMSAwMDAwMCBuIAowMDAwMTk2NDkxIDAwMDAwIG4gCjAwMDAxOTY2MzAgMDAwMDAgbiAKMDAwMDE5Njc3MiAwMDAwMCBuIAowMDAwMTk2ODUyIDAwMDAwIG4gCjAwMDAxOTY5OTIgMDAwMDAgbiAKMDAwMDE5NzEzMSAwMDAwMCBuIAowMDAwMTk3MjExIDAwMDAwIG4gCjAwMDAxOTczNDkgMDAwMDAgbiAKMDAwMDE5NzQ5MSAwMDAwMCBuIAowMDAwMjA3MjY2IDAwMDAwIG4gCjAwMDAyMDcyODggMDAwMDAgbiAKMDAwMDIwNzU1MSAwMDAwMCBuIAowMDAwMjE4Njc1IDAwMDAwIG4gCjAwMDAyMTg3NzMgMDAwMDAgbiAKMDAwMDIxODkzOCAwMDAwMCBuIAowMDAwMjE5MzYxIDAwMDAwIG4gCjAwMDAyMTk4NzcgMDAwMDAgbiAKMDAwMDIyMDEzOCAwMDAwMCBuIAowMDAwMjM2MDc2IDAwMDAwIG4gCjAwMDAyMzYxODEgMDAwMDAgbiAKMDAwMDIzNjM0MiAwMDAwMCBuIAowMDAwMjM2ODY5IDAwMDAwIG4gCjAwMDAyMzc1MDQgMDAwMDAgbiAKMDAwMDIzNzc3MCAwMDAwMCBuIAowMDAwMjUyMjkzIDAwMDAwIG4gCjAwMDAyNTIzOTMgMDAwMDAgbiAKMDAwMDI1MjU1OSAwMDAwMCBuIAowMDAwMjUzMDQxIDAwMDAwIG4gCjAwMDAyNTM2MjIgMDAwMDAgbiAKMDAwMDI1MzY0NSAwMDAwMCBuIAowMDAwMjUzNjY1IDAwMDAwIG4gCjAwMDAyNTM2ODYgMDAwMDAgbiAKMDAwMDI1MzcwOSAwMDAwMCBuIAowMDAwMjUzNzI5IDAwMDAwIG4gCjAwMDAyNTM3NTAgMDAwMDAgbiAKMDAwMDI1Mzc3MyAwMDAwMCBuIAowMDAwMjUzNzkzIDAwMDAwIG4gCnRyYWlsZXIKPDwKICAvUm9vdCAyIDAgUgogIC9JbmZvIDQgMCBSCiAgL0lEIFs8ODNBRUMxNTM0ODBCOUVBOTAwOTk5MkJDRTE5MkQ3OUY+IDw4M0FFQzE1MzQ4MEI5RUE5MDA5OTkyQkNFMTkyRDc5Rj5dCiAgL1NpemUgMzA0Cj4+CnN0YXJ0eHJlZgoyNTQ3MDAKJSVFT0YK