TimeAccounting
6.0.16
OTRS AG
https://otrs.com/
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
- Code cleanup.
- Updated minimum framework version to OTRS 6.0.26.
- Updated translations.
- Updated jquery.
- Updated copyright.
- Updated minimum framework version to OTRS 6.0.23.
- Updated minimum framework version to OTRS 6.0.20.
- Updated translations.
- Follow-up fix for bug#13466: Time spans will be saved implicitly.
- Updated framework files to OTRS 6.0.18.
- Updated translations.
- Updated framework files to OTRS 6.0.17.
- Follow-up fix for bug#14377.
- Fixed: Checkboxes act as radio buttons and missing text from alert dialog (bug#14377).
- Fixed: Webserver 500 Error when trying to put in hours into a weekend's day (bug#14354).
- Updated copyright.
- Updated minimum framework version to 6.0.15.
- Code cleanup.
- Updated minimum framework version to 6.0.13.
- Code cleanup.
- Updated translations, thanks to all translators.
- Code cleanup.
- Updated translations, thanks to all translators.
- Fixed: Time spans will be saved implicitly (bug#13466).
- Updated license information.
- Updated translations, thanks to all translators.
- Allow specific users to skip time accounting.
- Updated Hungarian package description.
- Fixed: Setting "Days of vacation" to value 0 not possible (bug#13467).
- Updated translations, thanks to all translators.
- Updated translations, thanks to all translators.
- Updated translations, thanks to all translators.
- Improved display of DefaultUserDateStart and DefaultUserDateEnd settings.
- Fixed bug13415 - Incomplete days widget has wrong day of week names.
- Updated documentation (Configuration chapter).
- Updated translations, thanks to all translators.
- Updated translations, thanks to all translators.
- Changed default group configuration and implemented migration path for existing systems. TimeAccounting specific user group will no longer be automatically created on new systems.
- Initial version for OTRS 6.
- Updated translations, thanks to all translators.
- Bug#12104 - TimeAccounting statistic silently returns only last full month unless Period filter is used.
A Time Registration Module.
Ein Zeiterfassungsmodul.
Egy munkaidő nyilvántartás modul.
6.0.x
<br>
<b>WELCOME</b>
<br>
<br>
You are about to install the OTRS package TimeAccounting.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WILLKOMMEN</b>
<br>
<br>
Sie sind im Begriff das OTRS-Paket TimeAccounting zu installieren.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>BIENVENIDO</b>
<br>
<br>
Ud. está a punto de instalar el paquete Contabilidad de Tiempo de OTRS.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ÜDVÖZÖLJÜK</b>
<br>
<br>
Ön a TimeAccounting OTRS csomag telepítésére készül.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>NOTICE</b>
<br>
<br>
In order to grant users access to the time accounting 'settings' and 'reporting' features, you need to add them as member to the group 'admin'.
<br>
<br>
The menu items that were added by this package will be visible after you log-in to the system again.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>HINWEIS</b>
<br>
<br>
In order to grant users access to the time accounting 'settings' and 'reporting' features, you need to add them as member to the group 'admin'.
<br>
<br>
Die von diesem Paket hinzugefügten Menü-Punkte sind erst nach einem erneuten Anmeldevorgang im System sichtbar.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>NOTA</b>
<br>
<br>
Para permitirles a los usuarios el acceso a las functiones de contabilidad de tiempo 'ajustes' y 'reporteo', es necesario añadirlos como miembros del grupo 'admin'.
<br>
<br>
Los elementos del menú agregados por este paquete, serán visibles luego de reiniciar sesión en el sistema.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>FIGYELMEZTETÉS</b>
<br>
<br>
Annak érdekében, hogy hozzáférést adjon a felhasználók számára az időelszámolás „beállítási” és „jelentési” funkcióihoz, hozzá kell adnia őket az „admin” csoporthoz tagként.
<br>
<br>
Azok a menüpontok, amelyeket ez a csomag adott hozzá, azután lesznek láthatóak, miután ismét bejelentkezik a rendszerbe.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ATTENTION</b>
<br>
<br>
If you uninstall this package, all database tables that were created during installation will be deleted.
All data from these tables will be irrevocably lost!
<br>
<br>
The group 'time_accounting' that was created during package installation will be deactivated.
You can activate this group again in the admin area.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ACHTUNG</b>
<br>
<br>
Bei der Deinstallation werden die von diesem Paket angelegten Datenbank-Tabellen gelöscht.
Alle darin enthaltenen Daten gehen unwiderruflich verloren!
<br>
<br>
Die von diesem Paket angelegte Gruppe 'time_accounting' wird deaktiviert.
Sie kann jederzeit im Admin-Bereich wieder aktiviert werden.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ATTENTION</b>
<br>
<br>
Si usted desinstala este paquete, todas las tablas de la base de datos que se crearon durante la instalación del mismo, se eliminarán y
el contenido de dichas tablas se perderá irrevocablemente.
<br>
<br>
El grupo 'time_accounting' que se dió de alta durante la instalación del paquete, se desactivará.
Es posible reactivar dicho grupo en el área de administración.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>FIGYELEM</b>
<br>
<br>
Ha eltávolítja ezt a csomagot, akkor a telepítés során létrehozott összes adatbázistábla törlésre kerül.
Az ezekben a táblákban lévő összes adat visszavonhatatlanul el fog veszni!
<br>
<br>
A csomagtelepítés során létrehozott „time_accounting” csoport ki lesz kapcsolva.
Ezt a csoportot az adminisztrációs területen tudja ismét bekapcsolni.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WELCOME</b>
<br>
<br>
You are about to upgrade the OTRS package TimeAccounting.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WILLKOMMEN</b>
<br>
<br>
Sie sind im Begriff das OTRS-Paket TimeAccounting zu aktualisieren.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>BIENVENIDO</b>
<br>
<br>
Ud. está a punto de actualizar el paquete Contabilidad de Tiempo de OTRS.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ÜDVÖZÖLJÜK</b>
<br>
<br>
Ön a TimeAccounting OTRS csomag frissítésére készül.<br>
<br>
<br>
((enjoy))<br>
<br>
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeInstall();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_4_0_91();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_5_0_92();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUninstall();
912e05b193f13aaac3b4d657e5e6df39257e2d4d
2020-03-14 03:24:56
opms.otrs.com
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tjr5cPcCjBS2WrkBQjcAAABgxHomarpVTxdNrxnujoDhR8M1Vlrl1GkJw92RwQKhGwAAgFGPxXLW65FzdyNmGLNjLaA/MIPOWd2I9BQ7O8fh7svngQ7WAAAA8ElEQVRggdANAADAWDBjRkqPupujrLWGsbenFQ3XcLprH6hV0+OTh7svgwhCNwAAAGNEYuKfEK53UtY5q5uYuBIz6BAyDHenwGAzYAYdQ6dwUTc5d9chHT579oLh7tLgohgMlv5bV1RUDFlXAAAAgCenVqsbGxutrBk0mpUVRhnu7oBBh+sND3Q6rUbN4/EYDMZwd2dghIeH9/XVQ0I3AAAAAAAwcsADUwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUeP/ARFu+KcCRz2QAAAAAElFTkSuQmCC
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgZWRpdC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50VGltZUFjY291bnRpbmdFZGl0IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+VGltZSBBY2NvdW50aW5nPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj5NZW51PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5JdGVtQXJlYTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj42MDAwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RWRpdCB0aW1lIHJlY29yZC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5FZGl0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4yMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyBvdmVydmlldy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPk92ZXJ2aWV3PC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+T3ZlcnZpZXcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+T3ZlcnZpZXc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdPdmVydmlldzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4xMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5TZXR0aW5nczwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlNldHRpbmdzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj45MDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5SZXBvcnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LlJlcG9ydGluZy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZyMjIzAwMi1UaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+UHJvamVjdCB0aW1lIHJlcG9ydGluZy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5SZXBvcnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjZXNzS2V5Ij48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+NTAwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyB2aWV3LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPlRpbWVBY2NvdW50aW5nPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VmlldzwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3ROYW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0UHJvamVjdFN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj52YWxpZDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvbk5hbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvblN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nU2V0dGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5pbnZhbGlkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPnZhbGlkPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlcldlZWtseUhvdXJzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj40MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyTGVhdmVEYXlzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4yMzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyT3ZlcnRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEYXRlU3RhcnQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkRhdGUiIFZhbHVlUmVnZXg9IiI+MjAxOS0wMS0wMTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZUVuZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkRhdGUiIFZhbHVlUmVnZXg9IiI+MjAxOS0xMi0zMTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGVzY3JpcHRpb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+UHV0IHlvdXIgZGVzY3JpcHRpb24gaGVyZS48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlclN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj52YWxpZDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6VGltZUFjY291bnRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjQ8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXNCZWZvcmVXYXJuaW5nIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpUaW1lQWNjb3VudGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJCI+MjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5vdGlmeU1vZHVsZSMjIzg4OC1UaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6RnJvbnRlbmROb3RpZmljYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6Tm90aWZpY2F0aW9uOjpUaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4QWxsb3dlZEluc2VydERheXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Rm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpUaW1lQWNjb3VudGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJCI+MTA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpSZWR1Y2VUaW1lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPSZndDsgdHJhdmVsaW5nOyBDb250ZW50ID0mZ3Q7IDUwKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdFZGl0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InRyYXZlbGluZyI+NTA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OklucHV0SG91cnNXaXRob3V0U3RhcnRFbmRUaW1lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByZUFwcGxpY2F0aW9uTW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpCYXNlOjpQcmVBcHBsaWNhdGlvbk1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPktlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpQcm9qZWN0MlJlbWFya1JlZ0V4cCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPl4oPzogUFJPSkVDVFwjIHwgSU5GUkE6IHwgUFJPRFVDVDogKTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OlByb2plY3RMaXN0Q29uc3RyYWludHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWN0aW9uTGlzdENvbnN0cmFpbnRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdFZGl0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkFjdGl2ZUZpbHRlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWxsb3dNYXNzRW50cnlGb3JVc2VyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpUb29sQmFyTW9kdWxlIyMjMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpUb29sQmFyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6OkluY29tcGxldGVXb3JraW5nRGF5czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3NzQ2xhc3MiPkluY29tcGxldGVXb3JraW5nRGF5czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvbiI+ZmEgZmEtY2xvY2stbzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJTdGF0czo6RHluYW1pY09iamVjdFJlZ2lzdHJhdGlvbiMjI1RpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpTdGF0czwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpTdGF0czo6RHluYW1pYzo6VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkZyb250ZW5kOjpSZXBvcnRpbmdQcm9qZWN0IyMjU2hvd09ubHlBY3RpdmVVc2VycyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpUaW1lQWNjb3VudGluZzo6Vmlld1JlcG9ydGluZ1Byb2plY3Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+Cjwvb3Ryc19jb25maWc+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmJnX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn0J3QsNC40YHRgtC40L3QsCDQu9C4INC40YHQutCw0YLQtSDQtNCwINC40LfRgtGA0LjQtdGC0LUg0YHRh9C10YLQvtCy0L7QtNGB0YLQstC+0YLQviDQt9CwINCy0YDQtdC80LUg0LIg0YLQvtC30Lgg0LTQtdC9Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICfQoNC10LTQsNC60YLQuNGA0LDQvdC1INC90LAg0LLRgNC10LzQtdCy0LjRjyDQt9Cw0L/QuNGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn0J7RgtC40LTQtdGC0LUg0LIg0L3QsNGB0YLRgNC+0LnQutC40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfQlNCw0YLQsCDQt9CwINC90LDQstC40LPQsNGG0LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ9CU0L3QuCDQsdC10Lcg0LfQsNC/0LjRgdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ9CY0LfQsdC+0YAg0L3QsCDQstGB0LjRh9C60Lgg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICfQnNCw0YHQvtCy0L4g0LLRitCy0LXQttC00LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAn0JzQvtC70Y8sINC40LfQsdC10YDQtdGC0LUg0L/RgNC40YfQuNC90LDRgtCwINC30LAg0JLQsNGI0LXRgtC+INC+0YLRgdGK0YHRgtCy0LjQtSDQt9CwINC40LfQsdGA0LDQvdC40YLQtSDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfQktCw0LrQsNC90YbQuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICfQkiDQvtGC0L/Rg9GB0Log0L/QviDQsdC+0LvQtdGB0YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICfQn9GA0Lgg0LjQt9Cy0YrQvdGA0LXQtNC10L0g0L7RgtC/0YPRgdC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0JfQsNC00YrQu9C20LjRgtC10LvQvdC40YLQtSDQv9C+0LvQtdGC0LAg0YHQsCDQvNCw0YDQutC40YDQsNC90Lgg0YEgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Ci0YDRj9Cx0LLQsCDQtNCwINCy0YrQstC10LTQtdGC0LUg0L3QsNGH0LDQu9C90L4g0Lgg0LrRgNCw0LnQvdC+INCy0YDQtdC80LUg0LjQu9C4INC/0LXRgNC40L7QtCDQvtGCINCy0YDQtdC80LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfQn9GA0L7QtdC60YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ9CX0LDQtNCw0YfQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfQl9Cw0LHQtdC70LXQttC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAn0JzQvtC70Y8sINC00L7QsdCw0LLQtdGC0LUg0LfQsNCx0LXQu9C10LbQutCwINGBINC/0L7QstC10YfQtSDQvtGCIDgg0LfQvdCw0LrQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Ce0YLRgNC40YbQsNGC0LXQu9C90LjRgtC1INCy0YDQtdC80LXQvdCwINC90LUg0YHQtSDQtNC+0L/Rg9GB0LrQsNGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J3QtSDRgdC1INC00L7Qv9GD0YHQutCw0YIg0L/QvtCy0YLQvtGA0L3QuCDRh9Cw0YHQvtCy0LUuINCd0LDRh9Cw0LvQvdC+0YLQviDQstGA0LXQvNC1INGB0YrQstC/0LDQtNCwINGBINC00YDRg9CzINC40L3RgtC10YDQstCw0LsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0YTQvtGA0LzQsNGCISDQnNC+0LvRjywg0LLRitCy0LXQtNC10YLQtSDRh9Cw0YEg0YEg0YTQvtGA0LzQsNGCINCn0Kc6INCc0JwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwINC1INGA0LDQt9GA0LXRiNC10L3QviDRgdCw0LzQviDQutCw0YLQviDQutGA0LDQudC90L4g0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQsNC70LjQtNC90L4g0LLRgNC10LzQtSEg0JXQtNC40L0g0LTQtdC9INC40LzQsCAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ9Ca0YDQsNC50L3QvtGC0L4g0LLRgNC10LzQtSDRgtGA0Y/QsdCy0LAg0LTQsCDQtSDRgdC70LXQtCDQvdCw0YfQsNC70L3QvtGC0L4g0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQndC1INGB0LUg0LTQvtC/0YPRgdC60LDRgiDQv9C+0LLRgtC+0YDQvdC4INGH0LDRgdC+0LLQtS4g0JrRgNCw0LnQvdC+0YLQviDQstGA0LXQvNC1INGB0YrQstC/0LDQtNCwINGBINC00YDRg9CzINC40L3RgtC10YDQstCw0LsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0L/QtdGA0LjQvtC0ISDQldC00LjQvSDQtNC10L0g0LjQvNCwIDI0INGH0LDRgdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ9CS0LDQu9C40LTQvdC40Y/RgiDQv9C10YDQuNC+0LQg0YLRgNGP0LHQstCwINC00LAg0LUg0L/Qvi3Qs9C+0LvRj9C8INC+0YIg0L3Rg9C70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0L/QtdGA0LjQvtC0ISDQntGC0YDQuNGG0LDRgtC10LvQvdC40YLQtSDQv9C10YDQuNC+0LTQuCDQvdC1INGB0LAg0YDQsNC30YDQtdGI0LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ9CU0L7QsdCw0LLQuCDQtdC00LjQvSDRgNC10LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICfQnNC+0LbQtdGC0LUg0LTQsCDQuNC30LHQtdGA0LXRgtC1INGB0LDQvNC+INC10LTQuNC9INC10LvQtdC80LXQvdGCINC+0YIg0LrQstCw0LTRgNCw0YLRh9C10YLQviDQt9CwINC+0YLQvNC10YLQutCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0KHQuNCz0YPRgNC90Lgg0LvQuCDRgdGC0LUsINGH0LUg0YDQsNCx0L7RgtC40YLQtSwg0LTQvtC60LDRgtC+INGB0YLQtSDQsiDQvtGC0L/Rg9GB0Log0L/QviDQsdC+0LvQtdGB0YI/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0KHQuNCz0YPRgNC90Lgg0LvQuCDRgdGC0LUsINGH0LUg0YDQsNCx0L7RgtC40YLQtSwg0LTQvtC60LDRgtC+INCx0Y/RhdGC0LUg0L3QsCDQv9C+0YfQuNCy0LrQsD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9Ch0LjQs9GD0YDQvdC4INC70Lgg0YHRgtC1LCDRh9C1INGB0YLQtSDRgNCw0LHQvtGC0LjQu9C4LCDQtNC+0LrQsNGC0L4g0LHRj9GF0YLQtSDQvdCwINC40LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfQodC40LPRg9GA0L3QuCDQu9C4INGB0YLQtSwg0YfQtSDRgdGC0LUg0YDQsNCx0L7RgtC40LvQuCDQv9C+0LLQtdGH0LUg0L7RgiAxNiDRh9Cw0YHQsD8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ9Cc0LXRgdC10YfQtdC9INC/0YDQtdCz0LvQtdC0INC90LAg0LLRgNC10LzQtdGC0L4g0LfQsCDQvtGC0YfQuNGC0LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQmNC30LLRitC90YDQtdC00LXQvSDRgtGA0YPQtCAo0YfQsNGB0L7QstC1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfQmNC30LLRitC90YDQtdC20LjQvCAo0YLQvtC30Lgg0LzQtdGB0LXRhiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ9CY0LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0ICjQvtCx0YnQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgdGC0LDQstCw0Ykg0L7RgtC/0YPRgdC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ9Ce0YLQv9GD0YHQutCwICjQtNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CS0LfQtdGC0LAg0L7RgtC/0YPRgdC60LAgKNGC0L7Qt9C4INC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQktC30LXRgtCwINC+0YLQv9GD0YHQutCwICjQvtCx0YnQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn0J7RgdGC0LDQstCw0YnQsCDQvtGC0L/Rg9C60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfQntGC0L/Rg9GB0Log0L/QviDQsdC+0LvQtdGB0YIgKNC00L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICfQntGC0L/Rg9GB0L3QsNGCINC1INCx0L7Qu9C90LjRh9C10L0gKNGC0L7Qt9C4INC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9Ce0YLQv9GD0YHQvdCw0YIg0LHQvtC70LXQvdC40YfQtdC9ICjQvtCx0YnQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXQtNC90LjRjyDQvNC10YHQtdGGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICfQodC70LXQtNCy0LDRidC40Y8g0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0JTQtdC70L3QuNGH0LXQvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAn0KDQsNCx0L7RgtC90Lgg0YfQsNGB0L7QstC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ9Ce0LHRidC+INGA0LDQsdC+0YLQvdC+INCy0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAn0J/RgNC10LPQu9C10LQg0L3QsCDQv9GA0L7QtdC60YLQsCDQvdCwINC/0L7RgtGA0LXQsdC40YLQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KfQsNGB0L7QstC1ICjQvNC10YHQtdGH0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ9Cn0LDRgdC+0LLQtSAo0YbRj9C7INC20LjQstC+0YIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn0J7QsdGJ0L4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAn0J7RgtGH0LjRgtCw0L3QtSDQvdCwINCy0YDQtdC80LXRgtC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfQnNC10YHQtdGH0L3QsCDQvdCw0LLQuNCz0LDRhtC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ9Ce0YLQuNC00LXRgtC1INC90LAg0LTQsNGC0LDRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ9Cf0L7RgtGA0LXQsdC40YLQtdC70YHQutC4INC+0YLRh9C10YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn0J7QsdGJ0L4g0LfQsCDQvNC10YHQtdGG0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQntCx0YnQviDQt9CwINGG0LXQu9C40Y8g0L/QtdGA0LjQvtC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgtC/0YPRgdC6INC30LAg0LjQt9Cy0YrQvdGA0LXQtNC10L0g0YLRgNGD0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICfQntGC0L/Rg9GB0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0J7RgtC/0YPRgdC6INC/0L4g0LHQvtC70LXRgdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ9Ce0YHRgtCw0LLQsNGJ0LAg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn0JTQvtC60LvQsNC00Lgg0LfQsCDQv9GA0L7QtdC60YLQsCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn0JTQvtC60LvQsNC0INC30LAg0L/RgNC+0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAn0J7RgtCy0L7RgNC10YLQtSDQvtGC0YfQtdGC0L3QuNGPINC/0YDQtdCz0LvQtdC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0JIg0LzQvtC80LXQvdGC0LAg0YHQtSDQv9C+0LrQsNC30LLQsNGCINGB0LDQvNC+INCw0LrRgtC40LLQvdC4INC/0L7RgtGA0LXQsdC40YLQtdC70Lgg0LIg0YLQvtC30Lgg0L/RgNC+0LXQutGCLiDQl9CwINC00LAg0L/RgNC+0LzQtdC90LjRgtC1INGC0L7QstCwINC/0L7QstC10LTQtdC90LjQtSwg0LzQvtC70Y8sINCw0LrRgtGD0LDQu9C40LfQuNGA0LDQudGC0LUg0L3QsNGB0YLRgNC+0LnQutCw0YLQsDonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0J/QvtC90LDRgdGC0L7Rj9GJ0LXQvCDRgdC1INC/0L7QutCw0LfQstCw0YIg0LLRgdC40YfQutC4INC/0L7RgtGA0LXQsdC40YLQtdC70LgsINC+0YLRh9C40YLQsNGJ0Lgg0LLRgNC10LzQtdGC0L4uINCX0LAg0LTQsCDQv9GA0L7QvNC10L3QuNGC0LUg0YLQvtCy0LAg0L/QvtCy0LXQtNC10L3QuNC1LCDQvNC+0LvRjywg0LDQutGC0YPQsNC70LjQt9C40YDQsNC50YLQtSDQvdCw0YHRgtGA0L7QudC60LDRgtCwOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0LDQvdC1INC90LAg0L3QsNGB0YLRgNC+0LnQutC40YLQtSDQvdCwINC/0YDQvtC10LrRgiDQt9CwINGB0YfQtdGC0L7QstC+0LTQvdC+INCy0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICfQlNC+0LHQsNCy0Y/QvdC1INC90LAg0L/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn0J7RgtC40LTQtdGC0LUg0LIg0L7QsdGJINC/0YDQtdCz0LvQtdC0INC90LAg0L3QsNGB0YLRgNC+0LnQutC40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLRj9C90LUg0L3QsCDQv9GA0L7QtdC60YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNCw0L3QtSDQvdCwINC90LDRgdGC0YDQvtC50LrQuNGC0LUg0L3QsCDQv9GA0L7QtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0JLQtdGH0LUg0LjQvNCwINC/0YDQvtC10LrRgiDRgSDRgtC+0LLQsCDQuNC80LUuINCc0L7Qu9GPLCDQuNC30LHQtdGA0LXRgtC1INC00YDRg9CzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQvdCw0YHRgtGA0L7QudC60LjRgtC1INC30LAg0YHRh9C10YLQvtCy0L7QtNC90L4g0LLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ9CU0L7QsdCw0LLRj9C90LUg0L3QsCDQt9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICfQn9C10YDQuNC+0LTQuNGC0LUg0L3QtSDQvNC+0LPQsNGCINC00LAg0LHRitC00LDRgiDQuNC30YLRgNC40YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0KHQv9C40YHRitC6INC90LAg0L/RgNC+0LXQutGC0LjRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ9Ch0L/QuNGB0YrQuiDQvdCwINC30LDQtNCw0YfQuNGC0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LHQsNCy0Y/QvdC1INC90LAg0LfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQvdCw0YHRgtGA0L7QudC60LjRgtC1INC90LAg0LfQsNC00LDRh9C40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0JLQtdGH0LUg0LjQvNCwINC30LDQtNCw0YfQsCDRgSDRgtC+0LLQsCDQuNC80LUuINCc0L7Qu9GPLCDQuNC30LHQtdGA0LXRgtC1INC00YDRg9Cz0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ9Ch0L/QuNGB0YrQuiDRgSDQv9C+0YLRgNC10LHQuNGC0LXQu9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ9Cf0L7QutCw0LfQstCw0L3QtSDQvdCwINC40LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9Cg0LDQt9GA0LXRiNCw0LLQsNC90LUg0LfQsCDRgdGK0LfQtNCw0LLQsNC90LXRgtC+INC90LAg0L/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J3QsNGH0LDQu9C+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfQmtGA0LDQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn0JTQvdC4INC+0YIg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfQp9Cw0YHQvtCy0LUg0L/RgNC10Lcg0YHQtdC00LzQuNGG0LDRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICfQntGC0L7RgNC40LfQuNGA0LDQvSDQuNC30LLRitC90YDQtdC00LXQvSDRgtGA0YPQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0JTQsNGC0LAg0LfQsCDQvdCw0YfQsNC70L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn0JzQvtC70Y8g0LLRitCy0LXQtNC10YLQtSDQstCw0LvQuNC00L3QsCDQtNCw0YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ9CU0LDRgtCwINC30LAg0LrRgNCw0LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICfQmtGA0LDQudC90LjRj9GCINC/0LXRgNC40L7QtCDRgtGA0Y/QsdCy0LAg0LTQsCDQsdGK0LTQtSDRgdC70LXQtCDQvdCw0YfQsNC70L7RgtC+INC90LAg0L/QtdGA0LjQvtC00LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfQntGB0YLQsNCy0LDRidC4INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICfQodC10LTQvNC40YfQvdC4INGH0LDRgdC+0LLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ9CY0LfQstGK0L3RgNC10LTQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfQndGP0LzQsCDQvdCw0LzQtdGA0LXQvdC4INCy0YDQtdC80LXQstC4INC/0LXRgNC40L7QtNC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICfQlNC+0LHQsNCy0LXRgtC1INC/0LXRgNC40L7QtCDQvtGCINCy0YDQtdC80LUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn0J/RgNC10LPQu9C10LQg0L3QsCDQstGA0LXQvNC10LLQuNGPINC30LDQv9C40YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICfQn9GA0LXQs9C70LXQtCDQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9CS0YfQtdGA0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQo9GC0YDQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfQndGP0LzQsCDQtNCw0L3QvdC4INC30LAg0YLQvtC30Lgg0LTQtdC9Lic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn0J7RgtGH0LXRgtC90L7RgdGCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn0J3QsNGB0YLRgNC+0LnQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn0JzQvtC70Y8sINC40LfQsdC10YDQtdGC0LUg0L/QvtC90LUg0LXQtNC40L0g0LTQtdC9ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0L7QstC+INCy0L/QuNGB0LLQsNC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfQnNC+0LvRjywg0LjQt9Cx0LXRgNC10YLQtSDQv9GA0LjRh9C40L3QsCDQt9CwINC+0YLRgdGK0YHRgtCy0LjQtSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICfQmNC30YLRgNC40LLQsNC90LUg0L3QsCDQstGA0LXQvNC10YLQviDQt9CwINCy0L/QuNGB0LLQsNC90LUg0LIg0YHRh9C10YLQvtCy0L7QtNGB0YLQstC+0YLQvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ9Cf0L7RgtCy0YrRgNC00LXRgtC1JzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRhX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVmlsIGR1IHZpcmtlbGlnIHNsZXR0ZSB0aWRzcmVnbnNrYWJldCBmb3IgZGVubmUgZGFnPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdSZWRpZ2VyIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0b25hdmlnYXRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEYWdlIHVkZW4gb3B0ZWduZWxzZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdQw6UgZmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1N5Z2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQWZzcGFkc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnRGUgcMOla3LDpnZlZGUgZmVsdGVyIGVyIG1hcmtlcmV0IG1lZCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRHUgc2thbCBpbmR0YXN0ZSBlbiBzdGFydC0gb2cgc2x1dGRhdG8gZWxsZXIgZW4gdGlkc3BlcmlvZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdPcGdhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQmVtw6Zya25pbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWdhdGl2IHRpZCBlciBpa2tlIHRpbGxhZHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdHZW50YWduZSB0aW1lciBlciBpa2tlIHRpbGxhZHQuIFN0YXJ0dGlkZW4gc3ZhcmVyIHRpbCBldCBhbmRldCBpbnRlcnZhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ1NsdXR0aWRlbiBza2FsIHbDpnJlIHNlbmVyZSBlbmQgc3RhcnR0aWRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdHZW50YWduZSB0aW1lciBlciBpa2tlIHRpbGxhZHQuIFNsdXR0aWRlbiBzdmFyZXIgdGlsIGV0IGFuZGV0IGludGVydmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnVWd5bGRpZyBwZXJpb2RlISBFbiBkYWcgaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFbiBneWxkaWcgcGVyaW9kZSBza2FsIHbDpnJlIHN0w7hycmUgZW5kIDAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1VneWxkaWcgcGVyaW9kZSEgTmVnYXRpdmUgcGVyaW9kZXIgZXIgaWtrZSB0aWxsYWR0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ1RpbGbDuGogZW4gcsOma2tlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnRHUga2FuIGt1biB2w6ZsZ2UgZXQgYWZrcnlkc25pbmdzZmVsdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0VyIGR1IHNpa2tlciBww6UsIGF0IGR1IGFyYmVqZGVkZSB1bmRlciBkaXQgc3lnZWZyYXbDpnI/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnRXIgZHUgc2lra2VyIHDDpSwgYXQgZHUgYXJiZWpkZWRlLCBtZW5zIGR1IHZhciBww6UgZmVyaWU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdFciBkdSBzaWtrZXIgcMOhLCBhdCBkdSBhcmJlamRlZGUsIG1lbnMgZHUgdmFyIHDDpSBhZnNwYWRzZXJpbmc/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0VyIGR1IHNpa2tlciBww6UsIGF0IGR1IGFyYmVqZGVkZSBtZXJlIGVuZCAxNiB0aW1lcj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ03DpW5lZGxpZyBvdmVyc2lndCBvdmVyIHRpZHNyYXBvcnRlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnT3ZlcnRpZCAodGltZXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ092ZXJ0aWQgKGRlbm5lIG3DpW5lZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ092ZXJ0aWQgKGkgYWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdSZXN0ZXJlbmRlIGFmc3BhZHNlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdGZXJpZSAoZGFnZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRmVyaWVkYWdlIGJydWd0IChkZW5uZSBtw6VuZWQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdGZXJpZWRhZ2UgYnJ1Z3QgKGkgYWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdSZXN0ZXJlbmRlIGZlcmllZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ1N5Z2VmcmF2w6ZyIChkYWdlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1N5Z2VmcmF2w6ZyIGJydWd0IChkZW5uZSBtw6VuZWQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ1N5Z2VmcmF2w6ZyIGJydWd0IChpIGFsdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdGb3JyaWdlIG3DpW5lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTsOmc3RlIG3DpW5lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnVWdlZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdBcmJlamRzdGltZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnQXJiZWpkc3RpbWVyIGkgYWx0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0JydWdlcnMgcHJvamVrdG92ZXJibGlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ1RpbWVyIChtw6VuZWRsaWcpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdTYW1sZXQgYW50YWwgdGltZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdBbHQgaSBhbHQnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnVGlkc3JhcG9ydGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdNw6VuZWRzbmF2aWdhdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0JydWdlcnJhcHBvcnRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnSSBhbHQgZm9yIG3DpW5lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1NhbWxldCB0b3RhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0Fmc3BhZHNlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0ZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdTeWdlZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdSZXN0ZXJlbmRlIGZyYXbDpnJzZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdQcm9qZWt0cmFwcG9ydGVyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdQcm9qZWt0cmFwcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgaW5kc3RpbGxpbmdlciBmb3IgdGlkc3JlZ25za2Fic3Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdUaWxmw7hqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdUaWxmw7hqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUmVkaWdlciBwcm9qZWt0aW5kc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRGVyIGVyIGFsbGVyZWRlIGV0IHByb2pla3QgbWVkIGRldHRlIG5hdm4uIFbDpmxnIHZlbmxpZ3N0IGV0IGFuZGV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgdGlkc3JlZ25za2Fic2luZHN0aWxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ1RpbGbDuGogb3BnYXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdPcGdhdmVsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ1RpbGbDuGogb3BnYXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgb3BnYXZlaW5kc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRGVyIGVyIGFsbGVyZWRlIGVuIG9wZ2F2ZSBtZWQgZGV0dGUgbmF2bi4gVsOmbGcgdmVubGlnc3QgZXQgYW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0JydWdlcmxpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ZpcyBvdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1RpbGxhZCBvcHJldHRlbHNlIGFmIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdCZWd5bmQgcGVyaW9kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnQWZzbHV0IHBlcmlvZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0ZlcmllZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1RpbWVyIHByLiB1Z2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0dvZGtlbmR0IG92ZXJ0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXJpb2RlbnMgYWZzbHV0bmluZyBza2FsIHbDpnJlIGVmdGVyIHBlcmlvZGVucyBzdGFydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0luZ2VuIHRpZHNwZXJpb2RlciBmdW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1RpbGbDuGogdGlkc3BlcmlvZGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnU2UgdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1NlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGb3JyaWdlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpnN0ZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnRGVyIGVyIGlra2UgZnVuZGV0IGRhdGEgZm9yIGRlbm5lIGRhZy4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGVyaW5nJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnSW5kc3RpbGxpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ1NsZXQgdGlkc3JlZ25za2Fic2luZHRhc3RuaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQmVrcsOmZnQgaW5kc8OmdHRlbHNlJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnQWdlbnQgaW50ZXJmYWNlLW5vdGlmaWNhdGlvbnNtb2R1bGV0IHNrYWwgc2UgYW50YWxsZXQgYWYgdWFmc2x1dHRlZGUgYXJiZWpkc2RhZ2UgZm9yIGJydWdlcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1N0YW5kYXJkbmF2biBmb3IgbnllIGhhbmRsaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1N0YW5kYXJkbmF2biBmb3IgbnllIHByb2pla3Rlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBzbHV0ZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIGJlZ3luZGVsc2VzZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIGZyYXbDpnJzZGFnZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBvdmVydGlkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igbm9ybWFsZSB1Z2VudGxpZ2UgdGltZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBueWUgaGFuZGxpbmdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBueWUgcHJvamVrdGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIG55ZSBicnVnZXJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmVyZXIgZGUgcHJvamVrdGVyLCBmb3IgaHZpbGtlIGVuIGJlbcOmcmtuaW5nIGVyIHDDpWtyw6Z2ZXQuIEh2aXMgUmVnRXhwIG1hdGNoZXIgcMOlIHByb2pla3RldCwgc2thbCBkdSBvZ3PDpSBpbmRmw7hqZSBlbiBiZW3DpnJrbmluZy4gUmVnRXhwIGJydWdlciBzbXggcGFyYW1ldGVyZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0FuZ2l2ZXIgZm9yIGh2b3IgbWFuZ2UgZGFnZSwgZHUga2FuIGluZHPDpnR0ZSBhcmJlamRzZW5oZWRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01ha3NpbWFsdCBhbnRhbCBhZiBhcmJlamRzZGFnZSBlZnRlciBodmlsa2V0IGFyYmVqZHNlbmhlZGVybmUgc2thbCBpbmRzw6Z0dGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnUmVndWzDpnJlIHVkdHJ5ayBmb3IgYmVncsOmbnNuaW5nIGFmIGhhbmRsaW5nc2xpc3RlIGlmw7hsZ2UgZGV0IHZhbGd0ZSBwcm9qZWt0LiBOw7hnbGVuIGluZGVob2xkZXIgZXQgcmVndWzDpnJ0IHVkdHJ5ayBmb3IgcHJvamVrdChlciksIGluZGhvbGRldCBydW1tZXIgcmVndWzDpnJlIHVkdHJ5ayBmb3IgaGFuZGxpbmcoZXIpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdSZWd1bMOmcmUgdWR0cnlrIGZvciBiZWdyw6Zuc25pbmcgYWYgcHJvamVrdGxpc3RlIGlmw7hsZ2UgYnJ1Z2VyZ3J1cHBlci4gTsO4Z2xlbiBpbmRlaG9sZGVyIGV0IHJlZ3Vsw6ZydCB1ZHRyeWsgZm9yIHByb2pla3QoZXIpLCBpbmRob2xkZXQgcnVtbWVyIGtvbW1hc2VwYXJlcmV0IGxpc3RlIG92ZXIgZ3J1cHBlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0FuZ2l2ZXIsIG9tIGFyYmVqZHN0aW1lciBrYW4gaW5kc8OmdHRlcyB1ZGVuIHN0YXJ0LSBvZyBzbHV0dGlkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0RldHRlIG1vZHVsIGdlbm5lbXR2aW5nZXIgaW5kc8OmdHRlbHNlciBpIHRpZHNyZWduc2thYi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdEZXR0ZSBhZHZpc2VyaW5nc21vZHVsIGdpdmVyIGVuIGFkdmFyc2VsLCBodmlzIGRlciBlciBmb3IgbWFuZ2UgdWZ1bGRzdMOmbmRpZ2UgYXJiZWpkc2RhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVGlkc3JlZ25za2FiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0JydWdlcywgaHZpcyBub2dsZSBoYW5kbGluZ2VyIGhhciByZWR1Y2VyZXQgYXJiZWpkc3RpbWVybmUgKGYuZWtzLiBodmlzIGt1biBoYWx2ZGVsZW4gYWYgcmVqc2V0aWRlbiBlciBiZXRhbHQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRlX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnTcO2Y2h0ZW4gU2llIHdpcmtsaWNoIGRpZSBaZWl0ZXJmYXNzdW5nIGbDvHIgZGVuIGFrdHVlbGxlbiBUYWcgbMO2c2NoZW4/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ1plaXRhYnJlY2hudW5nIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdadSBFaW5zdGVsbHVuZ2VuIGdlaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0RhdHVtc25hdmlnYXRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdUYWdlIG9obmUgRWludHLDpGdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ0FsbGUgVGFnZSBhdXN3w6RobGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdNYXNzZW5laW50cmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnQml0dGUgd8OkaGxlbiBTaWUgZGVuIEdydW5kIGbDvHIgSWhyZSBBYndlc2VuaGVpdCBmw7xyIGRpZSBhdXNnZXfDpGhsdGVuIFRhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdpbSBVcmxhdWInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0Vya3Jhbmt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnw5xiZXJzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnRmVsZGVyLCBkaWUgYXVzZ2Vmw7xsbHQgd2VyZGVuIG3DvHNzZW4sIHNpbmQgbWl0IGVpbmVtIFN0ZXJuICIqIiBnZWtlbm56ZWljaG5ldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdTaWUgbcO8c3NlbiBlaW5lIFN0YXJ0LSB1bmQgRW5kemVpdCBvZGVyIGVpbmUgWmVpdHNwYW5uZSBhbmdlYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVMOkdGlna2VpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdBbm1lcmt1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnQml0dGUgZ2ViZW4gU2llIGVpbmUgQW5tZXJrdW5nIHZvbiBtZWhyIGFscyA4IFplaWNoZW4gTMOkbmdlIGVpbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXZlIEFuZ2FiZW4gc2luZCBuaWNodCBlcmxhdWJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnRGllc2UgU3RhcnR6ZWl0IHd1cmRlIGJlcmVpdHMgaW4gZWluZW0gYW5kZXJlbiBFaW50cmFnIGFuZ2VnZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ1VuZ8O8bHRpZ2VzIEZvcm1hdCEgQml0dGUgZ2ViZW4gU2llIGVpbmUgWmVpdCBpbSBGb3JtYXQgSEg6TU0gZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdOdXIgMjQ6MDAgaXN0IGFscyBFbmR6ZWl0IGVybGF1YnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnVW5nw7xsdGlnZSBaZWl0ISBFaW4gVGFnIGhhdCBudXIgMjQgU3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnRGllIEVuZHplaXQgbXVzcyBuYWNoIGRlciBTdGFydHplaXQgc2Vpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdEaWVzZSBFbmR6ZWl0IHd1cmRlIGJlcmVpdHMgaW4gZWluZW0gYW5kZXJlbiBFaW50cmFnIGFuZ2VnZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1VuZ8O8bHRpZ2UgQW5nYWJlLiBFaW4gVGFnIGhhdCBudXIgMjQgU3R1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFaW5lIGfDvGx0aWdlIFplaXRzcGFubmUgbXVzcyBncsO2w59lciBhbHMgTnVsbCBzZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnVW5nw7xsdGlnZSBBbmdhYmUuIE5lZ2F0aXZlIFplaXRzcGFubmVuIHNpbmQgbmljaHQgbcO2Z2xpY2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnRWluZSBaZWlsZSBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1NpZSBrw7ZubmVuIG51ciBlaW5lIENoZWNrYm94IG1hcmtpZXJlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgZ2VhcmJlaXRldCBoYWJlbiwgb2J3b2hsIFNpZSBlcmtyYW5rdCBzaW5kPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgZ2VhcmJlaXRldCBoYWJlbiwgb2J3b2hsIFNpZSBpbSBVcmxhdWIgc2luZD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgZ2VhcmJlaXRldCBoYWJlbiwgb2J3b2hsIFNpZSDDnGJlcnN0dW5kZW4gZ2Vub21tZW4gaGFiZW4/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgbWVociBhbHMgMTYgU3R1bmRlbiBnZWFyYmVpdGV0IGhhYmVuPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnWmVpdGVyZmFzc3VuZyAtIE1vbmF0c8O8YmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ8OcYmVyc3R1bmRlbiAoaW4gU3R1bmRlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnw5xiZXJzdHVuZGVuIChkaWVzZXIgTW9uYXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfDnGJlcnN0dW5kZW4gKFN1bW1lKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfDnGJlcnN0dW5kZW4gKHZlcmJsZWliZW5kKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdVcmxhdWIgKGluIFRhZ2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdVcmxhdWJzdGFnZSAoZGllc2VyIE1vbmF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnVXJsYXVic3RhZ2UgKFN1bW1lKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdVcmxhdWJzdGFnZSAodmVyYmxlaWJlbmQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnRXJrcmFua3QgKGluIFRhZ2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0Vya3Jhbmt0IChkaWVzZXIgTW9uYXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0Vya3Jhbmt0IChTdW1tZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdWb3JoZXJpZ2VyIE1vbmF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOw6RjaHN0ZXIgTW9uYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ1dvY2hlbnRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnQXJiZWl0c3N0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnQXJiZWl0c3N0dW5kZW4gKGdlc2FtdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnUHJvamVrdMO8YmVyc2ljaHQgZGVzIEJlbnV0emVycyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdTdHVuZGVuIChpbSBNb25hdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1N0dW5kZW4gKGdlc2FtdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdTdW1tZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdaZWl0ZXJmYXNzdW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdEYXR1bXNhdXN3YWhsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdHZWhlIHp1IERhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ051dHplcmJlcmljaHRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdwcm8gTW9uYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdTdW1tZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ8OcYmVyc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1VybGF1Yic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnRXJrcmFua3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnVmVyYmxlaWJlbmRlIFVybGF1YnN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb2pla3RiZXJpY2h0ZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUHJvamVrdMO8YmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnWnVyIEJlcmljaHRzw7xiZXJzaWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0RlcnplaXQgd2VyZGVuIGluIGRpZXNlbSBQcm9qZWt0IG51ciBha3RpdmUgQmVudXR6ZXIgYW5nZXplaWd0LiBVbSBkaWVzZSBFaW5zdGVsbHVuZyB6dSDDpG5kZXJuLCBiZWFyYmVpdGVuIFNpZSBiaXR0ZTonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnRGVyemVpdCB3ZXJkZW4gYWxsZSB6ZWl0ZXJmYXNzZW5kZW4gQmVudXR6ZXIgYW5nZXplaWd0LiBVbSBkaWVzZSBFaW5zdGVsbHVuZyB6dSDDpG5kZXJuLCBiZWFyYmVpdGVuIFNpZSBiaXR0ZTonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnWmVpdGFicmVjaG51bmctUHJvamVrdGVpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ1Byb2pla3QgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdadXIgRWluc3RlbGx1bmdzw7xiZXJzaWNodCBnZWhlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ1Byb2pla3QgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUHJvamVrdGVpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRWluIFByb2pla3QgbWl0IGdsZWljaGVtIE5hbWVuIGV4aXN0aWVydCBiZXJlaXRzLiBCaXR0ZSB3w6RobGVuIFNpZSBlaW5lbiBhbmRlcmVuIE5hbWVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ1plaXRhYnJlY2hudW5ncy1FaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdUw6R0aWdrZWl0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnRmlsdGVyIGbDvHIgUHJvamVrdGUsIEF1ZmdhYmVuIG9kZXIgQmVudXR6ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdaZWl0ZmVuc3RlciBrw7ZubmVuIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdUw6R0aWdrZWl0c2xpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnVMOkdGlna2VpdCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdUw6R0aWdrZWl0c2VpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRWluZSBUw6R0aWdrZWl0IG1pdCBnbGVpY2hlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4gQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gYW5kZXJlbiBOYW1lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnQmVudXR6ZXJsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnQmVudXR6ZXJlaW5zdGVsbHVuZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnQmVudXR6ZXIgaXN0IGJlcmVjaHRpZ3Qgw5xiZXJzdHVuZGVuIHp1IHNlaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfDnGJlcnN0dW5kZW4gYW56ZWlnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ0JlbnV0emVyIGlzdCBiZXJlY2h0aWd0IFByb2pla3RlIHp1IGVyc3RlbGxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUHJvamVrdCBlcnN0ZWxsZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnRGVtIEJlbnV0emVyIGlzdCBlcmxhdWJ0LCBkaWUgWmVpdGVyZmFzc3VuZyB6dSDDvGJlcnNwcmluZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICfDnGJlcnNwcmluZ2VuIGRlciBaZWl0ZXJmYXNzdW5nIGVybGF1YmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnV2VubiBkaWVzZSBPcHRpb24gYXVzZ2V3w6RobHQgaXN0LCBpc3QgZGllIFplaXRlcmZhc3N1bmcgZsO8ciBkZW4gQmVudXR6ZXIgZWZmZWt0aXYgb3B0aW9uYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJ0VzIGdpYnQga2VpbmUgV2FybnVuZ2VuIHZvciBmZWhsZW5kZW4gRWludHLDpGdlbiB1bmQga2VpbmVuIFp3YW5nIHp1bSBFaW50cmFnZW4uICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnWmVpdHNwYW5uZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnRGF0dW0gQmVnaW5uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdEYXR1bSBFbmRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdVcmxhdWJzdGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1dvY2hlbnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0F1dG9yaXNpZXJ0ZSDDnGJlcnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ1N0YXJ0ZGF0dW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnQml0dGUgZ2ViZW4gU2llIGVpbiBnw7xsdGlnZXMgRGF0dW0gZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0VuZGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRGFzIEVuZGUgZGVyIFplaXRzcGFubmUgbXVzcyBuYWNoIGRlbSBBbmZhbmcgc2Vpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ1VybGF1YnN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ1fDtmNoZW50bGljaGUgU3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ8OcYmVyc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnS2VpbmUgWmVpdHNwYW5uZSBnZWZ1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnWmVpdHNwYW5uZSBoaW56dWbDvGdlbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdEYXRlbnNhdHogYW56ZWlnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdBbnNpY2h0IHZvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdWb3JoZXJpZ2VyIFRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpGNoc3RlciBUYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnS2VpbiBFaW50cmFnIGbDvHIgZGllc2VuIFRhZyBnZWZ1bmRlbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnS2FubiBBcmJlaXRzZWluaGVpdGVuIG5pY2h0IGVpbmbDvGdlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ0xldHp0ZSBQcm9qZWt0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICdVbmfDvGx0aWdlIEFuZ2FiZS4gRWluIFRhZyBoYXQgbnVyIDI0IFN0dW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICdLYW5uIEFyYmVpdHNlaW5oZWl0ZW4gbmljaHQgbMO2c2NoZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRGllc2VzIERhdHVtIGlzdCBhdcOfZXJoYWxiIGRlcyBHcmVuendlcnRlcywgYWJlciBTaWUgaGFiZW4gZGllc2VuIFRhZyBiaXMgamV0enQgbm9jaCBuaWNodCBlaW5nZWbDvGd0LCBhbHNvIGJla29tbWVuIFNpZSBkYWbDvHIgZWluZSghKSBDaGFuY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnVW52b2xsc3TDpG5kaWdlIEFyYmVpdHN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0VpbmdhYmVuIGdlc3BlaWNoZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRmVobGVyIGJlaSBkZXIgRWluZ2FiZSBmw7xyIG1laHJlcmUgVGFnZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnRGF0ZW4gZsO8ciBtZWhyZXJlIFRhZ2UgZXJmb2xncmVpY2ggZXJmYXNzdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0VpbmdlZ2ViZW5lcyBEYXR1bSB1bmfDvGx0aWchIERhdHVtIHd1cmRlIGF1ZiBcJ2hldXRlXCcgZ2XDpG5kZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICdFcyBpc3Qga2VpbmUgWmVpdHBlcmlvZGUga29uZmlndXJpZXJ0LCBvZGVyIGRhcyBhbmdlZ2ViZW5lIERhdHVtIGxpZWd0IGF1w59lcmhhbGIgZGVyIGtvbmZpZ3VyaWVydGVuIFplaXRwZXJpb2Rlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ0JpdHRlIGtvbnRha3RpZXJlbiBTaWUgaWhyZW4gWmVpdGVyZmFzc3VuZ3MtQWRtaW5pc3RyYXRvciwgdW0gZGllIFplaXRwZXJpb2RlbiB6dSBha3R1YWxpc2llcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnWnVsZXR6dCBhdXNnZXfDpGhsdGUgUHJvamVrdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnQWxsZSBQcm9qZWt0ZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdCZXJpY2h0c3Byb2pla3Q6IEJlbsO2dGlnZSBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdCZXJpY2h0c3Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnQmVyaWNodGVyc3RhdHR1bmcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnQmVudXR6ZXJlaW5zdGVsbHVuZ2VuIGvDtm5uZW4gbmljaHQgYWt0dWFsaXNpZXJ0IHdlcmRlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9qZWt0IGhpbnp1Z2Vmw7xndCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2pla3QgYWt0dWFsaXNpZXJ0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnQXVmZ2FiZSBoaW56dWdlZsO8Z3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdBdWZnYWJlIGFrdHVhbGlzaWVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnRGllIFVzZXJJRCBpc3QgdW5nw7xsdGlnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdLYW5uIEJlbnV0emVyZGF0ZW4gbmljaHQgZWluZsO8Z2VuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ0thbm4gWmVpdHBlcmlvZGUgbmljaHQgaGluenVmw7xnZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdFaW5zdGVsbHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnQmVudXR6ZXIgYWt0dWFsaXNpZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ0JlbnV0emVyIGhpbnp1Z2Vmw7xndCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdFaW5lbiBCZW51dHplciB6dXIgWmVpdGFicmVjaG51bmcgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOZXVlciBCZW51dHplcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdHVzIGRlcyBaZWl0cmF1bXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ0Fuc2ljaHQ6IEJlbsO2dGlnZSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0JpdHRlIGRpZSBBcmJlaXRzc3R1bmRlbiBlaW50cmFnZW4hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnVW52b2xsc3TDpG5kaWdlIEFyYmVpdHN0YWdlJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0JpdHRlIHfDpGhsZW4gU2llIG1pbmRlc3RlbnMgZWluZW4gVGFnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnTWFzc2VuZWludHJhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ0JpdHRlIHfDpGhsZW4gU2llIGVpbmVuIEdydW5kIGbDvHIgZGllIEFid2VzZW5oZWl0IGF1cyEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFaW50cmFnIGzDtnNjaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnRWluZ2FiZSBiZXN0w6R0aWdlbic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHp1bSBBbnplaWdlbiBkZXIgQW56YWhsIGRlciB1bnZvbGxzdMOkbmRpZ2VuIEFyYmVpdHN0YWdlIGRlcyBCZW51dHplcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhcmRuYW1lIGbDvHIgbmV1ZSBUw6R0aWdrZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gUHJvamVrdHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEVuZGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFN0YXJ0ZGF0dW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEJlc2NocmVpYnVuZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFVybGF1YnN0YWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0V2ZW50dWVsbCB2b3JoYW5kZW5lciDDnGJlcnN0dW5kZW7DvGJlcnRyYWcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdTdGFuZGFyZCBXb2NoZW5hcmJlaXRzemVpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXIgbmV1ZW4gVMOkdGlna2VpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdBbmZhbmdzc3RhdHVzIGVpbmVzIG5ldWVuIFByb2pla3RzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gQmVudXR6ZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdJbm5lcmhhbGIgZGllc2VyIEtvbmZpZ3VyYXRpb25zb3B0aW9uIGthbm4gZWluZSBSZWdFeHAgZGVmaW5pZXJ0IHdlcmRlbiwgZGllIGZlc3RsZWd0LCBiZWkgd2VsY2hlbiBQcm9qZWt0ZW4gZWluZSBCZW1lcmt1bmcgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MgKGRpZSBSZWdFeHAgYXJiZWl0ZXQgbWl0IHNteC1QYXJhbWV0ZXJuKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0Jlc3RpbW10LCBvYiBkYXMgU3RhdGlzdGlrLU1vZHVsIEluZm9ybWF0aW9uZW4genVyIFplaXRhYnJlY2hudW5nIGdlbmVyaWVyZW4ga2Fubi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnWmVpdGVyZmFzc3VuZ3MtRWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ1plaXQtRGF0ZW5zYXR6IGJlYXJiZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0xlZ3QgZmVzdCwgYmlzIHdhbm4gbWFuIGluIMOkbHRlcmUgWmVpdGVpbnRyw6RnZSBiZWFyYmVpdGVuIGthbm4gKHouIEIuIDEwIFRhZ2UgenVyw7xja2xpZWdlbmQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdXZW5uIGFrdGl2aWVydCwgd2VyZGVuIG51ciBVc2VyIGFuZ2V6ZWlndCBkaWUgQXJiZWl0c3plaXRlbiB6dSBkZW0gZ2V3w6RobHRlbiBQcm9qZWt0IGhpbnp1Z2Vmw7xndCBoYWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1dlbm4gYWt0aXZpZXJ0IHdlcmRlbiBkaWUgRHJvcGRvd24tRmVsZGVyIGltIGRlciBFZGl0aWVyLU9iZXJmbMOkY2hlIGluIGRlciBuZXVlbiBGb3JtIGFscyBGZWxkIG1pdCBBdXRvLVZlcnZvbGxzdMOkbmRpZ2VuIGFuZ2V6ZWlndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnRGVyIEZpbHRlciBiZWkgdm9yaGVyaWdlbiBQcm9qZWt0ZW4ga2FubiBiZWkgQWt0aXZpZXJ1bmcgZ2VudXR6dCB3ZXJkZW4sIGFuc3RlbGxlIGRhcyB6d2VpIFByb2pla3QgTGlzdGVuIChsZXR6dGUgdW5kIGFsbGUpIGdlbnV0enQgd2VyZGVuLiBFcyBrYW5uIGFsbGVyZGluZ3MgbnVyIGdlbnV0enQgd2VyZGVuIHdlbm4gVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGFrdGl2aWVydCBpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdCZWkgQWt0aXZpZXJ1bmcgaXN0IGRlciBGaWx0ZXIgZGVyIHZvcmhlcmlnZW4gUHJvamVrdGUgc3RhbmRhcmRtw6Rzc2lnIGFrdGl2IGZhbGxzIHZvcmhlcmlnZSBQcm9qZWt0ZSB2b3JoYW5kZW4gc2luZC4gRXIga2FubiBudXIgZ2VudXR6dCB3ZXJkZW4gd2VubiBFbmFibGVBdXRvQ29tcGxldGlvbiB1bmQgIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYWt0aXZpZXJ0IHNpbmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdXZW5uIGFrdGl2aWVydCwgIGvDtm5uZW4gQmVudXR6ZXIgImltIFVybGF1YiIsICJFcmtyYW5rdCIgdW5kICLDnGJlcnN0dW5kZW4iIGFuIG1laHJlcmVuIFRhZ2VuIGF1ZiBlaW5tYWwgc2V0emVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01heGltYWxlIEFuemFobCB2b24gQXJiZWl0c3RhZ2VuLCBuYWNoIGRlciBkaWUgQXJiZWl0c3plaXQgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEFyYmVpdHN0YWdlbiBvaG5lIEFyYmVpdHN6ZWl0ZWludHLDpGdlIG5hY2ggZGVuZW4gZWluZSBXYXJudW5nIGFuZ2V6ZWlndCB3aXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfDnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1Byb2pla3QtWmVpdC1SZXBvcnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bMOkcmVyIEF1c2RydWNrLCB1bSBkaWUgTGlzdGUgZGVyIFTDpHRpZ2tlaXRlbiBiZXrDvGdsaWNoIGRlcyBhdXNnZXfDpGhsdGVuIFByb2pla3RzIGVpbnp1c2NocsOkbmtlbi4gRGVyIFNjaGzDvHNzZWwgZW50aMOkbHQgZWluZW4gUmVndWzDpHJlbiBBdXNkcnVjayBmw7xyIFByb2pla3RlLCBkZXIgV2VydCBlaW5lbiBSZWd1bMOkcmVuIEF1c2RydWNrIGbDvHIgZGllIFTDpHRpZ2tlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnUmVndWzDpHJlciBBdXNkcnVjaywgdW0gZGllIExpc3RlIGRlciBQcm9qZWt0ZSBiZXrDvGdsaWNoIGRlcyBha3RpdmVuIEJlbnV0emVycyBlaW56dXNjaHLDpG5rZW4uIERlciBTY2hsw7xzc2VsIGVudGjDpGx0IGVpbmVuIFJlZ3Vsw6RyZW4gQXVzZHJ1Y2sgZsO8ciBQcm9qZWt0ZSwgZGVyIFdlcnQgZW50aMOkbHQgZWluZSBrb21tYS1zZXBhcmllcnRlIExpc3RlIHZvbiBCZW51dHplcmdydXBwZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdHaWJ0IGFuLCBvYiBBcmJlaXRzc3R1bmRlbiBvaG5lIFN0YXJ0LSB1bmQgRW5kemVpdCBlaW5nZWdlYmVuIHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdEaWVzZXMgTW9kdWwgendpbmd0IHp1ciBFaW5nYWJlIHZvbiBTdHVuZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ01vZHVsLCBkYXNzIGRlbiBBZ2VudCBpbSBOb3RpZmljYXRpb24tQmVyZWljaCBkZXMgQWdlbnQtSW50ZXJmYWNlcyBkYXLDvGJlciBpbmZvcm1pZXJ0LCB3ZW5uIHNjaG9uIHp1IGxhbmdlIGtlaW5lIFN0dW5kZW4gbWVociBlaW5nZXRyYWdlbiB3dXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1plaXRhYnJlY2hudW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ1plaXRhYnJlY2hudW5nIEJlYXJiZWl0dW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnWmVpdGFicmVjaG51bmdzw7xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdaZWl0YWJyZWNobnVuZyBCZXJpY2h0ZXJzdGF0dHVuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ1plaXRhYnJlY2hudW5nIEVpbnN0ZWxsdW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1plaXRhYnJlY2hudW5nIEFuc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdaZWl0YWJyZWNobnVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdIaWVyIGthbm4gbWFuIGVpbmdlYmVuLCBvYiBmw7xyIGVpbmUgYmVzdGltbXRlIFTDpHRpZ2tlaXQsIGRpZSB6dSB2ZXJyZWNobmVuZGVuIFN0dW5kZW4gZ2Vrw7xyenQgd2VyZGVuLiBaLiBCIHdlbm4gUmVpc2V6ZWl0ZW4gbnVyIHp1ciBIw6RsZnRlIHZlcmfDvHRldCB3ZXJkZW4gKEtleSA9Jmd0OyBqb3VybmV5OyBDb250ZW50ID0mZ3Q7IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX01YX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnwr9SZWFsbWVudGUgZGVzZWEgZWxpbWluYXIgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyBkZSBlc3RlIGTDrWE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ01vZGlmaWNhciBSZWdpc3RybyBkZSBIb3Jhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0lyIGEgY29uZmlndXJhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBGZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0TDrWFzIHNpbiByZWdpc3Rybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2Npb25hciB0b2RvcyBsb3MgZMOtYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ1JlZ2lzdHJvIG1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwYXJhIHN1IGF1c2VuY2lhIHBhcmEgbG9zIGTDrWFzIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdEZSB2YWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdBdXNlbnRlIHBvciBlbmZlcm1lZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0xvcyBjYW1wb3MgcmVxdWVyaWRvcyBlc3TDoW4gbWFyY2Fkb3MgY29uIHVuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFcyBuZWNlc2FyaW8gcXVlIHByb3BvcmNpb25lIHVuYSBob3JhIGRlIGluaWNpbyB5IHVuYSBkZSBmaW5hbGl6YWNpw7NuIG8gdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21lbnRhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ8KhUG9yIGZhdm9yIGFncmVndWUgdW5hIG9ic2VydmFjacOzbiBkZSBtXCdzIGRlIDggY2FyYWN0ZXJlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGluaWNpbyBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yIGludHJvZHV6Y2EgbGFzIGhvcmFzIGNvbiBlbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBlcyBzb2xvIHBlcm1pdGlkbyBjb21vIHRpZW1wbyBmaW5hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdIb3JhIGludsOhbGlkYSEgVW4gZMOtYSBzb2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhIGxhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZXN0w6EgaW5jbHXDrWRhIGVuIG90cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgVW4gZMOtYSBzw7NsbyB0aWVuZSAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHbDoWxpZG8gZGViZSBzZXIgbWF5b3IgYSBjZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgTm8gc2UgcGVybWl0ZW4gcGVyaW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0HDsWFkaXIgdW5hIGZpbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICfCoVPDs2xvIHNlIHBlcm1pdGUgZWxlZ2lyIHVuIGVsZW1lbnRvIGNoZWNrYm94ISc7CiAgICAkU2VsZi0+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+eydBZGQgdGFzayd9ID0gJ0FncmVnYXIgdGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cm8gcGFyYSBwcm95ZWN0b3MsIHRhcmVhcyBvIHVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnTG9zIHBlcsOtb2RvcyBkZSB0aWVtcG8gbm8gcHVlZGVuIHNlciBlbGltaW5hZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgVGFyZWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWdyZWdhciBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1bmEgdGFyZWEgY29uIGVzdGUgbm9tYnJlLiBQb3IgZmF2b3IsIGVsaWphIHVubyBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIFVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICdBanVzdGVzIGRlbCBVc3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnRWwgdXN1YXJpbyBwdWVkZSB2ZXIgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdNb3N0cmFyIGhvcmFzIGV4dHJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdFbCB1c3VhcmlvIHB1ZWRlIGNyZWFyIHByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUGVybWl0aXIgY3JlYWNpw7NuIGRlIHByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdFbCB1c3VhcmlvIHRpZW5lIHB1ZWRlIG9taXRpciBsYSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJ1Blcm1pdGlyIGxhIG9taXNpw7NuIGRlIGxhIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdTaSBzZSBzZWxlY2Npb25hIGVzdGEgb3BjacOzbiwgbGEgY29udGFiaWxpZGFkIGRlIHRpZW1wbyBzZXLDoSBvcGNpb25hbCBwYXJhIGVsIHVzdWFyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJ05vIGhhYnLDoSBhZHZlcnRlbmNpYXMgc29icmUgZW50cmFkYXMgZmFsdGFudGVzIHkgbm8gc2UgZXhpZ2lyw6FuIGxhcyBlbnRyYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ0VzcGFjaW9zIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnVGllbXBvIEV4dHJhIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0ZlY2hhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSB1bmEgZmVjaGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdGZWNoYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWwgcGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhbCBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBhdXNlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gcGVyaW9kb3MgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZ3JlZ2FyIHBlcmlvZG8gZGUgdGllbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdSZXN1bWVuIGRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEw61hIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnRMOtYSBzaWd1aWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gZGF0b3MgZGUgZXN0ZSBkw61hLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICfCoU5vIHNlIHB1ZGllcm9uIGludGVudGFyIGxhcyBVbmlkYWRlcyBkZSBUcmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ8KhTm8gc2UgcHVkaWVyb24gZ3VhcmRhciBsb3MgYWp1c3RlcywgcG9ycXVlIGVsIGTDrWEgc29sbyB0aWVuZSAyNCBob3JhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ8KhTm8gc2UgcHVkaWVyb24gZ3VhcmRhciBsYXMgVW5pZGFkZXMgZGUgVHJhYmFqbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdFc3RhIEZlY2hhIGVzdGEgZnVlcmEgZGVsIGzDrW1pdGUsIHBlcm8gdG9kYXbDrWEgbm8gaGEgaW5zZXJ0YWRvIGVzdGUgZMOtYSwgZW50b25jZXMgdXN0ZWQgdGllbmUgc29sbyB1bmEgb3BvcnR1bmlkYWQgZGUgaW5zZXJ0YXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnRMOtYXMgTGFib3JhbGVzIEluY29tcGxldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyY2nDs24gZXhpdG9zYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0Vycm9yIGFsIGluc2VydGFyIG3Dumx0aXBsZXMgZmVjaGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdTZSBpbnNlcnRhcm9uIHNhdGlzZmFjdG9yaWFtZW50ZSBsYXMgZW50cmFkYXMgZGUgdmFyaWFzIGZlY2hhcyEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdMYSBmZWNoYSBlbnRyYWRhIGVzIGluY29ycmVjdGEhIExhIGZlY2hhIGRlIGhhIGNhbWJpYWRvIGEgaG95Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfCoU5vIGhheSB1biBwZXJpb2RvIGRlIHRpZW1wbyBjb25maWd1cmFkbywgb3IgbGEgZmVjaGEgZXNwZWNpZmljYWRhIGVzdMOhIGZ1ZXJhIGRlIGxvcyBwZXJpb2RvcyBkZSB0aWVtcG8gZGVmaW5pZG9zISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnwqFQb3IgZmF2b3IgY29udGFjdGUgYWwgYWRtaW5pc3RyYWRvciBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvcyBwYXJhIGFjdHVhbGl6YXIgc3VzIHBlcmlvZG9zIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ0xvcyDDmmx0aW1vcyBQcm95ZWN0b3MgU2VsZWNjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUb2RvcyBsb3MgUHJveWVjdG9zJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1JlcG9ydGVEZVByb3llY3RvczogTmVjZXNpdGEgIlByb2plY3RJRCInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdSZXBvcnRlIGRlIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZXBvcnRlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICfCoU5vIGZ1ZSBwb3NpYmxlIGFjdHVhbGl6YXIgbG9zIGFqdXN0ZXMgZGVsIHVzdWFyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnwqFQcm95ZWN0byBhw7FhZGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ8KhUHJveWVjdG8gYWN0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnwqFUYXJlYSBhw7FhZGlkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ8KhVGFyZWEgYWN0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ8KhRWwgIlVzZXJJRCIgbm8gZXMgdsOhbGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnwqFObyBzZSBwdWVkZSBpbnNlcnRhciBkYXRvcyBkZWwgdXN1YXJpbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICfCoU5vIGZ1ZSBwb3NpYmxlIGHDsWFkaXIgZWwgcGVyaW9kbyBkZSB0aWVtcG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdDb25maWd1cmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnwqFVc3VhcmlvIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ8KhVXN1YXJpbyBhw7FhZGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBw7FhZGlyIHVzdWFyaW8gYSBjb250YWJpbGlkYWQgZGUgdGllbXBvcy4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ1VzdWFyaW8gTnVldm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ0VzdGFkbyBkZWwgUGVyaW9kbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnVmlzdGE6IMKhTmVjZXNpdGEgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSBzdXMgaG9yYXMgZGUgdHJhYmFqbyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdEw61hcyBsYWJvcmFsZXMgaW5jb21wbGV0b3MnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUG9yIGZhdm9yIHNlbGVjY2lvbmUgYWwgbWVub3MgdW4gZMOtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1JlZ2lzdHJvIE1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwb3IgYXVzZW5jaWEuJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRWxpbWluYXIgUmVnaXN0cm8gZGUgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1hciBpbnNlcmNpw7NuJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYWNpw7NuIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUsIG5lY2VzYXJpbyBwYXJhIHZpc3VhbGl6YXIgZWwgbsO6bWVybyBkZSBkw61hcyBpbmNvbXBsZXRvcyBkZSB1biB1c3VhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05vbWJyZSBwb3IgZGVmZWN0byBwYXJhIGFjY2lvbmVzIG51ZXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTm9tYnJlIHBvciBkZWZlY3RvIHBhcmEgcHJveWVjdG9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGZlY2hhIGRlIGZpbmFsaXphY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGZlY2hhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGRlc2NyaXBjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGZhbHRhcyAoZMOtYXMgZGUgYXVzZW5jaWEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGhvcmFzIGV4dHJhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGhvcmFzIHNlbWFuYWxlcyBlc3TDoW5kYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSBhY2Npb25lcyBudWV2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgcHJveWVjdG9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSB1c3VhcmlvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluZSBwYXJhIGN1w6FsZXMgcHJveWVjdG9zIGVzIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgY29tZW50YXJpb3MuIFNpIGxhIGV4cHJlc2nDs24gcmVndWxhciBjb2luY2lkZSBjb24gZWwgcHJveWVjdG8sIHNlIHRpZW5lIHF1ZSBlc2NyaWJpciB1biBjb21lbnRhcmlvLiBMYSBleHByZXNpw7NuIHJlZ3VsYXIgdXNhIGVsIHBhcsOhbWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNpIGVsIG3Ds2R1bG8gZGUgZXN0YWTDrXN0aWNhcyBkZWJlIGdlbmVyYXIgaW5mb3JtYWNpw7NuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0VkaXRhciBhanVzdGVzIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ0VkaXRhciByZWdpc3RybyBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0VzcGVjaWZpY2EgZWwgbsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIHBhcmEgcmVnaXN0cmFyIGhvcmFzIGRlIHRyYWJham8gYXRyYXNhZGFzIChwb3IgZWplbXBsbzogMTAgZMOtYXMgZGUgYW50aWfDvGVkYWQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgc29sYW1lbnRlIGxvcyB1c3VhcmlvcyBxdWUgaGFuIHJlZ2lzdHJhZG8gc3VzIHRpZW1wb3MgZW4gZWwgcHJveWVjdG8gc2VsZWNjaW9uYWRvIHNlcsOhbiBtb3N0cmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NpIGVzdMOhbiBoYWJpbGl0YWRvcywgbG9zIGVsZW1lbnRvcyBkZXNwbGVnYWJsZXMgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gaGFuIHNpZG8gbW9kaWZpY2Fkb3MgcG9yIGNhbXBvcyBkZSBhdXRvLWNvbXBsZXRhZG8sIGVzdG8gcGFyYSBzZXIgbWFzIG1vZGVybm9zICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTaSBlc3TDoSBoYWJpbGl0YWRvLCBlbCBmaWx0cm8gcGFyYSBlbCBwcm95ZWN0byBhbnRlcmlvciBwdWVkZSBzZXIgdXNhZG8gZW4gdmV6IGRlIGRvcyBsaXN0YXMgZGUgcHJveWVjdG9zIChsYXMgYW50ZXJpb3IgeSB0b2RhcyBsYXMgZGVtw6FzKS4gRXN0byBzZSBwb2Ryw6EgdXNhciBzaSwgeSBzb2xvIHNpIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2kgZXN0w6EgaGFiaWxpdGFkbywgZWwgZmlsdHJvIHBhcmEgZWwgcHJveWVjdG8gYW50ZXJpb3IgZXN0w6EgYWN0aXZhZG8gcG9yIG9taXNpw7NuIHNpIGhheSBwcm95ZWN0b3MgcHJldmlvcy4gRXN0byBwdWVkZSBzZXIgdXRpbGl6YWRvIHNpLCB5IHNvbG8gc2ksIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzZSBsZSBwZXJtaXRpcsOhIGFsIHVzdWFyaW8gcmVnaXN0cmFyICJ2YWNhY2lvbmVzIiwgImF1c2VuY2lhIHBvciBlbmZlcm1lZGFkIiwgImF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmEiIGVuIG3Dumx0aXBsZXMgZmVjaGFzIGFsIG1pc21vIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgZXMgb2JsaWdhdG9yaW8gcmVwb3J0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgc2UgbW9zdHJhcsOhIHVuYSBhZHZlcnRlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBHZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGUgdGllbXBvcyBkZWwgcHJveWVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIGFjY2lvbmVzLCBkZSBhY3VlcmRvIGFsIHByb3llY3RvIHNlbGVjY2lvbmFkby4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCBsYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgbGFzIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIHByb3llY3RvcywgZGUgYWN1ZXJkbyBhIGxvcyBncnVwb3MgZGUgdXN1YXJpb3MuIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgdW5hIGxpc3RhIGRlIGdydXBvcywgc2VwYXJhZG9zIHBvciBjb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2kgZXMgcG9zaWJsZSBpbnNlcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcyBzaW4gZGVmaW5pciBsb3MgdGllbXBvcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIGRlIGxhcyB0YXJlYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBoYWNlIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gcXVlIG11ZXN0cmEgdW5hIGFkdmVydGVuY2lhIHNpIGhheSBkZW1hc2lhZG9zIGTDrWFzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdSZXN1bWVuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZXBvcnRlIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0FqdXN0ZXMgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnU2UgdXNhIHNpIGFsZ3VuYXMgYWNjaW9uZXMgcmVkdWNlbiBlbCBuw7ptZXJvIGRlIGhvcmFzIHRyYWJhamFkYXMgKHBvciBlamVtcGxvOiBzaSBzw7NsbyBzZSBwYWdhIGxhIG1pdGFkIGRlbCB0aWVtcG8gZGUgdmlhamUgcHVlZGUgZXNwZWNpZmljYXJzZSBLZXkgPT4gVmlhamU7IENvbnRlbnQgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnwr9SZWFsbWVudGUgZGVzZWEgZWxpbWluYXIgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyBkZSBlc3RlIGTDrWE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ01vZGlmaWNhciByZWdpc3RybyBkZSBob3Jhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0lyIGEgY29uZmlndXJhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBmZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0TDrWFzIHNpbiByZWdpc3Rybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2Npb25hciB0b2RvcyBsb3MgZMOtYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ1JlZ2lzdHJvIG1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwYXJhIHN1IGF1c2VuY2lhIHBhcmEgbG9zIGTDrWFzIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdEZSB2YWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdBdXNlbnRlIHBvciBlbmZlcm1lZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0xvcyBjYW1wb3MgcmVxdWVyaWRvcyBlc3TDoW4gbWFyY2Fkb3MgY29uIHVuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFcyBuZWNlc2FyaW8gcXVlIHByb3BvcmNpb25lIHVuYSBob3JhIGRlIGluaWNpbyB5IHVuYSBkZSBmaW5hbGl6YWNpw7NuIG8gdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21lbnRhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ8KhUG9yIGZhdm9yLCBhw7FhZGUgdW4gY29tZW50YXJpbyBjb24gbWFzIGRlIDggY2FyYWN0ZXJlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGluaWNpbyBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfCoUZvcm1hdG8gbm8gdsOhbGlkbyEgUG9yIGZhdm9yIGludHJvZHV6Y2EgbGFzIGhvcmFzIGNvbiBlbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBlcyBzb2xvIHBlcm1pdGlkbyBjb21vIHRpZW1wbyBmaW5hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfCoUhvcmEgbm8gdsOhbGlkYSEgVW4gZMOtYSBzb2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhIGxhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZXN0w6EgaW5jbHXDrWRhIGVuIG90cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnwqFQZXJpb2RvIG5vIHbDoWxpZG8hIFVuIGTDrWEgc8OzbG8gdGllbmUgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyaW9kbyB2w6FsaWRvIGRlYmUgc2VyIG1heW9yIGEgY2Vyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ8KhUGVyaW9kbyBubyB2w6FsaWRvISBObyBzZSBwZXJtaXRlbiBwZXJpb2RvcyBuZWdhdGl2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQcOxYWRpciB1bmEgZmlsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ8KhU8OzbG8gc2UgcGVybWl0ZSBlbGVnaXIgdW4gZWxlbWVudG8gZGUgbGEgY2FzaWxsYSBkZSB2ZXJpZmljYWNpw7NuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3UgYXVzZW5jaWEgcG9yIGVuZmVybWVkYWQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3VzIHZhY2FjaW9uZXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdSBhdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIG3DoXMgZGUgMTYgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdWaXN0YSBtZW5zdWFsIGRlIHRpZW1wb3MgcmVwb3J0YWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnTsO6bWVybyBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmFzIHRyYWJhamFkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnVG90YWwgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ0hvcmFzIHJlc3RhbnRlcyBwYXJhIGF1c2VudGFyc2UgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVmFjYWNpb25lcyAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1ZhY2FjaW9uZXMgdG9tYWRhcyAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdWYWNhY2lvbmVzIHRvbWFkYXMgKHRvdGFsKSc7CiAgICAkU2VsZi0+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+eydBZGQgdGFzayd9ID0gJ0FncmVnYXIgdGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cm8gcGFyYSBwcm95ZWN0b3MsIHRhcmVhcyBvIHVzdWFyaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0xvcyBwZXLDrW9kb3MgZGUgdGllbXBvIG5vIHNlIHB1ZWRlbiBib3JyYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0xpc3RhIGRlIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSBkZSBUYXJlYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZ3JlZ2FyIFRhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZSBsYSBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWWEgZXhpc3RlIHVuYSB0YXJlYSBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgVXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0FqdXN0ZXMgZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJ0VsIHVzdWFyaW8gcHVlZGUgdmVyIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnRWwgdXN1YXJpbyB0aWVuZSBwZXJtaXRpZG8gY3JlYXIgcHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdQZXJtaXRpciBjcmVhY2nDs24gZGUgcHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJ0VsIHVzdWFyaW8gZXN0w6EgYXV0b3JpemFkbyBhIGNvbnRhYmlsaXphciBlbCB0aWVtcG8gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJ1Blcm1pdGlyIHNhbHRhciBsYSBjb250YWJpbGl6YWNpw7NuIGRlbCB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdTaSBlc3RhIG9wY2nDs24gZXN0w6EgbWFyY2FkYSwgbGEgY29udGFiaWxpemFjacOzbiBkZWwgdGllbXBvIHNlIGNvbnZpZXJ0ZSBlbiBvcGNpb25hbCBwYXJhIGVsIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnTm8gaGFicsOhIGFkdmVydGVuY2lhcyBhY2VyY2EgZGUgbGFzIGVudHJhZGFzIHF1ZSBmYWx0YW4geSBubyBoYWJyw6EgZW50cmFkYXMgZGUgYXBsaWNhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ0xhcHNvIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnVGllbXBvIEV4dHJhIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0ZlY2hhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSB1bmEgZmVjaGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdGZWNoYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWwgcGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhbCBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBhdXNlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gcGVyaW9kb3MgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZ3JlZ2FyIHBlcmlvZG8gZGUgdGllbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdSZXN1bWVuIGRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEw61hIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnRMOtYSBzaWd1aWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gZGF0b3MgZGUgZXN0ZSBkw61hLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICfCoU5vIHNlIHB1ZWRlbiBpbnNlcnRhciB1bmlkYWRlcyBkZSB0cmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ8KhTm8gc2UgcHVlZGUgZ3VhcmRhciBsYSBjb25maWd1cmFjacOzbiwgcG9ycXVlIHVuIGTDrWEgc8OzbG8gdGllbmUgMjQgaG9yYXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfCoU5vIHNlIHB1ZWRlbiBib3JyYXIgdW5pZGFkZXMgZGUgdHJhYmFqbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdFc3RhIGZlY2hhIGVzdMOhIGZ1ZXJhIGRlbCBsw61taXRlLCBwZXJvIG5vIGhhIGluc2VydGFkbyB0b2RhdsOtYSBlc3RlIGTDrWEsIHBvciBsbyBxdWUgb2J0aWVuZSB1bmEgKCDCoXNvbG8gdW5hISkgb3BvcnR1bmlkYWQgZGUgaW5zZXJ0YXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdEw61hcyBMYWJvcmFsZXMgSW5jb21wbGV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnwqFJbnNlcmNpw7NuIGV4aXRvc2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfCoUVycm9yIGFsIGluc2VydGFyIG3Dumx0aXBsZXMgZmVjaGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICfCoVNlIGhhbiBpbnNlcnRhZG8gc2F0aXNmYWN0b3JpYW1lbnRlIGVudHJhZGFzIHBhcmEgdmFyaWFzIGZlY2hhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ8KhTGEgZmVjaGEgaW50cm9kdWNpZGEgbm8gZXJhIHbDoWxpZGEhIExhIGZlY2hhIHNlIGNhbWJpw7MgYSBob3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ1NpbiBwZXLDrW9kbyBkZSB0aWVtcG8gY29uZmlndXJhZG8sIG8gbGEgZmVjaGEgZXNwZWNpZmljYWRhIGVzdMOhIGZ1ZXJhIGRlIGxvcyBwZXLDrW9kb3MgZGUgdGllbXBvIGRlZmluaWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ8KhUG9yIGZhdm9yLCBww7NuZ2FzZSBlbiBjb250YWN0byBjb24gZWwgYWRtaW5pc3RyYWRvciBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvIHBhcmEgYWN0dWFsaXphciBzdXMgcGVyw61vZG9zIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIFByb3llY3RvcyBzZWxlY2Npb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1RvZG9zIGxvcyBQcm95ZWN0b3MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnUmVwb3J0aW5nUHJvamVjdDogbmVjZXNpdGEgUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnUHJveWVjdG8gZGUgUmVwb3J0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmVwb3J0ZXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnwqFObyBzZSBwdWVkZSBhY3R1YWxpemFyIGxhIGNvbmZpZ3VyYWNpw7NuIGRlbCB1c3VhcmlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ8KhUHJveWVjdG8gYcOxYWRpZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfCoVByb3llY3RvIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ8KhVGFyZWEgYcOxYWRpZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfCoVRhcmVhIGFjdHVhbGl6YWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICfCoUxhIElEIGRlIHVzdWFyaW8gbm8gZXMgdmFsaWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICfCoU5vIHB1ZWRlIGluc2VydGFyIGRhdG9zIGRlIHVzdWFyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnwqFObyBzZSBwdWVkZSBhw7FhZGlyIHVuIHBlcsOtb2RvIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0FqdXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnwqFVc3VhcmlvIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ8KhVXN1YXJpbyBhw7FhZGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBw7FhZGlyIHVuIHVzdWFyaW8gYSBsYSBjb250YWJpbGlkYWQgZGVsIHRpZW1wby4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ051ZXZvIFVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ0VzdGFkbyBkZWwgcGVyw61vZG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1ZlcjogwqFOZWNlc2l0YSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ8KhUG9yIGZhdm9yIGluc2VydGUgc3VzIGhvcmFzIGRlIHRyYWJham8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnRMOtYXMgbGFib3JhbGVzIGluY29tcGxldG9zJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ8KhUG9yIGZhdm9yIHNlbGVjY2lvbmUgYWwgbWVub3MgdW4gZMOtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1JlZ2lzdHJvIE1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ8KhUG9yIGZhdm9yIGVzY29qYSB1bmEgcmF6w7NuIHBvciBhdXNlbmNpYSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFbGltaW5hciBSZWdpc3RybyBkZSBDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWFyIGluc2VyY2nDs24nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZSwgbmVjZXNhcmlvIHBhcmEgdmlzdWFsaXphciBlbCBuw7ptZXJvIGRlIGTDrWFzIGluY29tcGxldG9zIGRlIHVuIHVzdWFyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTm9tYnJlIHBvciBkZWZlY3RvIHBhcmEgYWNjaW9uZXMgbnVldmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdOb21icmUgcG9yIGRlZmVjdG8gcGFyYSBwcm95ZWN0b3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZmVjaGEgZGUgZmluYWxpemFjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZmVjaGEgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZGVzY3JpcGNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgZmFsdGFzIChkw61hcyBkZSBhdXNlbmNpYSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgaG9yYXMgZXh0cmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgaG9yYXMgc2VtYW5hbGVzIGVzdMOhbmRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIGFjY2lvbmVzIG51ZXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSBwcm95ZWN0b3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIHVzdWFyaW9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lIHBhcmEgY3XDoWxlcyBwcm95ZWN0b3MgZXMgb2JsaWdhdG9yaWEgbGEgaW5zZXJjacOzbiBkZSBjb21lbnRhcmlvcy4gU2kgbGEgZXhwcmVzacOzbiByZWd1bGFyIGNvaW5jaWRlIGNvbiBlbCBwcm95ZWN0bywgc2UgdGllbmUgcXVlIGVzY3JpYmlyIHVuIGNvbWVudGFyaW8uIExhIGV4cHJlc2nDs24gcmVndWxhciB1c2EgZWwgcGFyw6FtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2kgZWwgbcOzZHVsbyBkZSBlc3RhZMOtc3RpY2FzIGRlYmUgZ2VuZXJhciBpbmZvcm1hY2nDs24gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnRWRpdGFyIGxhIGNvbmZpZ3VyYWNpw7NuIGRlIENvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnRXNwZWNpZmljYSBlbCBuw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgcGFyYSByZWdpc3RyYXIgaG9yYXMgZGUgdHJhYmFqbyBhdHJhc2FkYXMgKHBvciBlamVtcGxvOiAxMCBkw61hcyBkZSBhbnRpZ8O8ZWRhZCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzb2xhbWVudGUgbG9zIHVzdWFyaW9zIHF1ZSBoYW4gcmVnaXN0cmFkbyBzdXMgdGllbXBvcyBlbiBlbCBwcm95ZWN0byBzZWxlY2Npb25hZG8gc2Vyw6FuIG1vc3RyYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnU2kgc2UgaGFiaWxpdGEsIGxvcyBlbGVtZW50b3MgZGVzcGxlZ2FibGVzIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIHNlIGNhbWJpYXJhbiBhIG1vcmRlcm5vcyBjYW1wb3MgZGUgYXV0b2NvbXBsZXRhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1NpIGVzdMOhIGhhYmlsaXRhZG8sIGVsIGZpbHRybyBwYXJhIGxvcyBwcm95ZWN0b3MgYW50ZXJpb3JlcyBwdWVkZSB1c2Fyc2UgZW4gbHVnYXIgZGUgZG9zIGxpc3RhcyBkZSBwcm95ZWN0b3MgKMO6bHRpbW8geSB0b2RvcykuIFNlIHBvZHLDrWEgdXNhciBzb2xvIHNpICBpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2kgZXN0w6EgaGFiaWxpdGFkbywgZWwgZmlsdHJvIHBhcmEgbG9zIHByb3llY3RvcyBwcmV2aW9zIGVzdMOhIGFjdGl2byBwb3IgZGVmZWN0byBzaSBleGlzdGVuIHByb3llY3RvcyBwcmV2aW9zLiBTZSBwb2Ryw61hIHVzYXIgc29sbyBzaSBFbmFibGVBdXRvQ29tcGxldGlvbiB5IFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzZSBsZSBwZXJtaXRpcsOhIGFsIHVzdWFyaW8gcmVnaXN0cmFyICJ2YWNhY2lvbmVzIiwgImF1c2VuY2lhIHBvciBlbmZlcm1lZGFkIiwgImF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmEiIGVuIG3Dumx0aXBsZXMgZmVjaGFzIGFsIG1pc21vIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgZXMgb2JsaWdhdG9yaW8gcmVwb3J0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgc2UgbW9zdHJhcsOhIHVuYSBhZHZlcnRlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBnZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGVsIHRpZW1wbyBkZWwgcHJveWVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIGFjY2lvbmVzLCBkZSBhY3VlcmRvIGFsIHByb3llY3RvIHNlbGVjY2lvbmFkby4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCBsYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgbGFzIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIHByb3llY3RvcywgZGUgYWN1ZXJkbyBhIGxvcyBncnVwb3MgZGUgdXN1YXJpb3MuIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgdW5hIGxpc3RhIGRlIGdydXBvcywgc2VwYXJhZG9zIHBvciBjb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2kgZXMgcG9zaWJsZSBpbnNlcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcyBzaW4gZGVmaW5pciBsb3MgdGllbXBvcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIGRlIGxhcyB0YXJlYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBoYWNlIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gcXVlIG11ZXN0cmEgdW5hIGFkdmVydGVuY2lhIHNpIGhheSBkZW1hc2lhZG9zIGTDrWFzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdSZXN1bWVuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZXBvcnRlIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0FqdXN0ZXMgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnU2UgdXNhIHNpIGFsZ3VuYXMgYWNjaW9uZXMgcmVkdWNlbiBlbCBuw7ptZXJvIGRlIGhvcmFzIHRyYWJhamFkYXMgKHBvciBlamVtcGxvOiBzaSBzw7NsbyBzZSBwYWdhIGxhIG1pdGFkIGRlbCB0aWVtcG8gZGUgdmlhamUgcHVlZGUgZXNwZWNpZmljYXJzZSBLZXkgPT4gVmlhamU7IENvbnRlbnQgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmZyX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVm91bGV6LXZvdXMgdnJhaW1lbnQgc3VwcHJpbWVyIGxhIGdlc3Rpb24gZGVzIHRlbXBzIHBvdXIgY2Ugam91ciA/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0FsbGVyIGF1eCBwYXJhbcOodHJlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU8OpbGVjdGlvbm5lciB0b3VzIGxlcyBqb3Vycyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnVmV1aWxsZXogY2hvaXNpciBsYSByYWlzb24gZGUgdm90cmUgYWJzZW5jZSBwb3VyIGxlcyBqb3VycyBzw6lsZWN0aW9ubsOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnTGVzIGNoYW1wcyByZXF1aXMgc29udCBtYXJxdcOpcyBhdmVjIHVuZSDDqXRvaWxlICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVMOiY2hlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXQgaW52YWxpZGUgISBWZXVpbGxleiBlbnRyZXIgdW4gaG9yYWlyZSBhdSBmb3JtYXQgSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1RlbXBzIGludmFsaWRlICEgVW4gam91ciBuXCdhIHF1ZSAyNCBoZXVyZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcnRpb24gcsOpdXNzaWUgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRXJyZXVyIGVuIGluc8OpcmFudCBkZXMgZGF0ZXMgbXVsdGlwbGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0Fqb3V0IGRlcyBkYXRlcyBtdWx0aXBsZXMgcsOpdXNzaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmFwcG9ydCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1BhcmFtw6h0cmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ01lcmNpIGRcJ2luZGlxdWVyIHZvcyBob3JhaXJlcyBkZSB0cmF2YWlsICEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnVnVlIGRcJ2Vuc2VtYmxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdHZXN0aW9uIGRlcyB0ZW1wcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmdsX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnUXVlcmUgcmVhbG1lbnRlIGJvcnJhciBvIFRlbXBvIENvbnRhYmlsaXphZG8gZGVzdGUgZMOtYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGUgUmV4aXN0cm8gVGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJciDDoSBjb25maWd1cmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2FjacOzbiBlbnRyZSBkYXRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0TDrWFzIHNlbiBlbnRyYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2Npb25hciB0b2RvcyBvcyBkw61hcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW50cm9kdWNpw7NuIGVuIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdFc2NvbGxhIG8gbW90aXZvIGRhIHPDumEgYXVzZW5jaWEgbm9zIGTDrWFzIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdWYWNhY2nDs25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdMaWNlbnphIHBvciBlbmZlcm1pZGFkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0VuIHBlcm1pc28gZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnT3MgY2FtcG9zIG9icmlnYXRvcmlvcyBlc3TDoW4gbWFyY2Fkb3MgY3VuIMKrKsK7Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0hhaSBxdWUgZGFyIHVuaGEgaG9yYSBkZSBpbmljaW8gZSBkZSByZW1hdGUgb3UgdW4gcGVyw61vZG8gZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ09ic2VydmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vbiBzZSBwZXJtaXRlbiBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gc2UgcGVybWl0ZW4gaG9yYXMgcmVwZXRpZGFzLiBBIGhvcmEgZGUgaW5pY2lvIGNvaW5jaWRlIGNvbiBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdPIGZvcm1hdG8gw6kgaW5jb3JyZWN0byEgSW50cm9kdXphIHVuaGEgaG9yYSBubyBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBzw7MgZXN0w6EgcGVybWl0aWRvIGNvbW8gaG9yYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0EgaG9yYSDDqSBpbmNvcnJlY3RhISBVbiBkw61hIHPDsyB0ZW4gMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdBIGhvcmEgZGUgZmluYWxpemFjacOzbiBoYSBkZSBzZXIgcG9zdGVyaW9yIMOhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gc2UgcGVybWl0ZW4gaG9yYXMgcmVwZXRpZGFzLiBBIGhvcmEgZGUgZmluYWxpemFjacOzbiBjb2luY2lkZSBjb24gb3V0cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTyBwZXLDrW9kbyDDqSBpbmNvcnJlY3RvISBVbiBkw61hIHPDsyB0ZW4gMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyw61vZG8gY29ycmVjdG8gaGEgZGUgc2VyIG1haW9yIGRlIGNlcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdPIHBlcsOtb2RvIMOpIGluY29ycmVjdG8hIE5vbiBzZSBwZXJtaXRlbiBwZXLDrW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0VuZ2FkaXIgdW5oYSBmaWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnU8OzIMOpIHBvc8OtYmVsIHNlbGVjY2lvbmFyIHVuIGVsZW1lbnRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtZW50cmVzIHRpw7FhIGxpY2VuemEgcG9yIGVuZmVybWlkYWRlPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0NvbmZpcm1hIHF1ZSB0cmFiYWxsb3UgbWVudHJlcyBlc3RhYmEgZGUgdmFjYWNpw7Nucz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0NvbmZpcm1hIHF1ZSB0cmFiYWxsb3UgbWVudHJlcyB0acOxYSBwZXJtaXNvIHBvciBob3JhcyBleHRyYXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0NvbmZpcm1hIHF1ZSB0cmFiYWxsb3UgbcOhaXMgZGUgZGV6YXNlaXMgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdWaXN0YSB4ZXJhbCBtZW5zdWFsIGRlIHJlcG9ydGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ0hvcmFzIGV4dHJhIChob3JhcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmEgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnSG9yYXMgZXh0cmEgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdQZXJtaXNvIHBvciBob3JhcyBleHRyYXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1ZhY2FjacOzbnMgKGTDrWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdWYWNhY2nDs25zIGNvbGxpZGFzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1ZhY2FjacOzbnMgY29sbGlkYXMgKHRvdGFpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnVmFjYWNpw7NucyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWNlbnphIHBvciBlbmZlcm1pZGFkZSAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnTGljZW56YXMgcG9yIGVuZmVybWlkYWRlIGNvbGxpZGFzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnTGljZW56YXMgcG9yIGVuZmVybWlkYWRlIGNvbGxpZGFzICh0b3RhaXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXMgc2VndWludGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0TDrWEgZGEgc2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdIb3JhcyBsYWJvcmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdIb3JhcyB0cmFiYWxsYWRhcyB0b3RhaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzdGEgeGVyYWwgZG8gcHJveGVjdG8gZG8gdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdIb3JhcyAocG9yIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICh2aWRhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsIGFjdW11bGFkbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZXBvcnRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2FjacOzbiBwb3IgbWVzZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIGEgdW5oYSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0luZm9ybWVzIGRlIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsIG1lbnN1YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdUb3RhbCBkYSB2aWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnTGljZW56YSBwb3IgaG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdWYWNhY2nDs25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdMaWNlbnphIHBvciBlbmZlcm1pZGFkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdWYWNhY2nDs25zIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdJbmZvcm1lcyBkZSBwcm94ZWN0b3MnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ0luZm9ybWUgZGUgcHJveGVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0lyIMOhIHZpc3RhIHhlcmFsIGRlIGluZm9ybWVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc8OzIHVzdWFyaW9zIGFjdGl2b3MgbmVzdGUgcHJveGVjdG8gc29uIG1vc3RyYWRvcy4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGFjdHVhbGljZSBvIGF4dXN0ZTonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVG9kbyBvIHRlbXBvIGNvbnRhYmlsaXphZG8gcG9sb3MgdXN1YXJpb3Mgw6kgbW9zdHJhZG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhY3R1bGljZSBvIGF4dXN0ZTonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWRpdGUgQ29udGFiaWxpemFjacOzbiBkbyBUZW1wbyBlbiBBeHVzdGVzIGRlIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnRW5nYWRpciB1biBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1ZhaWEgw6EgdmlzdGEgeGVyYWwgZGUgYXh1c3Rlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0VuZ2FkaXIgdW4gcHJveGVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWRpdGFyIGEgY29uZmlndXJhY2nDs24gZG8gcHJveGVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1hhIGhhaSB1biBwcm94ZWN0byBjb24gZXN0ZSBub21lLiBQb3IgZmF2b3IsIGVzY29sbGEgdW4gZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ0VkaXRlIENvbnRhYmlsaXphY2nDs24gZG8gVGVtcG8gZW4gQXh1c3Rlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0VuZ2FkaXIgdW5oYSB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgZGUgcHJveGVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIGRlIHRhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdFbmdhZGlyIHVuaGEgdGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VkaXRhciBhIGNvbmZpZ3VyYWNpw7NuIGRhIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWGEgaGFpIHVuaGEgdGFyZWZhIGNvbiBlc3RlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xsYSB1biBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIHVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgVGVtcG8gRXhjZXNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1Blcm1pdGlyIGNyZWFjacOzbiBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0NvbWllbnpvIFBlcmlvZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0ZpbiBQZXJpb2RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnRXhjZXNvIFRlbXBvIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdGEgZGUgY29tZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1BvciBmYXZvciBpbnRyb2R1emNhIHVuaGEgZGF0YSB2w6FsaWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRGF0YSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRmluIGRvIHBlcmlvZG8gZGViZSBzZXIgZGVzcG9pcyBkZSBxdWUgY29taWVuY2UgbyBwZXJpb2RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBwZXJtaXNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ0hvcmFzIHNlbWFuYWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnSG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vbiBzZSBhdG9wYXJvbiBwZXLDrW9kb3MgZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0VuZ2FkaXIgcGVyaW9kbyBkZSB0ZW1wbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdWaXN0YSBSZXhpc3RybyBkZSBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc3RhIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0TDrWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdEw61hIHNlZ3VpbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05vbiBzZSBhdG9wYXJvbiBkYXRvcyBwYXJhIGVzdGUgZMOtYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnSW5zZXJjacOzbiBzYXRpc2ZhY3RvcmlhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRXJybyBtZW50cmVzIGludHJvZHVjw61hbnNlIGRhdGFzIG3Dumx0aXBsZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0VudHJhZGFzIHNhdGlzZmFjdG9yaWFtZW50ZSBpbnRyb2R1Y2lkYXMgcGFyYSB2YXJpYXMgZGF0YXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdEYXRhIGludHJvZHVjaWRhIGZvaSBpbnZhbGlkYSEgQSBkYXRhIGZvaSBjYW1iaWFkYSBhIGhveGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdJbmZvcm1lcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0NvbmZpZ3VyYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdJbnRyb2R1emEgYXMgc8O6YXMgaG9yYXMgZGUgdHJhYmFsbG8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0VzY29sbGEgYW8gbWVub3MgdW4gZMOtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0ludHJvZHVjacOzbiBlbiBtYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnRXNjb2xsYSBvIG1vdGl2byBkYSBhdXNlbmNpYSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFbGltaW5lIEVudHJhZGEgVGVtcG8gQ29udGFiaWxpemFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1lIGEgaW5zZXJjacOzbic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gbm90aWZpY2FjacOzbiBpbnRlcmZhY2UgZGUgYXhlbnRlIHBhcmEgdmVyIG8gbsO6bWVybyBkZSBkw61hcyBkZSB0cmFiYWxsbyBpbmNvbXBsZXRvcyBwYXJhIG8gdXN1YXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21lIHByZWRldGVybWluYWRvIHBhcmEgYXMgYWNjacOzbnMgbm92YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWUgcHJlZGV0ZXJtaW5hZG8gcGFyYSBvcyBwcm94ZWN0b3Mgbm92b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQXh1c3RlIHBvciBkZWZlY3RvIHBhcmEgZmluIGRhIGRhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdBeHVzdGUgcG9yIGRlZmVjdG8gcGFyYSBpbmljaW8gZGEgZGF0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmFjacOzbiBwcmVkZWZpbmlkYSBkYSBkZXNjcmljacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ29uZmlndXJhY2nDs24gcHJlZGVmaW5pZGEgZG9zIGTDrWFzIGRlIHBlcm1pc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhY2nDs24gcHJlZGVmaW5pZGEgZGFzIGhvcmFzIGV4dHJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQXh1c3RlIHBvciBkZWZlY3RvIHBhcmEgYXMgaG9yYXMgZXN0YW5kYXJkIHNlbWFuw6Fpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0VzdGFkbyBwcmVkZXRlcm1pbmFkbyBwYXJhIGFzIGFjY2nDs25zIG5vdmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwcmVkZXRlcm1pbmFkbyBwYXJhIG9zIHByb3hlY3RvcyBub3Zvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcHJlZGV0ZXJtaW5hZG8gcGFyYSBvcyB1c3VhcmlvcyBub3Zvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lIG9zIHByb3hlY3RvcyBwYXJhIG9zIGNhbGVzIHVuIGNvbWVudGFyaW8gw6kgcmVxdWlyaWRvLiBTZSBhIEV4cFJlZyBjb2luY2lkZSBubyBwcm94ZWN0bywgdGVuIHF1ZSBpbnNlcnRhciB1biBjb21lbnRhcmlvIHRhbcOpbi4gQSBFeHBSZWcgdXNhIG8gcGFyw6FtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2UgbyBtw7NkdWxvIGRlIGVzdGF0w61zdGljYXMgcG9kZSB4ZXJhciBpbmZvcm1hY2nDs24gZGUgY29udGFiaWxpemFjacOzbiBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1BvciBjYW50b3MgZMOtYXMgYXRyw6FzIHBvZGUgaW5zZXJ0YXIgdW5pZGFkZXMgZGUgdHJhYmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGhhYmlsaXRhZG8sIHPDsyB1c3VhcmlvcyBxdWUgZW5nYWRpcm9uIHRlbXBvIGRlIHRyYWJhbGxvIGFvIHByb3hlY3RvIHNlbGVjY2lvbmFkbyBzb24gbW9zdHJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTZSBoYWJpbGl0YWRvLCBhbyB1c3VhcmlvIHBlcm1pdGVzZWxsZSBpbnRyb2R1Y2lyICJwZXJtaXNvIGRlIHZhY2FjacOzbnMiICwgInBlcm1pc28gcG9yIGVuZmVybWlkYWRlIiBlICJwZXJtaXNvIHBvciBleGNlc28gZGUgdGVtcG8iIHBhcmEgbXVsdGlwbGVzIGRhdGFzIGR1bmhhIHZlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgZGUgdHJhYmFsbG8gZGVzcG9pcyBkb3MgY2FsZXMgYXMgdW5pZGFkZXMgZGUgdHJhYmFsbG8gZGViZW4gc2VyIGluc2VydGFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgZGUgdHJhYmFsbG8gc2VuIGVudHJhZGFzIGRlIHVuaWRhZGVzIGRlIHRyYWJhbGxvIGRlc3BvaXMgZG9zIGNhbGVzIHVuaGEgYWxlcnRhIHNlcsOhIG1vc3RyYWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0V4cHJlc2nDs25zIHJlZ3VsYXJlcyBwYXJhIGEgbGlzdGEgcXVlIGNvbnRyaW54ZSBhIGFjY2nDs24gc2VndW5kbyBvIHByb3hlY3RvIHNlbGVjY2lvbmFkby4gQ2hhdmUgY29udMOpbiBhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIHByb3hlY3RvKHMpLCBjb250aWRvIGNvbnTDqW4gZXhwcmVzacOzbnMgcmVndWxhcmVzIHBhcmEgYWNjacOzbihzKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnRXhwcmVzacOzbnMgcmVndWxhcmVzIHBhcmEgYSBsaXN0YSBxdWUgY29udHJpbnhlIG8gcHJveGVjdG8gc2VndW5kbyBvcyBncnVwb3Mgc2VsZWNjaW9uYWRvcy4gQ2hhdmUgY29udMOpbiBhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIHByb3hlY3RvKHMpLCBjb250aWRvIGNvbnTDqW4gbGlzdGEgc2VwYXJhZGEgcG9yIGNvbWFzIGRlIGdydXBvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2UgYXMgaG9yYXMgZGUgdHJhYmFsbG8gcG9kZW4gc2VyIGluc2VydGFkYXMgc2VuIHRlbXBvcyBkZSBpbmljaW8gZSBmaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBmb3J6YSBhcyBpbnNlcmNpw7NucyBlbiBDb250YWJpbGl6YWNpw7NuVGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRXN0ZSBtw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gZGEgdW5oYSBhbGVydGEgc2UgaGFpIG1vaXRvcyBkw61hcyBkZSB0cmFiYWxsbyBpbmNvbXBsZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnQ29udGFiaWxpemFyIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRlIGNvbnRhYmlsaXphY2nDs24gZG8gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdWaXN0YSBYZXJhbCBjb250YWJpbGl6YWNpw7NuIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ0luZm9ybWUgY29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0F4dXN0ZXMgY29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnVmlzdGEgY29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0NvbnRhYmlsaXphY2nDs24gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1BhcmEgdXNhciBzZSBhbGd1bmhhcyBhY2Npw7NucyByZWR1Y2lyb24gYXMgaG9yYXMgZGUgdHJhYmFsbG8gKHBvciBleGVtcGxvLCBzZSBzw7MgYSBtaXRhZGUgZG8gdGVtcG8gZGUgdmlheGUgw6kgcGFnYWRvIENoYXZlID0+IHZpYXhlOyBDb250aWRvID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Omh1X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVmFsw7NiYW4gdMO2csO2bG5pIHN6ZXJldG7DqSBlbm5layBhIG5hcG5hayBheiBpZMWRZWxzesOhbW9sw6Fzw6F0Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdJZMWRZmVsamVneXrDqXMgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ1VncsOhcyBhIGJlw6FsbMOtdMOhc29raG96JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0TDoXR1bSBuYXZpZ8OhY2nDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0JlamVneXrDqXNlayBuw6lsa8O8bGkgbmFwb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnTWluZGVuIG5hcCBraWplbMO2bMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ1TDtm1lZ2VzIGJlamVneXrDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdWw6FsYXNzemEga2kgYSB0w6F2b2xsw6l0ZSBva8OhdCBhIGtpamVsw7ZsdCBuYXBva3JhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnU3phYmFkc8OhZ29uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdCZXRlZ3N6YWJhZHPDoWdvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0Nzw7pzenRhdMOhc29uIHTDumzDs3JhIG1pYXR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnQSBrw7Z0ZWxlesWRIG1lesWRayDigJ4q4oCdIGplbGxlbCB2YW5uYWsgbWVnamVsw7ZsdmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnS2kga2VsbCB0w7ZsdGVuaWUgYSBrZXpkxZEgw6lzIGJlZmVqZXrFkSBpZMWRdCB2YWd5IGVneSBpZMWRc3pha290Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnRmVsYWRhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfDiXN6cmV2w6l0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnQWRqb24gaG96esOhIGVneSA4IGthcmFrdGVybsOpbCBob3NzemFiYiDDqXN6cmV2w6l0ZWx0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXTDrXYgaWTFkXBvbnRvayBuZW0gZW5nZWTDqWx5ZXpldHRlay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0F6IGlzbcOpdGzFkWTFkSDDs3LDoWsgbmVtIGVuZ2Vkw6lseWV6ZXR0ZWsuIEEga2V6ZMOpc2kgaWTFkSBlZ3kgbcOhc2lrIGlkxZFrw7Z6cmUgaWxsZXN6a2VkaWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfDiXJ2w6lueXRlbGVuIGZvcm3DoXR1bSEgw5PDkzpQUCBmb3Jtw6F0dW3DuiBpZMWRdCBhZGpvbiBtZWcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJ0EgMjQ6MDAgY3NhayBiZWZlamV6w6lzaSBpZMWRa8OpbnQgZW5nZWTDqWx5ZXpldHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnw4lydsOpbnl0ZWxlbiBpZMWRcG9udCEgRWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnQSBiZWZlamV6w6lzaSBpZMWRbmVrIGEga2V6ZMOpc2kgaWTFkSB1dMOhbiBrZWxsIGxlbm5pZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdBeiBpc23DqXRsxZFkxZEgw7Nyw6FrIG5lbSBlbmdlZMOpbHllemV0dGVrLiBBIGJlZmVqZXrDqXNpIGlkxZEgZWd5IG3DoXNpayBpZMWRa8O2enJlIGlsbGVzemtlZGlrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnw4lydsOpbnl0ZWxlbiBpZMWRc3phayEgRWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ0VneSDDqXJ2w6lueWVzIGlkxZFzemFrbmFrIG5hZ3lvYmJuYWsga2VsbCBsZW5uaWUgbnVsbMOhbsOhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ8OJcnbDqW55dGVsZW4gaWTFkXN6YWshIE5lZ2F0w612IGlkxZFzemFrb2sgbmVtIGVuZ2Vkw6lseWV6ZXR0ZWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnRWd5IHNvciBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdDc2FrIGVneSBqZWzDtmzFkW7DqWd5emV0IGVsZW1ldCB2w6FsYXN6dGhhdCBraSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0JpenRvcyBiZW5uZSwgaG9neSBkb2xnb3pvdHQsIG1pYWxhdHQgYmV0ZWdzemFiYWRzw6Fnb24gdm9sdD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdCaXp0b3MgYmVubmUsIGhvZ3kgZG9sZ296b3R0LCBtaWFsYXR0IHN6YWJhZHPDoWdvbiB2b2x0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQml6dG9zIGJlbm5lLCBob2d5IGRvbGdvem90dCwgbWlhbGF0dCBjc8O6c3p0YXRvdHQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0JpenRvcyBiZW5uZSwgaG9neSB0w7ZiYiBtaW50IDE2IMOzcsOhdCBkb2xnb3pvdHQ/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdJZMWRamVsZW50w6lzIGhhdmkgw6F0dGVraW50w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnVMO6bMOzcmEgKMOzcmEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ1TDumzDs3JhIChleiBhIGjDs25hcCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1TDumzDs3JhICjDtnNzemVzZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ01lZ21hcmFkdCBjc8O6c3p0YXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnU3phYmFkc8OhZyAobmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdLaXZldHQgc3phYmFkc8OhZyAoZXogYSBow7NuYXApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdLaXZldHQgc3phYmFkc8OhZyAow7Zzc3plc2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdNZWdtYXJhZHQgc3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0JldGVnc3phYmFkc8OhZyAobmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0tpdmV0dCBiZXRlZ3N6YWJhZHPDoWcgKGV6IGEgaMOzbmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdLaXZldHQgYmV0ZWdzemFiYWRzw6FnICjDtnNzemVzZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnRWzFkXrFkSBow7NuYXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ0vDtnZldGtlesWRIGjDs25hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnSMOpdGvDtnpuYXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ011bmthaWTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdMZWRvbGdvem90dCDDs3LDoWsgw7Zzc3plc2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0EgZmVsaGFzem7DoWzDsyBwcm9qZWt0asOpbmVrIMOhdHRla2ludMWRamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnw5Nyw6FrIChoYXZvbnRhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnw5Nyw6FrICjDqWxldHRhcnRhbSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdNaW5kw7Zzc3plc2VuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ0lkxZFqZWxlbnTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ0jDs25hcCBuYXZpZ8OhY2nDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnVWdyw6FzIGTDoXR1bXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0ZlbGhhc3puw6Fsw7NpIGplbGVudMOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdIYXZpIMO2c3N6ZXPDrXTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ8OJbGV0dGFydGFtIMO2c3N6ZXNlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0Nzw7pzenRhdMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1N6YWJhZHPDoWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0JldGVnc3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdIw6F0cmFsw6l2xZEgc3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdQcm9qZWt0IGplbGVudMOpc2VrJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdQcm9qZWt0IGplbGVudMOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdVZ3LDoXMgYSBqZWxlbnTDqXMgw6F0dGVraW50xZFow7Z6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnSmVsZW5sZWcgY3NhayBheiBha3TDrXYgZmVsaGFzem7DoWzDs2sgdmFubmFrIG1lZ2plbGVuw610dmUgZWJiZW4gYSBwcm9qZWt0YmVuLiBBIG3FsWvDtmTDqXMgbcOzZG9zw610w6Fzw6Fob3ogZnJpc3PDrXRzZSBhIGJlw6FsbMOtdMOhc3Q6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0plbGVubGVnIG1pbmRlbiBpZMWRZWxzesOhbW9sw7MgZmVsaGFzem7DoWzDsyBtZWcgdmFuIGplbGVuw610dmUuIEEgbcWxa8O2ZMOpcyBtw7Nkb3PDrXTDoXPDoWhveiBmcmlzc8OtdHNlIGEgYmXDoWxsw610w6FzdDonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBwcm9qZWt0YmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ1Byb2pla3QgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnVWdyw6FzIGEgYmXDoWxsw610w6Fzb2sgw6F0dGVraW50xZFow7Z6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnUHJvamVrdCBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUHJvamVrdGJlw6FsbMOtdMOhc29rIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ03DoXIgbMOpdGV6aWsgZWd5IGlseWVuIG5ldsWxIHByb2pla3QuIFbDoWxhc3N6b24gZWd5IG3DoXNpayBuZXZldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdJZMWRZWxzesOhbW9sw6FzaSBiZcOhbGzDrXTDoXNvayBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRmVsYWRhdCBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdTesWxcsWRIGEgcHJvamVrdGtlaGV6LCBmZWxhZGF0b2tob3ogdmFneSBmZWxoYXN6bsOhbMOza2hveic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0F6IGlkxZFzemFrb2sgbmVtIHTDtnLDtmxoZXTFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdGZWxhZGF0bGlzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdGZWxhZGF0IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdGZWxhZGF0YmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnTcOhciBsw6l0ZXppayBlZ3kgaWx5ZW4gbmV2xbEgZmVsYWRhdC4gVsOhbGFzc3pvbiBlZ3kgbcOhc2lrIG5ldmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdGZWxoYXN6bsOhbMOzbGlzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0ZlbGhhc3puw6Fsw7NpIGJlw6FsbMOtdMOhc29rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnQSBmZWxoYXN6bsOhbMOzIG1lZ3Rla2ludGhldGkgYSB0w7psw7Nyw6FrYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1TDumzDs3JhIG1lZ2plbGVuw610w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnQSBmZWxoYXN6bsOhbMOzIGzDqXRyZWhvemhhdCBwcm9qZWt0ZWtldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUHJvamVrdGzDqXRyZWhvesOhcyBlbmdlZMOpbHllesOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnQSBmZWxoYXN6bsOhbMOzbmFrIGxlaGV0xZFzw6lnZSB2YW4ga2loYWd5bmkgYXogaWTFkWVsc3rDoW1vbMOhc3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBraWhhZ3nDoXPDoW5hayBsZWhldMWRdsOpIHTDqXRlbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdIYSBleiBhIGxlaGV0xZFzw6lnIHZhbiBraXbDoWxhc3p0dmEsIGFra29yIGF6IGlkxZFlbHN6w6Ftb2zDoXMgdMOpbnlsZWdlc2VuIHbDoWxhc3p0aGF0w7MgYSBmZWxoYXN6bsOhbMOzbmFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICdOZW0gbGVzem5layBmaWd5ZWxtZXp0ZXTDqXNlayBhIGhpw6FueXrDsyBiZWplZ3l6w6lzZWtyxZFsIMOpcyBuZW0gbGVzeiBiZcOtcsOhc2kga8OpbnlzemVyw610w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnSWTFkXRhcnRhbW9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0lkxZFzemFrIGtlemRldGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0lkxZFzemFrIHbDqWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdTemFiYWRzw6FnIG5hcGphaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ8OTcsOhayBoZXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdKb2dvc3VsdCB0w7psw7NyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnS2V6ZMOpc2kgZMOhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ8OJcnbDqW55ZXMgZMOhdHVtb3QgaWxsZXNzemVuIGJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0JlZmVqZXrDqXNpIGTDoXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0F6IGlkxZFzemFrIHbDqWfDqW5layBheiBpZMWRc3phayBrZXpkZXRlIHV0w6FuIGtlbGwgbGVubmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnU3phYmFkc8OhZyBuYXBqYWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSGV0aSDDs3LDoWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdUw7psw7NyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmVtIHRhbMOhbGhhdMOzayBpZMWRc3pha29rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdJZMWRc3phayBob3p6w6FhZMOhc2EnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnSWTFkWZlbGplZ3l6w6lzIG1lZ3Rla2ludMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdBIGvDtnZldGtlesWRIG1lZ3Rla2ludMOpc2U6ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdFbMWResWRIG5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0vDtnZldGtlesWRIG5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOZW0gdGFsw6FsaGF0w7MgYWRhdCBlcnJlIGEgbmFwcmEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ05lbSBsZWhldCBiZWlsbGVzenRlbmkgYSBtdW5rYWVneXPDqWdla2V0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnTGVndXTDs2JiaSBwcm9qZWt0ZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTmVtIGxlaGV0IGVsbWVudGVuaSBhIGJlw6FsbMOtdMOhc29rYXQsIG1lcnQgZWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTmVtIGxlaGV0IHTDtnLDtmxuaSBhIG11bmthZWd5c8OpZ2VrZXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXogYSBkw6F0dW0gYSBoYXTDoXJvbiBrw612w7xsIHZhbiwgZGUgbcOpZyBuZW0gaWxsZXN6dGV0dGUgYmUgZXogYSBuYXBvdCwgw61neSBrYXAgbcOpZyBlZ3koISkgZXPDqWx5dCBhIGJlaWxsZXN6dMOpc3JlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnQmVmZWplemV0bGVuIG11bmthbmFwb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnU2lrZXJlcyBiZWlsbGVzenTDqXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdIaWJhIHTDtnJ0w6ludCB0w7ZiYiBkw6F0dW0gYmVpbGxlc3p0w6lzZSBrw7Z6YmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdBIGJlamVneXrDqXNlayBzaWtlcmVzZW4gYmVpbGxlc3p0dmUgYSBrw7xsw7ZuYsO2esWRIGTDoXR1bW9raG96ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnQSBtZWdhZG90dCBkw6F0dW0gw6lydsOpbnl0ZWxlbiB2b2x0ISBBIGTDoXR1bSBhIG1haSBuYXByYSBsZXR0IG3Ds2Rvc8OtdHZhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICdOaW5jcyBpZMWRc3phayBiZcOhbGzDrXR2YSwgdmFneSBhIG1lZ2Fkb3R0IGTDoXR1bSBhIG1lZ2hhdMOhcm96b3R0IGlkxZFzemFrb2tvbiBrw612w7xsIHZhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ1ZlZ3llIGZlbCBhIGthcGNzb2xhdG90IGF6IGlkxZFlbHN6w6Ftb2zDoXMgYWRtaW5pc3p0csOhdG9yw6F2YWwsIGhvZ3kgZnJpc3PDrXRzZSBheiBpZMWRc3pha2FpdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ0xlZ3V0w7NiYiBraXbDoWxhc3p0b3R0IHByb2pla3Rlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdNaW5kZW4gcHJvamVrdCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdKZWxlbnTDqXMgcHJvamVrdDogcHJvamVrdGF6b25vc8OtdMOzIHN6w7xrc8OpZ2VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnSmVsZW50w6lzIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnSmVsZW50w6lzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ05lbSBsZWhldCBmcmlzc8OtdGVuaSBhIGZlbGhhc3puw6Fsw7NpIGJlw6FsbMOtdMOhc29rYXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamVrdCBob3p6w6FhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrdCBmcmlzc8OtdHZlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0ZlbGFkYXQgaG96esOhYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0ZlbGFkYXQgZnJpc3PDrXR2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnQSBmZWxoYXN6bsOhbMOzLWF6b25vc8OtdMOzIG5lbSDDqXJ2w6lueWVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdOZW0gbGVoZXQgYmVpbGxlc3p0ZW5pIGEgZmVsaGFzem7DoWzDs2FkYXRva2F0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ05lbSBsZWhldCBob3p6w6FhZG5pIGlkxZFzemFrb3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdCZcOhbGzDrXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ0ZlbGhhc3puw6Fsw7MgZnJpc3PDrXR2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdGZWxoYXN6bsOhbMOzIGhvenrDoWFkdmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnRmVsaGFzem7DoWzDsyBob3p6w6FhZMOhc2EgYXogaWTFkWVsc3rDoW1vbMOhc2hveuKApic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ8OaaiBmZWxoYXN6bsOhbMOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdJZMWRc3phayDDoWxsYXBvdCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnTsOpemV0OiAlcyBzesO8a3PDqWdlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0lsbGVzc3plIGJlIGEgbXVua2FpZGVqw6l0ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0JlZmVqZXpldGxlbiBtdW5rYW5hcG9rJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0xlZ2Fsw6FiYiBlZ3kgbmFwb3QgdsOhbGFzc3pvbiBraSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1TDtm1lZ2VzIGJlamVneXrDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdWw6FsYXNzemEga2kgYSB0w6F2b2xsw6l0IG9rw6F0ISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgYmVqZWd5esOpcyB0w7ZybMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdCZWlsbGVzenTDqXMgbWVnZXLFkXPDrXTDqXNlJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnw5xneWludMOpesWRaSBmZWzDvGxldCDDqXJ0ZXPDrXTDqXNpIG1vZHVsIGEgZmVsaGFzem7DoWzDsyBiZWZlamV6ZXRsZW4gbXVua2FuYXBqYWkgc3rDoW3DoW5hayBtZWd0ZWtpbnTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IG7DqXYgYXogw7pqIG3FsXZlbGV0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgbsOpdiBheiDDumogcHJvamVrdGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgYmVmZWplesOpc2kgZMOhdHVtaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBrZXpkw6lzaSBkw6F0dW1ob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBsZcOtcsOhc2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgc3phYmFkc8OhZyBuYXBqYWlob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSB0w7psw7Nyw6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IGJlw6FsbMOtdMOhcyBhIHN6YWJ2w6FueW9zIGhldGkgbXVua2HDs3LDoWtob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IMOhbGxhcG90IGF6IMO6aiBtxbF2ZWxldGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgw6FsbGFwb3QgYXogw7pqIHByb2pla3Rla2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IMOhbGxhcG90IGF6IMO6aiBmZWxoYXN6bsOhbMOza2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYSBwcm9qZWt0ZWtldCwgYW1lbHlla2hleiDDqXN6cmV2w6l0ZWwgc3rDvGtzw6lnZXMuIEhhIGEgcmVndWzDoXJpcyBraWZlamV6w6lzIGlsbGVzemtlZGlrIGEgcHJvamVrdHJlLCBha2tvciBiZSBrZWxsIGlsbGVzenRlbmllIGVneSDDqXN6cmV2w6l0ZWx0IGlzLiBBIHJlZ3Vsw6FyaXMga2lmZWplesOpcyBheiBzbXggcGFyYW3DqXRlcnQgaGFzem7DoWxqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEsIGhvZ3kgYSBzdGF0aXN6dGlrYSBtb2R1bCBlbMWRw6FsbMOtdGhhdC1lIGlkxZFlbHN6w6Ftb2zDoXNpIGluZm9ybcOhY2nDs2thdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBiZcOhbGzDrXTDoXNhaW5hayBzemVya2VzenTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ0lkxZFmZWxqZWd5esOpcyBzemVya2VzenTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdIw6FueSBuYXBwYWwgZXplbMWRdHRow7Z6IGlsbGVzenRoZXQgYmUgbXVua2FlZ3lzw6lnZWtldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGNzYWsgYXpvayBhIGZlbGhhc3puw6Fsw7NrIGxlc3puZWsgbWVnamVsZW7DrXR2ZSwgYWtpayBtdW5rYWlkxZF0IGFkdGFrIGhvenrDoSBhIGtpamVsw7ZsdCBwcm9qZWt0aGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGEgc3plcmtlc3p0w6lzaSBrw6lwZXJuecWRbiBsw6l2xZEgbGVuecOtbMOzIGVsZW1layBrb3JzemVyxbFzw610ZXR0IGF1dG9tYXRpa3VzYW4ga2llZ8Opc3rDrXRldHQgbWV6xZFrcmUgbGVzem5layBtZWd2w6FsdG96dGF0dmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0hhIGVuZ2Vkw6lseWV6dmUgdmFuLCBha2tvciBheiBlbMWResWRIHByb2pla3RlayBzesWxcsWRamUgaGFzem7DoWxoYXTDsyBhIHByb2pla3RlayBrw6l0IGxpc3TDoWphIGhlbHlldHQgKGxlZ3V0w7NiYmkgw6lzIMO2c3N6ZXMpLiBDc2FrIGFra29yIGhhc3puw6FsaGF0w7MsIGhhIGEgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGVuZ2Vkw6lseWV6dmUgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGF6IGVsxZF6xZEgcHJvamVrdGVrIHN6xbFyxZFqZSBhbGFww6lydGVsbWV6ZXR0ZW4gYmUgdmFuIGthcGNzb2x2YSwgaGEgdmFubmFrIGVsxZF6xZEgcHJvamVrdGVrLiBDc2FrIGFra29yIGhhc3puw6FsaGF0w7MsIGhhIGF6IEVuYWJsZUF1dG9Db21wbGV0aW9uIMOpcyBhIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZW5nZWTDqWx5ZXp2ZSB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdIYSBlbmdlZMOpbHllenZlIHZhbiwgYWtrb3IgYSBmZWxoYXN6bsOhbMOzbmFrIG1lZ2VuZ2VkZXR0IGVneXN6ZXJyZSB0w7ZiYiBkw6F0dW1ob3og4oCec3phYmFkc8OhZ29u4oCdLCDigJ5iZXRlZ3N6YWJhZHPDoWdvbuKAnSDDqXMg4oCeY3PDunN6dGF0w6Fzb27igJ0gw6lydMOpayBtZWdhZMOhc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnQSBtdW5rYW5hcG9rIGxlZ25hZ3lvYmIgc3rDoW1hLCBhbWVseWVrIHV0w6FuIGEgbXVua2FlZ3lzw6lnZWtldCBiZSBrZWxsIHN6w7pybmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdBIG11bmthZWd5c8OpZ2VrIGJlamVneXrDqXMgbsOpbGvDvGxpIG11bmthbmFwb2sgbGVnbmFneW9iYiBzesOhbWEsIGFtZWx5ZWsgdXTDoW4gZWd5IGZpZ3llbG1lenRldMOpcyBsZXN6IG1lZ2plbGVuw610dmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ8OBdHRla2ludMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdQcm9qZWt0aWTFkSBqZWxlbnTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bMOhcmlzIGtpZmVqZXrDqXNlayBhIGtpamVsw7ZsdCBwcm9qZWt0IHN6ZXJpbnRpIGtvcmzDoXRvesOzIG3FsXZlbGV0IGxpc3TDoWrDoWhvei4gQSBrdWxjcyBhIHByb2pla3Rla2hleiB0YXJ0YWxtYXogcmVndWzDoXJpcyBraWZlamV6w6lzdCwgYSB0YXJ0YWxvbSBwZWRpZyBhIG3FsXZlbGV0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ1JlZ3Vsw6FyaXMga2lmZWplesOpc2VrIGEgZmVsaGFzem7DoWzDs2Nzb3BvcnRvayBzemVyaW50aSBrb3Jsw6F0b3rDsyBwcm9qZWt0IGxpc3TDoWrDoWhvei4gQSBrdWxjcyBhIHByb2pla3Rla2hleiB0YXJ0YWxtYXogcmVndWzDoXJpcyBraWZlamV6w6lzdCwgYSB0YXJ0YWxvbSBwZWRpZyBjc29wb3J0b2sgdmVzc3rFkXZlbCBlbHbDoWxhc3p0b3R0IGxpc3TDoWrDoXQgdGFydGFsbWF6emEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdNZWdhZGphLCBob2d5IGEgbXVua2FpZMWRIGJlc3rDunJoYXTDsy1lIGtlemTDqXNpIMOpcyBiZWZlamV6w6lzaSBpZMWRayBuw6lsa8O8bC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRXogYSBtb2R1bCBraWvDqW55c3plcsOtdGkgYSBiZXN6w7pyw6Fzb2thdCBheiBpZMWRZWxzesOhbW9sw6FzYmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ0V6IGF6IMOpcnRlc8OtdMOpc2kgbW9kdWwgZWd5IGZpZ3llbG1lenRldMOpc3QgYWQsIGhhIHTDumwgc29rIGJlZmVqZXpldGxlbiBtdW5rYW5hcCB0YWzDoWxoYXTDsy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIHN6ZXJrZXN6dMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgw6F0dGVraW50xZEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBqZWxlbnTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIGJlw6FsbMOtdMOhc29rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIG7DqXpldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0Fra29yIGtlbGwgaGFzem7DoWxuaSwgaGEgbsOpaMOhbnkgbcWxdmVsZXQgY3PDtmtrZW50ZXR0ZSBhIG11bmthaWTFkXQgKHDDqWxkw6F1bCBoYSBjc2FrIGF6IHV0YXrDoXNpIGlkxZEgZmVsZSB2YW4ga2lmaXpldHZlOiBLdWxjcyA9PiB1dGF6w6FzOyBUYXJ0YWxvbSA9PiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmlkX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJveWVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdNZWxhcG9ya2FuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnUGVuZ2F0dXJhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVG9sb25nIG1hc3Vra2FuIG1hc2Ega2VyamEgYW5kYSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1BlbmdoaXR1bmdhbiB3YWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Oml0X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVnVvaSB2ZXJhbWVudGUgY2FuY2VsbGFyZSBsYSByZW5kaWNvbnRhemlvbmUgdGVtcG9yYWxlIGRpIG9nZ2kgPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdNb2RpZmljYSBsYSByZW5kaWNvbnRhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdWYWkgYWxsZSBpbXBvc3RhemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhemlvbmUgcGVyIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdHaW9ybmkgc2VuemEgaW5mb3JtYXppb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGV6aW9uYSB0dXR0aSBpIGdpb3JuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW5zZXJpbWVudG8gbWFzc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BlciBmYXZvcmUgc2VsZXppb25hIGlsIG1vdGl2byBkZWxsYSB0dWEgYXNzZW56YSBwZXIgaSBnaW9ybmkgc2VsZXppb25hdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0Fzc2VudGUgcGVyIG1hbGF0dGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXNzZW50ZSBwZXIgcmVjdXBlcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdJIGNhbXBpIG9iYmxpZ2F0b3JpIHNvbm8gaW5kaWNhdGkgY29uICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFXCcgb2JibGlnYXRvcmlvIGluc2VyaXJlIGluaXppbyBlIGZpbmUgb3BwdXJlIHVuIHBlcmlvZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnQ29tcGl0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21tZW50byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdBZ2dpdW5nZXJlIHVuIGNvbW1lbnRvIGNvbiBwacO5IGRpIDggY2FyYXR0ZXJpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTm9uIHBvc3Nvbm8gZXNzZXJlIGluc2VyaXRpIHZhbG9yaSBuZWdhdGl2aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vbiDDqCBwZXJtZXNzbyBpbnNlcmlyZSBvcmUgcmlwZXR1dGUuIExcJ29yYXJpbyBkaSBpbml6aW8gY29pbmNpZGUgY29uIHVuIGFsdHJvIGludGVydmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIG5vbiB2YWxpZG8uIEluc2VyaXJlIHVuIG9yYXJpbyBuZWwgZm9ybWF0byBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnTFwnb3JhIDI0OjAwIMOoIGNvbnNlbnRpdGEgc29sbyBjb21lIG9yYSBkaSBmaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ09yYXJpbyBub24gdmFsaWRvISBJbiB1biBnaW9ybm8gY2kgc29ubyBzb2xvIDI0IG9yZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ0xcJ29yYXJpbyBkaSBmaW5lIMOoIHBvc3RlcmlvcmUgYWxsXCdvcmFyaW8gZGkgaW5pemlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vbiDDqCBwZXJtZXNzbyBpbnNlcmlyZSBvcmUgcmlwZXR1dGUuIExcJ29yYXJpbyBkaSBmaW5lIGNvaW5jaWRlIGNvbiB1biBhbHRybyBpbnRlcnZhbGxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnUGVyaW9kbyBub24gdmFsaWRvLiBVbmEgZ2lvcm5hdGEgaGEgc29sbyAyNCBvcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyaW9kbyB2YWxpZG8gZGV2ZSBlc3NlcmUgbWFnZ2lvcmUgZGkgemVyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1BlcmlvZG8gbm9uIHZhbGlkby4gVmFsb3JpIG5lZ2F0aXZpIG5vbiBhbW1lc3NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0FnZ2l1bmdlcmUgdW5hIHJpZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdQdW9pIHNlbGV6aW9uYXJlIHNvbG8gdW4gZWxlbWVudG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gbWVudHJlIGVyaSBhc3NlbnRlIHBlciBtYWxhdHRpYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gbWVudHJlIGVyaSBpbiBmZXJpZT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ1NlaSBzaWN1cm8gZGkgYXZlciBsYXZvcmF0byBtZW50cmUgZXJpIGFzc2VudGUgcGVyIHJlY3VwZXJvID8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnU2VpIHNpY3VybyBkaSBhdmVyIGxhdm9yYXRvIHBpw7kgZGkgMTYgb3JlPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnQ3J1c2NvdHRvIG1lbnNpbGUgZGkgcmVuZGljb250YXppb25lIHRlbXBvcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnU3RyYW9yZGluYXJpbyAob3JlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdTdHJhb3JkaW5hcmlvIChxdWVzdG8gbWVzZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1N0cmFvcmRpbmFyaW8gKHRvdGFsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnVG90YWxlIG9yZSBkaSByZWN1cGVybyBkaXNwb25pYmlsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdGZXJpZSAoZ2lvcm5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdGZXJpZSB1dGlsaXp6YXRlIChxdWVzdG8gbWVzZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0ZlcmllIHV0aWxpenphdGUgKHRvdGFsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRmVyaWUgcmVzaWR1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0Fzc2VuemUgcGVyIG1hbGF0dGlhIChnaW9ybmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQXNzZW56ZSBwZXIgbWFsYXR0aWEgdXRpbGl6emF0ZSAocXVlc3RvIG1lc2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0Fzc2VuemUgcGVyIG1hbGF0dGlhICh0b3RhbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzZSBwcmVjZWRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXNlIHNlZ3VlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdHaW9ybm8gZGVsbGEgc2V0dGltYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdPcmUgbGF2b3JhdGl2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbGUgb3JlIGxhdm9yYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Zpc3VhbGl6emF6aW9uZSBkZWwgcHJvZ2V0dG8gLSBVdGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnT3JlIChtZW5zaWxpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnT3JlIChnbG9iYWxpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsZSBvbW5pY29tcHJlbnNpdm8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnUmVwb3J0IGRlbCB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhemlvbmUgcGVyIG1lc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ1ZhaSBhbGxhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnUmVwb3J0IHV0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWxlIG1lbnNpbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdUb3RhbGUgZ0xvYmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0Fzc2VuemUgcGVyIHJlY3VwZXJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ01hbGF0dGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0dpb3JuaSByaW1hbmVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmlhc3N1bnRpIHByb2dldHRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSaWFzc3VudG8gcHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnVmFpIGFsIHJpZXBpbG9nbyBkaSByZXBvcnRpc3RpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdWZW5nb25vIG1vc3RyYXRpIHNvbG8gZ2xpIHV0ZW50aSBhdHRpdmkgZGkgcXVlc3RvIHByb2dldHRvLiBQZXIgY2FtYmlhcmUgcXVlc3RvIGNvbXBvcnRhZW50byBhZ2dpb3JuYXJlIGlsIHBhcmFtZXRybzogJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1Zlbmdvbm8gbW9zdHJhdGkgdHV0dGkgZ2xpIHV0ZW50aSBwZXIgbGEgcmVuZGljb250YXppb25lIHRlbXBvLiBQZXIgY2FtYmlhcmUgcXVlc3RvIGNvbXBvcnRhbWVudG8gYWdnaW9ybmFyZSBpbCBwYXJhbWV0cm86JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGUgY29uZmlndXJhemlvbmkgZGkgZ2VzdGlvbmUgZGVsIHRlbXBvIGRlbCBwcm9nZXR0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZ2dpdW5nZXJlIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnVmFpIGFsIHJpZXBpbG9nbyBpbXBvc3RhemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZ2dpdW5nZXJlIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGEgY29uZmlndXJhemlvbmUgZGVsIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdFc2lzdGUgZ2nDoCB1biBwcm9nZXR0byBjb24gcXVlc3RvIG5vbWUuIFNjZWdsZWlyZSB1biBub21lIGRpdmVyc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBsZSBjb25maWd1cmF6aW9uaSBkZWxsYSByZW5kaWNvbnRhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdBZ2dpdW5nZXJlIGNvbXBpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cm8gcGVyIHByb2dldHRpLCBhdHRpdml0w6AgbyB1dGVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdJIHBlcmlvZGkgZGkgdGVtcG8gbm9uIHBvc3Nvbm8gZXNzZXJlIGVsaW1pbmF0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnRWxlbmNvIGRlaSBwcm9nZXR0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdFbGVuY28gZGVpIGNvbXBpdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZ2dpdW5nZXJlIGNvbXBpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBsYSBjb25maWd1cmF6aW9uZSBkZWkgY29tcGl0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRXNpc3RlIGdpw6AgdW4gdGFzayBjb24gcXVlc3RvIG5vbWUuIFNjZWdsaWVyZSB1biBub21lIGRpdmVyc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0VsZW5jbyB1dGVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0ltcG9zdGF6aW9uaSB1dGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdMXCdVdGVudGUgcHXDsiB2ZWRlcmUgbG8gc3RyYW9yZGluYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhcmUgc3RyYW9yZGluYXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdMXCdVdGVudGUgcHXDsiBjcmVhcmUgcHJvZ2V0dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0NvbnNlbnRpcmUgbGEgY3JlYXppb25lIGRlbCBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdMXCd1dGVudGUgw6ggYXV0b3JpenphdG8gYSBzYWx0YXJlIGxhIGNvbnRhYmlsaXTDoCBkZWwgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnQ29uc2VudGkgaWwg4oCL4oCLc2FsdG8gZGVsbGEgY29udGFiaWxpdMOgIGRlbCB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ1NlIHF1ZXN0YSBvcHppb25lIMOoIHNlbGV6aW9uYXRhLCBsYSBjb250YWJpbGl0w6AgdGVtcG9yYWxlIMOoIGVmZmV0dGl2YW1lbnRlIGZhY29sdGF0aXZhIHBlciBsXCd1dGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJ05vbiBjaSBzYXJhbm5vIGF2dmlzaSBpbiBtZXJpdG8gYSB2b2NpIG1hbmNhbnRpIGUgbmVzc3VuYSBhcHBsaWNhemlvbmUgZGkgYWNjZXNzby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ0ludGVydmFsbGkgZGkgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyaW9kbyBkaSBpbml6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZG8gZGkgdGVybWluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnR2lvcm5pIGRpIEFzc2VuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdPcmUgYWxsYSBzZXR0aW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1N0cmFvcmRpbmFyaSBhdXRvcml6emF0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBkaSBpbml6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnSW5zZXJpcmUgdW5hIGRhdGEgdmFsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgRmluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0lsIHBlcmlvZG8gZmluYWxlIGRldmUgZXNzZXJlIHBvc3RlcmlvcmUgYWwgcGVyaW9kbyBpbml6aWFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0dpb3JuaSBkaSBhc3NlbnphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ09yYXJpIGRlbGxhIFNldHRpbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ1N0cmFvcmRpbmFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vbiBjaSBzb25vIHBlcmlvZGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0FnZ2l1bmdpIHBlcmlvZG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnVmlzdWFsaXp6YXJlIHJlZ2lzdHJvIG9yYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc3VhbGl6emF6aW9uZSBkaSAgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0dpb3JubyBwcmVjZWRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnR2lvcm5vIHN1Y2Nlc3Npdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTmVzc3VuIGRhdG8gdHJvdmF0byBwZXIgcXVlc3RvIGdpb3Juby4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnTm9uIHB1b2kgaW5zZXJpcmUgbGUgdW5pdMOgIGxhdm9yYXRpdmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdVbHRpbWkgcHJvZ2V0dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTm9uIHB1b2kgc2FsdmFyZSBsZSBpbXBvc3RhemlvbmksIHBlcmNow6ggdW4gZ2lvcm5vIGhhIHNvbG8gMjQgb3JlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTm9uIHB1b2kgY2FuY2VsbGFyZSBsZSB1bml0w6AgbGF2b3JhdGl2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdRdWVzdGEgRGF0YSDDqCBmdW9yaSBsaW1pdGUgbWFzc2ltbywgbWEgbm9uIGhhaSBhbmNvcmEgYW5jb3JhIGluc2VyaXRvIHF1ZXN0byBnaW9ybm8sIHF1aW5kaSBoYWkgYW5jb3JhIHVuYSAoISkgcG9zc2liaWxpdMOgIGRpIGluc2VyaXJuZSB1bm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnR2lvcm5pIGxhdm9yYXRpdmkgaW5jb21wbGV0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmltZW50byBhdnZlbnV0byBjb24gc3VjY2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdTaSDDqCB2ZXJpZmljYXRvIHVuIGVycm9yZSBuZWxsXCdpbnNlcmltZW50byBkaSBkYXRlIG11bHRpcGxlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdJbnNlcmltZW50byBkaSBkYXRlIG11bHRpcGxlIGF2dmVudXRvIGNvbiBzdWNjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0xhIGRhdGEgaW5zZXJpdGEgbm9uIMOoIHZhbGlkYSEgRVwnIHN0YXRhIGltcG9zdGF0YSBsYSBkYXRhIGRpIG9nZ2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ05lc3N1biBwZXJpb2RvIGRpIHRlbXBvIGNvbmZpZ3VyYXRvLCBvIGxhIGRhdGEgc3BlY2lmaWNhdGEgw6ggZnVvcmkgZGFpIHBlcmlvZGkgZGkgdGVtcG8gZGVmaW5pdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICdQZXIgZmF2b3JlLCBjb250YXR0YXJlIGxcJ2FtbWluaXN0cmF6aW9uZSBkZWxsYSBjb250YWJpbGl6emF6aW9uZSB0ZW1wb3JhbGUgcGVyIGFnZ2lvcm5hcmUgaSB0dW9pIGludGVydmFsbGkgZGkgdGVtcG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICdVbHRpbWkgcHJvZ2V0dGkgc2VsZXppb25hdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnVHV0dGkgaSBwcm9nZXR0aSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdSYXBwb3J0b1Byb2dldHRvOiBQcm9qZWN0SUQgbmVjZXNzYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ0NvbXBpbGFuZG8gaWwgcmFwcG9ydG8gZGVsIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGlzdGljYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICdJbXBvc3NpYmlsZSBhZ2dpb3JuYXJlIGxlIGltcG9zdGF6aW9uaSB1dGVudGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvZ2V0dG8gYWdnaXVudG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICdQcm9nZXR0byBhZ2dpb3JuYXRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0F0dGl2aXTDoCBhZ2dpdW50YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0F0dGl2aXTDoCBhZ2dpb3JuYXRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdMbyBVc2VySUQgbm9uIMOoIHZhbGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnTm9uIHB1b2kgaW5zZXJpcmUgaSBkYXRpIGRlbGxcJ3V0ZW50ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdOb24gc2VpIGFiaWxpdGF0byBhZCBpbnNlcmlyZSBpIHBlcmlvZGkgZGkgdGVtcG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdJbXBvc3RhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1V0ZW50ZSBhZ2dpb3JuYXRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ1V0ZW50ZSBpbnNlcml0byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBZ2dpdW5naSB1biB1dGVudGUgcGVyIGxhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ051b3ZvIHV0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdG8gZGkgcGVyaW9kbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnVmlzdGE6ICVzIHJpY2hpZXN0byEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0luc2VyaXJlIGxcJ29yYXJpbyBsYXZvcmF0aXZvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0dpb3JuaSBsYXZvcmF0aXZpIGluY29tcGxldGknOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnU3BlY2lmaWNhcmUgYWxtZW5vIHVuIGdpb3JubyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0luc2VyaW1lbnRvIG1hc3Npdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdTZWxlemlvbmFyZSB1biBtb3Rpdm8gcGVyIGxcJ2Fzc2VuemEhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnQ2FuY2VsbGFyZSB2b2NlIGRpIHJlbmRpY29udGF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZlcm1hcmUgaW5zZXJpbWVudG8nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bG8gZGkgbm90aWZpY2EgZGVsbFwnaW50ZXJmYWNjaWEgYWdlbnRlIHBlciB2ZWRlcmUgaWwgbnVtZXJvIGRpIGdpb3JuaSBsYXZvcmF0aXZpIGluY29tcGxldGkgcGVyIGxcJ3V0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05vbWUgcHJlZGVmaW5pdG8gcGVyIGxlIG51b3ZlIGF6aW9uaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTm9tZSBwcmVkZWZpbml0byBwZXIgaSBudW92aSBwcm9nZXR0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxhIGRhdGEgZGkgZmluZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbGEgZGF0YSBkaSBpbml6aW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsYSBkZXNjcml6aW9uZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgaSBnaW9ybmkgZGkgYXNzZW56YS92YWNhbnphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbG8gc3RyYW9yZGluYXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbFwnb3JhcmlvIHNldHRpbWFuYWxlIHN0YW5kYXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsZSBudW92ZSBhemlvbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBpIG51b3ZpIHByb2dldHRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgaSBudW92aSB1dGVudGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBpIHByb2dldHRpIHBlciBpIHF1YWxpIHVuYSBhbm5vdGF6aW9uZSDDqCBvYmJsaWdhdG9yaWEuIFNlIGxhIFJlZ0V4cCBjb2luY2lkZSBpbCBwcm9nZXR0byBzaSDDqCBvYmJsaWdhdGkgYWQgaW5zZXJpcmUgdW5hIGFubm90YXppb25lLiBMYSBSZWdFeHAgdXRpbGl6emEgaWwgcGFyYW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSBpbCBtb2R1bG8gc3RhdGlzdGljaGUgcHXDsiBnZW5lcmFyZSBpbmZvcm1hemlvbmkgZGkgcmVuZGljb250YXppb25lIHRlbXBvcmFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnTW9kaWZpY2EgbGUgaW1wb3N0YXppb25pIGRlbGxhIHJlbmRpY29udGF6aW9uZSB0ZW1wb3JhbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnTW9kaWZpY2EgcmVnaXN0cm8gb3JhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ051bWVybyBtYXNzaW1vIGRpIGdpb3JuaSBuZWwgcGFzc2F0byBpbiBjdWkgw6ggcG9zc2liaWxlIGluc2VyaXJlIGxlIHVuaXTDoCBkaSBsYXZvcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGFiaWxpdGF0bywgbW9zdHJhIHNvbG8gZ2xpIHV0ZW50aSBjaGUgaGFubm8gYWdnaXVudG8gdm9jaSBkaSB0ZW1wbyBsYXZvcm8gYWwgcHJvZ2V0dG8gc2VsZXppb25hdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdGEsIGdsaSBlbGVtZW50aSBhIHRlbmRpbmEgbmVsbGEgc2NoZXJtYXRhIGRpIG1vZGlmaWNhIHNvbm8gc29zdGl0dWl0aSBkYSBwacO5IG1vZGVybmkgY2FtcGkgY29uIGNvbXBsZXRhbWVudG8gYXV0b21hdGljby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRhLCBpbCBmaWx0cm8gcGVyIGkgcHJvZ2V0dGkgcHJlY2VkZW50aSBwdcOyIGVzc2VyZSB1dGlsaXp6YXRvIGFsIHBvc3RvIGRpIGR1ZSBlbGVuY2hpIGRpIHByb2dldHRpICh1bHRpbW8gZSB0dXR0aSkuIFB1w7IgZXNzZXJlIHV0aWxpenphdG8gc29sbyBzZSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gw6ggYWJpbGl0YXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRhLCBpbCBmaWx0cm8gcGVyIGkgcHJvZ2V0dGkgcHJlY2VkZW50aSDDqCBhdHRpdm8gaW4gbW9kbyBwcmVkZWZpbml0byBzZSBjaSBzb25vIHByb2dldHRpIHByZWNlZGVudGkuIFB1w7IgZXNzZXJlIHV0aWxpenphdG8gc29sbyBzZSBFbmFibGVBdXRvQ29tcGxldGlvbiBlIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgc29ubyBhYmlsaXRhdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdG8sIMOoIHBvc3NpYmlsZSBwZXIgZ2xpIHV0ZW50aSBpbnNlcmlyZSBpIGNhbXBpICJwZXJpb2RvIGRpIHZhY2FuemEiLCAicGVyaW9kbyBkaSBtYWxhdHRpYSIgZSAic3RyYW9yZGluYXJpbyIgY29uIGRhdGUgbXVsdGlwbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTnVtZXJvIG1hc3NpbW8gZGkgZ2lvcm5pIGxhdm9yYXRpdmkgaW4gY3VpIMOoIHBvc3NpYmlsZSBpbnNlcmlyZSBsZSB2b2NpIGRpIHVuaXTDoCBkaSBsYXZvcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOdW1lcm8gbWFzc2ltbyBkaSBnaW9ybmkgbGF2b3JhdGl2aSBjaGUgbm9uIGhhbm5vIHZvY2kgZGkgdW5pdMOgIGRpIGxhdm9ybyBvbHRyZSBpbCBxdWFsZSB2ZXJyw6AgbW9zdHJhdG8gdW4gYXZ2aXNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBHbG9iYWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JhcHBvcnRvIGRlbCB0ZW1wbyBkaSBwcm9nZXR0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0VzcHJlc3Npb25pIHJlZ29sYXJpIHBlciB2aW5jb2xhcmUgbGlzdGEgZGkgYXppb25pIGluIGJhc2UgYWwgcHJvZ2V0dG8gc2VsZXppb25hdG8uIExhIGNoaWF2ZSBjb250aWVuZSB1blwnZXNwcmVzc2lvbmUgcmVnb2xhcmUgcGVyIGlsL2kgcHJvZ2V0dG8vaSwgaWwgY29udGVudXRvIGNvbnRpZW5lIGVzcHJlc3Npb25pIHJlZ29sYXJpIHBlciBsZSBhemlvbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ0VzcHJlc3Npb25pIHJlZ29sYXJpIHBlciB2aW5jb2xhcmUgbGlzdGEgZGkgcHJvZ2V0dGkgaW4gYmFzZSBhaSBncnVwcGkgdXRlbnRlLiBMYSBjaGlhdmUgY29udGllbmUgdW5cJ2VzcHJlc3Npb25lIHJlZ29sYXJlIHBlciBpbC9pIHByb2dldHRvL2ksIGlsIGNvbnRlbnV0byBjb250aWVuZSBlc3ByZXNzaW9uaSByZWdvbGFyaSBwZXIgbGUgYXppb25pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnU3BlY2lmaWNhIHNlIGxlIG9yZSBsYXZvcmF0aXZlIHBvc3Nvbm8gZXNzZXJlIGluc2VyaXRlIHNlbnphIG9yYXJpIGRpIGluaXppbyBlIGRpIGZpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ1F1ZXN0byBtb2R1bG8gZm9yemEgZ2xpIGluc2VyaW1lbnRpIGluIFRpbWVBY2NvdW50aW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ1F1ZXN0byBtb2R1bG8gZGkgbm90aWZpY2EgZ2VuZXJhIHVuIGF2dmlzbyBzZSBjaSBzb25vIHRyb3BwaSBnaW9ybmkgbGF2b3JhdGl2aSBub24gY29tcGxldGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1JlbmRpY29udGF6aW9uZSBUZW1wb3JhbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnTW9kaWZpY2EgcmVuZGljb250YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnUGFub3JhbWljYSBzdWxsYSBjb250YWJpbGl6emF6aW9uZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZXBvcnRpc3RpY2Egc3VsbGEgY29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJbXBvc3RhemlvbmkgcGVyIGxhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWaXN0YSBjb250YWJpbGl6emF6aW9uZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0NvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdEYSB1dGlsaXp6YXJlIHNlIGFsY3VuZSBhemlvbmkgaGFubm8gcmlkb3R0byBsZSBvcmUgbGF2b3JhdGl2ZSAocGVyIGVzZW1waW86IHNlIHNvbG8gbGEgbWV0w6AgZGVsIHRlbXBvIGRpIHZpYWdnaW8gw6ggcGFnYXRvOiBDaGlhdmUgPT4gVmlhZ2dpbzsgQ29udGVudXRvID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmphX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn5pys5b2T44Gr6Kmy5b2T5pel44Gu5oOF5aCx44KS5YmK6Zmk44GX44G+44GZ44GL77yfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ+OCv+OCpOODoOODrOOCs+ODvOODieOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ+ioreWumuOBuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfml6XliKXjg4rjg5PjgrLjg7zjgrfjg6fjg7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfjgqjjg7Pjg4jjg6rjg7zjga7jgarjgYTml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn5YWo44Gm44Gu5pel44KS6YG45oqeJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICflhajkvZPlhaXlipsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfoqbLlvZPjga7ml6Xjga7mrKDli6TnkIbnlLHjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHmmoflj5blvpfkuK0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheasoOS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+S7o+S8keS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyog44Gu6aCF55uu44Gv5YWl5Yqb5b+F6aCI44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn6ZaL5aeL5pmC6ZaT44Go57WC5LqG5pmC6ZaT44CB44G+44Gf44Gv5pyf6ZaT44KS5oyH5a6a44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ+OCv+OCueOCryc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfms6jph4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnOOaWh+Wtl+S7peS4iuOBruazqOmHiOOCkui/veWKoOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn77yN77yI44Oe44Kk44OK44K577yJ44Gu5pmC6ZaT44Gv5YWl5Yqb44Gn44GN44G+44Gb44KTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfnubDjgorov5TjgZXjgozjgZ/mmYLplpPjga/oqLHlj6/jgZXjgozjgb7jgZvjgpPjgILplovlp4vmmYLliLvjga/liKXjga7plpPpmpTjgajkuIDoh7TjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ+S4jeato+OBquODleOCqeODvOODnuODg+ODiOOBp+OBmSEg5pmC6ZaT44Gu5YWl5Yqb44GvSEg6TU3jga7jg5Xjgqnjg7zjg57jg4Pjg4jjgavlvpPjgaPjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDDjga/ntYLkuobmmYLplpPjgajjgZfjgabjga7jgb/lhaXlipvlj6/og73jgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfkuI3mraPjgarmmYLplpPjgafjgZkhIDHml6Xjga8yNOaZgumWk+OBp+OBmSc7CiAgICAkU2VsZi0+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+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJzHpoIXnm67jga7jgb/pgbjmip7jgafjgY3jgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ+eXheasoOOBq+ioreWumuOBleOCjOOBn+acn+mWk+S4reOBq+eovOWDjeOBl+OBvuOBl+OBn+OBi++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ+S8keaah+OBq+ioreWumuOBleOCjOOBn+acn+mWk+S4reOBq+eovOWDjeOBl+OBvuOBl+OBn+OBi++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn5Luj5LyR44Gr6Kit5a6a44GV44KM44Gf5pyf6ZaT5Lit44Gr56i85YON44GX44G+44GX44Gf44GL77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJzE25pmC6ZaT5Lul5LiK56i85YON44GX44G+44GX44Gf44GL77yfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICfmnIjliKXkuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ+i2hemBjuWLpOWLme+8iO+8muaZgumWk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfotoXpgY7li6Tli5nvvIjku4rmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ+i2hemBjuWLpOWLme+8iOe0r+ioiO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfotoXpgY7li6Tli5nlj6/og73mrovvvIjmmYLplpPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn5LyR5pqH77yI5pel5pWw77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ+S8keaah+WPluW+l+aXpeaVsO+8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAn5LyR5pqH5Y+W5b6X5pel5pWw77yI57Sv6KiI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ+S8keaah+WPluW+l+aui+aXpeaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ+eXheasoO+8iOaXpeaVsO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ+eXheasoOaXpeaVsO+8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICfnl4XmrKDml6XmlbDvvIjntK/oqIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfliY3mnIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ+asoeaciCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn5puc5pelJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICfnqLzlg43mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAn57eP56i85YON5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ+ODpuODvOOCtuODvOOBruODl+ODreOCuOOCp+OCr+ODiOS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICfmmYLplpPvvIjku4rmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ+aZgumWk++8iOmAmueul++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ+WQiOioiCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICfmmYLplpPkvJroqIjjg6zjg53jg7zjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ+aciOWIpeODiuODk+OCsuODvOOCt+ODp+ODsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn5pel5LuY44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ+ODpuODvOOCtuODu+ODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn5pyI5ZCI6KiIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAn6YCa566X5ZCI6KiIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn5Luj5LyRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn5LyR5pqHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfnl4XmrKAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAn5LyR5pel5q6L5pel5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOODu+ODrOODneODvOODiCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn44OX44Ot44K444Kn44Kv44OI44O744Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ+WgseWRiuOBruamguimgeOBq+enu+WLleOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ+acrOODl+ODreOCuOOCp+OCr+ODiOOBruOCouOCr+ODhuOCo+ODluODpuODvOOCtuODvOOBruOBv+ihqOekuuOBl+OBpuOBhOOBvuOBmeOAgeWkieabtOOBmeOCi+OBq+OBr+ioreWumuOCkuabtOaWsOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfjgZnjgbnjgabjga7jgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4jjg6bjg7zjgrbjg7zjgpLooajnpLrjgZfjgabjgYTjgb7jgZnjgIHlpInmm7TjgZnjgovjgavjga/oqK3lrprjgpLmm7TmlrDjgZfjgabjgY/jgaDjgZXjgYTjgIInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAn5pmC6ZaT5Lya6KiIIOODl+ODreOCuOOCp+OCr+ODiOioreWumuOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ+aWsOimj+ODl+ODreOCuOOCp+OCr+ODiOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ+ioreWumuOBq+enu+WLleOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ+aWsOimj+ODl+ODreOCuOOCp+OCr+ODiOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjga7nt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ+WQjOWQjeOBruODl+ODreOCuOOCp+OCr+ODiOOBjOWtmOWcqOOBl+OBvuOBmeOAguWQjeensOOCkuWkieabtOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ+ioreWumuOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ+aWsOimj+OCv+OCueOCr+OBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOAgeOCv+OCueOCr+OAgeOBvuOBn+OBr+ODpuODvOOCtuODvOOBruODleOCo+ODq+OCv+ODquODs+OCsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ+aZgumWk+OBr+WJiumZpOOBp+OBjeOBvuOBm+OCkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jkuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn44K/44K544Kv5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn5paw6KaP44K/44K544Kv44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ+OCv+OCueOCr+ioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5ZCM5ZCN44Gu44K/44K544Kv44GM5a2Y5Zyo44GX44G+44GZ44CC5ZCN56ew44KS5aSJ5pu044GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ+ODpuODvOOCtuS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAn44Om44O844K244O86Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAn44Om44O844K244O844Gv44Kq44O844OQ44O844K/44Kk44Og44KS6KaL44KL44GT44Go44GM44Gn44GN44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfotoXpgY7li6Tli5njgpLooajnpLonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ+ODpuODvOOCtuODvOOBr+ODl+ODreOCuOOCp+OCr+ODiOOCkuS9nOaIkOOBp+OBjeOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn44OX44Ot44K444Kn44Kv44OI44Gu5paw6KaP6L+95Yqg44KS6Kix5Y+v44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJ+ODpuODvOOCtuODvOOBr+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOOBruOCueOCreODg+ODl+OCkuioseWPr+OBleOCjOOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjga7jgrnjgq3jg4Pjg5fjgpLoqLHlj6/jgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfjgZPjga7jgqrjg5fjgrfjg6fjg7PjgYzpgbjmip7jgZXjgozjgovjgajjgIHjg6bjg7zjgrbjg7zjgavlr77jgZnjgovjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjgYzjgqrjg5fjgrfjg6fjg7PpoIXnm67mibHjgYTjgajjgarjgorjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAn5pyq5YWl5Yqb44Gu44Ko44Oz44OI44Oq44Gr5a++44GZ44KL6K2m5ZGK44KE44CB44Ko44Oz44OI44Oq44G444Gu5YWl5Yqb44KS5by35Yi244GZ44KL6KGo56S644Gv44Gq44GP44Gq44KK44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICfmnJ/plpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn6ZaL5aeL54K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfntYLkuobngrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ+S8keaahyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ+aZgumWkyAvIOmAsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn5om/6KqN5riI44Gu6LaF6YGO5Yuk5YuZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfjgrnjgr/jg7zjg4jml6Xku5gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn5q2j44GX44GE5pel5LuY44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn57WC5LqG5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn57WC5LqG54K544Gu5YmN44Gr6ZaL5aeL54K544KS6Kit5a6a44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfkvJHmmofml6XmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn6YCx44GC44Gf44KK44Gu5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn5q6L5qWt5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfmnJ/plpPjgYzmnKroqK3lrprjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn5pyf6ZaT44KS6L+95Yqg44GX44Gm44GP44Gg44GV44GE44CCJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ+OCv+OCpOODoOODu+ODrOOCs+ODvOODieOCkuihqOekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ+S4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfliY3jga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfmrKHjga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn6Kmy5b2T44GZ44KL44OH44O844K/44GM44GC44KK44G+44Gb44KT44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ+W3peaVsOOCkuaMv+WFpeOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn5YmN44OX44Ot44K444Kn44Kv44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ+S4jeato+OBquaZgumWk+OBp+OBmSEgMeaXpeOBrzI05pmC6ZaT44Gn44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICflt6XmlbDjgpLliYrpmaTjgafjgY3jgb7jgZvjgpPvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICflhaXlipvjgZXjgozjgZ/ml6Xku5jjga/mnJ/plpPlpJbjgafjgZnjga7jgafjgIHmjL/lhaXjgZnjgovkuovjga/jgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/jgILjgoLjgYbkuIDluqYoISnml6Xku5jjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfmnKrlrozkuobjga7lj6/li5Xml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44KS5YWl5Yqb5Lit44Gr44Ko44Op44O844GM55m655Sf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44Gr44KP44Gf44KL56i85YON5a6f57i+44Gu5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ+WFpeWKm+OBleOCjOOBn+aXpeS7mOOBr+S4jeato+OBp+OBmSAhIOaXpeS7mOOBr+acrOaXpeOBq+WkieabtOOBleOCjOOBvuOBl+OBnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfmjIflrprjgZXjgozjgZ/mnJ/plpPjgYzoqK3lrprjgZXjgozjgabjgYTjgarjgYTjgYvjgIHjgb7jgZ/jga/mjIflrprjgZXjgozjgZ/ml6Xku5jjgYzlrprnvqnjgZXjgozjgZ/mnJ/plpPlpJbjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ+WLpOaAoOeuoeeQhuaLheW9k+iAheOBq+mAo+e1oeOBl+OBpuacn+mWk+OCkuabtOaWsOOBl+OBpuOBj+OBoOOBleOBhO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAn5YmN5Zue6YG45oqe44GV44KM44Gf44OX44Ot44K444Kn44Kv44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ+WFqOODl+ODreOCuOOCp+OCr+ODiCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdSZXBvcnRpbmdQcm9qZWN0OiDjg5fjg63jgrjjgqfjgq/jg4hJROOBruWFpeWKm+OBjOW/heimgeOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOCkuWgseWRiuOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICfloLHlkYrjgZnjgosnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAn44Om44O844K244O86Kit5a6a44KS5pu05paw44Gn44GN44G+44Gb44KT77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAn44OX44Ot44K444Kn44Kv44OI44KS6L+95Yqg44GX44G+44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjgpLmm7TmlrDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICfjgr/jgrnjgq/jgpLov73liqDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ+OCv+OCueOCr+OCkuabtOaWsOOBl+OBvuOBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdVc2VySUQg44GM54Sh5Yq544Gn44GZ77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ+ODpuODvOOCtuODvOODh+ODvOOCv+OBjOaMv+WFpeOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ+acn+mWk+OCkui/veWKoOOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfjg6bjg7zjgrbjg7zjgpLmm7TmlrDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfjg6bjg7zjgrbjg7zjgpLov73liqDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjgavjg6bjg7zjgrbjg7zjgpLov73liqAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfmlrDopo/jg6bjg7zjgrbjg7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ+acn+mWk+OBrueKtuaFiyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAn5rOo55uu77yB77yaICVzIOOBruWFpeWKm+OBjOW/heimgeOBp+OBmeOAgic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn5Yuk5YuZ5a6f57i+44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn5pyq5a6M5LqG44Gu5Y+v5YuV5pelJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ+WwkeOBquOBj+OBqOOCguS4gOaXpeOBr+mBuOaKnuOBl+OBpuOBj+OBoOOBleOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn5YWo5L2T5YWl5YqbJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAn5qyg5Yuk55CG55Sx44KS6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn44Ko44Oz44OI44Oq44O844KS5YmK6ZmkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAn5oy/5YWl44Gu56K66KqNJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn44Om44O844K244Gu5LiN5a6M5YWo44Gq56i85YON5pel5pWw44KS44Kr44Km44Oz44OI44GX6YCa55+l44GZ44KL44Ko44O844K444Kn44Oz44OI44O744Kk44Oz44K/44O844OV44Kn44Kk44K544Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn5paw6KaP5pON5L2c44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu5ZCN56ewJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ+aWsOimj+ODl+ODreOCuOOCp+OCr+ODiOOBq+WvvuOBmeOCi+ODh+ODleOCqeODq+ODiOOBruWQjeensCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ+OAjOe1guS6huaXpeOAjeOBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn44CM6ZaL5aeL5pel44CN44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAn44CM6Kqs5piO5paH44CN44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfjgIzkvJHmmofjgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICfjgIzotoXpgY7li6Tli5njgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ+mAseOBguOBn+OCiuWfuuacrOeovOWDjeaZgumWk+OBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn5paw6KaP5pON5L2c44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAn5paw6KaP44Om44O844K244Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ+OAjOazqOmHiOOAjeOCqOODs+ODiOODquODvOOCkuW/heimgeOBqOOBmeOCi+mgheebruOCkuWumue+qeOBl+OBvuOBmeOAgiDjgoLjgZfjg5fjg63jgrjjgqfjgq/jg4jlkI3jgYzjgZPjgZPjgafoqK3lrprjgZfjgZ/mraPopo/ooajnj77jgavjg57jg4Pjg4HjgZnjgovloLTlkIjjgIHjgIzms6jph4jvvZ3jga/lv4XpoIjpoIXnm67jgajjgarjgorjgb7jgZnjgILigLvmraPopo/ooajnj77jgavjga9TTVjjg5Hjg6njg6Hjg7zjgr/jgpLkvb/jgYTjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ+e1seioiOODouOCuOODpeODvOODq+OBjOOCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOaDheWgseOCkueUn+aIkOOBmeOCi+OBi+mBuOaKnuOBl+OBpuOBj+OBoOOBleOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfmmYLplpPkvJroqIjjga7oqK3lrprjgpLnt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICfjgr/jgqTjg6Djg6zjgrPjg7zjg4njgpLnt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn5L2V5pel5YmN44GL44KJ44Ov44O844Kt44Oz44Kw44O744Om44OL44OD44OI44Gu5paw6KaP55m76Yyy44GM5Y+v6IO944Gn44GC44KL44GL44Gu6Kit5a6a44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+OAgeipsuW9k+OBruODl+ODreOCuOOCp+OCr+ODiOOBq+eovOWDjeaZgumWk+OCkuaKleWFpeOBl+OBpuOBhOOCi+ODpuODvOOCtuODvOOBruOBv+ihqOekuuOBleOCjOOBvuOBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAn5pyJ5Yq55pmC44Gr44Gv44CB57eo6ZuG55S76Z2i44Gu44OJ44Ot44OD44OX44OA44Km44Oz44Ko44Os44Oh44Oz44OI44Gv6Ieq5YuV44OV44Kj44O844Or44OJ44Gr572u44GN5o+b44GI44KJ44KM44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+S7peWJjeOBruODl+ODreOCuOOCp+OCr+ODiOODleOCo+ODq+OCv+ODvOOCkumBuOaKnuOBmeOCi+OBk+OBqOOBjOWPr+iDveOBp+OBmSjpgJrluLjjga/liY3lm57jgYrjgojjgbPjgZnjgbnjgaYp44CC44GT44Gu6aCF55uu44GvIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiDjgYzmnInlirnjgavjgarjgaPjgabjgYTjgovmmYLjga7jgb/liKnnlKjlj6/og70nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+OAjOS7peWJjeOBruODl+ODreOCuOOCp+OCr+ODiOOAjeOBjOWtmOWcqOOBmeOCi+aZguOBr+OAgeS7peWJjeOBruODl+ODreOCuOOCp+OCr+ODiOODleOCo+ODq+OCv+ODvOOBjOODh+ODleOCqeODq+ODiOWApOOBq+OBquOCiuOBvuOBmeOAguOBk+OBrumgheebruOBryBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIOOBjOacieWKueOBq+OBquOBo+OBpuOBhOOCi+aZguOBruOBv+WIqeeUqOWPr+iDvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn5pyJ5Yq544Gr44GZ44KM44Gw5LiA5Zue44Gu57eo6ZuG44Gn44CB6KSH5pWw44Gu5pel44Gr5rih44KK44CM5LyR5pqH44CN44CM55eF5qyg44CN44CM5Luj5LyR44CN44GM6YG45oqe44Gn44GN44G+44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnMeOBpOS7peS4iuOBruODr+ODvOOCreODs+OCsOODu+ODpuODi+ODg+ODiOOCkuioreWumuOBmeOBueOBjeacgOWkp+OBrueovOWDjeaXpeaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn6K2m5ZGK44GM6KGo56S644GV44KM44KL44GT44Go44Gq44GP44Ko44Oz44OI44Oq5Ye65p2l44KL44CB5Za25qWt5pel44Gu5pyA5aSn5pel5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ+amguimgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOWIpeaZgumWk+S8muioiOODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn44OX44Ot44K444Kn44Kv44OI44Gr44KI44Gj44Gm6KGM5YuV44Oq44K544OI44KS57We44KK6L6844KA44Gf44KB44Gu5q2j6KaP6KGo54++44CC44CM6Y2144CN44Gn44Gv44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL5q2j6KaP6KGo54++44KS44CB44CM5YaF5a6544CN44Gn44GvYOihjOWLlWDjgavlr77jgZnjgovmraPopo/ooajnj77jgpLmjIflrprjgZnjgovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAn44Om44O844K244Kw44Or44O844OX44Gr44KI44Gj44Gm44OX44Ot44K444Kn44Kv44OI44Oq44K544OI44KS57We44KK6L6844KA44Gf44KB44Gu5q2j6KaP6KGo54++44CC44CM6Y2144CN44Gn44Gv44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL5q2j6KaP6KGo54++44KS44CB44CM5YaF5a6544CN44Gn44Gv44Kr44Oz44Oe5Yy65YiH44KK44Gu44Om44O844K244Oq44K544OI44KS5oyH5a6a44GZ44KL44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICfmpa3li5nmmYLplpPjgpLjgIzplovlp4vmmYLplpPjgI3jgajjgIzntYLkuobmmYLplpPjgI3jga7mjIflrprjg4rjgrfjgafmlrDopo/nmbvpjLLjgafjgY3jgovjgYvjganjgYbjgYvmjIflrprjgZnjgovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnVGltZUFjY291bnRpbmfjg6Ljgrjjg6Xjg7zjg6vjgajlkIznrYnjga7poIXnm67jgYzoqK3lrprlv4XpoIjjgajjgarjgorjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfjgYLjgb7jgorjgavjgoLlpJrjgY/jga7kuI3lrozlhajjgarnqLzlg43ml6XjgYzjgYLjgovloLTlkIjjgIHjgZPjga7pgJrnn6Xjg6Ljgrjjg6Xjg7zjg6vjga/orablkYrjgpLkuI7jgYjjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44KwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ+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+WgtOWQiOOAjOmNteOAjeOBq2Bqb3VybmV5YOOAgeOAjOWGheWuueOAjeOBq2A1MGDjgajoqK3lrpopJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om1rX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn0JTQsNC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LXQutCwINGB0LDQutCw0YLQtSDQtNCwINCz0Lgg0LjQt9Cx0YDQuNGI0LXRgtC1INCy0YDQtdC80LjRmtCw0YLQsCDQt9CwINC+0LLQvtGYINC00LXQvT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn0JjQt9C80LXQvdC4INCX0LDQv9C40YHQuCDQt9CwINCS0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICfQntC00Lgg0LLQviDQv9C+0LTQtdGB0YPQstCw0ZrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40ZjQsCDRgdC/0L7RgNC10LQg0JTQsNGC0YPQvCAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfQlNC10L3QvtCy0Lgg0LHQtdC3INC30LDQv9C40YHQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICfQntC30L3QsNGH0Lgg0LPQuCDRgdC40YLQtSDQtNC10L3QvtCy0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ9Cc0LDRgdC+0LLQtdC9INCy0L3QtdGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAn0JLQtSDQvNC+0LvQuNC80LUg0LjQt9Cx0LXRgNC10YLQtSDQv9GA0LjRh9C40L3QsCDQt9CwINCy0LDRiNC10YLQviDQvtGC0YHRg9GB0YLQstC+INCy0L4g0L7Qt9C90LDRh9C10L3QuNGC0LUg0LTQtdC90L7QstC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAn0J3QsCDQvtC00LzQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICfQntGC0YHRg9GC0LXQvSDQv9C+0YDQsNC00Lgg0LHQvtC70LXRgdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J/RgNC10LrRg9Cy0YDQtdC80LXQvdC+INC+0YLRgdGD0YHRgtCy0L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICfQl9Cw0LTQvtC70LbQuNGC0LXQu9C90LjRgtC1INC/0L7Qu9C40ZrQsCDRgdC1INC+0LfQvdCw0YfQtdC90Lgg0YHQviAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn0KLRgNC10LHQsCDQtNCwINGB0LUg0LLQvdC10YHQtSDQv9C+0YfQtdGC0L3QviDQuCDQutGA0LDRmNC90L4g0LLRgNC10LzQtSDQuNC70Lgg0LLRgNC10LzQtdC90YHQutC4INC/0LXRgNC40L7QtC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ9Cf0YDQvtC10LrRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn0JfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ9Cd0LDQv9C+0LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LPQsNGC0LjQstC90L4g0LLRgNC10LzQtSDQvdC1INC1INC00L7Qt9Cy0L7Qu9C10L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9CU0YPQv9C70LjRgNCw0ZrQtSDQvdCwINGH0LDRgdC+0LLQuCDQvdC1INC1INC00L7Qt9Cy0L7Qu9C10L3Qvi4g0JLRgNC10LzQtSDQvdCwINC/0L7Rh9C90YPQstCw0ZrQtSDRgdC1INGB0L7QstC/0LDRk9CwINGB0L4g0LTRgNGD0LMg0LjQvdGC0LXRgNCy0LDQuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ9Cd0LXQstCw0LvQuNC00LXQvSDRhNC+0YDQvNCw0YIhINCS0L3QtdGB0LXRgtC1INCy0YDQtdC80LUg0YHQviDRhNC+0YDQvNCw0YIg0KfQpzrQnNCcLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCDQtSDQtNC+0LfQstC+0LvQtdC90L4g0YHQsNC80L4g0LrQsNC60L4g0LrRgNCw0Zgg0L3QsCDQstGA0LXQvNC10YLQvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0YfQsNGBISDQlNC10L3QvtGCINC40LzQsCDRgdCw0LzQviAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ9CS0YDQtdC80LUg0L3QsCDQt9Cw0LLRgNGI0YPQstCw0ZrQtSDRgtGA0LXQsdCwINC00LAg0LHQuNC00LUg0L/QviDQv9C+0YfQtdGC0L3QvtGC0L4g0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQlNGD0L/Qu9C40YDQsNGa0LUg0L3QsCDRh9Cw0YHQvtCy0Lgg0L3QtSDQtSDQtNC+0LfQstC+0LvQtdC90L4uINCS0YDQtdC80LUg0L3QsCDQt9Cw0LLRgNGI0YPQstCw0ZrQtSDRgdC1INGB0L7QstC/0LDRk9CwINGB0L4g0LTRgNGD0LMg0LjQvdGC0LXRgNCy0LDQuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQstCw0LvQuNC00LXQvSDQv9C10YDQuNC+0LQhINCU0LXQvdC+0YIg0LjQvNCwINGB0LDQvNC+IDI0INGH0LDRgdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ9CS0LDQu9C40LTQvdC40L7RgiDRgNC+0Log0LzQvtGA0LAg0LTQsCDQtSDQv9C+0LPQvtC70LXQvCDQvtC0INC90YPQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J3QtdCy0LDQu9C40LTQtdC9INC/0LXRgNC40L7QtCEg0J3QtdCz0LDRgtC40LLQvdC4INC/0LXRgNC40L7QtNC4INC90LUg0YHQtSDQtNC+0LfQstC+0LvQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn0JTQvtC00LDQtNC4INC10LTQtdC9INGA0LXQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ9Cc0L7QttC10YLQtSDQtNCwINC40LfQsdC10YDQtdGC0LUg0YHQsNC80L4g0LXQtNC10L0g0L/QvtC70LUg0L7QtCDQtdC70LXQvNC10L3RgiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ9CU0LDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNC10LrQsCDRgdGC0LUg0YDQsNCx0L7RgtC10LvQtSDQtNC+0LTQtdC60LAg0YHRgtC1INCx0LjQu9C1INC90LAg0LHQvtC70LXQtNGD0LLQsNGa0LU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0JTQsNC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LXQutCwINGB0YLQtSDRgNCw0LHQvtGC0LXQu9C1INC00L7QtNC10LrQsCDRgdGC0LUg0LHQuNC70LUg0L3QsCDQvtC00LzQvtGAPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn0JTQsNC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LXQutCwINGB0YLQtSDRgNCw0LHQvtGC0LXQu9C1INC00L7QtNC10LrQsCDRgdGC0LUg0LHQuNC70LUg0L3QsCDQv9GA0LXQutGD0LLRgNC10LzQtdC90L4g0L7RgtGB0YPRgdGC0LLQviA/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ9CU0LDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNC10LrQsCDRgdGC0LUg0YDQsNCx0L7RgtC10LvQtSDQv9C+0LLQtdGc0LUg0L7QtCAxNiDRh9Cw0YHQsD8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ9CS0YDQtdC80LXQvdGB0LrQviDQuNC30LLQtdGB0YLRg9Cy0LDRmtC1INC30LAg0LzQtdGB0LXRh9C10L0g0L/RgNC10LPQu9C10LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ9Cf0YDQtdC60YPQstGA0LXQvNC10L3QsCDRgNCw0LHQvtGC0LAgKNCn0LDRgdC+0LLQuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAn0J/RgNC10LrRg9Cy0YDQtdC80LXQvdCwINGA0LDQsdC+0YLQsCAo0L7QstC+0Zgg0LzQtdGB0LXRhiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ9Cf0YDQtdC60YPQstGA0LXQvNC10L3QsCDRgNCw0LHQvtGC0LAgKNCy0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J/RgNC10L7RgdGC0LDQvdCw0YLQviDQv9GA0LXQutGD0LLRgNC10LzQtdC90L4g0L7RgtGB0YPRgdGC0LLQviAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7QtNC80L7RgCAo0LLQviDQtNC10L3QvtCy0LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CY0YHQutC+0YDQuNGB0YLQtdC9INC+0LTQvNC+0YAgKNC+0LLQvtGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQmNGB0LrQvtGA0LjRgdGC0LXQvSDQvtC00LzQvtGAICjQstC60YPQv9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ9Cf0YDQtdC+0YHRgtCw0L3QsNGCINC+0LTQvNC+0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfQkdC+0LvQtdC00YPQstCw0ZrQsCAo0LLQviDQtNC10L3QvtCy0LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn0JHQvtC70LXQtNGD0LLQsNGa0LUgKNC+0LLQvtGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9CR0L7Qu9C10LTRg9Cy0LDRmtCwICjQstC60YPQv9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAn0J/RgNC10YLRhdC+0LTQtdC9INC80LXRgdC10YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ9Ch0LvQtdC00LXQvSDQvNC10YHQtdGGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICfQlNC10L0g0LLQviDRgdC10LTQvNC40YbQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ9Cg0LDQsdC+0YLQvdC4INCn0LDRgdC+0LLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICfQktC60YPQv9C90L4g0L7QtNGA0LDQsdC+0YLQtdC90Lgg0YfQsNGB0L7QstC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ9Cf0YDQtdCz0LvQtdC0INC90LAg0JrQvtGA0LjRgdC90LjRh9C60Lgg0J/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ9Cn0LDRgdC+0LLQuCAo0LzQtdGB0LXRh9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICfQp9Cw0YHQvtCy0LggKNCy0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfQodC10LLQutGD0L/QvdC+JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ9CY0LfQstC10YHRgtGD0LLQsNGa0LUg0LfQsCDQktGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40ZjQsCDRgdC/0L7RgNC10LQg0JzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn0J7QtNC4INC00L4g0LTQsNGC0YPQvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICfQmtC+0YDQuNGB0L3QuNGH0LrQuCDQuNC30LLQtdGI0YLQsNGY0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ9CS0LrRg9C/0L3QviDQt9CwINCc0LXRgdC10YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQodC10LLQutGD0L/QvdC+ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ9Cf0YDQtdC60YPQstGA0LXQvNC10L3QviDQvtGC0YHRg9GB0YLQstC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnT9C00LzQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfQkdC+0LvQtdC00YPQstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfQv9GA0LXQvtGB0YLQsNC90LDRgiDQntC00LzQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ9CY0LfQstC10YjRgtCw0ZjQuCDQt9CwINCf0YDQvtC10LrRgtC4JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfQuNC30LLQtdGI0YLQsNGYINC30LAg0J/RgNC+0LXQutGC0L7Rgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfQntC00Lgg0LLQviDQv9GA0LXQs9C70LXQtCDQvdCwINC40LfQstC10YjRgtCw0ZjQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ9Cc0L7QvNC10L3RgtCw0LvQvdC+INGB0LUg0L/RgNC40LrQsNC20LDQvdC4INGB0LDQvNC+INCw0LrRgtC40LLQvdC40YLQtSDQutC+0YDQuNGB0L3QuNGG0Lgg0L3QsCDQvtCy0L7RmCDQv9GA0L7QtdC60YIuINCX0LAg0LTQsCDQs9C+INGB0LzQtdC90LjRgtC1INC+0LLQsCwg0LLQtSDQvNC+0LvQuNC80LUg0L3QsNC/0YDQsNCy0LXRgtC1INC40LfQvNC10L3QsCDQstC+INC/0L7QtNC10YHRg9Cy0LDRmtCw0YLQsDonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0JzQvtC80LXQvdGC0LDQu9C90L4g0YHQtSDQv9GA0LjQutCw0LbQsNC90Lgg0YHQsNC80L4g0LrQvtGA0LjRgdC90LjRhtC4INC60L7QuCDQv9GA0LXRgdC80LXRgtGD0LLQsNCw0YIg0LLRgNC10LzQtS4g0JfQsCDQtNCwINCz0L4g0YHQvNC10L3QuNGC0LUg0L7QstCwLCDQstC1INC80L7Qu9C40LzQtSDQvdCw0L/RgNCw0LLQtdGC0LUg0LjQt9C80LXQvdCwINCy0L4g0L/QvtC00LXRgdGD0LLQsNGa0LDRgtCwOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfQmNC30LzQtdC90Lgg0J/QvtC00LXRgdGD0LLQsNGa0LAg0LfQsCDQn9GA0LXRgdC80LXRgtGD0LLQsNGa0LUg0L3QsCDQktGA0LXQvNC1INC90LAg0J/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn0JTQvtC00LDQtNC4INC/0YDQvtC10LrRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ9Ce0LTQuCDQstC+INC/0YDQtdCz0LvQtdC0INC90LAg0L/QvtC00LXRgdGD0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICfQlNC+0LTQsNC00Lgg0J/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9Cj0YDQtdC00Lgg0LPQviDQn9C+0LTQtdGB0YPQstCw0ZrQsNGC0L4g0L3QsCDQn9GA0L7QtdC60YLQvtGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10ZzQtSDQv9C+0YHRgtC+0Lgg0L/RgNC+0LXQutGCINGB0L4g0LLQsNC60LLQviDQuNC80LUsINCy0LUg0LzQvtC70LjQvNC1LCDQuNC30LHQtdGA0LXRgtC1INC00YDRg9Cz0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn0JjQt9C80LXQvdC4INCf0L7QtNC10YHRg9Cy0LDRmtCwINC30LAg0J/RgNC10YHQvNC10YLRg9Cy0LDRmtC1INC90LAg0JLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ9CU0L7QtNCw0LTQuCDQt9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0JvQuNGB0YLQsCDQvdCwINC/0YDQvtC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ9Cb0LjRgdGC0LAg0L3QsCDQl9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LTQsNC00Lgg0JfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQn9C+0LTQtdGB0YPQstCw0ZrQsCDQt9CwINCX0LDQtNCw0YfQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0JLQtdGc0LUg0L/QvtGB0YLQvtC4INC30LDQtNCw0YfQsCDRgdC+INCy0LDQutCy0L4g0LjQvNC1LiDQktC1INC80L7Qu9C40LzQtSDQuNC30LHQtdGA0LXRgtC1INC00YDRg9Cz0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ9Cb0LjRgdGC0LAg0L3QsCDQmtC+0YDQuNGB0L3QuNGG0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAn0J/RgNC40LrQsNC20Lgg0J/RgNC10LrRg9Cy0YDQtdC80LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9CU0L7Qt9Cy0L7Qu9C4INC60YDQtdC40YDQsNGa0LUg0L3QsCDQv9GA0L7QtdC60YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ9Cf0L7Rh9C10YLQvtC6INC90LAg0J/QtdGA0LjQvtC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfQmtGA0LDRmCDQvdCwINCf0LXRgNC40L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn0JTQtdC90L7QstC4INC90LAg0J7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ9Cn0LDRgdC+0LLQuCDQstC+INCd0LXQtNC10LvQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn0JDQstGC0L7RgNC40LfQuNGA0LDQvdC+INCf0YDQtdC60YPQstGA0LXQvNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0J/QvtGH0LXRgtC+0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn0JLQtSDQvNC+0LvQuNC80LUg0LLQvdC10YHQtdGC0LUg0LLQsNC70LjQtNC10L0g0LTQsNGC0YPQvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfQmtGA0LDRmCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ9Ca0YDQsNGY0L7RgiDQvNC+0YDQsCDQtNCwINCx0LjQtNC1INC/0YDQtdC0INC/0L7Rh9C10YLQvtC60L7Rgi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ9CU0LXQvdC+0LLQuCDQstC+INCe0YLRgdGD0YHRgtCy0L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn0KfQsNGB0L7QstC4INCd0LXQtNC10LvQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn0J/RgNC10LrRg9Cy0YDQtdC80LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfQndC1INGB0LUg0L/RgNC+0L3QsNGY0LTQtdC90Lgg0LfQsNC/0LjRgdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICfQktC90LXRgdC4INCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn0J/RgNC10LPQu9C10LTQsNGYINCS0YDQtdC80LXQvdGB0LrQuCDQl9Cw0L/QuNGB0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICfQn9GA0LXQs9C70LXQtCDQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9Cf0YDQtdGC0YXQvtC00LXQvSDQtNC10L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQodC70LXQtNC10L0g0LTQtdC9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ9Cd0LUg0YHQtSDQv9GA0L7QvdCw0ZjQtNC10L3QuCDQt9Cw0L/QuNGB0Lgg0LfQsCDQvtCy0L7RmCDQtNC10L0uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ9Cj0YHQv9C10YjQtdC9INCy0L3QtdGBISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn0JPRgNC10YjQutCwINC/0YDQuCDQstC80LXRgtC90YPQstCw0ZrQtSDQvdCwINC/0L7QstC10ZzQtSDQtNCw0YLRg9C80LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ9Cj0YHQv9C10YjQvdC+INGB0LUg0LLQvdC10YHQtdC90Lgg0L/QvtC00LDRgtC+0YbQuNGC0LUg0LfQsCDQtNCw0YLRg9C80LjRgtC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAn0JLQvdC10YHQtdC90LjQvtGCINC00LDRgtGD0Lwg0LHQtdGI0LUg0LLQsNC70LjQtNC10L0hINCU0LDRgtGD0Lwg0LHQtdGI0LUg0L/RgNC+0LzQtdC90LXRgtC+INC00L4g0LTQtdC90LXRgS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ9CY0LfQstC10YHRgtGD0LLQsNGa0LAnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICfQn9C+0LTQtdGB0YPQstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn0JLQtSDQvNC+0LvQuNC80LUg0LLQvdC10YHQtdGC0LUg0LPQviDQstCw0YjQtdGC0L4g0YDQsNCx0L7RgtC90L7RgtC+INCy0YDQtdC80LUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ9CS0LUg0LzQvtC70LjQvNC1INC40LfQsdC10YDQtdGC0LUg0LHQsNGA0LXQvCDQtdC00LXQvSDQtNC10L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICfQnNCw0YHQvtCy0LXQvSDQktC90LXRgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ9CS0LUg0LzQvtC70LjQvNC1INC40LfQsdC10YDQtdGC0LUg0ZjQsCDQv9GA0LjRh9C40L3QsCDQt9CwINC+0YLRgdGD0YHRgtCy0L4hJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn0JjQt9Cx0YDQuNGI0Lgg0LPQviDQktC90LXRgdC+0YIg0YHQviDQn9GA0LXRgdC80LXRgtCw0L3QviDQktGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAn0J/RgNC40YTQsNGC0Lgg0LTQvtC00LDQstCw0ZrQtSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0LvQsCDQt9CwINC40L3RgtC10YDRhNC10ZjRgSDQvdCwINCQ0LPQtdC90YIg0LfQsCDQtNCwINCz0L4g0LPQu9C10LTQsCDQsdGA0L7RmNC+0YIg0L3QsCDQvdC10LfQsNCy0YDRiNC10L3QuCDRgNCw0LHQvtGC0L3QuCDQtNC10L3QvtCy0Lgg0LfQsCDQutC+0YDQuNGB0L3QuNC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ9CS0L7QvtCx0LjRh9Cw0LXQvdC+INC40LzQtSDQt9CwINC90L7QstC4INCw0LrRhtC40LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ9CS0L7QvtCx0LjRh9Cw0LXQvdC+INC40LzQtSDQt9CwINC90L7QstC4INC/0YDQvtC10LrRgtC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ9CS0L7QvtCx0LjRh9Cw0LXQvdC+INC/0L7QtNC10YHRg9Cy0LDRmtC1INC30LAg0LrRgNCw0LXQvSDQtNCw0YLRg9C8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn0JLQvtC+0LHQuNGH0LDQtdC90L4g0L/QvtC00LXRgdGD0LLQsNGa0LUg0LfQsCDQv9C+0YfQtdGC0LXQvSDQtNCw0YLRg9C8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ9CS0L7QvtCx0LjRh9Cw0LXQvdC+INC/0L7QtNC10YHRg9Cy0LDRmtC1INC30LAg0L7Qv9C40YEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfQktC+0L7QsdC40YfQsNC10L3QviDQv9C+0LTQsNGB0YPQstCw0ZrQtSDQt9CwINC+0YLRgdGD0YHRgtCy0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn0JLQvtC+0LHQuNGH0LDQtdC90L4g0L/QvtC00LDRgdGD0LLQsNGa0LUg0LfQsCDQv9GA0LXQutGD0LLRgNC10LzQtdC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICfQktC+0L7QsdC40YfQsNC10L3QviDQv9C+0LTQsNGB0YPQstCw0ZrQtSDQt9CwINGB0YLQsNC90LTQsNGA0LTQtdC9INCx0YDQvtGYINC90LAg0YDQsNCx0L7RgtC90Lgg0YfQsNGB0L7QstC4INCy0L4g0L3QtdC00LXQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn0JLQvtC+0LHQuNGH0LDQtdC9INGB0YLQsNGC0YPRgSDQt9CwINC90L7QstC4INCw0LrRhtC40LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0JLQvtC+0LHQuNGH0LDQtdC9INGB0YLQsNGC0YPRgSDQt9CwINC90L7QstC4INC/0YDQvtC10LrRgtC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ9CS0L7QvtCx0LjRh9Cw0LXQvSDRgdGC0LDRgtGD0YEg0LfQsCDQvdC+0LLQuCDQutC+0YDQuNGB0L3QuNGG0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGA0LAg0L/RgNC+0LXQutGCINC30LAg0LrQvtGYINC1INC/0L7RgtGA0LXQsdC90L4g0LfQsNCx0LXQu9C10YjQutCwLiDQlNC+0LrQvtC70LrRgyBSZWdFeHAg0YHQtSDRgdC+0YTQv9Cw0ZPQsCDRgdC+INC+0LLQvtGYINC/0YDQvtC10LrRgiwg0YLQvtCz0LDRiCDQtSDQv9C+0YLRgNC10LHQvdC+INC00LAg0LLQvdC10YHQtdGC0LUg0LfQsNCx0LXRh9C10YjQutCwLiBSZWdFeHAg0LrQvtGA0LjRgdGC0Lggc214INC/0LDRgNCw0LzQtdGC0LDRgC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10LTRg9Cy0LAg0LTQsNC70Lgg0LzQvtC00YPQu9C+0YIg0LfQsCDRgdGC0LDRgtC40YHRgtC40LrQsCDQvNC+0LbQtSDQtNCwINCz0LXQvdC10YDQuNGA0LAg0LjQvdGE0L7RgNC80LDRhtC40Lgg0LfQsCDQv9GA0LXRgdC80LXRgtC60LAg0L3QsCDQstGA0LXQvNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn0JfQsCDQutC+0LvQutGDINC80L3QvtCz0YMg0LTQtdC90L7QstC4INC/0YDQtdC0INC80L7QttC10YLQtSDQtNCwINCy0LzQtdGC0L3QtdGC0LUg0YDQsNCx0L7RgtC90Lgg0LXQtNC40L3QuNGG0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ9CQ0LrQviDQtSDQvtCy0L7Qt9C80L7QttC10L3Qviwg0YHQsNC80L4g0LrQvtGA0LjRgdC90LjRhtC40YLQtSDQutC+0Lgg0ZzQtSDQtNC+0LTQsNC00LDRgiDRgNCw0LHQvtGC0L3QvtGC0L4g0LLRgNC10LzQtSDQvdCwINC40LfQsdGA0LDQvdC40YLQtSDQv9GA0L7QtdC60YLQuCAg0ZzQtSDQsdC40LTQsNGCINC/0YDQuNC60LDQttCw0L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn0JDQutC+INC1INC+0LLQvtC30LzQvtC20LXQvdC+LCDQvdCwINC60L7RgNC40YHQvdC40LrQvtGCINGc0LUg0LzRgyDQsdC40LTQtSDQtNC+0LfQstC+0LvQtdC90L4g0LTQsCDigJ7QkdC+0LvQtdC00YPQstCw4oCcLCDQtNCwINGA0LDQsdC+0YLQuCDigJ7Qn9GA0LXQutGD0LLRgNC10LzQtdC90L7igJwg0Lgg0LTQsCDQt9C10LzQsCDigJ7QntC00LzQvtGA4oCcINC/0L7QstC10ZzQtSDQv9Cw0YLQuCDQvtC00LXQtNC90LDRiC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70LXQvSDQsdGA0L7RmCDQvdCwINGA0LDQsdC+0YLQvdC4INC00LXQvdC+0LLQuCDQv9C+INGI0YLQviDRgNCw0LHQvtGC0L3QuNGC0LUg0LXQtNC40L3QuNGG0Lgg0YLRgNC10LHQsCDQtNCwINGB0LUg0LLQvNC10YLQvdCw0YIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70LXQvSDQsdGA0L7RmCDQvdCwINGA0LDQsdC+0YLQvdC4INC00LXQvdC+0LLQuCDQsdC10Lcg0YDQsNCx0L7RgtC90Lgg0LXQtNC40L3QuNGG0Lgg0ZzQtSDQstC70LXQt9Cw0YIsINCwINC/0L7RgtC+0LAg0L/RgNC10LTRg9C/0YDQtdC00YPQstCw0ZrQtSDRnNC1INCx0LjQtNCw0YIg0L/RgNC40LrQsNC20LDQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ9Ch0YLQsNC90LTQsNGA0LTQvdC4INC40LfRgNCw0LfQuCDQt9CwINC+0LPRgNCw0L3QuNGH0YPQstCw0ZrQtSDQvdCwINC70LjRgdGC0LAg0L7QtCDQsNC60YbQuNC4INCy0L4g0L3QsNC30L3QsNGH0LXQvSDQv9GA0L7QtdC60YIuINCa0LvRg9GH0L7RgiDRgdC+0LTRgNC20Lgg0YHRgtCw0L3QtNCw0YDQtNC90Lgg0LjQt9GA0LDQt9C4INC30LAg0L/RgNC+0LXQutGCKNC4KSwg0YHQvtC00YDQttC40L3QsNGC0LAg0YHQvtC00YDQttC4INGB0YLQsNC90LTQsNGA0LTQvdC4INC40LfRgNCw0LfQuCDQt9CwINCw0LrRhtC40ZjQsCjQuCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ9Ch0YLQsNC90LTQsNGA0LTQtdC9INC40LfRgNCw0Lcg0LfQsCDQvtCz0YDQsNC90LjRh9GD0LLQsNGa0LUg0L3QsCDQu9C40YHRgtCwINCy0L4g0L/RgNC+0LXQutGCINGB0L/QvtGA0LXQtCDQutC+0YDQuNGB0L3QuNGH0LrQuNGC0LUg0LPRgNGD0L/QuC4g0JrQu9GD0YfQvtGCINGB0LUg0YHQvtC00YDQttC4INC+0LQg0YHRgtCw0L3QtNCw0YDQtNC90Lgg0LjQt9GA0LDQt9C4INC30LAg0L/RgNC+0LXQutGCKNC4KSwg0YHQvtC00YDQttC40L3QsNGC0LAg0YHQvtC00YDQttC4INC70LjRgdGC0LAg0L7QtCDQs9GA0YPQv9C4INC+0LTQtNC10LvQtdC90Lgg0YHQviDQt9Cw0L/QuNGA0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ9Ch0L/QtdGG0LjRhNC40YbQuNGA0LAg0LTQsNC70Lgg0YDQsNCx0L7RgtC90LjRgtC1INGH0LDRgdC+0LLQuCDQvNC+0LbQsNGCINC00LAg0LHQuNC00LDRgiDQtNC+0LTQsNC00LXQvdC4INCx0LXQtyDQstGA0LXQvNC1INC90LAg0L/QvtGH0LXRgtC+0Log0Lgg0LrRgNCw0ZguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ9Ce0LLQvtGYINC80L7QtNGD0Lsg0L/RgNC40YHQuNC70YPQstCwINCy0L3QtdGBINCy0L4g0J/RgNC10YHQvNC10YLQutCwINC90LAg0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfQntCy0L7RmCDQuNC30LLQtdGB0YLRg9Cy0LDRh9C60Lgg0LzQvtC00YPQuyDQtNCw0LLQsCDQv9GA0LXQtNGD0L/RgNC10LTRg9Cy0LDRmtC1INCw0LrQviDQuNC80LAg0L/RgNC10LzQvdC+0LPRgyDQvdC10YbQtdC70L7RgdC90Lgg0YDQsNCx0L7RgtC90Lgg0LTQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ9Cc0LXQvdCw0Z/QvNC10L3RgiDQvdCwINCS0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn0KPRgNC10LTRg9Cy0LDRmtC1INC90LAgINC80LXQvdCw0Z/QvNC10L3RgiDQvdCwINCS0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ9Cf0YDQtdCz0LvQtdC0INC90LAg0LzQtdC90LDRn9C80LXQvdGCINC90LAg0JLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ9CY0LfQstC10YHRgtGD0LLQsNGa0LUg0LfQsCDQvNC10L3QsNGf0LzQtdC90YIg0L3QsCDQktGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQn9C+0LTQtdGB0YPQstCw0ZrQtSDQvdCwICDQvNC10L3QsNGf0LzQtdC90YIg0L3QsCDQktGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ9Cf0L7Qs9C70LXQtCDQvdCwICDQvNC10L3QsNGf0LzQtdC90YIg0L3QsCDQktGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcg0LzQtdC90LDRn9C80LXQvdGCINC90LAg0JLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICfQodC1INC60L7RgNC40YHRgtC4INC60L7Qs9CwINC90LXQutC+0Lgg0LDQutGG0LjQuCDQs9C+INGB0LzQsNC70YPQstCw0LDRgiDQsdGA0L7RmNC+0YIg0L3QsCDRgNCw0LHQvtGC0L3QuCDRh9Cw0YHQvtCy0LggKNC90LAg0L/RgNC40LzQtdGALCDQtNC+0LrQvtC70LrRgyDQv9C+0LvQvtCy0LjQvdCwINC+0LQg0LLRgNC10LzQtdGC0L4g0L3QsCDQv9Cw0YLRg9Cy0LDRmtC1INC1INC/0LvQsNGC0LXQvdC+IEtleSA9PiDQv9Cw0YLRg9Cy0LDRmtC1OyAgQ29udGVudCA9PiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om1zX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnQWRha2FoIGFuZGEgcGFzdGkgaW5naW4gbWVuZ2hhcHVza2FuIFBlcmFrYXVuYW4gTWFzYSBoYXJpIGluaT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnU3VudGluZyBSZWtvZCBNYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnUGVyZ2kga2UgdGV0YXBhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2FzaSBUYXJpa2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdIYXJpIHRhbnBhIHBlbnllcnRhYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnUGlsaWgga2VzZW11YSBoYXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdLZW1hc3VrYW4gYmVzYXItYmVzYXJhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BpbGloIHNlYmFiIGtldGlkYWtoYWRpcmFuIGFuZGEgdW50dWsgaGFyaS1oYXJpIHlhbmcgZGlwaWxpaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0JlcmN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0N1dGkgc2FraXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdCZXJjdXRpIGxlYmloIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdNZWRhbiB5YW5nIGRpcGVybHVrYW4gZGl0YW5kYWkgZGVuZ2FuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdBbmRhIHBlcmx1IG1lbmdpc2kgcGVybXVsYWFuIGRhbiBha2hpciBtYXNhIGF0YXUgdGVtcG9oIG1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1R1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0tvbWVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ1NpbGEgdGFtYmFoIGtvbWVuIGRlbmdhbiBsZWJpaCBkYXJpcGFkYSA4IGthcmFrdGVyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnV2FrdHUgbmVnYXRpZiB0aWRhayBkaWJlbmFya2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUGVuZ3VsYW5nYW4gamFtIGFkYWxhaCB0aWRhayBkaWJlbmFya2FuLiBNYXNhIG11bGEgcGFkYW4gZGVuZ2FuIHNlbGFuZyBsYWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnRm9ybWF0IHRpZGFrIHNhaCEgU2lsYSBtYXN1a2thbiBtYXNhIGRlbmdhbiBmb3JtYXQgSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGhhbnlhIGRpYmVuYXJrYW4gc2ViYWdhaSBtYXNhIGFraGlyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ01hc2EgdGlkYWsgc2FoISBTZWhhcmkgaGFueWEgbWVtcHVueWFpIDI0IGphbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ01hc2EgdGFtYXQgbWVzdGkgc2VsZXBhcyBtYXNhIG11bGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUGVuZ3VsYW5nYW4gamFtIGFkYWxhaCB0aWRhayBkaWJlbmFya2FuLiBNYXNhIGFraGlyIHBhZGFuIGRlbmdhbiBzZWxhbmcgbGFpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1RlbXBvaCB0aWRhayBzYWghIFNlaGFyaSBoYW55YSBtZW1wdW55YWkgMjQgamFtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ1RlbXBvaCBzYWggbWVzdGkgbGViaWggYmVzYXIgZGFyaXBhZGEgc2lmYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdUZW1wb2ggdGlkYWsgc2FoISBUZW1wb2ggbmVnYXRpZiBhZGFsYWggdGlkYWsgZGliZW5hcmthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdUYW1iYWggc2F0dSBiYXJpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ0FuZGEgaGFueWEgYm9sZWggcGlsaWggc2F0dSBlbGVtZW4ga290YWsgc2VtYWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdBZGFrYWggYW5kYSBwYXN0aSBiYWhhd2EgYW5kYSBiZWtlcmphIHNlbWFzYSBhbmRhIGJlcmN1dGkgc2FraXQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnQWRha2FoIGFuZGEgcGFzdGkgYmFoYXdhIGFuZGEgYmVrZXJqYSBzZW1hc2EgYW5kYSBiZXJjdXRpPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQWRha2FoIGFuZGEgcGFzdGkgYmFoYXdhIGFuZGEgYmVrZXJqYSBzZW1hc2EgYW5kYSBiZXJjdXRpIGxlYmloIG1hc2E/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0FkYWthaCBhbmRhIHBhc3RpIGJhaGF3YSBhbmRhIGJla2VyamEgbGViaWggZGFyaXBhZGEgMTYgamFtPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnR2FtYmFyYW4gYnVsYW5hbiBtYXNhIG1lbGFwb3JrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ0xlYmloIG1hc2EgKEphbSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnS2VyamEgbGViaWggbWFzYSAoYnVsYW4gaW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnS2VyamEgbGViaWggbWFzYSAoanVtbGFoKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdCYWtpIGN1dGkgbGViaWggbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdCZXJjdXRpIChIYXJpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdDdXRpIGRpYW1iaWwgKGJ1bGFuIGluaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0N1dGkgZGlhbWJpbCAoanVtbGFoKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdCYWtpIGN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdDdXRpIFNha2l0IChIYXJpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0N1dGkgc2FraXQgZGlhbWJpbCAoYnVsYW4gaW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdDdXRpIHNha2l0IGRpYW1iaWwgKGp1bWxhaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdCdWxhbiBzZWJlbHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdCdWxhbiBiZXJpa3V0bnlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdIYXJpIG1pbmdndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSmFtIGJla2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnSnVtbGFoIGphbSBiZWtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0dhbWJhcmFuIHByb2playBwZW5nZ3VuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdKYW0gKGJ1bGFuYW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdKYW0gKEhheWF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ0p1bWxhaCBrZXNlbHVydWhhbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdNYXNhIG1lbGFwb3JrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmlnYXNpIGJ1bGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdQZXJnaSBrZSB0YXJpa2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnTGFwb3JhbiBwZW5nZ3VuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnSnVtbGFoIGJ1bGFuYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdKdW1sYWggaGF5YXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdDdXRpIGxlYmloIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdCZXJjdXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdDdXRpIHNha2l0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0Jha2kgY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdMYXBvcmFuIHByb2playc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnTGFwb3JhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnUGVyZ2kga2UgdGluamF1YW4gbWVsYXBvcmthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1BhZGEgbWFzYSBpbmkgaGFueWEgcGVuZ2d1bmEgYWt0aWYgZGFsYW0gcHJvamVrIGluaSBha2FuIGRpdHVuanVra2FuLiBVbnR1ayBtZW5ndWJhaCBzaWZhdCBpbmksIHNpbGEga2VtYXMga2luaSB0ZXRhcGFuOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdQYWRhIG1hc2EgaW5pIGtlc2VtdWEgcGVuZ2d1bmEgcGVyYWthdW5hbiBtYXNhIGRpdHVuanVra2FuLiBVbnR1ayBtZW5ndWJhaCB0aW5na2FoIGxha3UgaW5pLCBzaWxhIGtlbWFzIGtpbmkgdGV0YXBhbjonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnU3VudGluZyBUZXRhcGFuIFByb2playBQZXJha2F1bmFuIE1hc2EgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnVGFtYmFoIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1BlcmdpIGtlIGdhbWJhcmFuIGtlc2VsdXJ1aGFuIHRldGFwYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdUYW1iYWggcHJvamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1N1bnRpbmcgdGV0YXBhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1N1ZGFoIGFkYSBwcm9qZWsgZGVuZ2FuIG5hbWEgaW5pLiBTaWxhIHBpbGloIHlhbmcgbGFpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdTdW50aW5nIFRldGFwYW4gUGVyYWthdW5hbiBNYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnVGFtYmFoIHR1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnVGVtcG9oIG1hc2EgdGlkYWsgYm9sZWggZGloYXB1c2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnU2VuYXJhaSBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnU2VuYXJhaSB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ1RhbWJhaCB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdTdW50aW5nIHRldGFwYW4gdHVnYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1N1ZGFoIGFkYSB0dWdhcyBkZW5nYW4gbmFtYSBpbmkuIFNpbGEgcGlsaWggeWFuZyBsYWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdTZW5hcmFpIFBlbmdndW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1R1bmp1ayBsZWJpaGFuIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnQmVuYXJrYW4gY2lwdGFhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdUZW1wb2ggTXVsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnVGVtcG9oIHRhbWF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdIYXJpIEJlcmN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdKYW0gU2VtaW5nZ3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0xlYmloYW4gbWFzYSBkaWJlbmFya2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdUYXJpa2ggTXVsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdTaWxhIG1hc3Vra2FuIHRhcmlraCB5YW5nIHNhaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdUYXJpa2ggVGFtYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdUZW1wb2ggdGFtYXQgbWVzdGlsYWggc2VsZXBhcyB0ZW1wb2ggbXVsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0hhcmkgY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdKYW0gbWluZ2d1YW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdMZWJpaCBtYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdUaWFkYSB0ZW1wb2ggbWFzYSBkaWp1bXBhaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnVGFtYmFoIHRlbXBvaCBtYXNhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ0xpaGF0IFJla29kIE1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdQYW5kYW5nYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnSGFyaSBzZWJlbHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnSGFyaSBzZXRlcnVzbnlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ1RpYWRhIGRhdGEgZGlqdW1wYWkgcGFkYSBoYXJpIGluaS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnVGlkYWsgYm9sZWggbWVtYXN1a2thbiBVbml0IEtlcmphISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnUHJvamVrIExlcGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ1RpZGFrIGJvbGVoIG1lbnlpbXBhbiB0ZXRhcGFuLXRldGFwYW4sIGtlcmFuYSBzZWhhcmkgaGFueWEgYWRhIDI0IGphbSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ1RpZGFrIGJvbGVoIG1lbWJ1YW5nIFVuaXQgS2VyamEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnVGFyaWtoIGluaSB0ZWxhaCB0ZXJsZWJpaCBoYWQsIHRldGFwaSBhbmRhIG1hc2loIGJlbHVtIG1lbWFzdWtrYW4gaGFyaSBpbmkgbGFnaSwgamFkaSBhbmRhIG1lbmRhcGF0IHNhdHUoISkgcGVsdWFuZyB1bnR1ayBtYXN1a2thbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0hhcmkgQmVrZXJqYSBUaWRhayBMZW5na2FwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0JlcmpheWEgZGltYXN1a2thbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ1JhbGF0IHNlbWFzYSBtZW1hc3Vra2FuIGJlYmVyYXBhIHRhcmlraCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnQmVyamF5YSBkaW1hc3Vra2FuIHBlbnllcnRhYW4gdW50dWsgYmViZXJhcGEgdGFyaWtoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnVGFyaWtoIHlhbmcgZGltYXN1a2thbiB0aWRhayBzYWghIFRhcmlraCB0ZWxhaCBkaXR1a2FyIGtlcGFkYSBoYXJpIGluaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1Byb2playBEaXBpbGloIExlcGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1NlbXVhIFByb2playc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdNZWxhcG9ya2FuUHJvamVrOiBQZXJsdWthbiBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdNZWxhcG9ya2FuIFByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdNZWxhcG9ya2FuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ1RpZGFrIGJvbGVoIHVudHVrIGtlbWFza2luaSB0ZXRhcGFuLXRldGFwYW4gcGVuZ2d1bmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamVrIHRlbGFoIGRpdGFtYmFoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ1R1Z2FzYW4gdGVsYWggZGl0YW1iYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdUdWdhc2FuIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdJRCBQZW5nZ3VuYSB0aWRhayBzYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ1RpZGFrIGJvbGVoIG1lbWFzdWtrYW4gZGF0YSBwZW5nZ3VuYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdUaWRhayBib2xlaCBtZW5hbWJhaCB0ZW1wb2ggbWFzYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1RldGFwYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1BlbmdndW5hIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ1BlbmdndW5hIHRlbGFoIGRpdGFtYmFoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ1BlbmdndW5hIEJhaGFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdHVzIFRlbXBvaCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnUGFuZGFuZ2FuOiBQZXJsdSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1NpbGEgbWFzdWtrYW4gd2FrdHUga2VyamEgYW5kYSEgJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnSGFyaSBiZWtlcmphIHRpZGFrIGxlbmdrYXAnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnU2lsYSBwaWxpaCBzZWt1cmFuZy1rdXJhbmdueWEgc2VoYXJpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnS2VtYXN1a2FuIGJlc2FyLWJlc2FyYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdTaWxhIHBpbGloIHNlYmFiIGtldGlkYWtoYWRpcmFuISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ1BhZGFtIEtlbWFzdWthbiBNYXNhIFBlcmFrYXVuYW4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnU2Foa2FuIGtlbWFzdWthbic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHBlbWJlcml0YWh1YW4gYW50YXJhIG11a2EgZWplbiB1bnR1ayBtZWxpaGF0IGJpbGFuZ2FuIGhhcmkgYmVrZXJqYSB5YW5nIHRpZGFrIGxlbmdrYXAgdW50dWsgcGVuZ2d1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTmFtYSBsYWxhaSB1bnR1ayB0aW5kYWthbiBiYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdOYW1hIGxhbGFpIHVudHVrIHByb2playBiYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgdGFyaWtoIGFraGlyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayB0YXJpa2ggbXVsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdUZXRhcGFuIGxhbGFpIHVudHVrIGdhbWJhcmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBoYXJpIGN1dGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBsZWJpaCBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBqYW0gbWluZ2d1YW4gcGlhd2FpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayB0aW5kYWthbiBiYWhhcnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBwcm9qZWsgYmFoYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgcGVuZ2d1bmEgYmFoYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gcHJvamVrLXByb2playB5YW5nIG1hbmEga29tZW4gZGlwZXJsdWthbi4gSmlrYSBVbmdrYXBhbkJpYXNhIHBhZGFuIGRhbGFtIHByb2playBpbmksIGFuZGEgcGVybHUgbWVtYXN1a2thbiBrb21lbiBqdWdhLiBVbmdrYXBhbkJpYXNhIG1lbmdndW5ha2FuIHBhcmFtZXRlciBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdNZW5lbnR1a2FuIGppa2EgbW9kdWwgc3RhdGlzdGlrIGJvbGVoIG1lbmphbmEgbWFzYSBtYWtsdW1hdCBwZXJha2F1bmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdTdW50aW5nIHRldGFwYW4tdGV0YXBhbiBwZXJha2F1bmFuIG1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnU3VudGluZyByZWtvZCBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdVbnR1ayBiZXJhcGEgaGFyaSB5YW5nIGxhbHUsIGFuZGEgYm9sZWggbWVtYXN1a2thbiB1bml0IGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdKaWthIGRpYm9sZWhrYW4sIGhhbnlhIHBlbmdndW5hIHlhbmcgdGVsYWggZGl0YW1iYWggbWFzYSBrZXJqYSB1bnR1ayBwcm9qZWsgeWFuZyBkaXBpbGloIGFrYW4gZGl0dW5qdWtrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdKaWthIGRpYm9sZWhrYW4sIHVuc3VyLXVuc3VyIGtvdGFrIHBpbGloYW4gZGFsYW0gc2tyaW4gc3VudGluZyBkaXR1a2FyIGtlcGFkYSBiaWRhbmcgcGVueWlhcGFuIHNlY2FyYSBhdXRvbWF0aWsgbW9kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0ppa2EgZGlha3RpZmthbiwgcGVuYXBpcyBiYWdpIHByb2play1wcm9qZWsgc2ViZWx1bSBib2xlaCBkaWd1bmFrYW4gc2VsYWluIGR1YSBzZW5hcmFpIHByb2play1wcm9qZWsgKHRlcmFraGlyIGRhbiBzZW11YW55YSkuIElhIGJvbGVoIGRpZ3VuYWthbiBoYW55YSBqaWthIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBkaWRheWFrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdKaWthIGRpYWt0aWZrYW4sIHBlbmFwaXMgYmFnaSBwcm9qZWstcHJvamVrIHNlYmVsdW0gYWRhbGFoIGFrdGlmIHNlY2FyYSBsYWxhaSBzZWtpcmFueWEgdGVyZGFwYXQgcHJvamVrIGxlcGFzLiBJYSBib2xlaCBkaWd1bmFrYW4gaGFueWEgamlrYSBFbmFibGVBdXRvQ29tcGxldGlvbiBkYW4gVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBkaWRheWFrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdKaWthIGRpYm9sZWhrYW4sIHBlbmdndW5hIGRpYmVuYXJrYW4gdW50dWsgbWVtYXN1a2kgInNlZGFuZyBjdXRpIHJlaGF0ICIsICJzZWRhbmcgY3V0aSBzYWtpdCAiIGRhbiAic2VkYW5nIGN1dGkgbGViaWggbWFzYSIgcGFkYSBiZWJlcmFwYSB0YXJpa2ggc2VrYWxpZ3VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ0JpbGFuZ2FuIG1ha3NpbXVtIGhhcmkgYmVrZXJqYSBzZWxlcGFzIHVuaXQga2VyamEgcGVybHUgZGltYXN1a2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ0JpbGFuZ2FuIG1ha3NpbXVtIGhhcmkgYmVrZXJqYSB0YW5wYSBrZW1hc3VrYW4gdW5pdCBiZWtlcmphIHNlbGVwYXMgZGkgbWFuYSBhbWFyYW4gYWthbiBkaXR1bmp1a2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnUGFuZGFuZ2FuIGtlc2VsdXJ1aGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ21lbGFwb3JrYW4gbWFzYSBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ1VuZ2thcGFuIGJpYXNhIHVudHVrIG1lbmdla2FuZyBzZW5hcmFpIHRpbmRha2FuIG1lbmdpa3V0IHByb2playB5YW5nIGRpcGlsaWguIEt1bmNpIG1lbmdhbmR1bmdpIHVuZ2thcGFuIGJpYXNhIHVudHVrIHByb2playAocHJvamVrLXByb2playksIGthbmR1bmdhbiBtZW5nYW5kdW5naSB1bmdrYXBhbiBiaWFzYSB1bnR1ayB0aW5kYWthbiAodGluZGFrYW4tdGluZGFrYW4pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdVbmdrYXBhbiBiaWFzYSB1bnR1ayBtZW5nZWthbmcgc2VuYXJhaSBwcm9qZWsgbWVuZ2lrdXQga3VtcHVsYW4gcGVuZ2d1bmEuIEt1bmNpIG1lbmdhbmR1bmdpIHVuZ2thcGFuIGJpYXNhIHVudHVrIHByb2playAocHJvamVrLXByb2playksIGthbmR1bmdhbiBtZW5nYW5kdW5naSBrb21hIHNlbmFyYWkga3VtcHVsYW4gZGlwaXNhaGthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ01lbmVudHVrYW4gamlrYSB3YWt0dSBiZWtlcmphIGJvbGVoIGRpbWFzdWtrYW4gdGFucGEgcGVybXVsYWFuIGRhbiBha2hpciBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdNb2R1bCBpbmkgbWVtYWtzYSBrZW1hc3VrYW4gZGFsYW0gUGVyYWthdW5hblNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNb2R1bCBwZW1iZXJpdGFodWFuIGluaSBtZW1iZXJpIGFtYXJhbiBqaWthIHRlcmRhcGF0IHRlcmxhbHUgYmFueWFrIGhhcmkgYmVrZXJqYSB0aWRhayBsZW5na2FwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdNYXNhIFBlcmFrYXVuYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnU3VudGluZyBwZXJha2F1bmFuIHNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ0dhbWJhcmFuIGtlc2VsdXJ1aGFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ01lbGFwb3IgcGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdUZXRhcGFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdQYXBhcmFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnUGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1VudHVrIGRpZ3VuYWthbiBqaWthIGJlYmVyYXBhIHRpbmRha2FuIG1lbmd1cmFuZ2thbiB3YWt0dSBrZXJqYSAoY29udG9obnlhLCBqaWthIGhhbnlhIHNlcGFydWggZGFyaXBhZGEgbWFzYSBwZXJqYWxhbmFuIGRpYmF5YXIgS3VuY2kgPT4gcGVyamFsYW5hbjsgS2FuZHVuZ2FuID0gPiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om5iX05PX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVmlsIGR1IHZpcmtlbGlnIGZqZXJuZSB0aWRzcmVnaXN0cmVyaW5nZW4gZm9yIGRlbm5lIGRhZ2VuPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdFbmRyZSB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSW5uc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2VyaW5nIG1lbGxvbSBkYXRvZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEYWdlciB1dGVuIHRpZHJlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdWZWxnIGFsbGUgZGFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ01hc3NlcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnVmVubmxpZ3N0IHZlbGcgw6Vyc2FrZW4gdGlsIGRpdHQgZnJhdsOmciBww6UgZGUgdmFsZ3RlIGRhZ2VuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0ZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdTeWtlZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0F2c3Bhc3NlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ09ibGlnYXRvcmlza2UgZmVsdCBlciBtYXJrZXJ0IG1lZCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRHUgbcOlIGZ5bGxlIHV0IHN0YXJ0LSBvZyBzbHV0dGlkc3B1bmt0LCBlbGxlciBwZXJpb2RlbGVuZ2Rlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3NqZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdBa3Rpdml0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnTWVya25hZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIG1lcmtuYWQgcMOlIG1pbnN0IDggdGVnbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXYgdGlkIGdvZHRhcyBpa2tlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnT3ZlcmxhcHBlbmRlIHBlcmlvZGVyIGlra2UgdGlsbGF0dC4gU3RhcnR0aWRlbiBlciBpIGVuIGFubmVuIHBlcmlvZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGZWlsIGZvcm1hdCEgVmVubmxpZ3N0IG9wcGdpIGV0dCB0aWRzcHVua3QgaSBmb3JtYXRldCBUVDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgZ29kdGFzIGJhcmUgc29tIHNsdXR0aWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnRmVpbGFrdGlnIHRpZCEgRXQgZMO4Z24gaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ1NsdXR0aWQgbcOlIHbDpnJlIHNlbmVyZSBlbm4gc3RhcnR0aWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnT3ZlcmxhcHBlbmRlIHBlcmlvZGVyIGlra2UgdGlsbGF0dC4gU2x1dHRpZGVuIGVyIGkgZW4gYW5uZW4gcGVyaW9kZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0ZlaWxha3RpZyB0aWQhIEV0IGTDuGduIGhhciBrdW4gMjQgdGltZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnRW4gdGlkc3BlcmlvZGUgbcOlIHbDpnJlIHN0w7hycmUgZW5uIG51bGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdGZWlsYWt0aWQgdGlkLiAgTmVnYXRpdiB0aWQgZ29kdGFzIGlra2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnTGVnZyB0aWwgZW4gcmFkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ0R1IGthbiBiYXJlIGdqw7hyZSBlbiBhdmtyeXNuaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSBhcmJlaWRldCBtZW5zIGR1IHZhciBzeWtlbWVsZHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSBhcmJlaWRldCBtZW5zIGR1IGhhZGRlIGZlcmllPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSBhcmJlaWRldCBtZW5zIGR1IGF2c3Bhc3NlcnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IGFyYmVpZGV0IGkgZmxlcmUgZW5uIDE2IHRpbWVyPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTcOlbmVkc292ZXJzaWt0IHJlZ2lzdHJlcnQgdGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdPdmVydGlkICh0aW1lciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnT3ZlcnRpZCAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnT3ZlcnRpZCAodG90YWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdHamVuc3TDpWVuZGUgYXZzcGFzc2VyaW5nc3RpbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0ZlcmllIChkYWdlciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRmVyaWUgdGF0dCAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnRmVyaWUgdGF0dCAodG90YWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdHamVuc3TDpWVuZGUgZmVyaWVkYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ1N5a2VmcmF2w6ZyIChkYWdlciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdTeWtlZnJhdsOmciAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdTeWtlZnJhdsOmciAodG90YWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ0ZvcnJpZ2UgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOZXN0ZSBtw6VuZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ1VrZWRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnQXJiZWlkZXQgdGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ1RvdGFsIGFyYmVpZGV0IHRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdCcnVrZXJzIHByb3NqZWt0b3ZlcnNpa3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnVGltZXIgKG3DpW5lZGxpZyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1RpbWVyICh0b3RhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnU2x1dHRzdW0nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnVGlkcmFwcG9ydGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2VyaW5nIG1lbGxvbSBtw6VuZWRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnR8OlIHRpbCBkYXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0JydWtlcnJhcHBvcnRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnTcOlbmVkc3N1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RvdGFsc3VtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQXZzcGFzc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ1N5a2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0dqZW5zdMOlZW5kZSBmZXJpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdQcm9zamVrdHJhcHBvcnRlcic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUHJvc2pla3RyYXBwb3J0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0fDpSB0aWwgcmFwcG9ydGVyaW5nc292ZXJzaWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnRm9yIHRpZGVuIHZpc2VzIGJhcmUgZGUgYWt0aXZlIGJydWtlcm5lIGkgZGV0dGUgcHJvc2pla3RldC4gRm9yIMOlIGVuZHJlIGRldHRlIG3DpSBmw7hsZ2VuZGUgaW5uc3RpbGxpbmcgZW5kcmVzOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdGb3IgdGlkZW4gdmlzZXMgYWxsZSB0aWRzcmVnaXN0cmVyaW5nc2JydWtlcmUuIEZvciDDpSBlbmRyZSBkZXR0ZSBtw6UgZsO4bGdlbmRlIGlubnN0aWxsaW5nIGVuZHJlczonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nc3Byb3NqZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnTGVnZyB0aWwgZXQgcHJvc2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdHw6UgdGlsIG92ZXJzaWt0ZW4gb3ZlciBpbm5zdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnTGVnZyB0aWwgZXQgcHJvc2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciBwcm9zamVrdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdEZXQgZmlubmVzIGFsbGVyZWRlIGV0IHByb3NqZWt0IG1lZCBkZXR0ZSBuYXZuZXQuIFZlbm5saWdzdCB2ZWxnIGV0IGFubmV0IG5hdm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnTGVnZyB0aWwgZW4gYWt0aXZpdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnVGlkc3BlcmlvZGVyIGthbiBpa2tlIHNsZXR0ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb3NqZWt0bGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnQWt0aXZpdGV0c2xpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnTGVnZyB0aWwgZW4gYWt0aXZpdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VuZHJlIGluc3RpbGxpbmdlciBmb3IgYWt0aXZpdGV0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0RldCBmaW5uZXMgYWxsZXJlZGUgZW4gYWt0aXZpdGV0IG1lZCBkZXR0ZSBuYXZuZXQuIFZlbm5saWdzdCB2ZWxnIGV0IGFubmV0IG5hdm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0JydWtlcmxpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ZpcyBvdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1RpbGxhdHQgYnJ1a2VyIMOlIG9wcHJldHRlIHByb3NqZWt0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2Rlc3RhcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZGVzbHV0dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRmVyaWVkYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1RpbWVyIHBlciB1a2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1DDpWxhZ3Qgb3ZlcnRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnU3RhcnRkYXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1Zlbm5saWdzdCBzZXR0IGlubiBlbiBneWxkaWcgZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdTbHV0dGRhdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXJpb2Rlc2x1dHQgbcOlIHbDpnJlIGV0dGVyIHBlcmlvZGVzdGFydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0RhZ2VyIG1lZCBneWxkaWcgZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdVa2VudGxpZ2UgdGltZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdPdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdJbmdlbiB0aWRzcGVyaW9kZXIgZnVubmV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0xlZ2cgdGlsIGVuIHRpZHNwZXJpb2RlJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1NlIHDDpSB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzbmluZyBhdic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGb3JyaWdlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ05lc3RlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdJbmdlbiBkYXRhIGZ1bm5ldCBmb3IgZGVubmUgZGFnZW4uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnU2VuZXN0ZSBwcm9zamVrdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ0thbiBpa2tlIGxhZ3JlIGluc3RpbGxpbmdlbmUgZm9yZGkgZXQgZMO4Z24gaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ0Rlbm5lIGRhdG9lbiBlciB1dGVuZm9yIHRpbGxhdHQgb21yw6VkZS4gTWVuLCBkdSBoYXIgaWtrZSBzYXR0IGlubiBkZW5uZSBkYWdlbiBlbm7DpSwgc8OlIGR1IGbDpXIgZW4oISkgc2phbnNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnVWZ1bGxzdGVuZGlnZSBhcmJlaWRzZGFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnVmVsbHlra2V0IGlubnNldHRpbmchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdGZWlsIHVuZGVyIGlubnNldHRpbmcgYXYgZmxlcmUgZGF0b2VyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdJbm5zZXR0aW5nIGF2IHJlZ2lzdHJlcmluZ2VyIGZvciBmbGVyZSBkYXRvZXIgdmFyIHZlbGx5a2tldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ09wcGdpdHQgZGF0byB2YXIgdWd5bGRpZyEgRGF0byBlbmRyZXQgdGlsIGRhZ2VucyBkYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnU2VuZXN0ZSB2YWxndGUgcHJvc2pla3Rlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdBbGxlIHByb3NqZWt0ZXInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnUHJvc2pla3Qgc29tIHJhcHBvcnRlcmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JhcHBvcnRlcmluZyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICdLYW4gaWtrZSBlbmRyZSBicnVrZXJpbm5zdGlsbGluZ2VyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ1Byb3NqZWt0IGxhZ3QgdGlsISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvc2pla3Qgb3BwZGF0ZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0FrdGl2aXRldCBsYWd0IHRpbCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0FrdGl2aXRldCBvcHBkYXRlcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0JydWtlcklEIGVyIGlra2UgZ3lsZGlnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdLYW4gaWtrZSBsZWdnZSB0aWwgYnJ1a2VyZGF0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdLYW4gaWtrZSBsZWdnZSB0aWwgdGlkc3BlcmlvZGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdJbm5zdGlsbGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnQnJ1a2VyIG9wcGRhdGVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdCcnVrZXIgbGFndCB0aWwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTnkgYnJ1a2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdQZXJpb2Rlc3RhdHVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaXNuaW5nOiBUcmVuZ2VyICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVmVubmxpZ3N0IHNldHQgaW5uIGRpbmUgYXJiZWlkc3RpbWVyISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ1VmdWxsc3RlbmRpZ2UgYXJiZWlkc2RhZ2VyJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1Zlbm5saWdzdCB2ZWxnIG1pbnN0IGVuIGRhZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc3NlcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnVmVubmxpZ3N0IHZlbGcgZnJhdsOmcnPDpXJzYWshJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnU2xldHQgZW4gdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0Jla3JlZnQgaW5uc2V0dGluZyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdFbmRyZSBpbm5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ0VuZHJlIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnSHZvciBtYW5nZXIgZGFnZXIgdGlsYmFrZSBpIHRpZCBkZXQgZXIgYW5sZWRuaW5nIHRpbCDDpSBsZWdnZSB0aWwgZW4gdGlkc2JvbGsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdPdmVyc2lrdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdUaWRyYXBwb3J0ZXJpbmcgZm9yIHByb3NqZWt0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdUaWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VuZHJlIHRpZHNyZWdpc3RyZXJpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdPdmVyc2lrdCBvdmVyIHJlZ2lzdHJlcnQgdGlkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JhcHBvcnRlcmluZyBhdiByZWdpc3RyZXJ0IHRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0lubnN0aWxsaW5nZXIgZm9yIHRpZHNyZWdpc3RyZXJpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1NlIHDDpSB0aWRzcmVnaXN0cmVyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVGlkc3JlZ2lzdHJlcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om5sX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnV2VldCB1IHpla2VyIGRhdCB1IGRlIFRpbWUgQWNjb3VudGluZyB3aWx0IHZlcndpamRlcmVuIHZhbiBkZXplIGRhZz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnR2EgbmFhciBpbnN0ZWxsaW5nZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0dW0gTmF2aWdhdGllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRGFnIHpvbmRlciBib2VraW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVjdGVlciBhbGxlIGRhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdNYXNzYSB0b2V2b2VnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdLaWVzIGVlbiByZWRlbiB2YW4gYWJzZW50aWUgdm9vciBkZSBnZXNlbGVjdGVlcmRlIGRhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnT3AgdmFrYW50aWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1ppZWttZWxkaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnVmVycGxpY2h0ZSB2ZWxkZW4gemlqbiBnZW1hcmtlZXJkIG1ldCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnVSBtb2V0IGVlbiBiZWdpbiBlbiBlaW5kdGlqZCBvZiBlZW4gdGlqZHBlcmlvZGUgaW52dWxsZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWN0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYWFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0Fhbm1lcmtpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWdhdGlldmUgdGlqZGVuIHppam4gbmlldCB0b2VnZXN0YWFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdPbmdlbGRpZyBmb3JtYWF0ISBWb2VyIGVlbiB0aWpkIGluIG1ldCBoZXQgZm9ybWFhdCBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnT25nZWxkaWdlIHRpamQhIEVlbiBkYWcgaGVlZnQgMjQgdXVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ092ZXJ1cmVuIChVcmVuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdPdmVydXJlbiAoZGV6ZSBtYWFuZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ092ZXJ1cmVuICh0b3RhYWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdWYWthbnRpZSAoZGFnZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ1ppZWt0ZWRhZ2VuIChEYWdlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdaaWVrdGVkYWdlbiAoZGV6ZSBtYWFuZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnWmlla3RlZGFnZW4gb3BnZW5vbWVuICh0b3RhYWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnVm9yaWdlIG1hYW5kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdWb2xnZW5kZSBtYWFuZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnV2Vla2RhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnV2Vya3VyZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWxlIHdlcmt1cmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdVcmVuIChNYWFuZGVsaWprcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1VyZW4gKExldmVuc2R1dXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnVG90YWFsJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTWFhbmRlbGlqa3NlIE5hdmlnYXRpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnR2EgbmFhciBkYXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1Zha2FudGllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdaaWVrdGVkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnVGFhayB0b2V2b2VnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdUaWpkcGVyaW9kZXMga3VubmVuIG5pZXQgd29yZGVuIHZlcndpamRlcmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdUYWFrIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdHZWJydWlrZXJzbGlqc3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnVG9vbiBPdmVydXJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdCZWdpbnBlcmlvZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0VpbmRwZXJpb2RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdWYWthbnRpZWRhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnVXJlbiBwZXIgd2Vlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdCZWdpbmRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1ZvZXIgZWVuIGdlbGRpZ2UgZGF0dW0gaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRWluZGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWluZHBlcmlvZGUgbW9ldCBuYSBCZWdpbnBlcmlvZGUgemlqbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdXZWVrdXJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ092ZXJ1cmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdHZWVuIHRpamRwZXJpb2RlcyBnZXZvbmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnVm9lZyB0aWpkcGVyaW9kZSB0b2UnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnV2VlcmdhdmUgdmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1ZvcmlnZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdWb2xnZW5kZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnR2VlbiBkYXRhIGdldm9uZGVuIHZvb3IgZGV6ZSBkYWcuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnTGFhdHN0ZSBQcm9qZWN0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdJbmNvbXBsZXRlIFdlcmtkYWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdTdWNjZXN2b2wgaW5nZXZvZXJkISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRm91dCB0aWpkZW5zIGludm9lcmVuIG1lZXJkZXJlIGRhdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ1N1Y2Nlc3ZvbCBpbnZvZXJlbiB2YW4gbWVlcmRlcmUgZGF0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0luZ2V2b2VyZGUgZGF0YSBpcyBnb2VkZ2VrZXVyZCEgRGF0YSBpcyBhYW5nZXBhc3QgbmFhciB2YW5kYWFnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnTGFhdHN0IEdlc2VsZWN0ZWVyZGUgUHJvamVjdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ0FsbGUgUHJvamVjdGVuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSYXBwb3J0YWdlJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnSW5zdGVsbGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTmlldXdlIEdlYnJ1aWtlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnUGVyaW9kZSBTdGF0dXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVm9lciB1dyB3ZXJrdXJlbiBpbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdJbmNvbXBsZXRlIFdlcmtkYWdlbic7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdLaWVzIG9wIHppam4gbWluc3QgMSBkYWchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdLaWVzIGVlbiByZWRlbiB2YW4gYWJzZW50aWUhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhYXJkbmFhbSB2b29yIG5pZXV3ZSBhY3RpZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1N0YW5kYWFyZG5hYW0gdm9vciBuaWV1d2UgcHJvamVjdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ1N0YW5kYWFyZGluc3RlbGxpbmcgdm9vciBlaW5kZGF0dW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdTdGFuZGFhcmRpbnN0ZWxsaW5nIHZvb3IgYmVnaW5kYXR1bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdTdGFuZGFhcmRpbnN0ZWxsaW5nIHZvb3Igb21zY2hyaWp2aW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnVGlqZCB2ZXJhbnR3b29yZGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnBsX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnQ3p5IG5hIHBld25vIGNoY2VzeiB1c3VuxIXEhyByb3psaWN6ZW5pZSBjemFzdSBwcmFjeSB0ZWdvIGRuaWE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ0VkeWNqYSBld2lkZW5jamkgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdQcnplamTFuiBkbyB1c3Rhd2llxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF3aWdhY2phIHBvIGRhY2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRG5pIGJleiB3cGlzw7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1phem5hY3ogd3N6eXN0a2llIGRuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnTWFzb3dlIHdwaXN5d2FuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdQcm9zesSZIHd5YnJhxIcgcHJ6eWN6eW7EmSBuaWVvYmVjbm/Fm2NpIGRsYSB3eWJyYW55Y2ggZG5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnVXJsb3AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1p3b2xuaWVuaWUgbGVrYXJza2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnV29sbmUgemEgZ29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ1BvbGEgd3ltYWdhbmUgb3puYWN6b25lIHPEhSAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnTXVzaXN6IHdwcm93YWR6acSHIGN6YXMgcG9jesSFdGt1IGkgemFrb8WEY3plbmlhIGx1YiBva3JlxZtsIGN6YXMgdHJ3YW5pYSBjeWxrdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1phZGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnVXdhZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnUHJvc3rEmSBkb2RhxIcgdXdhZ8SZIHphd2llcmFqxIVjxIUgd2nEmWNlaiBuacW8IDggem5ha8OzdyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1VqZW1uZSBjemFzeSBzxIUgbmllZG96d29sb25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG9rcnl3YWrEhWNlIHNpxJkgZ29kemlueSBuaWUgc8SFIGRvendvbG9uZS4gQ3phcyByb3pwb2N6xJljaWEgcGFzdWplIGRvIGlubmVnbyBwcnplZHppYcWCdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ05pZXByYXdpZMWCb3d5IGZvcm1hdCEgUHJvc3rEmSBwb2RhxIcgY3phcyB3IGZvcm1hY2llIEdHOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBqZXN0IGRvendvbG9uYSBqZWR5bmllIGpha28gY3phcyB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmllcHJhd2lkxYJvd3kgY3phcyEgRHppZcWEIG1hIHR5bGtvIDI0IGdvZHppbnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdDemFzIHpha2/FhGN6ZW5pYSBtdXNpIGJ5xIcgcG8gY3phc2llIHJvenBvY3rEmWNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdQb2tyeXdhasSFY2Ugc2nEmSBnb2R6aW55IG5pZSBzxIUgZG96d29sb25lLiBDemFzIHpha2/FhGN6ZW5pYSBwYXN1amUgZG8gaW5uZWdvIHByemVkemlhxYJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmllcHJhd2lkxYJvd3kgY3phcyBjeWtsdSEgRHppZcWEIG1hIHR5bGtvIDI0IGdvZHppbnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnUHJhd2lkxYJvd3kgY3phcyBjeWtsdSBtdXNpIGJ5xIcgd2nEmWtzenkgb2QgemVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05pZXByYXdpZMWCb3d5IGN5a2whIFVqZW1ueSBjemFzIGN5a2x1IG5pZSBqZXN0IGRvendvbG9ueS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdEb2RhaiB3aWVyc3onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdNb8W8ZXN6IHphem5hY3p5xIcgdHlsa28gamVkZW4gZWxlbWVudCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3IHRyYWtjaWUgendvbG5pZW5pYSBsZWthcnNraWVnbz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdDenkgamVzdGXFmyBwZXdpZW4sIMW8ZSBwcmFjb3dhxYJlxZsgdyB0cmFrY2llIHVybG9wdT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3IHRyYWtjaWUgd29sbmVnbyB6YSBuYWRnb2R6aW55Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdDenkgamVzdGXFmyBwZXdpZW4sIMW8ZSBwcmFjb3dhxYJlxZsgd2nEmWNlaiBuacW8IDE2IGdvZHppbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ01pZXNpxJljem55IHJhcG9ydCBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnR29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdHb2R6aW55IG5hZGxpY3pib3dlIChiaWXFvMSFY3kgbWllc2nEhWMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdHb2R6aW55IG5hZGxpY3pib3dlICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1Bvem9zdGHFgmUgZ29kemlueSBuYWRsaWN6Ym93ZSBkbyB3eWJyYW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdVcmxvcCAoZG5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdXeWtvcnp5c3RhbnkgdXJsb3AgKGJpZcW8xIVjeSBtaWVzacSFYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1d5a29yenlzdGFueSB1cmxvcCAoxYLEhWN6bmllKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdVcmxvcCBwb3pvc3RhxYJ5IGRvIHd5a29yenlzdGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdad29sbmllbmllIGxla2Fyc2tpZSAoZG5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0RuaSB6d29sbmllbmlhIGxla2Fyc2tpZWdvIChiaWXFvMSFY3kgbWllc2nEhWMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0RuaSB6d29sbmllbmlhIGxla2Fyc2tpZWdvICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnUG9wcnplZG5pIG1pZXNpxIVjJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOYXN0xJlwbnkgbWllc2nEhWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0R6aWXFhCByb2JvY3p5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdHb2R6aW55IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ8WBxIVjem5hIGlsb8WbxIcgcHJ6ZXByYWNvd2FueWNoIGdvZHppbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdPcGlzIHByb2pla3R1IHXFvHl0a293bmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdHb2R6aW55IChtaWVzacSZY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdHb2R6aW55ICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnT2fDs8WCZW0nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnUmFvcnRvd2FuaWUgY3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hd2lnYWNqYSBtaWVzacSZY3puYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnUHJ6ZWpkxbogZG8gZGF0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSYXBvcnR5IHXFvHl0a293bmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnxYHEhWN6bmllIC0gbWllc2nEmWN6bmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnxYHEhWN6bmllIC0gb2fDs8WCZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdXb2xuZSB6YSBnb2R6aW55IG5hZGxpY3pib3dlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnVXJsb3AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ1p3b2xuaWVuaWUgbGVrYXJza2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ1VybG9wIHBvem9zdGHFgnkgZG8gd3lrb3J6eXN0YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSYXBvcnR5IHByb2pla3R1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSYXBvcnQgcHJvamVrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnUHJ6ZWpkxbogZG8gcHJ6ZWdsxIVkdSByYXBvcnRvd2FuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBa3R1YWxuaWUgd2lkb2N6bmkgc8SFIGplZHluaWUgdcW8eXRrb3duaWN5IHogdGVnbyBwcm9qZWt0dS4gVHV0YWogbW/FvG5hIHRvIHptaWVuacSHOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBa3R1YWxuaWUgd2lkb2N6bmkgc8SFIHdzenlzY3kgdcW8eXRrb3duaWN5IHJvemxpY3phasSFY3kgY3phcyBwcmFjeS4gVHV0YWogbW/FvG5hIHRvIHptaWVuacSHOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZHl0dWogdXN0YXdpZW5pYSByb3psaWN6YW5pYSBjemFzdSBwcmFjeSB3IHByb2pla2NpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ0RvZGFqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdQcnplamTFuiBkbyBvcGlzdSB1c3Rhd2llxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdEb2RhaiBwcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHByb2pla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdJbm55IHByb2pla3QgdcW8eXdhIGp1xbwgdGVqIG5hend5LiBVxbx5aiBpbm5laiBuYXp3eS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdFZHl0dWogdXN0YXdpZW5pYSByb3psaWN6YW5pYSBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0RvZGFqIHphZGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cnVqIHByb2pla3R5LCB6YWRhbmlhIGx1YiB1xbx5dGtvd25pa8Ozdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0N5a2xlIGN6YXN1IG5pZSBtb2fEhSB6b3N0YcSHIHVzdW5pxJl0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgcHJvamVrdMOzdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSB6YWRhxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdEb2RhaiB6YWRhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHphZGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0lubmUgemFkYW5pZSB1xbx5d2EganXFvCB0ZWogbmF6d3kuIFXFvHlqIGlubmVqIG5hend5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdMaXN0YSBVxbx5dGtvd25pa8Ozdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnVXN0YXdpZW5pYSBVxbx5dGtvd25pa2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdVxbx5dGtvd25payBtb8W8ZSB6b2JhY3p5xIcgbmFkZ29kemlueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnUG9rYcW8IGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ1XFvHl0a293bmlrIG1vxbxlIHR3b3J6ecSHIHByb2pla3R5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdaZXp3YWxhaiBuYSB0d29yemVuaWUgcHJvamVrdMOzdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdVxbx5dGtvd25payBtb8W8ZSBwb21pbsSFxIcgcm96bGljemFuaWUgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnUG96d8OzbCBuYSBvbWluacSZY2llIHJvemxpY3phbmlhIGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnSmXFm2xpIHRhIG9wY2phIGplc3QgemF6bmFjem9uYSwgcm96bGljemFuaWUgY3phc3UgcHJhY3kgamVzdCBuaWVvYm93acSFemtvd2UgZGxhIHXFvHl0a293bmlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnTmllIGLEmWR6aWUgb3N0cnplxbxlxYQgbyBicmFrdWrEhWN5Y2ggamVkbm9zdGthY2ggY3phc3Ugb3JheiB3eW11c3phbmlhIHdwaXPDs3cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICdPa3Jlc3kgQ3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUG9jesSFdGVrIGN5a2x1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdLb25pZWMgY3lrbHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0RuaSB1cmxvcHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdJbG/Fm8SHIGdvZHppbiB3IHR5Z29kbml1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdaZXp3w7NsIG5hIGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdGEgcm96cG9jesSZY2lhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1Byb3N6xJkgd3Byb3dhZHppxIcgcHJhd2lkxYJvd8SFIGRhdMSZLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgemFrb8WEY3plbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnS29uaWVjIG9rcmVzdSBtdXNpIGJ5xIcgcG8gamVnbyBwb2N6xIV0a3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEbmkgb3B1Y3pvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnVHlnb2RuaW93eSBjemFzIHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnR29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmllIHpuYWxlemlvbm8gxbxhZG5lZ28gY3lrbHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0RvZGFqIGN5a2wnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnUG9rYcW8IGV3aWRlbmNqxJkgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdXaWRvayAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnUG9wcnplZG5pIGR6aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0tvbGVqbnkgZHppZcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0JyYWsgZGFueWNoIGRvdHljesSFY3ljaCB3eWJyYW5lZ28gZG5pYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnTmllIHVkYcWCbyBzacSZIHdzdGF3acSHIGplZG5vc3RlayBwcmFjeSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ09zdGF0bmllIHByb2pla3R5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ05pZSBtb8W8bmEgemFwaXNhxIcgdXN0YXdpZcWELCBwb25pZXdhxbwgZG9iYSBtYSB0eWxrbyAyNCBnb2R6aW55ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTmllIHVkYcWCbyBzacSZIHVzdW7EhcSHIGplZG5vc3RlayBwcmFjeSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdXcHJvd2Fkem9uYSBkYXRhIGplc3QgcG96YSB6YWtyZXNlbSwgYWxlIG5pZSB3cHJvd2FkemnFgmXFmyBqZXN6Y3plIHRlZ28gZG5pYSwgbWFzeiB3acSZYyBqZWR5bsSFKCEpIG9rYXpqxJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdOaWVwZcWCbmUgZG5pIHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ1dwcm93YWRhbmllIHBvd2lvZMWCbyBzacSZISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnV3lzdMSFcGnFgiBixYLEhWQgcG9kY3phcyB3cHJvd2FkemFuaWEgd2llbHUgZGF0IGplZG5vY3plxZtuaWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ1BvbXnFm2xuaWUgd3Byb3dhZHpvbm8gd2llbGUgZGF0IGplZG5vY3plxZtuaWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdXcHJvd2Fkem9ubyBuaWVwcmF3aWTFgm93xIUgZGF0xJkhIFpvc3RhxYJhIG9uYSB6bWllbmlvbmEgbmEgYmllxbzEhWPEhS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnTmllIHNrb25maWd1cm93YW5vIG9rcmVzw7N3IGN6YXN1IGx1YiBwb2RhbmEgZGF0YSBsZcW8eSBwb3phIHpkZWZpbmlvd2FueW1pIG9rcmVzYW1pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnU2tvbnRha3R1aiBzacSZIHogYWRtaW5pc3RyYXRvcmVtIGN6YXN1IHByYWN5IHcgY2VsdSBha3R1YWxpemFjamkgdHdvaWNoIG9rcmVzw7N3IHByYWN5ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnT3N0YXRuaW8gd3licmFuZSBwcm9qZWt0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdXc3p5c3RraWUgcHJvamVrdHknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnUmFwb3J0b3dhbmllIHByb2pla3R1OiBXeW1hZ2FueSBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdSYXBvcnRvd2FuaWUgcHJvamVrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmFwb3J0b3dhbmllJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ05pZSBtb8W8bmEgem1pZW5pxIcgdXN0YXdpZcWEIHXFvHl0a293bmlrYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9qZWt0IGRvZGFueSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2pla3Qgem1pZW5pb255ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ1phZGFuaWUgZG9kYW5lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnWmFkYW5pZSB6bWllbmlvbmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0lkZW50eWZpa2F0b3IgVXNlcklEIGplc3QgbmllcHJhd2lkxYJvd3khJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ05pZSB1ZGHFgm8gc2nEmSB3c3Rhd2nEhyBkYW55Y2ggdcW8eXRrb3duaWthISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ05pZSBtb8W8bmEgZG9kYcSHIGN5a2x1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnVXN0YXdpZW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnVcW8eXRrb3duaWsgem1pZW5pb255ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ1XFvHl0a293bmlrIGRvZGFueSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdEb2RhaiB1xbx5dGtvd25pa2EgZG8gcm96bGljemFuaWEgY3phc3UgcHJhY3kuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3d5IFXFvHl0a293bmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGFuIGN5a2x1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdXaWRvazogUG90cnplYm55ICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnUHJvc3rEmSB3cHJvd2FkemnEhyBzd8OzaiBjemFzIHByYWN5ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ05pZXBlxYJuZSBkbmkgcHJhY3knOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUHJvc3rEmSB3eWJyYcSHIGNvIG5ham1uaWVqIGplZGVuIGR6aWXFhCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc293ZSB3cGlzeXdhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnUHJvc3rEmSB3eWJyYcSHIHByenljenluxJkgbmllb2JlY25vxZtjaSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdVc3XFhCByb3psaWN6ZW5pZSBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ1BvdHdpZXJkxbogd3Bpcyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHXFgiBwb3dpYWRhbWlhbmlhIEFnZW50YSBvIGxpY3piaWUgZG5pIHogbmlla29tcGxldG55bSByYXBvcnRvd2FuaWVtIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0RvbXnFm2xuYSBuYXp3YSBub3d5Y2ggY3p5bm5vxZtjaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRG9tecWbbG5hIG5hendhIG5vd3ljaCBwcm9qZWt0w7N3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0RvbXnFm2xuYSBkYXRhIHpha2/FhGN6ZW5pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0RvbXnFm2xuYSBkYXRhIHJvenBvY3rEmWNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdEb215xZtsbmUgdXN0YXdpZW5pZSBvcGlzdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0RvbXnFm2xuZSBrb25maWd1cmFjamEgdXJsb3B1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0RvbXnFm2xuZSBrb25maWd1cmFjamEgZ29kemluIG5hZGxpY3pib3d5Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdEb215xZtsbmEga29uZmlndXJhY2phIHR5Z29kbmlvd2VnbyBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCBjenlubm/Fm2NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCBwcm9qZWt0w7N3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCB1xbx5dGtvd25pa8Ozdy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnT2tyZcWbbGEgcHJvamVrdHksIGt0w7NyZSB3eW1hZ2FqxIUgZG9kYXdhbmlhIGtvbWVudGFyenkuIEplxbxlbGkgd3lyYcW8ZW5pZSByZWd1bGFybmUgcGFzdWplIGRvIHByb2pla3R1LCB0cnplYmEgZG9kYcSHIGtvbWVudGFyei4gV3lyYcW8ZW5pYSByZWd1bGFybmUga29yenlzdGFqxIUgeiBwYXJhbWV0csOzdyBzZXJ3ZXJhIG1ha3IgKFNNWCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdPa3JlxZtsYSwgY3p5IG1vZHXFgiBzdGF0eXN0eWN6bnkgbW/FvGUgZ2VuZXJvd2HEhyBpbmZvcm1hY2plIG8gcm96bGljemVuaWFjaCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnRWR5dHVqIHVzdGF3aWVuaWEgcm96bGljemFuaWEgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRWR5Y2phIGV3aWRlbmNqaSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnTGljemJhIGRuaSB3c3RlY3osIGRsYSBrdMOzcnljaCBtb8W8bmEgcm96bGljemHEhyBjemFzIHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdKZcWbbGkgYWt0eXduZSwgd2lkb2N6bmkgc8SFIHR5bGtvIHXFvHl0a293bmljeSwga3TDs3J6eSByb3psaWN6eWxpIGN6YXMgcHJhY3kgdyB3eWJyYW55bSBwcm9qZWtjaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdQcnp5IHfFgsSFY3pvbmVqIG9wY2ppLCBlbGVtZW50eSByb3p3aWphbmUgdyBva25pZSBlZHljamkgYsSZZMSFIHphc3TEhXBpb25lIHBvbGFtaSB6IGF1dG9tYXR5Y3pueW0gdXp1cGXFgm5pYW5pZW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1Byenkgd8WCxIVjem9uZWogb3BjamksIG1vxbxuYSB1xbx5xIcgZmlsdHLDs3csIHXFvHl0eWNoIHcgcG9wcnplZG5pY2ggcHJvamVrdGFjaCwgemFtaWFzdCBzdG9zb3dhxIcgZHdpZSBsaXN0eSBwcm9qZWt0w7N3IChvc3RhdG5pZWdvIGkgd3N6eXN0a2ljaCkuIE5pZXpixJlkbmUgamVzdCB1cnVjaG9taWVuaWUgb3BjamkgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnSmXFm2xpIGFrdHl3bmUsIGZpbHRyeSB1xbx5dGUgdyBwb3ByemVkbmljaCBwcm9qZWt0YWNoIHPEhSBkb215xZtsbmllIGFrdHl3bmUgKGplxZtsaSB0YWtpZSBwcm9qZWt0eSBpc3RuaWVqxIUpLiBOaWV6YsSZZG5lIGplc3QgdXJ1Y2hvbWllbmllIG9wY2ppIEVuYWJsZUF1dG9Db21wbGV0aW9uIG9yYXogVGltZUFjY291bnRpbmc6OlVzZUZpbHRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0plxZtsaSBha3R5d25lLCB1xbx5dGtvd25payBtb8W8ZSB1c3Rhd2nEhyAidXJsb3AiLCAiendvbG5pZW5pZSBsZWthcnNraWUiIG9yYXogIndvbG5lIHphIG5hZGdvZHppbnkiIGRsYSB3aWVsdSBkbmkgamVkbm9jemXFm25pZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdNYWtzeW1hbG5hIGxpY3piYSBkbmkgcm9ib2N6eWNoLCB3IGNpxIVndSBrdMOzcnljaCBuYWxlxbx5IHV6dXBlxYJuacSHIGN6YXMgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdNYWtzeW1hbG5hIGxpY3piYSBkbmkgcm9ib2N6eWNoLCBiZXogdXp1cGXFgm5pYW5pYSBjemFzdSBwcmFjeSwgcG8ga3TDs3J5Y2ggcG9rYXphbmUgem9zdGFuaWUgb3N0cnplxbxlbmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdQcnplZ2zEhWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnUmFwb3J0b3dhbmllIGN6YXN1IHByb2pla3R1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnV3lyYcW8ZW5pYSByZWd1bGFybmUgZG8gb2dyYW5pY3plbmlhIGxpc3R5IHphZGHFhCB3eWJyYW55Y2ggcHJvamVrdMOzdy4gS2x1Y3ogemF3aWVyYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgcHJvamVrdHUow7N3KSwgemF3YXJ0b8WbxIcgb2tyZcWbbGEgd3lyYcW8ZW5pZSByZWd1bGFybmUgZGxhIGFrY2ppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdXeXJhxbxlbmlhIHJlZ3VsYXJuZSBkbyBvZ3JhbmljemVuaWEgbGlzdHkgcHJvamVrdMOzdyB3eWJyYW55Y2ggZ3J1cCB1xbx5dGtvd25pa8Ozdy4gS2x1Y3ogemF3aWVyYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgcHJvamVrdHUow7N3KSwgemF3YXJ0b8WbxIcgemF3aWVyYSBsaXN0xJkgZ3J1cCByb3pkemllbG9ueWNoIHByemVjaW5rYW1pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnT2tyZcWbbGEsIGN6eSBjemFzIHByYWN5IG1vxbxlIHpvc3RhxIcgd3Byb3dhZHpvbnkgYmV6IHBvZGF3YW5pYSBjemFzdSByb3pwb2N6xJljaWEgb3JheiB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ1RlbiBtb2R1xYIgd3ltdXN6YSB1enVwZcWCbmlhbmllIHJvemxpY3plxYQgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnTW9kdcWCIHRlbiBvc3RyemVnYSBvIHpieXQgZHXFvGVqIGxpY3piaWUgbmllcm96bGljem9ueWNoIGRuaSByb2JvY3p5Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1JvemxpY3phbmllIGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkeWNqYSByb3psaWN6ZcWEIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnT3BpcyByb3psaWN6YW5pYSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSYXBvcnRvd2FuaWUgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0tvbmZpZ3VyYWNqYSByb3psaWN6ZcWEIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdQcnplZ2zEhWQgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ1JvemxpY3phbmllIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdXeWtvcnp5c3R5d2FuZSBqZcW8ZWxpIGt0w7NyZcWbIHphZGFuaWEgcmVkdWt1asSFIGdvZHppbnkgcHJhY3kgKG5wLiBqZcWbbGkgemEgY3phc3UgZG9qYXpkdSBsaWN6b25hIGplc3QgdHlsa28gcG/Fgm93YSBjemFzeTsgS2x1Y3ogPT4gZG9qYXpkOyBXYXJ0b8WbxIcgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnB0X0JSX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVm9jw6ogcmVhbG1lbnRlIGRlc2VqYSByZW1vdmVyIG8gYXBvbnRhbWVudG8gZGUgdGVtcG8gZGVzdGUgZGlhID8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgcGFyYSBjb25maWd1cmHDp8O1ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhw6fDo28gZGUgZGF0YXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEaWFzIHNlbSBhcG9udGFtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNpb25hciB0b2RvcyBvcyBkaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdFbnRyYWRhIGVtIG1hc3NhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUG9yIGZhdm9yLCBlc2NvbGhhIG8gbW90aXZvIGRlIHN1YSBhdXPDqm5jaWEgcGFyYSBvcyBkaWFzIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0VtIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0VtIGxpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdFbSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdDYW1wb3Mgb2JyaWdhdMOzcmlvcyBlc3TDo28gbWFyY2Fkb3MgY29tICIqIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ1ZvY8OqIHTDqm0gcXVlIHByZWVuY2hlciBpbsOtY2lvIGUgZmltLCBvdSB1bSBwZXLDrW9kbyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1RhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnT2JzZXJ2YcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ1BvciBmYXZvciwgYWRpY2lvbmUgdW0gY29tZW50w6FyaW8gY29tIG1haXMgZGUgOCBjYXJhY3RlcmVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnRGF0YXMgbmVnYXRpdmFzIG7Do28gc8OjbyBsaWJlcmFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0hvcmFzIHJlcGV0aWRhcyBuw6NvIHPDo28gbGliZXJhZGFzLiBJbmljaWUgbyBhcG9udGFtZW50byBlbSBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yLCBlbnRyZSBjb20gdW0gdGVtcG8gbm8gZm9ybWF0byBISDpNTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdBcGVuYXMgMjQ6MDAgc8OjbyBwZXJtaXRpZGFzIGNvbW8gdGVtcG8gZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdUZW1wbyBpbnbDoWxpZG8hIFVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnVGVtcG8gZmluYWwgZGV2ZSBzZXIgZGVwb2lzIGRvIHRlbXBvIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnSG9yYXMgcmVwZXRpZGFzIG7Do28gc8OjbyBsaWJlcmFkYXMuIEluaWNpZSBvIGFwb250YW1lbnRvIGVtIG91dHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1BlcsOtb2RvIGludsOhbGlkbyEgVW0gZGlhIHRlbSBhcGVuYXMgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW0gcGVyw61vZG8gdsOhbGlkbyBkZXZlIHNlciBtYWlvciBxdWUgemVyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1BlcsOtb2RvIGludsOhbGlkbyEgUGVyw61vZG9zIG5lZ2F0aXZvcyBuw6NvIHPDo28gbGliZXJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0FkaWNpb25hciB1bWEgbGluaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdWb2PDqiBwb2RlIHNlbGVjaW9uYXIgYXBlbmFzIHVtIGVsZW1lbnRvIG5vIGNoZWNrYm94ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnVGVtIGNlcnRlemEgZGUgcXVlIHZvY8OqIHRyYWJhbGhvdSBlbnF1YW50byBlc3RhdmEgZW0gbGljZW7Dp2EgbcOpZGljYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgdm9jw6ogdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBkZSBmw6lyaWFzPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnVm9jw6ogdGVtIGNlcnRlemEgcXVlIHRyYWJhbGhvdSBlbnF1YW50byBlc3RhdmEgZGUgbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdWb2PDqiB0ZW0gY2VydGV6YSBxdWUgdHJhYmFsaG91IG1haXMgcXVlIDE2IGhvcmFzPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnUmVsYXTDs3JpbyBkZSBhcG9udGFtZW50byBkZSB0ZW1wbyBtZW5zYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ0hvcmFzIGV4dHJhcyAoaG9yYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0hvcmFzIGV4dHJhcyAoZXN0ZSBtw6pzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnSG9yYXMgZXh0cmFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnUmVzdGFudGUgZGEgbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0bDqXJpYXMgKERpYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0bDqXJpYXMgdGlyYWRhcyAoZXN0ZSBtw6pzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnRsOpcmlhcyB0aXJhZGFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRsOpcmlhcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWNlbsOnYSBNw6lkaWNhIChEaWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0xpY2Vuw6dhIG3DqWRpY2FzIHRpcmFkYXMgICggZXN0ZSBtw6pzICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnTGljZW7Dp2EgbcOpZGljYXMgdGlyYWRhcyAgKCB0b3RhbCApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTcOqcyBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnUHLDs3hpbW8gbcOqcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRGlhIGRhIHNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSG9yw6FyaW8gZGUgdHJhYmFsaG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWwgZGUgaG9yYXMgdHJhYmFsaGFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzw6NvIGRlIHByb2pldG8gZGUgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0hvcmFzICggbWVuc2FsICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICggRHVyYcOnw6NvICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdUb3RhbCBnZXJhbCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZWxhdMOzcmlvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2HDp8OjbyBNZW5zYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIHBhcmEgZGF0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSZWxhdMOzcmlvcyBkZSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsIG1lbnNhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ0R1cmHDp8OjbyB0b3RhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0xpY2Vuw6dhIGRlIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0bDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnRsOpcmlhcyByZXN0YW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSZWxhdMOzcmlvcyBkZSBwcm9qZXRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSZWxhdMOzcmlvIGRlIHByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnSXIgcGFyYSB2aXPDo28gZ2VyYWwgZGUgcmVsYXTDs3Jpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBdHVhbG1lbnRlIHNvbWVudGUgdXN1w6FyaW9zIGF0aXZvcyBuZXN0ZSBwcm9qZXRvIHPDo28gZXhpYmlkb3MuIFBhcmEgYWx0ZXJhciBlc3NlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhdHVhbGl6ZSBhIGNvbmZpZ3VyYcOnw6NvOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBdHVhbG1lbnRlIHRvZG9zIG9zIGFwb250YW1lbnRvIGRlIHRlbXBvcyBkb3MgdXN1w6FyaW9zIHPDo28gZXhpYmlkb3MuIFBhcmEgYWx0ZXJhciBlc3NlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhdHVhbGl6ZSBhIGNvbmZpZ3VyYcOnw6NvOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRvIFByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZGljaW9uYXIgcHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lyIHBhcmEgY29uZmlndXJhw6fDtWVzIGdlcmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0FkaWNpb25hciBwcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkaXRhciBDb25maWd1cmHDp8O1ZXMgZG8gUHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnSsOhIGV4aXN0ZSB1bSBwcm9qZXRvIGNvbSBlc3RlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xoYSB1bSBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRWRpdGFyIENvbmZpZ3VyYcOnw7VlcyBkYSBDb250YWJpbGlkYWRlIGRlIFRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FkaWNpb25hciB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cmFyIHBvciBwcm9qZXRvcywgdGFyZWZhcyBvdSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdQZXLDrW9kb3MgZGUgdGVtcG8gbsOjbyBwb2RlbSBzZXIgZXhjbHXDrWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgZGUgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgdGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0FkaWNpb25hciB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnRWRpdGFyIGNvbmZpZ3VyYcOnw7VlcyBkYSBUYXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0rDoSBleGlzdGUgdW1hIHRhcmVmYSBjb20gZXNzZSBub21lLiBQb3IgZmF2b3IsIGVzY29saGEgdW0gbm9tZSBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnQ29uZmlndXJhw6fDtWVzIGRlIHVzdcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnTyB1c3XDoXJpbyB0ZW0gcGVybWlzc8OjbyBwYXJhIHZlciBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdPIHVzdcOhcmlvIHRlbSBwZXJtaXNzw6NvIHBhcmEgY3JpYXIgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0xpYmVyYXIgY3JpYcOnw6NvIGRlIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJ1VzdcOhcmlvIHRlbSBwZXJtaXNzw6NvIGRlIHB1bGFyIGEgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICdQZXJtaXRpciBwdWxhciBhIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdTZSBlc3RhIG9ww6fDo28gZm9yIHNlbGVjaW9uYWRhLCBhIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8gc2Vyw6EgZWZldGl2YW1lbnRlIG9wY2lvbmFsIHBhcmEgbyB1c3XDoXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnTsOjbyBoYXZlcsOjbyBhbGVydGFzIHNvYnJlIHJlZ2lzdHJvcyBmYWx0YW50ZXMgbmVtIHJlZ2lzdHJvcyBmb3LDp2Fkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICdJbnRlcnZhbG9zIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BlcsOtb2RvIEluaWNpYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcsOtb2RvIEZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEaWFzIGRlIEbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdIb3JhcyBwb3IgU2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYXMgYXV0b3JpemFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBpbmljaWFsICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IsIGluc2lyYSB1bWEgZGF0YSB2w6FsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXLDrW9kbyBmaW5hbCBkZXZlIHNlciBtYWlvciBxdWUgIHBlcsOtb2RvIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEaWFzIGRlIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5haXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ1BlcsOtb2RvIGRlIHRlbXBvIG7Do28gZW5jb250cmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWRpY2lvbmFyIHBlcsOtb2RvIGRlIHRlbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc8OjbyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEaWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdQcsOzeGltbyBkaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTsOjbyBmb3JhbSBlbmNvbnRyYWRvcyBkYWRvcyBwYXJhIGVzdGUgZGlhLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgaW5zZXJpciBVbmlkYWRlcyBkZSBUcmFiYWxobyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ0NvbmZpZ3VyYcOnw7VlcyBuw6NvIHNhbHZhcywgcG9pcyB1bSBkaWEgdGVtIGFwZW5hcyAyNCBob3JhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBkZWxldGFyIFVuaWRhZGVzIGRlIFRyYWJhbGhvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ0VzdGEgRGF0YSBlc3TDoSBmb3JhIGRvIGxpbWl0ZSwgbWFzIHZvY8OqIG7Do28gaW5zZXJpdSBlc3RlIGRpYSBhaW5kYSwgZW50w6NvIHZvY8OqIHBvc3N1aSBVTUEoISkgY2hhbmNlIGRlIGluc2VyaXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdEaWFzIGRlIHRyYWJhbGhvcyBpbmNvbXBsZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmlkbyBjb20gc3VjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0Vycm8gYW8gaW5zZXJpciBtw7psdGlwbGFzIGRhdGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdFbnRyYWRhIGRlIHbDoXJpYXMgZGF0YXMgaW5zZXJpZGEgY29tIHN1Y2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdEYXRhIGluc2VyaWRhIMOpIGludsOhbGlkYSEgRGF0YSBmb2kgYWx0ZXJhZGEgcGFyYSBob2plLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICdOZW5odW0gcGVyw61vZG8gZGUgdGVtcG8gY29uZmlndXJhZG8gb3UgYSBkYXRhIGVzcGVjaWZpY2FkYSBlc3TDoSBmb3JhIGRvcyBwZXLDrW9kb3MgZGUgdGVtcG8gZGVmaW5pZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnRW50cmUgZW0gY29udGF0byBjb20gbyBhZG1pbmlzdHJhZG9yIGNvbnTDoWJpbCBkbyB0ZW1wbyBwYXJhIGF0dWFsaXphciBzZXVzIHBlcsOtb2RvcyBkZSB0ZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIHByb2pldG9zIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUb2RvcyBvcyBwcm9qZXRvcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdQcm9qZXRvIGRlIFJlbGF0w7NyaW86IE5lY2Vzc8OhcmlvIFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ1Byb2pldG8gZGUgUmVsYXTDs3Jpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZWxhdMOzcmlvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ0ltcG9zc8OtdmVsIGF0dWFsaXphciBjb25maWd1cmHDp8O1ZXMgZGUgdXN1w6FyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamV0byBhZGljaW9uYWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamV0byBhdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0F0aXZpZGFkZSBhZGljaW9uYWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnQXRpdmlkYWRlIGF0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ08gVXNlcklEIG7Do28gw6kgdsOhbGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGluc2VyaXIgZGFkb3MgZGUgdXN1w6FyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnSW1wb3Nzw612ZWwgYWRpY2lvbmFyIHBlcsOtb2RvIGRlIHRlbXBvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnQ29uZmlndXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1VzdcOhcmlvIGF0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnVXN1w6FyaW8gYWRpY2lvbmFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBZGljaW9uYXIgdW0gdXN1w6FyaW8gcGFyYSBhIGNvbnRhYmlsaWRhZGUgZG8gdGVtcG8uLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTm92byB1c3XDoXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnRXN0YWRvIGRvIHBlcsOtb2RvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaXPDo286IE5lY2Vzc8OhcmlvICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnUG9yIGZhdm9yIGluc2lyYSBzdWFzIGhvcmFzIGRlIHRyYWJhbGhvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0RpYXMgZGUgdHJhYmFsaG9zIGluY29tcGxldG9zJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1BvciBmYXZvciwgZXNjb2xoYSBwZWxvIG1lbm9zIHVtIGRpYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0VudHJhZGEgZW0gbWFzc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdQb3IgZmF2b3IgZXNjb2xoYSB1bSBtb3Rpdm8gcGFyYSBhIGF1c8OqbmNpYSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0RlbGV0YXIgZW50cmFkYSBuYSBDb250YWJpbGlkYWRlIGRlIFRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1hciBpbnNlcsOnw6NvJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYcOnw6NvIGRvIEFnZW50ZSBwYXJhIHZlciBvIG51bWVybyBkZSBkaWFzIGluY29tcGxldG9zIGRvIHVzdcOhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ08gbm9tZSBwYWRyw6NvIHBhcmEgbm92YXMgYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTyBub21lIHBhZHLDo28gcGFyYSBub3ZvcyBwcm9qZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGF0YSBmaW5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGRhdGEgaW5pY2lhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGVzY3Jpw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGlhcyBkZSBmw6lyaWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBob3JhcyBleHRyYXMsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgaG9yYXMgc2VtYW5haXMgcGFkcsOjbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRXN0YWRvIHBhZHLDo28gcGFyYSBub3ZhcyBhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwYWRyw6NvIHBhcmEgbm92b3MgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcGFyYSBwYXJhIG5vdm9zIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmUgb3MgcHJvamV0b3MgcGFyYSBvcyBxdWFpcyDDqSBuZWNlc3PDoXJpYSB1bWEgb2JzZXJ2YcOnw6NvLiBTZSBvIFJlZ0V4cCDDqSBlbmNvbnRyYWRvIG5vIHByb2pldG8sIHZvY8OqIHRlbSBxdWUgaW5zZXJpciB1bWEgb2JzZXJ2YcOnw6NvLiBPIFJlZ0V4cCB1c2EgbyBwYXLDom1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSBvIG3Ds2R1bG8gZGUgZXN0YXTDrXN0aWNhcyBwb2RlIGdlcmFyIGluZm9ybWHDp8O1ZXMgZG8gdGltZSBhY2NvdW50aW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRhIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdQYXJhIHF1YW50b3MgZGlhcyBhdHLDoXMgdm9jw6ogcG9kZSBpbnNlcmlyIHVuaWRhZGVzIGRlIHRyYWJhbGhvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTZSBhdGl2YWRvLCBzb21lbnRlIG9zIHVzdcOhcmlvcyBxdWUgYWRpY2lvbm91IHRlbXBvIGRlIHRyYWJhbGhvIGFvIG8gcHJvamV0byBzZWxlY2lvbmFkbyBzZXLDo28gZXhpYmlkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTZSBhdGl2YWRvLCBvcyBlbGVtZW50b3Mgc3VzcGVuc29zIG5hIHRlbGEgZGUgZWRpw6fDo28gc8OjbyBtb2RpZmljYWRhcyBwYXJhIGNhbXBvcyBkZSBhdXRvY29tcGxldGFyIG1vZGVybml6YWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnU2UgaGFiaWxpdGFkbywgbyBmaWx0cm8gcGFyYSBvcyBwcm9qZXRvcyBhbnRlcmlvcmVzIHBvZGUgc2VyIHVzYWRvIGVtIHZleiBkZSBkdWFzIGxpc3RhcyBkZSBwcm9qZXRvcyAow7psdGltbyBlIHRvZG9zKS4gRWxlIHBvZGUgc2VyIHVzYWRvIGFwZW5hcyBzZSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1NlIGhhYmlsaXRhZG8sIG8gZmlsdHJvIHBhcmEgcHJvamV0b3MgYW50ZXJpb3JlcyDDqSBhdGl2YWRvIHBvciBwYWRyw6NvIHNlIGjDoSBwcm9qZXRvcyBhbnRlcmlvcmVzLiBFbGUgcG9kZSBzZXIgdXNhZG8gYXBlbmFzIHNlIEVuYWJsZUF1dG9Db21wbGV0aW9uIGUgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBlc3TDo28gaGFiaWxpdGFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTZSBhdGl2YWRvLCBvIHVzdcOhcmlvIHRlbSBwZXJtaXNzw6NvIHBhcmEgZW50cmFyICJlbSBsaWNlbsOnYSBkZSBmw6lyaWFzIiwgImVtIGxpY2Vuw6dhIG3DqWRpY2EiIGUgImVtIGxpY2Vuw6dhIGRlIGhvcmFzIGV4dHJhcyIgZGUgdW1hIHPDsyB2ZXogcGFyYSB2w6FyaWFzIGRhdGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ08gbsO6bWVybyBtw6F4aW1vIGRlIGRpYXMgZGUgdHJhYmFsaG8gYXDDs3MgbyBxdWFsIGFzICJ1bmlkYWRlcyBkZSB0cmFiYWxobyIgZGV2ZW0gc2VyIGluc2VyaWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgZGlhcyBkZSB0cmFiYWxobyBzZW0gInVuaWRhZGVzIGRlIHRyYWJhbGhvIiAgYXDDs3MgbyBxdWFsIHVtIGF2aXNvIHNlcsOhIG1vc3RyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXPDo28gR2VyYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnUmVsYXTDs3JpbyBkZSB0ZW1wb3MgZGUgcHJvamV0b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdBcyBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxpc3RhIGRlIGHDp8O1ZXMgZGUgYWNvcmRvIGNvbSBvIHByb2pldG8gc2VsZWNpb25hZG8uIENoYXZlIGNvbnTDqW0gZXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgbyBwcm9qZXRvKHMpLCBDb250ZcO6ZG8gY29udMOpbSBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSBhIGHDp8OjbyhzKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnQXMgZXhwcmVzc8O1ZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBhIGxpc3RhIGRlIHByb2pldG8gZGUgYWNvcmRvIGNvbSBncnVwb3MgZGUgdXN1w6FyaW9zLiBDaGF2ZSBjb250w6ltIGV4cHJlc3PDo28gcmVndWxhciBwYXJhIG8gcHJvamV0byAocyksIGNvbnRlw7pkbyBjb250w6ltIGxpc3RhICBzZXBhcmFkYSBwb3IgdsOtcmd1bGFzIGRlIGdydXBvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpcXVlIHNlIG8gaG9yw6FyaW8gZGUgdHJhYmFsaG8gcG9kZSBzZXIgaW5zZXJpZG8gc2VtIGhvcsOhcmlvcyBkZSBpbsOtY2lvIGUgdMOpcm1pbm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0Vzc2UgbcOzZHVsbyBmb3LDp2EgcHJlZW5jaGVyIG8gVGltZUFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRXN0ZSBtw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZMOhIHVtIGF2aXNvIHNlIGhvdXZlciBtdWl0b3MgZGlhcyBkZSB0cmFiYWxobyBuw6NvIHJlZ2lzdHJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWRlIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdWaXPDo28gZ2VyYWwgZGUgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlbGF0w7NyaW8gZGUgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnQ29uZmlndXJhw6fDtWVzIGRlIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnVmVyIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0NvbnRhYmlsaWRhZGUgVGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnVXNhciBwYXJhICBhbGd1bWFzIGHDp8O1ZXMgZGUgcmVkdXppciBhcyBob3JhcyBkZSB0cmFiYWxobyAocG9yIGV4ZW1wbG8sIHNlIGFwZW5hcyBtZXRhZGUgZG8gdGVtcG8gZGUgdmlhZ2VtIMOpIHBhZ28gS2V5ID0+IHZpYWphcjsgQ29udGVudCA9PiA1MCknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnB0X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVm9jw6ogcmVhbG1lbnRlIGRlc2VqYSByZW1vdmVyIG8gYXBvbnRhbWVudG8gZGUgdGVtcG8gZGVzdGUgZGlhID8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgcGFyYSBjb25maWd1cmHDp8O1ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhw6fDo28gZGUgZGF0YXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEaWFzIHNlbSBhcG9udGFtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNpb25hciB0b2RvcyBvcyBkaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdFbnRyYWRhIGVtIG1hc3NhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUG9yIGZhdm9yLCBlc2NvbGhhIG8gbW90aXZvIGRlIHN1YSBhdXPDqm5jaWEgcGFyYSBvcyBkaWFzIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0VtIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0VtIGxpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdFbSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdDYW1wb3Mgb2JyaWdhdMOzcmlvcyBlc3TDo28gbWFyY2Fkb3MgY29tICIqIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ1ZvY8OqIHTDqm0gcXVlIHByZWVuY2hlciBpbsOtY2lvIGUgZmltLCBvdSB1bSBwZXLDrW9kbyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1RhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnT2JzZXJ2YcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ1BvciBmYXZvciwgYWRpY2lvbmUgdW0gY29tZW50w6FyaW8gY29tIG1haXMgZGUgOCBjYXJhY3RlcmVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnRGF0YXMgbmVnYXRpdmFzIG7Do28gc8OjbyBsaWJlcmFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0hvcmFzIHJlcGV0aWRhcyBuw6NvIHPDo28gbGliZXJhZGFzLiBJbmljaWUgbyBhcG9udGFtZW50byBlbSBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yLCBlbnRyZSBjb20gdW0gdGVtcG8gbm8gZm9ybWF0byBISDpNTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdBcGVuYXMgMjQ6MDAgc8OjbyBwZXJtaXRpZGFzIGNvbW8gdGVtcG8gZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdUZW1wbyBpbnbDoWxpZG8hIFVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnVGVtcG8gZmluYWwgZGV2ZSBzZXIgZGVwb2lzIGRvIHRlbXBvIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnSG9yYXMgcmVwZXRpZGFzIG7Do28gc8OjbyBsaWJlcmFkYXMuIEluaWNpZSBvIGFwb250YW1lbnRvIGVtIG91dHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1BlcmlvZG8gaW52w6FsaWRvLiBVbSBkaWEgdGVtIGFwZW5hcyAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbSBwZXLDrW9kbyB2w6FsaWRvIGRldmUgc2VyIG1haW9yIHF1ZSB6ZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnUGVyw61vZG8gaW52w6FsaWRvISBQZXLDrW9kb3MgbmVnYXRpdm9zIG7Do28gc8OjbyBsaWJlcmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQWRpY2lvbmFyIHVtYSBsaW5oYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1ZvY8OqIHBvZGUgc2VsZWNpb25hciBhcGVuYXMgdW0gZWxlbWVudG8gbm8gY2hlY2tib3ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgdm9jw6ogdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBlbSBsaWNlbsOnYSBtw6lkaWNhPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ1RlbSBjZXJ0ZXphIGRlIHF1ZSB2b2PDqiB0cmFiYWxob3UgZW5xdWFudG8gZXN0YXZhIGRlIGbDqXJpYXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdWb2PDqiB0ZW0gY2VydGV6YSBxdWUgdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBkZSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ1ZvY8OqIHRlbSBjZXJ0ZXphIHF1ZSB0cmFiYWxob3UgbWFpcyBxdWUgMTYgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdSZWxhdMOzcmlvIGRlIGFwb250YW1lbnRvIGRlIHRlbXBvIG1lbnNhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnSG9yYXMgZXh0cmFzIChob3JhcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmFzIChlc3RlIG3DqnMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdIb3JhcyBleHRyYXMgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdSZXN0YW50ZSBkYSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnRsOpcmlhcyAoRGlhcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRsOpcmlhcyB0aXJhZGFzIChlc3RlIG3DqnMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdGw6lyaWFzIHRpcmFkYXMgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdGw6lyaWFzIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0xpY2Vuw6dhIE3DqWRpY2EgKERpYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnTGljZW7Dp2EgbcOpZGljYXMgdGlyYWRhcyAgKCBlc3RlIG3DqnMgKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdMaWNlbsOnYSBtw6lkaWNhcyB0aXJhZGFzICAoIHRvdGFsICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNw6pzIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdQcsOzeGltbyBtw6pzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdEaWEgZGEgc2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdIb3LDoXJpbyBkZSB0cmFiYWxobyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbCBkZSBob3JhcyB0cmFiYWxoYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXPDo28gZGUgcHJvamV0byBkZSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnSG9yYXMgKCBtZW5zYWwgKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSG9yYXMgKCBEdXJhw6fDo28gKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsIGdlcmFsJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlbGF0w7NyaW8gZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmVnYcOnw6NvIE1lbnNhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSXIgcGFyYSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JlbGF0w7NyaW9zIGRlIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWwgbWVuc2FsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnRHVyYcOnw6NvIHRvdGFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnTGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRsOpcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnTGljZW7Dp2EgbcOpZGljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdGw6lyaWFzIHJlc3RhbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JlbGF0w7NyaW9zIGRlIHByb2pldG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1JlbGF0w7NyaW8gZGUgcHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdJciBwYXJhIHZpc8OjbyBnZXJhbCBkZSByZWxhdMOzcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0F0dWFsbWVudGUgc29tZW50ZSB1c3XDoXJpb3MgYXRpdm9zIG5lc3RlIHByb2pldG8gc8OjbyBleGliaWRvcy4gUGFyYSBhbHRlcmFyIGVzc2UgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGF0dWFsaXplIGEgY29uZmlndXJhw6fDo286JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0F0dWFsbWVudGUgdG9kb3Mgb3MgYXBvbnRhbWVudG8gZGUgdGVtcG9zIGRvcyB1c3XDoXJpb3Mgc8OjbyBleGliaWRvcy4gUGFyYSBhbHRlcmFyIGVzc2UgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGF0dWFsaXplIGEgY29uZmlndXJhw6fDo286JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkaXRhciBjb25maWd1cmHDp8O1ZXMgZG8gUHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ0FkaWNpb25hciBwcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnSXIgcGFyYSBjb25maWd1cmHDp8O1ZXMgZ2VyYWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnQWRpY2lvbmFyIHByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWRpdGFyIENvbmZpZ3VyYcOnw7VlcyBkbyBQcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdKw6EgZXhpc3RlIHVtIHByb2pldG8gY29tIGVzdGUgbm9tZS4gUG9yIGZhdm9yLCBlc2NvbGhhIHVtIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdFZGl0YXIgQ29uZmlndXJhw6fDtWVzIGRhIENvbnRhYmlsaWRhZGUgZGUgVGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnQWRpY2lvbmFyIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ0ZpbHRyYXIgcG9yIHByb2pldG9zLCB0YXJlZmFzIG91IHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ1BlcsOtb2RvcyBkZSB0ZW1wbyBuw6NvIHBvZGVtIHNlciBleGNsdcOtZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSBkZSB0YXJlZmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWRpY2lvbmFyIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRhIFRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnSsOhIGV4aXN0ZSB1bWEgdGFyZWZhIGNvbSBlc3NlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xoYSB1bSBub21lIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICdDb25maWd1cmHDp8O1ZXMgZGUgdXN1w6FyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdPIHVzdcOhcmlvIHRlbSBwZXJtaXNzw6NvIHBhcmEgdmVyIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ08gdXN1w6FyaW8gdGVtIHBlcm1pc3PDo28gcGFyYSBjcmlhciBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnTGliZXJhciBjcmlhw6fDo28gZGUgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnVXN1w6FyaW8gdGVtIHBlcm1pc3PDo28gZGUgcHVsYXIgYSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJ1Blcm1pdGlyIHB1bGFyIGEgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ1NlIGVzdGEgb3DDp8OjbyBmb3Igc2VsZWNpb25hZGEsIGEgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyBzZXLDoSBlZmV0aXZhbWVudGUgb3BjaW9uYWwgcGFyYSBvIHVzdcOhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICdOw6NvIGhhdmVyw6NvIGFsZXJ0YXMgc29icmUgcmVnaXN0cm9zIGZhbHRhbnRlcyBuZW0gcmVnaXN0cm9zIGZvcsOnYWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ0ludGVydmFsb3MgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyw61vZG8gSW5pY2lhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyw61vZG8gRmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0RpYXMgZGUgRsOpcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ0hvcmFzIHBvciBTZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0hvcmFzIGV4dHJhcyBhdXRvcml6YWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdEYXRhIGluaWNpYWwgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1BvciBmYXZvciwgaW5zaXJhIHVtYSBkYXRhIHbDoWxpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRGF0YSBmaW5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ1BlcsOtb2RvIGZpbmFsIGRldmUgc2VyIG1haW9yIHF1ZSAgcGVyw61vZG8gaW5pY2lhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0RpYXMgZGUgZsOpcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ0hvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnUGVyw61vZG8gZGUgdGVtcG8gbsOjbyBlbmNvbnRyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZGljaW9uYXIgcGVyw61vZG8gZGUgdGVtcG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnVmVyIHJlZ2lzdHJvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzw6NvIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0RpYSBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ1Byw7N4aW1vIGRpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOw6NvIGZvcmFtIGVuY29udHJhZG9zIGRhZG9zIHBhcmEgZXN0ZSBkaWEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBpbnNlcmlyIFVuaWRhZGVzIGRlIFRyYWJhbGhvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnQ29uZmlndXJhw6fDtWVzIG7Do28gc2FsdmFzLCBwb2lzIHVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGRlbGV0YXIgVW5pZGFkZXMgZGUgVHJhYmFsaG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXN0YSBEYXRhIGVzdMOhIGZvcmEgZG8gbGltaXRlLCBtYXMgdm9jw6ogbsOjbyBpbnNlcml1IGVzdGUgZGlhIGFpbmRhLCBlbnTDo28gdm9jw6ogcG9zc3VpIFVNQSghKSBjaGFuY2UgZGUgaW5zZXJpcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0RpYXMgZGUgdHJhYmFsaG9zIGluY29tcGxldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyaWRvIGNvbSBzdWNlc3NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRXJybyBhbyBpbnNlcmlyIG3Dumx0aXBsYXMgZGF0YXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0VudHJhZGEgZGUgdsOhcmlhcyBkYXRhcyBpbnNlcmlkYSBjb20gc3VjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0RhdGEgaW5zZXJpZGEgw6kgaW52w6FsaWRhISBEYXRhIGZvaSBhbHRlcmFkYSBwYXJhIGhvamUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ05lbmh1bSBwZXLDrW9kbyBkZSB0ZW1wbyBjb25maWd1cmFkbyBvdSBhIGRhdGEgZXNwZWNpZmljYWRhIGVzdMOhIGZvcmEgZG9zIHBlcsOtb2RvcyBkZSB0ZW1wbyBkZWZpbmlkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICdFbnRyZSBlbSBjb250YXRvIGNvbSBvIGFkbWluaXN0cmFkb3IgY29udMOhYmlsIGRvIHRlbXBvIHBhcmEgYXR1YWxpemFyIHNldXMgcGVyw61vZG9zIGRlIHRlbXBvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnw5psdGltb3MgcHJvamV0b3Mgc2VsZWNpb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1RvZG9zIG9zIHByb2pldG9zJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1Byb2pldG8gZGUgUmVsYXTDs3JpbzogTmVjZXNzw6FyaW8gUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnUHJvamV0byBkZSBSZWxhdMOzcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlbGF0w7NyaW8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnSW1wb3Nzw612ZWwgYXR1YWxpemFyIGNvbmZpZ3VyYcOnw7VlcyBkZSB1c3XDoXJpbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9qZXRvIGFkaWNpb25hZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICdQcm9qZXRvIGF0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnQXRpdmlkYWRlIGFkaWNpb25hZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdBdGl2aWRhZGUgYXR1YWxpemFkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnTyBVc2VySUQgbsOjbyDDqSB2w6FsaWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgaW5zZXJpciBkYWRvcyBkZSB1c3XDoXJpbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdJbXBvc3PDrXZlbCBhZGljaW9uYXIgcGVyw61vZG8gZGUgdGVtcG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdDb25maWd1cmHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnVXN1w6FyaW8gYXR1YWxpemFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdVc3XDoXJpbyBhZGljaW9uYWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJ0FkaWNpb25hciB1bSB1c3XDoXJpbyBwYXJhIGEgY29udGFiaWxpZGFkZSBkbyB0ZW1wby4uLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3ZvIHVzdcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdFc3RhZG8gZG8gcGVyw61vZG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1Zpc8OjbzogTmVjZXNzw6FyaW8gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdQb3IgZmF2b3IgaW5zaXJhIHN1YXMgaG9yYXMgZGUgdHJhYmFsaG8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnRGlhcyBkZSB0cmFiYWxob3MgaW5jb21wbGV0b3MnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUG9yIGZhdm9yLCBlc2NvbGhhIHBlbG8gbWVub3MgdW0gZGlhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnRW50cmFkYSBlbSBtYXNzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1BvciBmYXZvciBlc2NvbGhhIHVtIG1vdGl2byBwYXJhIGEgYXVzw6puY2lhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRGVsZXRhciBlbnRyYWRhIG5hIENvbnRhYmlsaWRhZGUgZGUgVGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWFyIGluc2Vyw6fDo28nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZG8gQWdlbnRlIHBhcmEgdmVyIG8gbnVtZXJvIGRlIGRpYXMgaW5jb21wbGV0b3MgZG8gdXN1w6FyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTyBub21lIHBhZHLDo28gcGFyYSBub3ZhcyBhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdPIG5vbWUgcGFkcsOjbyBwYXJhIG5vdm9zIHByb2pldG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkYXRhIGZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGF0YSBpbmljaWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkZXNjcmnDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkaWFzIGRlIGbDqXJpYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGhvcmFzIGV4dHJhcywnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBob3JhcyBzZW1hbmFpcyBwYWRyw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdFc3RhZG8gcGFkcsOjbyBwYXJhIG5vdmFzIGHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRXN0YWRvIHBhZHLDo28gcGFyYSBub3ZvcyBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0VzdGFkbyBwYXJhIHBhcmEgbm92b3MgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBwcm9qZXRvcyBwYXJhIG9zIHF1YWlzIMOpIG5lY2Vzc8OhcmlhIHVtYSBvYnNlcnZhw6fDo28uIFNlIG8gUmVnRXhwIMOpIGVuY29udHJhZG8gbm8gcHJvamV0bywgdm9jw6ogdGVtIHF1ZSBpbnNlcmlyIHVtYSBvYnNlcnZhw6fDo28uIE8gUmVnRXhwIHVzYSBvIHBhcsOibWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNlIG8gbcOzZHVsbyBkZSBlc3RhdMOtc3RpY2FzIHBvZGUgZ2VyYXIgaW5mb3JtYcOnw7VlcyBkbyB0aW1lIGFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0VkaXRhciBjb25maWd1cmHDp8O1ZXMgZGEgY29udGFiaWxpZGFkZSBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdFZGl0YXIgcmVnaXN0cm8gZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1BhcmEgcXVhbnRvcyBkaWFzIGF0csOhcyB2b2PDqiBwb2RlIGluc2VyaXIgdW5pZGFkZXMgZGUgdHJhYmFsaG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIHNvbWVudGUgb3MgdXN1w6FyaW9zIHF1ZSBhZGljaW9ub3UgdGVtcG8gZGUgdHJhYmFsaG8gYW8gbyBwcm9qZXRvIHNlbGVjaW9uYWRvIHNlcsOjbyBleGliaWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG9zIGVsZW1lbnRvcyBzdXNwZW5zb3MgbmEgdGVsYSBkZSBlZGnDp8OjbyBzw6NvIG1vZGlmaWNhZGFzIHBhcmEgY2FtcG9zIGRlIGF1dG9jb21wbGV0YXIgbW9kZXJuaXphZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTZSBoYWJpbGl0YWRvLCBvIGZpbHRybyBwYXJhIG9zIHByb2pldG9zIGFudGVyaW9yZXMgcG9kZSBzZXIgdXNhZG8gZW0gdmV6IGRlIGR1YXMgbGlzdGFzIGRlIHByb2pldG9zICjDumx0aW1vIGUgdG9kb3MpLiBFbGUgcG9kZSBzZXIgdXNhZG8gYXBlbmFzIHNlIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2UgaGFiaWxpdGFkbywgbyBmaWx0cm8gcGFyYSBwcm9qZXRvcyBhbnRlcmlvcmVzIMOpIGF0aXZhZG8gcG9yIHBhZHLDo28gc2UgaMOhIHByb2pldG9zIGFudGVyaW9yZXMuIEVsZSBwb2RlIHNlciB1c2FkbyBhcGVuYXMgc2UgRW5hYmxlQXV0b0NvbXBsZXRpb24gZSBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGVzdMOjbyBoYWJpbGl0YWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG8gdXN1w6FyaW8gdGVtIHBlcm1pc3PDo28gcGFyYSBlbnRyYXIgImVtIGxpY2Vuw6dhIGRlIGbDqXJpYXMiLCAiZW0gbGljZW7Dp2EgbcOpZGljYSIgZSAiZW0gbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzIiBkZSB1bWEgc8OzIHZleiBwYXJhIHbDoXJpYXMgZGF0YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgZGlhcyBkZSB0cmFiYWxobyBhcMOzcyBvIHF1YWwgYXMgInVuaWRhZGVzIGRlIHRyYWJhbGhvIiBkZXZlbSBzZXIgaW5zZXJpZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdPIG7Dum1lcm8gbcOheGltbyBkZSBkaWFzIGRlIHRyYWJhbGhvIHNlbSAidW5pZGFkZXMgZGUgdHJhYmFsaG8iICBhcMOzcyBvIHF1YWwgdW0gYXZpc28gc2Vyw6EgbW9zdHJhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ1Zpc8OjbyBHZXJhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdSZWxhdMOzcmlvIGRlIHRlbXBvcyBkZSBwcm9qZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0FzIGV4cHJlc3PDtWVzIHJlZ3VsYXJlcyBwYXJhIHJlc3RyaW5naXIgbGlzdGEgZGUgYcOnw7VlcyBkZSBhY29yZG8gY29tIG8gcHJvamV0byBzZWxlY2lvbmFkby4gQ2hhdmUgY29udMOpbSBleHByZXNzw6NvIHJlZ3VsYXIgcGFyYSBvIHByb2pldG8ocyksIENvbnRlw7pkbyBjb250w6ltIGV4cHJlc3PDtWVzIHJlZ3VsYXJlcyBwYXJhIGEgYcOnw6NvKHMpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdBcyBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGEgbGlzdGEgZGUgcHJvamV0byBkZSBhY29yZG8gY29tIGdydXBvcyBkZSB1c3XDoXJpb3MuIENoYXZlIGNvbnTDqW0gZXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgbyBwcm9qZXRvIChzKSwgY29udGXDumRvIGNvbnTDqW0gbGlzdGEgIHNlcGFyYWRhIHBvciB2w61yZ3VsYXMgZGUgZ3J1cG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnRXNwZWNpZmlxdWUgc2UgbyBob3LDoXJpbyBkZSB0cmFiYWxobyBwb2RlIHNlciBpbnNlcmlkbyBzZW0gaG9yw6FyaW9zIGRlIGluw61jaW8gZSB0w6lybWluby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRXNzZSBtw7NkdWxvIGZvcsOnYSBwcmVlbmNoZXIgbyBUaW1lQWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdFc3RlIG3Ds2R1bG8gZGUgbm90aWZpY2HDp8OjbyBkw6EgdW0gYXZpc28gc2UgaG91dmVyIG11aXRvcyBkaWFzIGRlIHRyYWJhbGhvIG7Do28gcmVnaXN0cmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ0NvbnRhYmlsaWRhZGUgVGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWRpdGFyIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1Zpc8OjbyBnZXJhbCBkZSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnUmVsYXTDs3JpbyBkZSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdDb25maWd1cmHDp8O1ZXMgZGUgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkZSBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdVc2FyIHBhcmEgIGFsZ3VtYXMgYcOnw7VlcyBkZSByZWR1emlyIGFzIGhvcmFzIGRlIHRyYWJhbGhvIChwb3IgZXhlbXBsbywgc2UgYXBlbmFzIG1ldGFkZSBkbyB0ZW1wbyBkZSB2aWFnZW0gw6kgcGFnbyBLZXkgPT4gdmlhamFyOyBDb250ZW50ID0+IDUwKSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnJvX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdaaWxlIGZhcmEgaW50cmFyaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY3RlYXphIHRvYXRlIHppbGVsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2llY3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+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+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1ppdWEgYW50ZXJpb2FyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ1ppdWEgdXJtYXRvYXJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnRyb2R1cyBjdSBzdWNjZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JhcG9ydGFyZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1NldGFyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVmEgcnVnYW0gaW50cm9kdWNldGkgY2F0ZSBvcmUgYXRpIGx1Y3JhdCEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnVmEgcnVnYW0gYWxlZ2V0aSBjZWwgcHV0aW4gbyB6aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnJ1X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDQttC10LvQsNC10YLQtSDRg9C00LDQu9C40YLRjCDRg9GH0YLQtdC90L3Ri9C1INC30LDRgtGA0LDRgtGLINCy0YDQtdC80LXQvdC4INC00LvRjyDRjdGC0L7Qs9C+INC00L3Rjz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0LfQsNC/0LjRgdGMINCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0L3QsNGB0YLRgNC+0LnQutCw0LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAn0J3QsNCy0LjQs9Cw0YbQuNGPINC/0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfQlNC90Lgg0LHQtdC3INC30LDQv9C40YHQtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ9CS0YvQsdGA0LDRgtGMINCy0YHQtSDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ9Cc0LDRgdGB0L7QstGL0Lkg0LLQstC+0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfQktGL0LHQtdGA0LjRgtC1INC/0YDQuNGH0LjQvdGDINCy0LDRiNC10LPQviDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQsiDQstGL0LHRgNCw0L3QvdGL0LUg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAn0JIg0L7RgtC/0YPRgdC60LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ9Cf0L4g0LHQvtC70LXQt9C90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICfQkiDQvtGC0LPRg9C70LUg0LfQsCDQv9C10YDQtdGA0LDQsdC+0YLQutGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3Ri9C1INC/0L7Qu9GPINC/0L7QvNC10YfQtdC90YsgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Cd0LXQvtCx0YXQvtC00LjQvNC+INC30LDQv9C+0LvQvdC40YLRjCDQstGA0LXQvNGPINC90LDRh9Cw0LvQsCDQuCDQvtC60L7QvdGH0LDQvdC40Y8g0LjQu9C4INC/0LXRgNC40L7QtCDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ9Cf0LvQsNC90LjRgNC+0LLQsNC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn0JfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ9Cf0YDQuNC80LXRh9Cw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ9Cf0YDQuNC80LXRh9Cw0L3QuNC1INC00L7Qu9C20L3QviDQsdGL0YLRjCDQvdC1INC80LXQvdC10LUgOCDRgdC40LzQstC+0LvQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDQvdC10LTQvtC/0YPRgdGC0LjQvNC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J3QtSDQtNC+0L/Rg9GB0LrQsNC10YLRgdGPINC/0L7QstGC0L7RgNC10L3QuNC1LiDQktGA0LXQvNGPINC90LDRh9Cw0LvQsCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0LXRgiDQtNGA0YPQs9C+0LzRgyDQuNC90YLQtdGA0LLQsNC70YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfQndC10LLQtdGA0L3Ri9C5INGE0L7RgNC80LDRgiEg0JLQstC10LTQuNGC0LUg0LLRgNC10LzRjyDQsiDRhNC+0YDQvNCw0YLQtSBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAn0KLQvtC70YzQutC+IDI0OjAwINGA0LDQt9GA0LXRiNC10L3QviDQsiDQutCw0YfQtdGB0YLQstC1INCy0YDQtdC80LXQvdC4INC+0LrQvtC90YfQsNC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQtdGA0L3QvtC1INCy0YDQtdC80Y8hINCSINGB0YPRgtC60LDRhSDRgtC+0LvRjNC60L4gMjQg0YfQsNGB0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfQktGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0L/QvtC30LbQtSDQstGA0LXQvNC10L3QuCDQvdCw0YfQsNC70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J3QtSDQtNC+0L/Rg9GB0LrQsNC10YLRgdGPINC/0L7QstGC0L7RgNC10L3QuNC1LiDQktGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0LXRgiDQtNGA0YPQs9C+0LzRgyDQuNC90YLQtdGA0LLQsNC70YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQtdGA0L3Ri9C5INC/0LXRgNC40L7QtCEg0JIg0YHRg9GC0LrQsNGFINGC0L7Qu9GM0LrQviAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICfQn9GA0LDQstC40LvRjNC90YvQuSDQv9C10YDQuNC+0LQg0LTQvtC70LbQtdC9INCx0YvRgtGMINCx0L7Qu9GM0YjQtSDQvdGD0LvRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0L/QtdGA0LjQvtC0ISDQntGC0YDQuNGG0LDRgtC10LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1INC90LUg0LTQvtC/0YPRgdC60LDQtdGC0YHRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC+0LTQvdGDINGB0YLRgNC+0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ9CjINCy0LDRgSDQtdGB0YLRjCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINCy0YvQsdGA0LDRgtGMINGC0L7Qu9GM0LrQviDQvtC00LjQvSDRjdC70LXQvNC10L3RgiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YDQsNCx0L7RgtCw0LvQuCDQsiDQv9C10YDQuNC+0LQg0LHQvtC70LXQt9C90Lg/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCyINC/0LXRgNC40L7QtCDQvtGC0L/Rg9GB0LrQsD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YDQsNCx0L7RgtCw0LvQuCDQsiDQv9C10YDQuNC+0LQg0L7RgtCz0YPQu9C+0LI/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YDQsNCx0L7RgtCw0LvQuCDQsdC+0LvQtdC1IDE2INGH0LDRgdC+0LI/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICfQnNC10YHRj9GH0L3Ri9C5INC+0YLRh9C10YIg0L4g0LfQsNGC0YDQsNGH0LXQvdC90L7QvCDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsCAo0YfQsNGB0YspJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ9Cf0LXRgNC10YDQsNCx0L7RgtC60LAgKNGN0YLQvtCz0L4g0LzQtdGB0Y/RhtCwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsCAo0LLRgdC10LPQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgdGC0LDQstGI0LXQtdGB0Y8g0LLRgNC10LzRjyDQvtGC0LPRg9C70LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7RgtC/0YPRgdC6ICjQtNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0L3QvdGL0LUg0LTQvdC4INC+0YLQv9GD0YHQutCwICjQsiDRjdGC0L7QvCDQvNC10YHRj9GG0LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNC90L3Ri9C1INC00L3QuCDQvtGC0L/Rg9GB0LrQsCAo0LLRgdC10LPQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn0J7RgdGC0LDQstGI0LjQtdGB0Y8g0LTQvdC4INC+0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAn0JHQvtC70LXQt9C90YwgKNC00L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICfQntGC0YHRg9GC0YHRgtCy0L7QstCw0Lsg0L/QviDQsdC+0LvQtdC30L3QuCAo0LIg0Y3RgtC+0Lwg0LzQtdGB0Y/RhtC1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICfQntGC0YHRg9GC0YHRgtCy0L7QstCw0Lsg0L/QviDQsdC+0LvQtdC30L3QuCAo0LLRgdC10LPQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXQtNGL0LTRg9GJ0LjQuSDQvNC10YHRj9GGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICfQodC70LXQtNGD0Y7RidC40Lkg0LzQtdGB0Y/Rhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0J3QtdC00LXQu9GPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICfQoNCw0LHQvtGH0LjQtSDRh9Cw0YHRiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICfQktGB0LXQs9C+INC+0YLRgNCw0LHQvtGC0LDQvdC90YvRhSDRh9Cw0YHQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ9Ce0LHQt9C+0YAg0LTQsNC90L3Ri9GFINC/0L4g0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGOINC00LvRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KfQsNGB0YsgKNC10LbQtdC80LXRgdGP0YfQvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn0KfQsNGB0YsgKNC30LAg0LLQtdGB0Ywg0YHRgNC+0Log0L3QsNCx0LvRjtC00LXQvdC40Y8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn0JLRgdC10LPQvic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICfQntGC0YfQtdGCINC+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40Y8g0L/QviDQvNC10YHRj9GG0LDQvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0LTQsNGC0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn0J7RgtGH0LXRgiDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ9CY0YLQvtCz0L4g0LfQsCDQvNC10YHRj9GGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAn0JjRgtC+0LPQviDQt9CwINCy0YHQtSDQstGA0LXQvNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgtCz0YPQu9GLINC30LAg0L/QtdGA0LXRgNCw0LHQvtGC0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ9Ce0YLQv9GD0YHQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0J7RgtGB0YPRgtGB0YLQstC40LUg0L/QviDQsdC+0LvQtdC30L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfQntGB0YLQsNC70L7RgdGMINC00L3QtdC5INC+0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ9Ce0YLRh9C10YLRiyDQv9C+INC/0LvQsNC90LjRgNC+0LLQsNC90LjRjic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn0J7RgtGH0LXRgiDQv9C+INC/0LvQsNC90LjRgNC+0LLQsNC90LjRjic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQvtCx0LfQvtGA0YMg0L7RgtGH0LXRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQkiDQvdCw0YHRgtC+0Y/RidC10LUg0LLRgNC10LzRjyDQv9C+0LrQsNC30LDQvdGLINGC0L7Qu9GM0LrQviDQsNC60YLQuNCy0L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCDQsiDRjdGC0L7QvCDQv9GA0L7QtdC60YLQtS4g0KfRgtC+0LHRiyDQuNC30LzQtdC90LjRgtGMINGN0YLQviwg0L/QvtC20LDQu9GD0LnRgdGC0LAsINC+0LHQvdC+0LLQuNGC0LUg0L3QsNGB0YLRgNC+0LnQutC4Oic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQkiDQvdCw0YHRgtC+0Y/RidC10LUg0LLRgNC10LzRjyDQv9C+0LrQsNC30LDQvdGLINCy0YHQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Lgg0LIg0Y3RgtC+0Lwg0L/RgNC+0LXQutGC0LUuINCn0YLQvtCx0Ysg0LjQt9C80LXQvdC40YLRjCwg0L/QvtC20LDQu9GD0LnRgdGC0LAsINC+0LHQvdC+0LLQuNGC0LUg0L3QsNGB0YLRgNC+0LnQutC4Oic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0YPRh9C10YLQsCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90Lgg0L/QviDQv9GA0L7QtdC60YLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0L7QsdC30L7RgNGDINC90LDRgdGC0YDQvtC10LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0LvQsNC90LjRgNC+0LLQsNC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQo9C20LUg0LXRgdGC0Ywg0L/RgNC+0LXQutGCINGBINGC0LDQutC40Lwg0L3QsNC40LzQtdC90L7QstCw0L3QuNC10LwuINCS0YvQsdC10YDQuNGC0LUg0LTRgNGD0LPQvtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDRg9GH0LXRgtCwINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LfQsNC00LDRh9GDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAn0KTQuNC70YzRgtGAINC00LvRjyDQv9GA0L7QtdC60YLQvtCyLCDQt9Cw0LTQsNGHINC40LvQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ9Cf0LXRgNC40L7QtNGLINCy0YDQtdC80LXQvdC4INC90LUg0LzQvtCz0YPRgiDQsdGL0YLRjCDRg9C00LDQu9C10L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC/0YDQvtC10LrRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC30LDQtNCw0YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC30LDQtNCw0YfRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0LfQsNC00LDRh9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQo9C20LUg0LXRgdGC0Ywg0LfQsNC00LDRh9CwINGBINGC0LDQutC40Lwg0LjQvNC10L3QtdC8LCDQktGL0LHQtdGA0LjRgtC1INC00YDRg9Cz0L7QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQtSDQvdCw0YHRgtGA0L7QudC60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Y4g0YDQsNC30YDQtdGI0LXQvdC+INC/0YDQvtGB0LzQsNGC0YDQuNCy0LDRgtGMINCy0YDQtdC80Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ9Cf0L7QutCw0LfQsNGC0Ywg0L/QtdGA0LXRgNCw0LHQvtGC0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAn0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GOINGA0LDQt9GA0LXRiNC10L3QviDRgdC+0LfQtNCw0LLQsNGC0Ywg0L/RgNC+0LXQutGC0YsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9Cg0LDQt9GA0LXRiNC40YLRjCDRgdC+0LfQtNCw0L3QuNC1INC/0YDQvtC10LrRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ9Cf0YDQvtC80LXQttGD0YLQutC4INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ9Cd0LDRh9Cw0LvQviDQv9C10YDQuNC+0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAn0JrQvtC90LXRhiDQv9C10YDQuNC+0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn0JTQvdC4INC+0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAn0KfQsNGB0L7QsiDQsiDQvdC10LTQtdC70LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ9Cg0LDQt9GA0LXRiNC10L3QvdCw0Y8g0L/QtdGA0LXRgNCw0LHQvtGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0JTQsNGC0LAg0L3QsNGH0LDQu9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ9CS0LLQtdC00LjRgtC1INC/0YDQsNCy0LjQu9GM0L3Rg9GOINC00LDRgtGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ9CU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ9CS0YDQtdC80Y8g0L7QutC+0L3Rh9Cw0L3QuNGPINC/0LXRgNC40L7QtNCwINC00L7Qu9C20L3QviDQsdGL0YLRjCDQv9C+0LfQttC1INCy0YDQtdC80LXQvdC4INC10LPQviDQvdCw0YfQsNC70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfQntGB0YLQsNC70L7RgdGMLCDQtNC90LXQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICfQp9Cw0YHQvtCyINCyINC90LXQtNC10LvRjic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ9Cf0LXRgNC10YDQsNCx0L7RgtC60LAv0KHQstC10YDRhdGD0YDQvtGH0L3Ri9C1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfQndC1INC30LDQtNCw0L3RiyDQv9C10YDQuNC+0LTRiyDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQv9C10YDQuNC0INCy0YDQtdC80LXQvdC4JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ9Cf0L7RgdC80L7RgtGA0LXRgtGMINC30LDQv9C40YHRjCDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ9Cf0YDQvtGB0LzQvtGC0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAn0J/RgNC10LTRi9C00YPRidC40Lkg0LTQtdC90YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQodC70LXQtNGD0Y7RidC40Lkg0LTQtdC90YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn0JTQu9GPINGN0YLQvtCz0L4g0LTQvdGPINC00LDQvdC90YvQtSDQvdC1INC90LDQudC00LXQvdGLLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINC00L7QsdCw0LLQuNGC0Ywg0YDQsNCx0L7Rh9C40LUg0LXQtNC40L3QuNGG0YshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfQn9C+0YHQu9C10LTQvdC40LUg0L/RgNC+0LXQutGC0YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQvtGF0YDQsNC90LjRgtGMINC90LDRgdGC0YDQvtC50LrQuCwg0YLQsNC6INC60LDQuiDQsiDRgdGD0YLQutCw0YUgMjQg0YfQsNGB0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINGD0LTQsNC70LjRgtGMINGA0LDQsdC+0YfQuNC1INC10LTQuNC90LjRhtGLISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ9Ct0YLQsCDQtNCw0YLQsCDQstC90LUg0LTQuNCw0L/QsNC30L7QvdCwLCDQvdC+INCy0Ysg0LXRidC1INC90LUg0YPRgdGC0LDQvdC+0LLQuNC70Lgg0Y3RgtC+0YIg0LTQtdC90YwsINGC0LDQuiDRh9GC0L4g0LLQsNC8INC00LDQtdGC0YHRjyDQvtC00LjQvSghKSDRiNCw0L3RgSDQtNC70Y8g0LXQtSDRg9GB0YLQsNC90L7QstC60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfQndC10L/QvtC70L3Ri9C1INGA0LDQsdC+0YfQuNC1INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICfQlNCw0L3QvdGL0LUg0LfQsNC90LXRgdC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ9Ce0YjQuNCx0LrQsCDQv9GA0Lgg0LLQstC+0LTQtSDQvdC10YHQutC+0LvRjNC60LjRhSDQtNCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ9CU0LDQvdC90YvQtSDQtNC70Y8g0YDQsNC30L3Ri9GFINC00LDRgiDQstCy0LXQtNC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ9CS0LLQtdC00LXQvdC90LDRjyDQtNCw0YLQsCDQvdC10LLQtdGA0L3QsCEg0JfQsNC80LXQvdC10L3QsCDQvdCwINGC0LXQutGD0YnRg9GOISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfQndC1INC90LDRgdGC0YDQvtC10L0g0LLRgNC10LzQtdC90L3QvtC5INC/0LXRgNC40L7QtCwg0LjQu9C4INGD0LrQsNC30LDQvdC90LDRjyDQtNCw0YLQsCDQvdCw0YXQvtC00LjRgtGB0Y8g0LfQsCDQv9GA0LXQtNC10LvQsNC80Lgg0L7Qv9GA0LXQtNC10LvQtdC90L3Ri9GFINCy0YDQtdC80LXQvdC90YvRhSDQv9C10YDQuNC+0LTQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINGB0LLRj9C20LjRgtC10YHRjCDRgSDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNC+0Lwg0LLRgNC10LzQtdC90L3QvtCz0L4g0YPRh9C10YLQsCwg0YfRgtC+0LHRiyDQvtCx0L3QvtCy0LjRgtGMINCy0LDRiNC4INCy0YDQtdC80LXQvdC90YvQtSDQv9C10YDQuNC+0LTRiyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNC90LjQtSDQstGL0LHRgNCw0L3QvdGL0LUg0L/RgNC+0LXQutGC0YsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAn0JLRgdC1INC/0YDQvtC10LrRgtGLJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1JlcG9ydGluZ1Byb2plY3Q6INCi0YDQtdCx0YPQtdGC0YHRjyBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICfQn9GA0L7QtdC60YIg0YHQvtGB0YLQsNCy0LvQtdC90LjRjyDQvtGC0YfQtdGC0L7Qsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICfQodC+0YHRgtCw0LLQu9C10L3QuNC1INC+0YLRh9C10YLQvtCyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ9CU0L7QsdCw0LLQu9C10L3QviDQv9C70LDQvdC40YDQvtCy0LDQvdC40LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfQn9C70LDQvdC40YDQvtCy0LDQvdC40LUg0L7QsdC90L7QstC70LXQvdC+ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ9CX0LDQtNCw0YfQsCDQtNC+0LHQsNCy0LvQtdC90LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfQl9Cw0LTQsNGH0LAg0L7QsdC90L7QstC70LXQvdCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICfQndC10LLQtdGA0L3Ri9C5IFVzZXJJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQstGB0YLQsNCy0LjRgtGMINC00LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQtNC+0LHQsNCy0LjRgtGMINC/0LXRgNC40LQg0LLRgNC10LzQtdC90LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICfQn9Cw0YDQsNC80LXRgtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0L7QsdC90L7QstC70LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0LTQvtCx0LDQstC70LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQsiDRg9GH0LXRgiDQstGA0LXQvNC10L3QuCAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfQndC+0LLRi9C5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAn0KHRgtCw0YLRg9GBINC/0LXRgNC40L7QtNCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaWV3OiDQotGA0LXQsdGD0LXRgtGB0Y8gICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn0JLQstC10LTQuNGC0LUg0JLQsNGI0Lgg0YDQsNCx0L7Rh9C40LUg0YfQsNGB0YshJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn0J3QtdC/0L7Qu9C90YvQtSDRgNCw0LHQvtGH0LjQtSDQtNC90LgnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn0JLRi9Cx0LXRgNC40YLQtSDRhdC+0YLRjyDQsdGLINC+0LTQuNC9INC00LXQvdGMISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0YHQvtCy0YvQuSDQstCy0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ9CS0YvQsdC10YDQuNGC0LUg0L/RgNC40YfQuNC90YMg0L7RgtGB0YPRgtGB0YLQstC40Y8hJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn0KPQtNCw0LvQuNGC0Ywg0LfQsNC/0LjRgdGMINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ9Cf0L7QtNGC0LLQtdGA0LTQuNGC0LUg0LLRgdGC0LDQstC60YMnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+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+0LPQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INGD0YfQtdGC0LAg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC30LDQv9C40YHRjCDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn0JTQu9GPINC60LDQutC+0LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDQv9GA0L7RiNC10LTRiNC40YUg0LTQvdC10Lkg0LLRiyDQvNC+0LbQtdGC0LUg0LLQvdC10YHRgtC4INC00LDQvdC90YvQtSDQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0L7RgtC+0LHRgNCw0LbQsNGO0YLRgdGPINGC0L7Qu9GM0LrQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LgsINC60L7RgtC+0YDRi9C1INC30LDQvdC+0YHQuNC70Lgg0LfQsNGC0YDQsNGC0Ysg0LLRgNC10LzQtdC90Lgg0LIg0LLRi9Cx0YDQsNC90L3Ri9C5INC/0YDQvtC10LrRgi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINCy0YvQv9Cw0LTQsNGO0YnQuNC1INC/0L7Qu9GPINGB0L/QuNGB0LrQsCDQvdCwINGN0LrRgNCw0L3QtSDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINC/0YDQtdC+0LHRgNCw0LfRg9GO0YLRgdGPINCyINC80L7QtNC10YDQvdC40LfQuNGA0L7QstCw0L3QvdGL0LUg0L/QvtC70Y8g0LDQstGC0L7Qt9Cw0LLQtdGA0YjQtdC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0YLQviDRhNC40LvRjNGC0YAg0LTQu9GPINC/0YDQtdC00YvQtNGD0YnQuNGFINC/0YDQvtC10LrRgtC+0LIg0LzQvtC20LXRgiDQsdGL0YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNC9INCy0LzQtdGB0YLQviDQtNCy0YPRhSDRgdC/0LjRgdC60L7QsiAo0L/QvtGB0LvQtdC00L3QuNGFINC4INCy0YHQtdGFINC/0YDQvtC10LrRgtC+0LIpLiDQrdGC0L4g0LTQvtGB0YLRg9C/0L3QviDRgtC+0LvRjNC60L4g0LXRgdC70Lgg0L/QsNGA0LDQvNC10YLRgCBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24g0LDQutGC0LjQstC40YDQvtCy0LDQvS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINGC0L4g0YTQuNC70YzRgtGAINC00LvRjyDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDQv9GA0L7QtdC60YLQvtCyINCy0LrQu9GO0YfQtdC9INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC/0YDQuCDQvdCw0LvQuNGH0LjQtSDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDQv9GA0L7QtdC60YLQvtCyLiDQrdGC0L4g0LTQvtGB0YLRg9C/0L3QviDRgtC+0LvRjNC60L4g0LXRgdC70Lgg0L/QsNGA0LDQvNC10YLRgNGLIEVuYWJsZUF1dG9Db21wbGV0aW9uINC4IFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIg0LDQutGC0LjQstC40YDQvtCy0LDQvdGLLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GOINGA0LDQt9GA0LXRiNC10L3QviDQstCy0L7QtNC40YLRjCDQt9C90LDRh9C10L3QuNGPICLQntGB0YLQsNC70L7RgdGMINCyINC+0YLQv9GB0LrQtSIsICLQntGB0YLQsNC70L7RgdGMINC00L3QtdC5INC/0L4g0LHQvtC70LXQt9C90LgiINC4ICLQntGB0YLQsNC70L7RgdGMINC/0LXRgNC10YDQsNCx0L7RgtC60LgiINC/0L4g0L3QtdGB0LrQvtC70YzQutC+INC00LDRgiDRgdGA0LDQt9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ9Cc0LDQutGBLiDQutC+0LvQuNGH0LXRgdGC0LLQviDRgNCw0LHQvtGH0LjRhSDQtNC90LXQuSwg0L/QvtGB0LvQtSDQutC+0YLQvtGA0YvRhSDRgNCw0LHQvtGH0LjQtSDQtdC00LjQvdC40YbRiyDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0LfQsNC90LXRgdC10L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvRjNC90L4g0LrQvtC70LjRh9C10YHRgtCy0L4g0YDQsNCx0L7Rh9C40YUg0LTQvdC10LksINC/0L7RgdC70LUg0LrQvtGC0L7RgNC+0LPQviDQstGL0LTQsNC10YLRgdGPINC/0YDQtdC00YPQv9GA0LXQttC00LXQvdC40LUg0L4g0YLQvtC8LCDRh9GC0L4g0LTQsNC90L3Ri9C1INC90LUg0LLQstC+0LTQuNC70LjRgdGMLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfQntCx0LfQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAn0J7RgtGH0LXRgiDQviDQstGA0LXQvNC10L3QuCDQv9C+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+eydUaW1lIEFjY291bnRpbmcnfSA9ICfQo9GH0LXRgiDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtSDQt9Cw0YLRgNCw0YIg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICfQntCx0LfQvtGAINC30LDRgtGA0LDRgiDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICfQntGC0YfQtdGC0Ysg0L4g0LfQsNGC0YDRgtCw0YUg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQndCw0YHRgtGA0L7QudC60Lgg0YPRh9C10YLQsCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ9Cf0YDQvtGB0LzQvtGC0YAg0LfQsNGC0YDQsNGCINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn0KPRh9C10YIg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ9CU0LvRjyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjywg0LXRgdC70Lgg0L3QtdC60L7RgtC+0YDRi9C1INC00LXQudGB0YLQstC40Y8g0YPQvNC10L3RjNGI0LDRjtGCINGA0LDQsdC+0YfQuNC1INGH0LDRgdGLICjQvdCw0L/RgNC40LzQtdGALCDQtdGB0LvQuCDRgtC+0LvRjNC60L4g0L/QvtC70L7QstC40L3QsCDQstGA0LXQvNC10L3QuCDQsiDQv9GD0YLQuCDQvtC/0LvQsNGH0LjQstCw0LXRgtGB0Y8gLSBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNyX0N5cmxfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfQlNCwINC70Lgg0LfQsNC40YHRgtCwINC20LXQu9C40YLQtSDQtNCwINC+0LHRgNC40YjQtdGC0LUg0L7QsdGA0LDRh9GD0L0g0LLRgNC10LzQtdC90LAg0LfQsCDQvtCy0LDRmCDQtNCw0L0/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ9Cj0YDQtdC00Lgg0LLRgNC10LzQtdC90YHQutC4INC30LDQv9C40YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICfQmNC00Lgg0YMg0L/QvtC00LXRiNCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAn0JTQsNGC0YPQvNGB0LrQsCDQvdCw0LLQuNCz0LDRhtC40ZjQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ9CU0LDQvdC4INCx0LXQtyDRg9C90L7RgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ9Ch0LXQu9C10LrRgtGD0Zgg0YHQstC1INC00LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICfQnNCw0YHQvtCy0L3QuCDRg9C90L7RgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ9Cc0L7Qu9C40LzQviDQktCw0YEg0LjQt9Cw0LHQtdGA0LjRgtC1INGA0LDQt9C70L7QsyDQstCw0YjQtdCzINC+0LTRgdGD0YHRgtCy0LAg0LfQsCDQuNC30LDQsdGA0LDQvdC1INC00LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAn0J3QsCDQvtC00LzQvtGA0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ9Cd0LAg0LHQvtC70L7QstCw0ZrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ9Cd0LAg0YHQu9C+0LHQvtC00L3QuNC8INC00LDQvdC40LzQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ9Ce0LHQsNCy0LXQt9C90LAg0L/QvtGZ0LAg0YHRgyDQvtC30L3QsNGH0LXQvdCwINGB0LAgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Cc0L7RgNCw0YLQtSDRg9C90LXRgtC4INCy0YDQtdC80LUg0L/QvtGH0LXRgtC60LAg0Lgg0LfQsNCy0YDRiNC10YLQutCwINC40LvQuCDQstGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn0J/RgNC+0ZjQtdC60LDRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn0JfQsNC00LDRgtCw0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn0J3QsNC/0L7QvNC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICfQnNC+0LvQuNC80L4g0LTQsCDQtNC+0LTQsNGC0LUg0L3QsNC/0L7QvNC10L3RgyDQtNGD0LbRgyDQvtC0IDgg0LrQsNGA0LDQutGC0LXRgNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J3QtdCz0LDRgtC40LLQvdCwINCy0YDQtdC80LXQvdCwINC90LjRgdGDINC00L7Qt9Cy0L7RmdC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cf0L7QvdCw0LLRmdCw0ZrQtSDRgdCw0YLQuCDQvdC40ZjQtSDQtNC+0LfQstC+0ZnQtdC90L4uINCS0YDQtdC80LUg0L/QvtGH0LXRgtC60LAg0YHQtSDQv9C+0LrQu9Cw0L/QsCDRgdCwINC00YDRg9Cz0LjQvCDQuNC90YLQtdGA0LLQsNC70L7QvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQsNC9INGE0L7RgNC80LDRgiEg0JzQvtC70LjQvNC+INC00LAg0YPQvdC10YHQtdGC0LUg0LLRgNC10LzQtSDRgyDRhNC+0YDQvNCw0YLRgyBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAg0ZjQtSDQtNC+0LfQstC+0ZnQtdC90L4g0YHQsNC80L4g0LrQsNC+INCy0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQvdC+INCy0YDQtdC80LUhINCU0LDQvSDQuNC80LAg0YHQsNC80L4gMjQg0YHQsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfQktGA0LXQvNC1INC30LDQstGA0YjQtdGC0LrQsCDQvNC+0YDQsCDQsdC40YLQuCDQvdCw0LrQvtC9INC/0L7Rh9C10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cf0L7QvdCw0LLRmdCw0ZrQtSDRgdCw0YLQuCDQvdC40ZjQtSDQtNC+0LfQstC+0ZnQtdC90L4uINCS0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwINGB0LUg0L/QvtC60LvQsNC/0LAg0YHQsCDQtNGA0YPQs9C40Lwg0LjQvdGC0LXRgNCy0LDQu9C+0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LjRgdC/0YDQsNCy0LDQvSDQv9C10YDQuNC+0LQhINCU0LDQvSDQuNC80LAg0YHQsNC80L4gMjQg0YHQsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn0JjRgdC/0YDQsNCy0LDQvSDQv9C10YDQuNC+0LQg0LzQvtGA0LAg0LHQuNGC0Lgg0LLQtdGb0Lgg0L7QtCDQvdGD0LvQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQsNC9INC/0LXRgNC40L7QtCEg0J3QtdCz0LDRgtC40LLQvdC4INC/0LXRgNC40L7QtNC4INC90LjRgdGDINC00L7Qt9Cy0L7RmdC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICfQlNC+0LTQsNGYINGY0LXQtNCw0L0g0YDQtdC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn0JzQvtC20LXRgtC1INC40LfQsNCx0YDQsNGC0Lgg0YHQsNC80L4g0ZjQtdC00L3QviDQv9C+0ZnQtSDQt9CwINC/0L7RgtCy0YDQtNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINCx0L7Qu9C+0LLQsNGa0YM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINC+0LTQvNC+0YDRgz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9CU0LAg0LvQuCDRgdGC0LUg0YHQuNCz0YPRgNC90Lgg0LTQsCDRgdGC0LUg0YDQsNC00LjQu9C4INC00L7QuiDRgdGC0LUg0LHQuNC70Lgg0L3QsCDRgdC70L7QsdC+0LTQvdC40Lwg0LTQsNC90LjQvNCwPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfQlNCwINC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LAg0YHRgtC1INGA0LDQtNC40LvQuCDQstC40YjQtSDQvtC0IDE2INGB0LDRgtC4Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAn0J/RgNC10LPQu9C10LQg0LzQtdGB0LXRh9C90L7QsyDQvtCx0YDQsNGH0YPQvdCwINCy0YDQtdC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNGB0LDRgtC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J/RgNC10L7RgdGC0LDQu9C4INGB0LvQvtCx0L7QtNC90Lgg0LTQsNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7QtNC80L7RgCAo0LTQsNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CY0YHQutC+0YDQuNGI0ZvQtdC9INC+0LTQvNC+0YAgKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQmNGB0LrQvtGA0LjRiNGb0LXQvSDQvtC00LzQvtGAICjRg9C60YPQv9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ9Cf0YDQtdC+0YHRgtCw0L4g0L7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNC00LDQvdC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXRgtGF0L7QtNC90Lgg0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAn0KHQu9C10LTQtdGb0Lgg0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0KDQsNC00L3QuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ9Cg0LDQtNC90Lgg0YHQsNGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAn0KPQutGD0L/QvdC+INGA0LDQtNC90LjRhSDRgdCw0YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICfQn9GA0LXQs9C70LXQtCDQutC+0YDQuNGB0L3QuNGH0LrQvtCzINC/0YDQvtGY0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KHQsNGC0LggKNC80LXRgdC10YfQvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn0KHQsNGC0LggKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfQo9C60YPQv9Cw0L0g0LfQsdC40YAnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQstGA0LXQvNC10L3Rgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAn0J3QsNCy0LjQs9Cw0YbQuNGY0LAg0L/QviDQvNC10YHQtdGG0LjQvNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfQmNC00Lgg0L3QsCDQtNCw0YLRg9C8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutC4INC40LfQstC10YjRgtCw0ZjQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn0JzQtdGB0LXRh9C90Lgg0LfQsdC40YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQodCy0LXQs9CwINC00L4g0YHQsNC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfQodC70L7QsdC+0LTQvdC4INC00LDQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn0J7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0JHQvtC70L7QstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfQn9GA0LXQvtGB0YLQsNC+INC+0LTQvNC+0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn0JjQt9Cy0LXRiNGC0LDRmNC4INC+INC/0YDQvtGY0LXQutGC0YMnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ9CY0LfQstC10YjRgtCw0Zgg0L4g0L/RgNC+0ZjQtdC60YLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfQmNC00Lgg0L3QsCDQv9GA0LXQs9C70LXQtCDQuNC30LLQtdGI0YLQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0KLRgNC10L3Rg9GC0L3QviDRgdGDINC/0YDQuNC60LDQt9Cw0L3QuCDRgdCw0LzQviDQsNC60YLQuNCy0L3QuCDQutC+0YDQuNGB0L3QuNGG0Lgg0YMg0L7QstC+0Lwg0L/RgNC+0ZjQtdC60YLRgy4g0JfQsCDQv9GA0L7QvNC10L3RgyDQvtCy0LDQutCy0L7QsyDQv9C+0L3QsNGI0LDRmtCwLCDQvNC+0LvQuNC80L4g0JLQsNGBINCw0LbRg9GA0LjRgNCw0ZjRgtC1INC/0L7QtNC10YjQsNCy0LDRmtCwOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQotGA0LXQvdGD0YLQvdC+INGB0YMg0L/RgNC40LrQsNC30LDQvdC4INGB0LLQuCDQutC+0YDQuNGB0L3QuNGG0Lgg0L7QsdGA0LDRh9GD0L3QsCDQstGA0LXQvNC10L3QsC4g0JfQsCDQv9GA0L7QvNC10L3RgyDQvtCy0LDQutCy0L7QsyDQv9C+0L3QsNGI0LDRmtCwLCDQvNC+0LvQuNC80L4g0LDQttGD0YDQuNGA0LDRmNGC0LUg0L/QvtC00LXRiNCw0LLQsNGa0LA6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QsCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAg0L/RgNC+0ZjQtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ9CU0L7QtNCw0Zgg0L/RgNC+0ZjQtdC60LDRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ9CY0LTQuCDQvdCwINC/0YDQtdCz0LvQtdC0INC/0L7QtNC10YjQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAn0JTQvtC00LDRmCDQn9GA0L7RmNC10LrQsNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQn9GA0L7RmNC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10Zsg0L/QvtGB0YLQvtGY0Lgg0L/RgNC+0ZjQtdC60LDRgiDRgdCwINGC0LjQvCDQuNC80LXQvdC+0LwuINCc0L7Qu9C40LzQviDQstCw0YEsINC40LfQsNCx0LXRgNC40YLQtSDQvdC10LrQviDQtNGA0YPQs9C+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICfQlNC+0LTQsNGYINC30LDQtNCw0YLQsNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAn0KTQuNC70YLQtdGAINC30LAg0L/RgNC+0ZjQtdC60YLQtSwg0LfQsNC00LDRgtC60LUg0LjQu9C4INC60L7RgNC40YHQvdC40LrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ9CS0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LTQuCDRgdC1INC90LUg0LzQvtCz0YMg0L7QsdGA0LjRgdCw0YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0JvQuNGB0YLQsCDQv9GA0L7RmNC10LrQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn0JvQuNGB0YLQsCDQt9Cw0LTQsNGC0LDQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn0JTQvtC00LDRmCDQt9Cw0LTQsNGC0LDQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICfQo9GA0LXQtNC4INC/0L7QtNC10YjQsNCy0LDRmtCwINC30LDQtNCw0YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10Zsg0L/QvtGB0YLQvtGY0Lgg0LfQsNC00LDRgtCw0Log0YHQsCDRgtC40Lwg0LjQvNC10L3QvtC8LiDQnNC+0LvQuNC80L4g0LLQsNGBLCDQuNC30LDQsdC10YDQuNGC0LUg0L3QtdC60L4g0LTRgNGD0LPQvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn0JvQuNGB0YLQsCDQutC+0YDQuNGB0L3QuNC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutCwINC/0L7QtNC10YjQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAn0JrQvtGA0LjRgdC90LjQutGDINGY0LUg0L7QvNC+0LPRg9Gb0LXQvdC+INC00LAg0LLQuNC00Lgg0L/RgNC10LrQvtCy0YDQtdC80LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfQn9GA0LjQutCw0LbQuCDQv9GA0LXQutC+0LLRgNC10LzQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ9Ca0L7RgNC40YHQvdC40LrRgyDRmNC1INC+0LzQvtCz0YPRm9C10L3QviDQtNCwINC60YDQtdC40YDQsCDQv9GA0L7RmNC10LrRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICfQlNC+0LfQstC+0LvQuCDQutGA0LXQuNGA0LDRmtC1INC/0YDQvtGY0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAn0JrQvtGA0LjRgdC90LjQutGDINGY0LUg0L7QvNC+0LPRg9Gb0LXQvdC+INC00LAg0L/RgNC10YHQutC+0YfQuCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAn0JTQvtC30LLQvtC70Lgg0L/RgNC10YHQutCw0LrQsNGa0LUg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn0KPQutC+0LvQuNC60L4g0ZjQtSDRg9C60ZnRg9GH0LXQvdC+LCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAg0ZvQtSDQsdC40YLQuCDQvtC/0YbQuNC+0L3QviDQt9CwINC60L7RgNC40YHQvdC40LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAn0KPQv9C+0LfQvtGA0LXRmtCwINC+INC90LXQtNC+0YHRgtCw0YLQutGDINC+0LHRgNCw0YfRg9C90LAg0LLRgNC10LzQtdC90LAg0Lgg0LrQvtC90YLRgNC+0LvQsCDQv9GA0LjRgdGC0YPQv9CwINGb0LUg0LHQuNGC0Lgg0YHRg9GB0L/QtdC90LTQvtCy0LDQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAn0KDQsNGB0L/QvtC90Lgg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J/QvtGH0LXRgtCw0Log0L/QtdGA0LjQvtC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ9Ca0YDQsNGYINC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfQlNCw0L3QuCDQvtC00LzQvtGA0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfQodCw0YLQuCDQv9C+INC90LXQtNC10ZnQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn0JTQvtC30LLQvtGZ0LXQvdC+INC/0YDQtdC60L7QstGA0LXQvNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0JTQsNGC0YPQvCDQv9C+0YfQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICfQnNC+0LvQuNC80L4g0LTQsCDRg9C90LXRgdC10YLQtSDQstCw0LbQtdGb0Lgg0LTQsNGC0YPQvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfQlNCw0YLRg9C8INC30LDQstGA0YjQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ9Ca0YDQsNGYINC/0LXRgNC40L7QtNCwINC80L7RgNCwINCx0LjRgtC4INC/0L7RgdC70LUg0L/QvtGH0LXRgtC60LAg0L/QtdGA0LjQvtC00LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfQlNCw0L3QuCDQvtC00YHRg9GB0YLQstCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ9Ch0LXQtNC80LjRh9C90Lgg0YHQsNGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ9Cd0LjRgdGDINC/0YDQvtC90LDRktC10L3QuCDQstGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC00LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ9CU0L7QtNCw0Zgg0LLRgNC10LzQtdC90YHQutC4INC/0LXRgNC40L7QtCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICfQn9GA0LjQutCw0Lcg0LLRgNC10LzQtdC90YHQutC+0LMg0LfQsNC/0LjRgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAn0J/RgNC40LrQsNC3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9Cf0YDQtdGC0YXQvtC00L3QuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQodC70LXQtNC10ZvQuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn0J3QtdC80LAg0L/QvtC00LDRgtCw0LrQsCDQt9CwINC+0LLQsNGYINC00LDQvS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAn0KDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1INGB0LUg0L3QtSDQvNC+0LPRgyDRg9C90LXRgtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn0J/QvtGB0LvQtdC00ZrQuCDQv9GA0L7RmNC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ9Cd0LUg0LzQvtCz0YMg0LTQsCDRgdCw0YfRg9Cy0LDQvCDQv9C+0LTQtdGI0LDQstCw0ZrQsCwg0ZjQtdGAINC00LDQvSDQuNC80LAg0YHQsNC80L4gMjQg0YHQsNGC0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfQoNCw0LTQvdC1INGY0LXQtNC40L3QuNGG0LUg0YHQtSDQvdC1INC80L7Qs9GDINC+0LHRgNC40YHQsNGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAn0J7QstCw0Zgg0LTQsNGC0YPQvCDRmNC1INC40LfQstCw0L0g0LPRgNCw0L3QuNGG0LAg0LDQu9C4INCz0LAg0L3QuNGB0YLQtSDRmNC+0Ygg0YPQstC10Log0YPQvdC10LvQuCwg0L/QsCDQuNC80LDRgtC1INGY0L7RiCDRmNC10LTQvdGDKCEpINGI0LDQvdGB0YMg0LfQsCDRg9C90L7RgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ9Cd0LXQv9C+0YLQv9GD0L3QuCDRgNCw0LTQvdC4INC00LDQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ9Cj0YHQv9C10YjQvdC+INC00L7QtNCw0LLQsNGa0LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfQk9GA0LXRiNC60LAg0L/RgNC4INGD0L3QvtGB0YMg0LLQuNGI0LUg0LTQsNGC0YPQvNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICfQo9GB0L/QtdGI0L3QviDRg9Cx0LDRh9C10L3QuCDRg9C90L7RgdC4INC30LAg0LLQuNGI0LUg0LTQsNGC0YPQvNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAn0KPQvdC10YLQuCDQtNCw0YLRg9C8INGY0LUg0L3QtdCy0LDQttC10ZvQuCEg0JTQsNGC0YPQvCDRmNC1INC/0YDQvtC80LXRmtC10L0g0L3QsCDQtNCw0L3QsNGI0ZrQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAn0J3QuNGY0LUg0LrQvtC90YTQuNCz0YPRgNC40YHQsNC9INCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQg0LjQu9C4INGY0LUg0L3QsNCy0LXQtNC10L3QuCDQtNCw0YLRg9C8INCy0LDQvSDQtNC10YTQuNC90LjRgdCw0L3QuNGFINCy0YDQtdC80LXQvdGB0LrQuNGFINC/0LXRgNC40L7QtNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAn0JzQvtC70LjQvNC+INC00LAg0LrQvtC90YLQsNC60YLQuNGA0LDRgtC1INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0LAg0L7QsdGA0LDRh9GD0L3QsCDQstGA0LXQvNC10L3QsCDQt9CwINCw0LbRg9GA0LjRgNCw0ZrQtSDQstGA0LXQvNC10L3RgdC60LjRhSDQv9C10YDQuNC+0LTQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNGa0Lgg0LjQt9Cw0LHRgNCw0L3QuCDQv9GA0L7RmNC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ9Ch0LLQuCDQv9GA0L7RmNC10LrRgtC4JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ9CY0LfQstC10YjRgtCw0LLQsNGa0LUg0L4g0L/RgNC+0ZjQtdC60YLRgzog0L3QtdC+0L/RhdC+0LTQsNC9INGY0LUgUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQv9GA0L7RmNC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ9CY0LfQstC10YjRgtCw0LLQsNGa0LUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAn0JrQvtGA0LjRgdC90LjRh9C60LAg0L/QvtC00LXRiNCw0LLQsNGa0LAg0YHQtSDQvdC1INC80L7Qs9GDINCw0LbRg9GA0LjRgNCw0YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICfQlNC+0LTQsNGCINC/0YDQvtGY0LXQutCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfQkNC20YPRgNC40YDQsNC9INC/0YDQvtGY0LXQutCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAn0JTQvtC00LDRgiDQt9Cw0LTQsNGC0LDQuiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ9CQ0LbRg9GA0LjRgNCw0L0g0LfQsNC00LDRgtCw0LohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ1VzZXJJRCDRmNC1INC90LXQstCw0LbQtdGb0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutC4INC/0L7QtNCw0YbQuCDRgdC1INC90LUg0LzQvtCz0YMg0YPQvdC10YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICfQktGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC0INGB0LUg0L3QtSDQvNC+0LbQtSDQtNC+0LTQsNGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICfQn9C+0LTQtdGI0LDQstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAn0JDQttGD0YDQuNGA0LDQvSDQutC+0YDQuNGB0L3QuNC6ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ9CU0L7QtNCw0YIg0LrQvtGA0LjRgdC90LjQuiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfQlNC+0LTQsNGYINC60L7RgNC40YHQvdC40LrQsCDRgyDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfQndC+0LLQuCDQutC+0YDQuNGB0L3QuNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICfQodGC0LDRgtGD0YEg0L/QtdGA0LjQvtC00LAnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ9Cf0YDQuNC60LDQtzog0L3QtdC+0L/RhdC+0LTQsNC9ICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn0JzQvtC70LjQvNC+INCy0LDRgSDRg9C90LXRgdC40YLQtSDQstCw0YjQtSDRgNCw0LTQvdC+INCy0YDQtdC80LUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn0J3QtdC/0L7RgtC/0YPQvdC4INGA0LDQtNC90Lgg0LTQsNC90LgnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn0JzQvtC70LjQvNC+INCy0LDRgSDQuNC30LDQsdC10YDQuNGC0LUg0LHQsNGAINGY0LXQtNCw0L0g0LTQsNC9ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0L7QstC90Lgg0YPQvdC+0YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfQnNC+0LvQuNC80L4g0LLQsNGBINC40LfQsNCx0LXRgNC40YLQtSDRgNCw0LfQu9C+0LMg0LLQsNGI0LXQsyDQvtC00YHRg9GB0YLQstCwISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ9Ce0LHRgNC40YjQuCDRgdGC0LDQstC60YMg0L7QsdGA0LDRh9GD0L3QsCDQstGA0LXQvNC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ9Cf0L7RgtCy0YDQtNC4INGD0L3QvtGBJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn0JzQvtC00YPQuyDQt9CwINC+0LHQsNCy0LXRiNGC0LDQstCw0ZrQtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAg0LrQvtGY0Lgg0L/RgNC40LrQsNC30YPRmNC1INCx0YDQvtGYINC90LXQutC+0LzQv9C70LXRgtC90LjRhSDRgNCw0LTQvdC40YUg0LTQsNC90LAg0LfQsCDQutC+0YDQuNGB0L3QuNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0LjQvNC1INC90L7QstC40YUg0LDQutGG0LjRmNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQuNC80LUg0L3QvtCy0LjRhSDQv9GA0L7RmNC10LrQsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQtNCw0YLRg9C8INC30LDQstGA0YjQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0LTQsNGC0YPQvCDQv9C+0YfQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQt9CwINC+0L/QuNGBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQtNCw0L3QtSDQvtC00YHRg9GB0YLQstCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0L/RgNC10LrQvtCy0YDQtdC80LXQvdC4INGA0LDQtC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0YHRgtCw0L3QtNCw0YDQtNC90YMg0YDQsNC00L3RgyDQvdC10LTQtdGZ0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRgdGC0LDRgtGD0YEg0LfQsCDQvdC+0LLQtSDQsNC60YbQuNGY0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0YHRgtCw0YLRg9GBINC30LAg0L3QvtCy0LUg0L/RgNC+0ZjQtdC60YLQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRgdGC0LDRgtGD0YEg0L3QvtCy0LjRhSDQutC+0YDQuNGB0L3QuNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0L/RgNC+0ZjQtdC60YLQtSDQt9CwINC60L7RmNC1INGY0LUg0L3QsNC/0L7QvNC10L3QsCDQvtCx0LDQstC10LfQvdCwLiDQkNC60L4g0YHQtSBSZWdFeHAg0L/QvtC60LvQvtC/0Lgg0L3QsCDQv9GA0L7RmNC10LrRgtGDLCDQvNC+0YDQsNGC0LUg0YLQtdC60L7RktC1INGD0L3QtdGC0Lgg0L3QsNC/0L7QvNC10L3Rgy4gUmVnRXhwINC60L7RgNC40YHRgtC4IHNteCDQv9Cw0YDQsNC80LXRgtCw0YAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC00LAg0LvQuCDRgdGC0LDRgtC40YHRgtC40YfQutC4INC80L7QtNGD0Lsg0LzQvtC20LUg0LPQtdC90LXRgNC40YHQsNGC0Lgg0LjQvdGE0L7RgNC80LDRhtC40ZjQtSDQviDQvtCx0YDQsNGH0YPQvdGDINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQmNC30LzQtdC90Lgg0L/QvtC00LXRiNCw0LLQsNGa0LAg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ9CY0LfQvNC10L3QuCDQstGA0LXQvNC10L3RgdC60Lgg0LfQsNC/0LjRgS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn0JfQsCDQutC+0LvQuNC60L4g0LTQsNC90LAg0YPQvdCw0LfQsNC0INC80L7QttC10YLQtSDRg9C90LXRgtC4INGA0LDQtNC90LUg0ZjQtdC00LjQvdC40YbQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINC/0YDQuNC60LDQt9Cw0L3QuCDRgdGDINGB0LDQvNC+INC60L7RgNC40YHQvdC40YbQuCDQutC+0ZjQuCDRgdGDINC00L7QtNCw0LvQuCDRgNCw0LTQvdC+INCy0YDQtdC80LUg0YMg0LjQt9Cw0LHRgNCw0L3QuCDQv9GA0L7RmNC10LrQsNGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINC/0LDQtNCw0ZjRg9Gb0Lgg0LXQu9C10LzQtdC90YLQuCDQvdCwINC10LrRgNCw0L3RgyDQt9CwINC40LfQvNC10L3RgyDRgdC1INC80LXRmtCw0ZjRgyDRgyDQvNC+0LTQtdGA0L3QuNC30L7QstCw0L3QsCDRgdCw0LzQvtC00L7QstGA0YjQsNCy0LDRmNGD0ZvQsCDQv9C+0ZnQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINGE0LjQu9GC0LXRgCDQv9GA0LXRgtGF0L7QtNC90LjRhSDQv9GA0L7RmNC10LrQsNGC0LAg0YHQtSDQvNC+0LbQtSDQutC+0YDQuNGB0YLQuNGC0Lgg0YPQvNC10YHRgtC+INC00LLQtSDQu9C40YHRgtC1INC/0YDQvtGY0LXQutCw0YLQsCAo0L/QvtGB0LvQtdC00ZrQuCDQuCDRgdCy0LgpLiDQnNC+0LbQtSDRgdC1INC60L7RgNC40YHRgtC40YLQuCDRgdCw0LzQviDQsNC60L4g0ZjQtSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24g0LDQutGC0LjQstC40YDQsNC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0YTQuNC70YLQtdGAINC/0YDQtdGC0YXQvtC00L3QuNGFINC/0YDQvtGY0LXQutCw0YLQsCDRmNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INCw0LrRgtC40LLQsNC9INCw0LrQviDQuNC80LAg0L/RgNC+0ZjQtdC60LDRgtCwINC+0LQg0L/RgNC1LiDQnNC+0LbQtSDRgdC1INC60L7RgNC40YHRgtC40YLQuCDRgdCw0LzQviDQsNC60L4g0ZjQtSBFbmFibGVBdXRvQ29tcGxldGlvbiDQuCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyINCw0LrRgtC40LLQuNGA0LDQvdC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINC60L7RgNC40YHQvdC40LrRgyDRmNC1INC00L7Qt9Cy0L7RmdC10L3QviDQtNCwINGD0L3QtdGB0LUgItC90LAg0L7QtNC80L7RgNGDIiwgItC90LAg0LHQvtC70L7QstCw0ZrRgyIg0LggItC90LAg0YHQu9C+0LHQvtC00L3QuNC8INC00LDQvdC40LzQsCIg0L3QsCDQstC40YjQtSDQtNCw0YLRg9C80LAg0L7QtNGY0LXQtNC90L7QvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70L3QuCDQsdGA0L7RmCDRgNCw0LTQvdC40YUg0LTQsNC90LAg0L/QvtGB0LvQtSDQutC+0LMg0YLRgNC10LHQsCDQtNC+0LTQsNGC0Lgg0YDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9C90Lgg0LHRgNC+0Zgg0YDQsNC00L3QuNGFINC00LDQvdCwINCx0LXQtyDRg9C90L7RgdCwINGA0LDQtNC90LjRhSDRmNC10LTQuNC90LjRhtCwINC/0L7RgdC70LUg0LrQvtCzINGb0LUg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvdC+INGD0L/QvtC30L7RgNC10ZrQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAn0J/RgNC10LPQu9C10LQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQstGA0LXQvNC10L3RgyDQv9GA0L7RmNC10LrRgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn0KDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0LfQuCDQt9CwINC+0LPRgNCw0L3QuNGH0LDQstCw0ZrQtSDQu9C40YHRgtC1INCw0LrRhtC40ZjQsCDQv9GA0LXQvNCwINC40LfQsNCx0YDQsNC90LjQvCDQv9GA0L7RmNC10LrRgtC40LzQsC4g0JrRmdGD0Ycg0YHQsNC00YDQttC4INGA0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC3INC30LAg0L/RgNC+0ZjQtdC60YIo0LUpLCDRgyDRgdCw0LTRgNC20LDRmNGDINGY0LUg0YDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0Lcg0LfQsCDQsNC60YbQuNGY0YMo0LUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICfQoNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQt9C4INC30LAg0L7Qs9GA0LDQvdC40YfQsNCy0LDRmtC1INC70LjRgdGC0LUg0LDQutGG0LjRmNCwINC/0YDQtdC80LAg0LjQt9Cw0LHRgNCw0L3QuNC8INC60L7RgNC40YHQvdC40YfQutC40Lwg0LPRgNGD0L/QsNC80LAuINCa0ZnRg9GHINGB0LDQtNGA0LbQuCDRgNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQtyDQt9CwINC/0YDQvtGY0LXQutGCKNC1KSwg0YMg0YHQsNC00YDQttCw0ZjRgyDRmNC1INGA0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC3INC30LAg0LPRgNGD0L/QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INGA0LDQtNC90Lgg0YHQsNGC0Lgg0LzQvtCz0YMg0LTQsCDRgdC1INGD0L3QtdGB0YMg0LHQtdC3INCy0YDQtdC80LXQvdCwINC/0L7Rh9C10YLQutCwINC4INC30LDQstGA0YjQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAn0J7QstCw0Zgg0LzQvtC00YPQuyDQvdCw0LzQtdGb0LUg0YPQvdC+0YEg0YMg0L7QsdGA0LDRh9GD0L0g0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAn0J7QstCw0Zgg0LzQvtC00YPQuyDQt9CwINC+0LHQsNCy0LXRiNGC0LDQstCw0ZrQtSDQtNCw0ZjQtSDRg9C/0L7Qt9C+0YDQtdGa0LUg0LDQutC+INC40LzQsCDQv9GA0LXQstC40YjQtSDQvdC10LrQvtC80L/Qu9C10YLQvdC40YUg0YDQsNC00L3QuNGFINC00LDQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICfQntCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn0KPRgNC10ZLQuNCy0LDRmtC1INC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ9Cf0YDQtdCz0LvQtdC0INC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICfQmNC30LLQtdGI0YLQsNGY0Lgg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn0J/QvtC00LXRiNCw0LLQsNGa0LAg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICfQn9GA0LXQs9C70LXQtCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICfQntCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ9CX0LAg0YPQv9C+0YLRgNC10LHRgyDQsNC60L4g0L3QtdC60LUg0LDQutGG0LjRmNC1INGB0LzQsNGa0YPRmNGDINGA0LDQtNC90LUg0YHQsNGC0LUgKNC90LAg0L/RgNC40LzQtdGALCDQsNC60L4g0YHQtSDQv9C70LDRm9CwINGB0LDQvNC+INC/0L7Qu9CwINCy0YDQtdC80LXQvdCwINC/0YPRgtC+0LLQsNGa0LAg0JrRmdGD0YcgPT4g0L/Rg9GC0L7QstCw0ZrQtTsg0KHQsNC00YDQttCw0ZggPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNyX0xhdG5fVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdEYSBsaSB6YWlzdGEgxb5lbGl0ZSBkYSBvYnJpxaFldGUgb2JyYcSNdW4gdnJlbWVuYSB6YSBvdmFqIGRhbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnVXJlZGkgdnJlbWVuc2tpIHphcGlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSWRpIHUgcG9kZcWhYXZhbmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0RhdHVtc2thIG5hdmlnYWNpamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEYW5pIGJleiB1bm9zYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxla3R1aiBzdmUgZGFuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnTWFzb3ZuaSB1bm9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnTW9saW1vIFZhcyBpemFiZXJpdGUgcmF6bG9nIHZhxaFlZyBvZHN1c3R2YSB6YSBpemFicmFuZSBkYW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnTmEgb2Rtb3J1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdOYSBib2xvdmFuanUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdOYSBzbG9ib2RuaW0gZGFuaW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnT2JhdmV6bmEgcG9samEgc3Ugb3puYcSNZW5hIHNhICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdNb3JhdGUgdW5ldGkgdnJlbWUgcG/EjWV0a2EgaSB6YXZyxaFldGthIGlsaSB2cmVtZW5za2kgcGVyaW9kLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1phZGF0YWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnTmFwb21lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnTW9saW1vIGRhIGRvZGF0ZSBuYXBvbWVudSBkdcW+dSBvZCA4IGthcmFrdGVyYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXZuYSB2cmVtZW5hIG5pc3UgZG96dm9samVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ1BvbmF2bGphbmplIHNhdGkgbmlqZSBkb3p2b2xqZW5vLiBWcmVtZSBwb8SNZXRrYSBzZSBwb2tsYXBhIHNhIGRydWdpbSBpbnRlcnZhbG9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnTmVpc3ByYXZhbiBmb3JtYXQhIE1vbGltbyBkYSB1bmVzZXRlIHZyZW1lIHUgZm9ybWF0dSBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgamUgZG96dm9samVubyBzYW1vIGthbyB2cmVtZSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ05laXNwcmF2bm8gdnJlbWUhIERhbiBpbWEgc2FtbyAyNCBzYXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnVnJlbWUgemF2csWhZXRrYSBtb3JhIGJpdGkgbmFrb24gcG/EjWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG9uYXZsamFuamUgc2F0aSBuaWplIGRvenZvbGplbm8uIFZyZW1lIHphdnLFoWV0a2Egc2UgcG9rbGFwYSBzYSBkcnVnaW0gaW50ZXJ2YWxvbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ05laXNwcmF2YW4gcGVyaW9kISBEYW4gaW1hIHNhbW8gMjQgc2F0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdJc3ByYXZhbiBwZXJpb2QgbW9yYSBiaXRpIHZlxIdpIG9kIG51bGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWlzcHJhdmFuIHBlcmlvZCEgTmVnYXRpdm5pIHBlcmlvZGkgbmlzdSBkb3p2b2xqZW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0RvZGFqIGplZGFuIHJlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ01vxb5ldGUgaXphYnJhdGkgc2FtbyBqZWRubyBwb2xqZSB6YSBwb3R2cmR1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnRGEgbGkgc3RlIHNpZ3VybmkgZGEgc3RlIHJhZGlsaSBkb2sgc3RlIGJpbGkgbmEgYm9sb3Zhbmp1Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0RhIGxpIHN0ZSBzaWd1cm5pIGRhIHN0ZSByYWRpbGkgZG9rIHN0ZSBiaWxpIG5hIG9kbW9ydT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0RhIGxpIHN0ZSBzaWd1cm5pIGRhIHN0ZSByYWRpbGkgZG9rIHN0ZSBiaWxpIG5hIHNsb2JvZG5pbSBkYW5pbWE/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0RhIGxpIHN0ZSBzaWd1cm5pIGRhIHN0ZSByYWRpbGkgdmnFoWUgb2QgMTYgc2F0aT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ1ByZWdsZWQgbWVzZcSNbm9nIG9icmHEjXVuYSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdQcmVrb3ZyZW1lbm8gKHNhdGkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ1ByZWtvdnJlbWVubyAob3ZhaiBtZXNlYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1ByZWtvdnJlbWVubyAodWt1cG5vKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdQcmVvc3RhbGkgc2xvYm9kbmkgZGFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdPZG1vciAoZGFuaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnSXNrb3JpxaHEh2VuIG9kbW9yIChvdmFqIG1lc2VjKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnSXNrb3JpxaHEh2VuIG9kbW9yICh1a3Vwbm8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1ByZW9zdGFvIG9kbW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQm9sb3ZhbmplIChkYW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0JvbG92YW5qZSAob3ZhaiBtZXNlYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnQm9sb3ZhbmplICh1a3Vwbm8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnUHJldGhvZG5pIG1lc2VjJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdTbGVkZcSHaSBtZXNlYyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnUmFkbmkgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdSYWRuaSBzYXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ1VrdXBubyByYWRuaWggc2F0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdQcmVnbGVkIGtvcmlzbmnEjWtvZyBwcm9qZWt0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdTYXRpIChtZXNlxI1ubyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1NhdGkgKHVrdXBubyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdVa3VwYW4gemJpcic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdJenZlxaF0YXZhbmplIG8gdnJlbWVudSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhY2lqYSBwbyBtZXNlY2ltYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSWRpIG5hIGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0tvcmlzbmnEjWtpIGl6dmXFoXRhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ01lc2XEjW5pIHpiaXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdTdmVnYSBkbyBzYWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnU2xvYm9kbmkgZGFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ09kbW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdCb2xvdmFuamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnUHJlb3N0YW8gb2Rtb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnSXp2ZcWhdGFqaSBvIHByb2pla3R1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdJenZlxaF0YWogbyBwcm9qZWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdJZGkgbmEgcHJlZ2xlZCBpenZlxaF0YXZhbmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVHJlbnV0bm8gc3UgcHJpa2F6YW5pIHNhbW8gYWt0aXZuaSBrb3Jpc25pY2kgdSBvdm9tIHByb2pla3R1LiBaYSBwcm9tZW51IG92YWt2b2cgcG9uYcWhYW5qYSwgbW9saW1vIFZhcyBhxb51cmlyYWp0ZSBwb2RlxaFhdmFuamE6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1RyZW51dG5vIHN1IHByaWthemFuaSBzdmkga29yaXNuaWNpIG9icmHEjXVuYSB2cmVtZW5hLiBaYSBwcm9tZW51IG92YWt2b2cgcG9uYcWhYW5qYSwgbW9saW1vIGHFvnVyaXJhanRlIHBvZGXFoWF2YW5qYTonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSXptZW5hIHBvZGXFoWF2YW5qYSBvYnJhxI11bmF2YW5qYSB2cmVtZW5hIHByb2pla3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnRG9kYWogcHJvamVrYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdJZGkgbmEgcHJlZ2xlZCBwb2RlxaFhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdEb2RhaiBQcm9qZWthdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdJem1lbmkgcG9kZcWhYXZhbmphIFByb2pla3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdWZcSHIHBvc3RvamkgcHJvamVrYXQgc2EgdGltIGltZW5vbS4gTW9saW1vIHZhcywgaXphYmVyaXRlIG5la28gZHJ1Z28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnSXptZW5pIHBvZGXFoWF2YW5qYSBvYnJhxI11bmF2YW5qYSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRG9kYWogemFkYXRhayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ0ZpbHRlciB6YSBwcm9qZWt0ZSwgemFkYXRrZSBpbGkga29yaXNuaWtlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnVnJlbWVuc2tpIHBlcmlvZGkgc2UgbmUgbW9ndSBvYnJpc2F0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgcHJvamVrYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIHphZGF0YWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnRG9kYWogemFkYXRhayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdVcmVkaSBwb2RlxaFhdmFuamEgemFkYXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnVmXEhyBwb3N0b2ppIHphZGF0YWsgc2EgdGltIGltZW5vbS4gTW9saW1vIHZhcywgaXphYmVyaXRlIG5la28gZHJ1Z28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGtvcmlzbmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnS29yaXNuacSNa2EgcG9kZcWhYXZhbmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnS29yaXNuaWt1IGplIG9tb2d1xIdlbm8gZGEgdmlkaSBwcmVrb3ZyZW1lbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ByaWthxb5pIHByZWtvdnJlbWVubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnS29yaXNuaWt1IGplIG9tb2d1xIdlbm8gZGEga3JlaXJhIHByb2pla3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdEb3p2b2xpIGtyZWlyYW5qZSBwcm9qZWt0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdLb3Jpc25pa3UgamUgb21vZ3XEh2VubyBkYSBwcmVza2/EjWkgb2JyYcSNdW5hdmFuamUgdnJlbWVuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICdEb3p2b2xpIHByZXNrYWthbmplIG9icmHEjXVuYXZhbmphIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdVa29saWtvIGplIHVrbGp1xI1lbm8sIG9icmHEjXVuYXZhbmplIHZyZW1lbmEgxIdlIGJpdGkgb3BjaW9ubyB6YSBrb3Jpc25pa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJ1Vwb3pvcmVuamEgbyBuZWRvc3RhdGt1IG9icmHEjXVuYSB2cmVtZW5hIGkga29udHJvbGEgcHJpc3R1cGEgxIdlIGJpdGkgc3VzcGVuZG92YW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnUmFzcG9uaSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BvxI1ldGFrIHBlcmlvZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0tyYWogcGVyaW9kYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRGFuaSBvZG1vcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdTYXRpIHBvIG5lZGVsamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0RvenZvbGplbm8gcHJla292cmVtZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdEYXR1bSBwb8SNZXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdNb2xpbW8gZGEgdW5lc2V0ZSB2YcW+ZcSHaSBkYXR1bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdEYXR1bSB6YXZyxaFldGthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnS3JhaiBwZXJpb2RhIG1vcmEgYml0aSBwb3NsZSBwb8SNZXRrYSBwZXJpb2RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRGFuaSBvZHN1c3R2YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdTZWRtacSNbmkgc2F0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ1ByZWtvdnJlbWVubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmlzdSBwcm9uYcSRZW5pIHZyZW1lbnNraSBwZXJpb2RpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdEb2RhaiB2cmVtZW5za2kgcGVyaW9kJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ByaWtheiB2cmVtZW5za29nIHphcGlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1ByaWtheic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdQcmV0aG9kbmkgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnU2xlZGXEh2kgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05lbWEgcG9kYXRha2EgemEgb3ZhaiBkYW4uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ1JhZG5lIGplZGluaWNlIHNlIG5lIG1vZ3UgdW5ldGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdQb3NsZWRuamkgcHJvamVrdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTmUgbW9ndSBkYSBzYcSNdXZhbSBwb2RlxaFhdmFuamEsIGplciBkYW4gaW1hIHNhbW8gMjQgc2F0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ1JhZG5lIGplZGluaWNlIHNlIG5lIG1vZ3Ugb2JyaXNhdGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnT3ZhaiBkYXR1bSBqZSBpenZhbiBncmFuaWNhIGFsaSBnYSBuaXN0ZSBqb8WhIHV2ZWsgdW5lbGksIHBhIGltYXRlIGpvxaEgamVkbnUoISkgxaFhbnN1IHphIHVub3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdOZXBvdHB1bmkgcmFkbmkgZGFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdVc3BlxaFubyBkb2RhdmFuamUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdHcmXFoWthIHByaSB1bm9zdSB2acWhZSBkYXR1bWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ1VzcGXFoW5vIHViYcSNZW5pIHVub3NpIHphIHZpxaFlIGRhdHVtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ1VuZXRpIGRhdHVtIGplIG5ldmHFvmXEh2khIERhdHVtIGplIHByb21lbmplbiBuYSBkYW5hxaFuamkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ05pamUga29uZmlndXJpc2FuIHZyZW1lbnNraSBwZXJpb2QgaWxpIGplIG5hdmVkZW5pIGRhdHVtIHZhbiBkZWZpbmlzYW5paCB2cmVtZW5za2loIHBlcmlvZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICdNb2xpbW8gZGEga29udGFrdGlyYXRlIGFkbWluaXN0cmF0b3JhIG9icmHEjXVuYSB2cmVtZW5hIHphIGHFvnVyaXJhbmplIHZyZW1lbnNraWggcGVyaW9kYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1Bvc2xlZG5qaSBpemFicmFuaSBwcm9qZWt0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdTdmkgcHJvamVrdGknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnSXp2ZcWhdGF2YW5qZSBvIHByb2pla3R1OiBuZW9waG9kYW4gamUgUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnSXp2ZcWhdGF2YW5qZSBvIHByb2pla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ0l6dmXFoXRhdmFuamUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnS29yaXNuacSNa2EgcG9kZcWhYXZhbmphIHNlIG5lIG1vZ3UgYcW+dXJpcmF0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdEb2RhdCBwcm9qZWthdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ0HFvnVyaXJhbiBwcm9qZWthdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICdEb2RhdCB6YWRhdGFrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnQcW+dXJpcmFuIHphZGF0YWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ1VzZXJJRCBqZSBuZXZhxb5lxIdpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdLb3Jpc25pxI1raSBwb2RhY2kgc2UgbmUgbW9ndSB1bmV0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdWcmVtZW5za2kgcGVyaW9kIHNlIG5lIG1vxb5lIGRvZGF0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1BvZGXFoWF2YW5qZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnQcW+dXJpcmFuIGtvcmlzbmlrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ0RvZGF0IGtvcmlzbmlrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJ0RvZGFqIGtvcmlzbmlrYSB1IG9icmHEjXVuYXZhbmplIHZyZW1lbmEuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3ZpIGtvcmlzbmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGF0dXMgcGVyaW9kYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnUHJpa2F6OiBuZW9waG9kYW4gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdNb2xpbW8gdmFzIHVuZXNpdGUgdmHFoWUgcmFkbm8gdnJlbWUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnTmVwb3RwdW5pIHJhZG5pIGRhbmknOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnTW9saW1vIHZhcyBpemFiZXJpdGUgYmFyIGplZGFuIGRhbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc292bmkgdW5vcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ01vbGltbyB2YXMgaXphYmVyaXRlIHJhemxvZyB2YcWhZWcgb2RzdXN0dmEhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnT2JyacWhaSBzdGF2a3Ugb2JyYcSNdW5hIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdQb3R2cmRpIHVub3MnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bCB6YSBvYmF2ZcWhdGF2YW5qZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhIGtvamkgcHJpa2F6dWplIGJyb2ogbmVrb21wbGV0bmloIHJhZG5paCBkYW5hIHphIGtvcmlzbmlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdQb2RyYXp1bWV2YW5vIGltZSBub3ZpaCBha2NpamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1BvZHJhenVtZXZhbm8gaW1lIG5vdmloIHByb2pla2F0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdQb2RyYXp1bWV2YW5vIHBvZGXFoWF2YW5qZSB6YSBkYXR1bSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgZGF0dW0gcG/EjWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgb3Bpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1BvZHJhenVtZXZhbm8gcG9kZcWhYXZhbmplIHphIGRhbmUgb2RzdXN0dmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgcHJla292cmVtZW5pIHJhZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1BvZHJhenVtZXZhbm8gcG9kZcWhYXZhbmplIHphIHN0YW5kYXJkbnUgcmFkbnUgbmVkZWxqdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1BvZHJhenVtZXZhbmkgc3RhdHVzIHphIG5vdmUgYWtjaWplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1BvZHJhenVtZXZhbmkgc3RhdHVzIHphIG5vdmUgcHJvamVrdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnUG9kcmF6dW1ldmFuaSBzdGF0dXMgbm92aWgga29yaXNuaWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdPZHJlxJF1amUgcHJvamVrdGUgemEga29qZSBqZSBuYXBvbWVuYSBvYmF2ZXpuYS4gQWtvIHNlIFJlZ0V4cCBwb2tsb3BpIG5hIHByb2pla3R1LCBtb3JhdGUgdGVrb8SRZSB1bmV0aSBuYXBvbWVudS4gUmVnRXhwIGtvcmlzdGkgc214IHBhcmFtZXRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBkYSBsaSBzdGF0aXN0acSNa2kgbW9kdWwgbW/FvmUgZ2VuZXJpc2F0aSBpbmZvcm1hY2lqZSBvIG9icmHEjXVudSB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJem1lbmkgcG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnSXptZW5pIHZyZW1lbnNraSB6YXBpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnWmEga29saWtvIGRhbmEgdW5hemFkIG1vxb5ldGUgdW5ldGkgcmFkbmUgamVkaW5pY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBwcmlrYXphbmkgc3Ugc2FtbyBrb3Jpc25pY2kga29qaSBzdSBkb2RhbGkgcmFkbm8gdnJlbWUgdSBpemFicmFuaSBwcm9qZWthdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBwYWRhanXEh2kgZWxlbWVudGkgbmEgZWtyYW51IHphIGl6bWVudSBzZSBtZW5qYWp1IHUgbW9kZXJuaXpvdmFuYSBzYW1vZG92csWhYXZhanXEh2EgcG9samEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBmaWx0ZXIgcHJldGhvZG5paCBwcm9qZWthdGEgc2UgbW/FvmUga29yaXN0aXRpIHVtZXN0byBkdmUgbGlzdGUgcHJvamVrYXRhIChwb3NsZWRuamkgaSBzdmkpLiBNb8W+ZSBzZSBrb3Jpc3RpdGkgc2FtbyBha28gamUgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGFrdGl2aXJhbm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdBa28gamUgYWt0aXZpcmFubywgZmlsdGVyIHByZXRob2RuaWggcHJvamVrYXRhIGplIHBvZHJhenVtZXZhbm8gYWt0aXZhbiBha28gaW1hIHByb2pla2F0YSBvZCBwcmUuIE1vxb5lIHNlIGtvcmlzdGl0aSBzYW1vIGFrbyBqZSBFbmFibGVBdXRvQ29tcGxldGlvbiBpIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYWt0aXZpcmFuby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBrb3Jpc25pa3UgamUgZG96dm9samVubyBkYSB1bmVzZSAibmEgb2Rtb3J1IiwgIm5hIGJvbG92YW5qdSIgaSAibmEgc2xvYm9kbmltIGRhbmltYSIgbmEgdmnFoWUgZGF0dW1hIG9kamVkbm9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01ha3NpbWFsbmkgYnJvaiByYWRuaWggZGFuYSBwb3NsZSBrb2cgdHJlYmEgZG9kYXRpIHJhZG5lIGplZGluaWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTWFrc2ltYWxuaSBicm9qIHJhZG5paCBkYW5hIGJleiB1bm9zYSByYWRuaWggamVkaW5pY2EgcG9zbGUga29nIMSHZSBiaXRpIHByaWthemFubyB1cG96b3JlbmplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdQcmVnbGVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ0l6dmXFoXRhdmFuamUgbyB2cmVtZW51IHByb2pla3RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnUmVndWxhcm5pIGl6cmF6aSB6YSBvZ3JhbmnEjWF2YW5qZSBsaXN0ZSBha2NpamEgcHJlbWEgaXphYnJhbmltIHByb2pla3RpbWEuIEtsanXEjSBzYWRyxb5pIHJlZ3VsYXJuaSBpenJheiB6YSBwcm9qZWt0KGUpLCB1IHNhZHLFvmFqdSBqZSByZWd1bGFybmkgaXpyYXogemEgYWtjaWp1KGUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdSZWd1bGFybmkgaXpyYXppIHphIG9ncmFuacSNYXZhbmplIGxpc3RlIGFrY2lqYSBwcmVtYSBpemFicmFuaW0ga29yaXNuacSNa2ltIGdydXBhbWEuIEtsanXEjSBzYWRyxb5pIHJlZ3VsYXJuaSBpenJheiB6YSBwcm9qZWt0KGUpLCB1IHNhZHLFvmFqdSBqZSByZWd1bGFybmkgaXpyYXogemEgZ3J1cGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdPZHJlxJF1amUgZGEgbGkgcmFkbmkgc2F0aSBtb2d1IGRhIHNlIHVuZXN1IGJleiB2cmVtZW5hIHBvxI1ldGthIGkgemF2csWhZXRrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnT3ZhaiBtb2R1bCBuYW1lxIdlIHVub3MgdSBvYnJhxI11biB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ092YWogbW9kdWwgemEgb2JhdmXFoXRhdmFuamUgZGFqZSB1cG96b3JlbmplIGFrbyBpbWEgcHJldmnFoWUgbmVrb21wbGV0bmloIHJhZG5paCBkYW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdPYnJhxI11bmF2YW5qZSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ1VyZcSRaXZhbmplIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdQcmVnbGVkIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnSXp2ZcWhdGFqaSBvYnJhxI11bmF2YW5qYSB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnUG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1ByZWdsZWQgb2JyYcSNdW5hdmFuamEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ09icmHEjXVuYXZhbmplIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1phIHVwb3RyZWJ1IGFrbyBuZWtlIGFrY2lqZSBzbWFuanVqdSByYWRuZSBzYXRlIChuYSBwcmltZXIsIGFrbyBzZSBwbGHEh2Egc2FtbyBwb2xhIHZyZW1lbmEgcHV0b3ZhbmphIEtsanXEjSA9PiBwdXRvdmFuamU7IFNhZHLFvmFqID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnN2X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0fDpSB0aWxsIGluc3TDpGxsbmluZ2FyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0RhdHVtLW5hdmlnZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnVsOkbGogYWxsYSBkYWdhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnUMOlIHNlbWVzdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdTanVrbGVkaWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1VwcGRyYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQW5tw6Ryayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXZhIHRpZGVyIMOkciBpbnRlIHRpbGzDpXRuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnT2dpbHRpZ3QgZm9ybWF0ISBWw6RubGlnZW4gZnlsbCBpIGVuIHRpZCBtZWQgZm9ybWF0ZXQgSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ09naWx0aWcgdGlkISBFdHQgZHlnbiBoYXIgYmFyYSAyNCB0aW1tYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnw5Z2ZXJ0aWQgKFRpbW1hciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1NlbWVzdGVyIChEYWdhciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnRsO2cmVnw6VlbmRlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpHN0a29tbWFuZGUgZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmFwcG9ydGVyaW5nJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnSW5zdMOkbGxuaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdWYXIgdsOkbmxpZyBmeWxsIGkgZGluYSBhcmJldHN0aW1tYXIhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1bDpG5saWdlbiB2w6RsaiDDpXRtaW5zdG9uZSBlbiBkYWchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdWw6RubGlnZW4gdsOkbGogZW4gYW5sZWRuaW5nIGbDtnIgZnLDpW52YXJvISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnN3X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnSmUgdW5hdGFrYSBrdWZ1dGEgVWhhc2lidSB3YSBNdWRhIGt3YSBzaWt1IHlhIGxlbz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnSGFyaXJpIHJla29kaSB5YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnTmVuZGEga3dlbnllIG1wYW5naWxpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdVYWJpcmkgd2EgdGFyZWhlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnU2lrdSB6aXNpem9rdXdhIG5hIG1haW5naXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ0NoYWd1YSBzaWt1IHpvdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ0luZ2l6byBsYSBwYW1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdUYWZhZGhhbGkgY2hhZ3VhIHNhYmFidSB5YSBrdXRva3V3ZXBvIGt3YSBzaWt1IHppbGl6byBjaGFndWxpd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdLYXRpa2EgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdLYXRpa2EgcnVodXNhIHlhIHdhZ29uandhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnS2F0aWthIHJ1aHVzYSB5YSBtdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnU2VoZW11IHppbmF6b3Rha2l3YSB6aW5hIGFsYW1hICIqIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ1VuYXRha2l3YSBrdWphemEgbXVkYSB3YSBrdWFuemEgbmEga3VtYWxpemEgYXUgbXVkYSB1bGlvdHVtaWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnTXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ0themknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnTWFvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdNdWRhIGhhc2kgaGF1cnVodXNpd2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdNdWRhIHVsaW9qaXJ1ZGlhIGhhdXJ1aHVzaXdpLiBNdWRhIHdhIGt1YW56YSB1bmFmYW5hbmEgbmEgbXVkYSBtd2luZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ011dW5kbyBiYXRpbGkhIFRhZmFkaGFsaSBpbmdpemEgbXVkYSBuYSBtdXVuZG8gSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGluYXJ1aHVzaXdhIGthdGlrYSBtdWRhIHdhIGt1bWFsaXphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ011ZGEgYmF0aWxpISBTaWt1IGluYSBtYXNhYSAyNCB0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ011ZGEgd2Ega3VtYWxpemEgbGF6aW1hIHV3ZSBiYWFkYSB5YSBtdWRhIHdhIGt1YW56YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdNYXNhYSB5YWxpeW9qaXJ1ZGlhIGhheWFydWh1c2l3aS4gTXVkYSB3YSBrdW1hbGl6YSB1bmFmYW5hbmEgbXVkYSBtd2luZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ011ZGEgYmF0aWxpISBTaWt1IGluYSBtYXNhYSAyNCB0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdNdWRhIGhhbGFsaSB1bmEgbWFzYWEgemFpZGkgeWEgc2lmdXJpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnS2lwaW5kaSBiYXRpbGkhIFZpcGluZGkgaGFzaSBoYXZpcnVodXNpd2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnT25nZXphIHNhZnUgbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1VuYXdlemEga3VjaGFndWEgZWxlbWVudGkgbW9qYSBrYXRpa2EgY2hla2kgYm9rc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ1VuYSB1aGFraWthIHVsaWZhbnlhIGthemkgd2FrYXRpIHVwbyBsaWtpem8geWEgd2Fnb25qd2E/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB3YWthdGkgdXBvIGxpa2l6bz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ1VuYSB1aGFraWthIHVsaWZhbnlhIGthemkgd2FrYXRpIHVwbyBsaWtpem8geWEgbXVkYSB3YSBueW9uZ2V6YT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB6YWlkaSB5YSBtYXNhYSAxNj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ01hcGl0aW8geWEgbXdlemkgeWEgdWFyaWZ1IHdhIG11ZGEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdNdWRhIHdhIG55b2duZXphIChNYXNhYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSAobXdlemkgaHV1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ011ZGEgdWxpb2Jha2kgd2EgbGlraXpvIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnTGlraXpvIChzaWt1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdMaWtpem8gaWxpeW9jaHVrdWxpd2EgKG13ZXppIGh1dSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0xpa2l6byBpbGl5b2NodWt1bGl3YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0xpa2l6byBpbGl5b2Jha2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWtpem8geWEgd2Fnb25qd2EgKHNpa3UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnTGlraXpvIHlhIHdhZ29uandhIGlsaXlvY2h1a3VsaXdhIChtd2V6aSBodXUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSBpbGl5b2NodWt1bGl3YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTXdlemkgdWxpb3BpdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ013ZXppIHVqYW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ1Npa3UgemEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnTWFzYWEgeWEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdKdW1sYSB5YSBtYXNhYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ01hcGl0aW8geWEgbXJhZGkgd2EgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnTWFzYWEgKGt3YSBtd2V6aSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ01hc2FhIChtdWRhIHdvdGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnSnVtbGEga3V1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1VhcmlmdSB3YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdVYWJpcmkgd2EgbXdlemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ05lbmRhIHRhcmVoZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSaXBvdGkgemEgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ0p1bWxhIHlhIG13ZXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnSnVtbGEgeWEgbXVkYSB3b3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnTGlraXpvIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdMaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdMaWtpem8gaWxpeW9iYWtpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JpcG90aSB6YSBtcmFkaSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUmlwb3RpIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ05lbmRhIGt3ZW55ZSBtYXBpdGlvIHlhIHVhcmlmdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0t3YSBzYXNhIHdhdHVtaWFqaSBhbWlsaWZ1IHR1IGthdGlrYSBtcmFkaSBodXUgd2F0YW9ueWVzaHdhLiBLdWJhZGlsaXNoYSB0YWJpYSBoaWksIHRhZmFkaGFsaSBzYXNpc2hhIG1wYW5nYWxpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnS3dhIHNhc2Egd2F0dW1pYWppIHdvdGUgd2EgbXVkYSB1bGlvaGVzYWJpa2Egd2F0YW9ueWVzaHdhLiBLdWJhZGlsaXNoYSB0YWJpYSBoaWksIHRhZmFkaGFsaSBzYXNpc2hhIG1wYW5nYWxpby4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSGFyaXJpIFVoYXNpYnUgd2EgTXVkYSBrd2VueWUgbWlwYW5naWxpbyB5YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ09uZ2V6YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ05lbmRhIGt3ZW55ZSBtYXBpdGlvIHlhIG1wYW5naWlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnT25nZXphIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0hhcmlyaSBtaXBhbmdpbGlvIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdUYXlhcmkga3VuYSBtcmFkaSB3ZW55ZSBoaWxpIGppbmEuIFRhZmFkaGFsaSwgY2hhZ3VhIGplbmdpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEgVWhhc3VidSB3YSBNdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnT25nZXphIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnT3JvZGhhIHlhIG1pcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdPcm9kaGEgeWEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ09uZ2V6YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0hhcmlyaSBtaXBhbmdpbGlvIHlhIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1RheWFyaSBrdW5hIGthemkgeWVueWUgaGlsaSBqaW5hLiBUYWZhZGhhbGkgY2hhZ3VhIGplbmdpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ09yb2RoYSB5YSBtdHVtaWFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdPbnllc2hhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUnVodXN1IHV0ZW5nZW5lemFqaSB3YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0t1YW56YSBrd2Ega2lwZW5nZWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdLdWlzaGEga3dhIGtpcGVuZ2VsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnU2lrdSB6YSBsaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdNYXNhYSBrd2Egd2lraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSB1bGlvcnVodXNpd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ1RhcmVoZSB5YSBrdWFuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnVGFmYWRoYWxpIGluZ2l6YSB0YXJlaGUgaGFsYWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnVGFyZWhlIHlhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnTXdpc2hvIHdhIGtpcGVuZ2VsZSBsYXppbWEgdXdlIGJhYWRhIHlhIG13YW56byB3YSBraXBlbmdlbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ1Npa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ01hc2FhIHlhIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdNdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdIYWt1bmEgdmlwZW5nZWxlIHZ5YSBtdWRhIHZpbGl2eW9wYXRpa2FuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdPbmdlemEga2lwZW5nZWxlIGNoYSBtdWRhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ09ueWVzaGEga2lwZW5nZWxlIGNoYSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnTXVvbmVrYW5vIHdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1Npa3UgaWxpeW9waXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnU2lrdSBpbmF5b2Z3YXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0hha3VuYSBkYXRhIHppbGl6b3BhdGlrYW5hIGt3YSBzaWt1IGhpaSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbmdpem8gbGltZWZhbmlraXdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdLb3NhIGthdGlrYSBrdWluZ2l6YSB0YXJlaGUgemFpZGkgeWEgbW9qYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnTWFpbmdpem8geWFsaXlvZmFuaWtpd2Ega3dhIHRhcmVoZSB6YWlkaSB5YSBtb2phISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnSW5naXpvIGxhIHRhcmVoZSBuaSBiYXRpbGkhIFRhcmVoZSBpbWViYWRpbGlzaHdhIGxlby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1VhcmlmdSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ01wYW5naWxpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVGFmYWRoYWxpIGluZ2l6YSBtYXNzYWEgeWEga2F6aSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnVGFmYWRoYWxpIGNoYWd1YSBqYXBvIHNpa3UgbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnSW5naXpvIGxhIHBhbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1RhZmFkaGFsaSBjaGFndWEgc2FiYWJ1IHlhIGt1dG8ga3V3ZXBvISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0Z1dGEgaW5naXpvIGxhIFVoYXNpYnUgd2EgTXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0hha2lraSBpbmdpem8nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bGkgeWEgdGFhcmlmYSBrd2Ega2lvbGVzdXJhIGNoYSB3YWthbGEga3VvbmEgaWRhZGkgeWEgc2lrdSB6YSBrYXppIHphIG10dW1pYWppIHppc2l6byBrYW1pbGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnSmluYSBsYSBjaGFndW8tbXNpbmdpIGt3YSB2aXRlbmRvIHZpcHlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdKaW5hIGxhIGNoYWd1by1tc2luZ2kga3dhIG1pcmFkaSBtaXB5YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NoYWd1by1tc2luZ2kga3dhIG1pcGFuZ2lsaW8geWEgdGFyZWhlIHlhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDaGFndW8tbXNpbmdpIGt3YSBtaXBhbmdpbGlvIHlhIHRhcmVoZSB5YSBrdWFuemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ2hhZ3VvLW1zaW5naSBrd2EgbWlwYW5naWxpbyB5YSBtYWVsZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIHNpa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ2hhZ3VvLW1zaW5naSBsYSBtdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIG1pcGFuZ2lsaW8geWEgc2lrdSB6YSBrYXdhaWRhIHphIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0hhbGkgeWEgY2hhZ3VvLW1zaW5naSBrd2Egdml0ZW5kbyB2aXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIG1pcmFkaSBtaXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIHdhdHVtaWFqaSB3YXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBtaXJhZGkgYW1iYXlvIG1hb25pIHlhbmFoaXRhamlrYS4gS2FtYSBSZWdFeHAgaW5hZmFuYW5hIGthdGlrYSBtcmFkaSwgdW5hdGFraXdhIGt1d2VrYSBtYW9uaSBwaWEuIFJlZ0V4cCBpbmF0dW1pYSBwYXJhbWV0YSB5YSBzbXgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0luYWhha2lraSBrYW1hIG1vZHVsaSB5YSB0YWt3aW11IGluYXdlemEga3V0ZW5nZW5lemEgdGFhcmlmYSB5YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdLd2Egc2lrdSBuZ2FwaSB6aWxpem9waXRhIHVuYXdlemEga3VpbmdpemEgdml0ZW5nbyB2eWEga2F6aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnS2FtYSBpbWV3ZXplc2h3YSwgd2F0dW1pYWppIHdhbGlvd2VrYSBtdWRhIHdhIGthemkga3dhIG1yYWRpIHVsaW9jaGFndWxpd2EgbmRpbyB3YXRhb255ZXNod2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnS2FtYSBpbWV3ZXplc2h3YSwgbXR1bWlhamkgYW5hcnVodXNpd2Ega3VpbmdpemEgImt3ZW55ZSBsaWtpem8iLCAia3dlbnllIGxpa2l6byB5YSB3YWdvbmp3YSIsICJrd2VueWUgbGlraXpvIHlhIHNpa3UgemEgbnlvbmdlemEiIGt3YSB0YXJlaGUgemFpZGkgeWEgbW9qYSBrd2EgbWt1cHVvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ0tpbWEgY2hhIGp1dSBjaGEgc2lrdSB6YSBrYXppIGJhYWRhIHlhIHZpdGVuZ28gdnlhIGthemkga3VpbmdpendhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnS2ltYSBjaGEganV1IGNoYSBzaWt1IHphIGthemkgYmlsYSB5YSB2aXRlbmdvIHZ5YSBrYXppIGt1aW5naXp3YSBhbWJhdnlvICBvbnlvIGxpdGFvbnllc2h3YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdNYW5lbm8geWEga2F3YWlkYSB5YW5heW8ga3dhbWlzaGEgb3JvZGhhIHlhIHZpdGVuZG8ga3dhIG1yYWRpIHVsaW9jaGFndWxpd2EuIFVmdW5ndW8gdW5hIG1hbmVubyB5YSBrYXdhaWRhIHlhIG1yYWRpIChtaXJhZGkpLCBtYXVkaHVpIHlhbmEgbWFuZW5vIHlhIGthd2FpZGEgeWEga2l0ZW5kbyAodml0ZW5kbykuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdNYW5lbm8geWEga2F3YWlkYSB5YSBrdXp1aWEgb3JvZGhhIHlhIG1yYWRpIGt1ZW5kYW5hIG5hIG1ha3VuZGkgeWEgd2F0dW1pYWppLiBVZnVuZ3VvIHVuYSBtYW5lbm8geWEga2F3YWlkYSB5YSBtcmFkaSAobWlyYWRpKSwgbWF1ZGh1aSB5YW5hIG1ha3VuZGkgeWFsaXlvZ2F3YW55d2Ega3dhIGFsYW1hIHlhIG1rYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnSW5hYmFpbmlzaGEga2FtYSBtYXNhYSB5YSBrYXppIHlhbmF3ZXphIGt1aW5naXp3YSBiaWxhIHlhIG11ZGEgd2Ega3VhbnphIG5hIGt1bWFsaXphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdIaWkgbW9kdWxpIGluYWluZ2l6YSBVaGFzaWJ1IHdhIE11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdIaWkgbW9kdWxpIHlhIHRhYXJpZmEgaW5hdG9hIG9ueW8gZW5kYXBvIGt1bmEgc2lrdSBueWluZ2kgemEga2F6aSBhbWJhem8gaGF6aWpha2FtaWxpa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1VoYXNpYnUgd2EgbXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdIYXJpcmkgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnTWFwaXRpbyB5YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnVWFyaWZ1IHdhIHVoYXNpYnUgd2EgbXVkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ01wYW5naWxpbyB3YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ011b25la2FubyB3YSB1aGFzaWJ1IHdhIG11ZGEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdVaGFzaWJ1IHdhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnSXRhdHVtaWthIGthbWEgYmFhZGhpIHlhIHZpdGVuZG8gdml0YXB1bmd1emEgbXVkYSB3YSBrYXppIChtZmFubywga2FtYSBudXN1IHlhIG11ZGEgd2Ega3VzYWZpcmkgdW1lbGlwd2EgVWZvbmd1bz0+IGt1c2FmaXJpOyBtYXVkaHVpPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnVrX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn0J/QvtC80LjQu9C60LAg0L/RgNC4INCy0YHRgtCw0LLRhtGWINC00LXQutGW0LvRjNC60L7RhSDQtNCw0YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ9Cf0LDRgNCw0LzQtdGC0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAn0J7QsdC70ZbQuiDRh9Cw0YHRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnZpX1ZOX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnROG7sSDDoW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+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+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnTmjhuq1wIHRow6BuaCBjw7RuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnTOG7l2kga2hpIG5o4bqtcCBuaGnhu4F1IG5nw6B5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ05o4bqtcCB0aMOgbmggY8O0bmcgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ0LDoW8gY8Ohbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1RoaeG6v3QgbOG6rXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1hpbiBuaOG6rXAgdGjhu51pIGdpYW4gbMOgbSB2aeG7h2MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1F14bqjbiBsw70gdGjhu51pIGdpYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnpoX0NOX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn6K+356Gu6K6k5L2g55yf55qE5biM5pyb5Yig6Zmk6L+Z5LiA5aSp55qE5bel5pe2566h55CG6K6w5b2V77yfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ+e8lui+keaXtumXtOiusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ+i/m+WFpeiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfml6XmnJ/mtY/op4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfmsqHmnInorrDlvZXnmoTlt6Xml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn6YCJ5oup5omA5pyJ5bel5pel44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICflpKfph4/orrDlvZUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfor7fkuLrmiYDpgInml7bpl7TpgInmi6nnvLrli6Tljp/lm6DjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+WKoOePreiwg+S8kSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ+agh+iusCIqIueahOWtl+auteS4uuW/heWhq+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ+S9oOmcgOimgeWhq+WGmeW8gOWni+WSjOe7k+adn+aXtumXtOaIluiAheaXtumXtOauteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn6aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICfku7vliqEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn5aSH5rOoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ+ivt+a3u+WKoOS4gOS4qui2hei/hzjkuKrlrZfnrKbnmoTlpIfms6jvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ+aXtumXtOS4jeWFgeiuuOS4uui0n+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn5LiN5YWB6K646YeN5aSN55qE5bel5L2c5pe26Ze044CC5byA5aeL5pe26Ze05bey5Yy56YWN5YW25LuW5a2Y5Zyo55qE5pe25q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfmoLzlvI/ml6DmlYjvvIHor7fmjIlISDpNTeagvOW8j+i+k+WFpeaXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMOWPquWFgeiuuOiuvue9ruS4uue7k+adn+aXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ+aXtumXtOaXoOaViO+8geS4gOWkqeWPquaciTI05bCP5pe244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfnu5PmnZ/ml7bpl7TlupTlpKfkuo7lvIDlp4vml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfkuI3lhYHorrjph43lpI3nmoTlt6XkvZzml7bpl7TjgILnu5PmnZ/ml7bpl7Tlt7LljLnphY3lhbbku5blrZjlnKjnmoTml7bmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ+aXoOaViOeahOaXtuaute+8geS4gOWkqeWPquaciTI05bCP5pe244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn5pyJ5pWI5pe25q615pe26ZW/5bqU5aSn5LqOMOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn5peg5pWI5pe25q6177yB5pe25q615pe26ZW/5LiN5YWB6K645Li66LSf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn5aKe5Yqg5LiA6KGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn5Y+q6IO96YCJ5oup5LiA5Liq5aSN6YCJ5qGG5YWD57Sg44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICfkvaDnoa7lrprkvaDlnKjnl4XlgYfmnJ/pl7Tku43lnKjlt6XkvZzlkJfvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfkvaDnoa7lrprkvaDlnKjkvJHlgYfmnJ/pl7Tku43lnKjlt6XkvZzlkJfvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ+S9oOehruWumuS9oOWcqOWKoOePreiwg+S8keacn+mXtOS7jeWcqOW3peS9nOWQl++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfkvaDnoa7lrprkvaDlt6XkvZzotoXov4cxNuWwj+aXtuS6huWQl++8nyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAn5bel5pe25oql5ZGK5pyI5bqm5qaC6KeIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfliqDnj63vvIjlsI/ml7bvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAn5Yqg54+t77yI5pys5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfliqDnj63vvIjlkIjorqHvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn5Ymp5L2Z55qE5Yqg54+t6LCD5LyRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ+S8keWBh++8iOWkqe+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICflt7LkvJHlgYfvvIjmnKzmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ+W3suS8keWBh++8iOWQiOiuoe+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICfliankvZnnmoTlgYfmnJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfnl4XlgYfvvIjlpKnvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICflt7LkvJHnl4XlgYfvvIjmnKzmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAn5bey5LyR55eF5YGH77yI5ZCI6K6h77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAn5LiK5LiA5pyIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICfkuIvkuIDmnIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ+W3peS9nOaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAn5bel5L2c5pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ+W3peS9nOaXtumXtOWQiOiuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICfnlKjmiLfnmoTpobnnm67mpoLop4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn5bCP5pe277yI5oyJ5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICflsI/ml7bvvIjoh6rlhaXogYzorqHnrpfvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfmgLvorqEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAn5pe26Ze05oql5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfmjInmnIjmtY/op4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ+i3s+i9rOWIsOaXpeacnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICfnlKjmiLfmiqXlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ+aMieaciOWQiOiuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ+iHquWFpeiBjOiuoeeul+WQiOiuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ+WKoOePreiwg+S8kSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ+S8keWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn55eF5YGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ+WJqeS9meWBh+acnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICfpobnnm67miqXlkYonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ+mhueebruaKpeWRiic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfov5vlhaXmiqXlkYrmpoLop4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICflvZPliY3ku4XmmL7npLrpobnnm67kuK3nmoTmv4DmtLvnlKjmiLfjgILlpoLopoHosIPmlbTmmL7npLrlsZ7mgKfvvIzor7fmm7TmlrDorr7nva7vvJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn5b2T5YmN5pi+56S65omA5pyJ55qE5bel5pe2566h55CG55So5oi344CC5aaC6KaB6LCD5pW05pi+56S65bGe5oCn77yM6K+35pu05paw6K6+572u77yaJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ+e8lui+keW3peaXtueuoeeQhumhueebruiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ+aWsOW7uumhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ+i/m+WFpeiuvue9ruamguiniCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ+aWsOW7uumhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfnvJbovpHpobnnm67orr7nva4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ+W3suWtmOWcqOWQjOWQjeeahOmhueebru+8jOivt+mAieaLqeS4jeWQjOeahOWQjeWtl+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ+e8lui+keW3peaXtueuoeeQhuiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ+a3u+WKoOS7u+WKoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ+aMiemhueebruOAgeS7u+WKoeaIlueUqOaIt+i/h+a7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ+aXoOazleWIoOmZpOW3peaXtuWRqOacn+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfpobnnm67liJfooagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn5Lu75Yqh5YiX6KGoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn5re75Yqg5Lu75YqhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ+e8lui+keS7u+WKoeiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5bey5a2Y5Zyo5ZCM5ZCN55qE5Lu75Yqh77yM6K+36YCJ5oup5LiN5ZCM55qE5ZCN5a2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ+eUqOaIt+WIl+ihqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAn55So5oi36K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAn5YWB6K6455So5oi355yL5Yiw5Yqg54+t5pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfmmL7npLrliqDnj60nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ+WFgeiuuOeUqOaIt+WIm+W7uumhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn5YWB6K645Yib5bu66aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJ+WFgeiuuOeUqOaIt+i3s+i/h+W3peaXtueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICflhYHorrjot7Pov4flt6Xml7bnrqHnkIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICflpoLmnpzpgInmi6nmraTpgInpobnvvIzliJnlt6Xml7bnrqHnkIblr7nnlKjmiLfmnaXor7Tlrp7pmYXkuIrmmK/lj6/pgInnmoTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAn5rKh5pyJ5YWz5LqO57y65bCR5p2h55uu55qE6K2m5ZGK77yM5Lmf5rKh5pyJ6L+b5YWl5by65Yi25omn6KGM55qE6K2m5ZGK44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICfml7bpl7Tot6jluqYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn5pe25q615byA5aeLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfml7bmrrXnu5PmnZ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ+S8keWBh+WkqeaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ+avj+WRqOWwj+aXtuaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn5om55YeG55qE5Yqg54+tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICflvIDlp4vml6XmnJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn6K+35o+S5YWl5pyJ5pWI5pel5pyf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn57uT5p2f5pel5pyfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn5pe25q6157uT5p2f5pe26Ze05bqU5aSn5LqO5pe25q615byA5aeL5pe26Ze044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfnvLrli6TlpKnmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn5q+P5ZGo5bel5L2c5bCP5pe25pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn5Yqg54+tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfmsqHmnInmib7liLDml7bmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn5aKe5Yqg5pe25q61JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ+afpeeci+W3peaXtuiusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ+Wxleekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfliY3kuIDlpKknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICflkI7kuIDlpKknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn5rKh5pyJ5om+5Yiw6L+Z5LiA5aSp55qE5pWw5o2u44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ+aXoOazleaPkuWFpeW3peS9nOWNleS9je+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn5pyA6L+R55qE6aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ+aXoOazleS/neWtmOiuvue9ru+8jOWboOS4uuS4gOWkqeWPquaciTI05bCP5pe277yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfml6Dms5XliKDpmaTlt6XkvZzljZXkvY3vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICfov5nkuKrml6XmnJ/kuI3lj5fpmZDliLbvvIzkvYbmmK/kvaDov5jmsqHmnInmj5LlhaXov5nkuIDlpKnvvIzmiYDku6XkvaDojrflvpfkuobkuIDkuKrvvIjvvIHvvInmnLrkvJrmnaXmj5LlhaUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfkuI3lrozmlbTnmoTlt6XkvZzml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn5o+S5YWl5oiQ5Yqf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfmj5LlhaXlpJrkuKrml7bpl7Tml7blh7rnjrDplJnor6/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn5oiQ5Yqf5o+S5YWl6K6w5b2V44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICfovpPlhaXml7bpl7Tml6DmlYjvvIHml6XmnJ/mlLnkuLrlvZPliY3ml6XmnJ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAn5rKh5pyJ6YWN572u5pe26Ze05q6177yM5oiW5oyH5a6a55qE5pel5pyf5LiN5Zyo5a6a5LmJ55qE5pe26Ze05q615YaF44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICfor7fogZTns7vlt6Xml7bnrqHnkIblkZjmm7TmlrDmgqjnmoTml7bpl7TmrrXvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ+acgOWQjuiiq+mAieS4reeahOmhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICfmiYDmnInpobnnm64nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAn6aG555uu5oql5ZGK77ya6ZyA6KaB6aG555uuSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICfpobnnm67miqXlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn5oql5ZGKJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ+aXoOazleabtOaWsOeUqOaIt+iuvue9ru+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ+mhueebruW3sua3u+WKoO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAn6aG555uu5bey5pu05paw77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAn5Lu75Yqh5bey5re75Yqg77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfku7vliqHlt7Lmm7TmlrDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnVXNlcklE5peg5pWI77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ+aXoOazleaPkuWFpeeUqOaIt+aVsOaNru+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ+aXoOazlea3u+WKoOaXtumXtOaute+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn6K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfnlKjmiLflt7Lmm7TmlrDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfnlKjmiLflt7Lmt7vliqDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfmt7vliqDkuIDkuKrnlKjmiLfliLDlt6Xml7bnrqHnkIYuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfmt7vliqDnlKjmiLcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ+aXtuauteeKtuaAgSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAn6KeG5Zu+77ya6ZyA6KaBJXPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ+ivt+aPkuWFpeW3peS9nOaXtumXtCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ+S4jeWujOaVtOeahOW3peS9nOaXpSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICfor7foh7PlsJHpgInmi6nkuIDlpKnvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ+Wkp+mHj+iusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ+ivt+mAieaLqee8uuW4reWOn+WboO+8gSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ+WIoOmZpOW3peaXtueuoeeQhuiusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ+ehruiupOaPkuWFpSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ+acjeWKoeS6uuWRmOeVjOmdoumAmuefpeaooeWdl++8jOaYvuekuueUqOaIt+S4jeWujOaVtOeahOW3peS9nOaXpeaVsOaNruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ+aWsOa0u+WKqOeahOm7mOiupOWQjeensOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfmlrDpobnnm67nmoTpu5jorqTlkI3np7DjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICfnu5PmnZ/ml6XmnJ/nmoTpu5jorqTorr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ+W8gOWni+aXpeacn+eahOm7mOiupOiuvue9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ+aPj+i/sOeahOm7mOiupOiuvue9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAn5LyR5YGH5pel55qE6buY6K6k6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn5Yqg54+t55qE6buY6K6k6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICflkajmoIflh4blt6XkvZzml7bpl7TnmoTpu5jorqTorr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ+aWsOa0u+WKqOeahOm7mOiupOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ+aWsOmhueebrueahOm7mOiupOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ+aWsOeUqOaIt+eahOm7mOiupOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICfmjIflrprlpIfms6jlv4XloavnmoTpobnnm67jgILlpoLmnpxSZWdFeHDljLnphY3pobnnm67vvIzkvaDkuZ/pnIDopoHmt7vliqDlpIfms6jjgIJSZWdFeHDkvb/nlKhzbXjlj4LmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ+ehruWumue7n+iuoeaooeWdl+aYr+WQpuimgeeUn+aIkOW3peaXtueuoeeQhuS/oeaBr+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfnvJbovpHlt6Xml7bnrqHnkIborr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICfnvJbovpHlt6Xml7borrDlvZXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn5L2g5Y+v5Lul5o+S5YWl5aSa5LmF5Lul5YmN55qE5bel5L2c5pWw5o2u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ+WmguaenOWQr+eUqO+8jOWImeS7heaYvuekuuWcqOmAieWumumhueebruS4reacieW3peaXtuaVsOaNrueahOeUqOaIt+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAn5aaC5p6c5ZCv55So77yM5YiZ57yW6L6R6KeG5Zu+5Lit55qE5LiL5ouJ5YiX6KGo5YWD57Sg5bCG5Lya5L+u5pS55Li66Ieq5Yqo5a6M5oiQ5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+WmguaenOWQr+eUqO+8jOWImeWPr+S7peS9v+eUqOS5i+WJjemhueebrueahOi/h+a7pOWZqO+8iOeUqOS6juabv+S7o+acgOWQjuWSjOWFqOmDqOmhueebruWIl+ihqO+8ieOAguS7heWcqFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbuWQr+eUqOaXtu+8jOWPr+S7peWQr+eUqOivpeWPguaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAn5aaC5p6c5ZCv55So77yM5YiZ5aaC5p6c5a2Y5Zyo5LmL5YmN55qE6aG555uu77yM5YiZ5LmL5YmN6aG555uu6L+H5ruk5Zmo5bCG6KKr6buY6K6k5r+A5rS744CC5LuF5ZyoRW5hYmxlQXV0b0NvbXBsZXRpb27lkoxUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVy5ZCv55So5pe277yM5Y+v5Lul5ZCv55So6K+l5Y+C5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICflpoLmnpzlkK/nlKjvvIzliJnnlKjmiLflj6/ku6XkuIDmrKHlnKjlpJrkuKrml6XmnJ/kuK3ovpPlhaXigJzkvJHlgYfigJ3vvIzigJznl4XlgYfigJ3vvIwi5Yqg54+t6LCD5LyRIuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ+W3peS9nOaVsOaNrua3u+WKoOWQjuWFgeiuuOeahOacgOWkp+W3peaXpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn5rKh5pyJ5bel5L2c5pWw5o2u6K6w5b2V55qE5bel5L2c5pel55qE5pyA5aSn5pWw6YeP77yI5aaC5p6c6LaF6L+H77yM5YiZ5Lya5pi+56S66K2m5ZGK77yJ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ+amguiniOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ+mhueebruW3peaXtuaKpeWRiuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn6YCJ5a6a6aG555uu55qE6ZmQ5Yi25rS75Yqo5riF5Y2V5L2/55So55qE5q2j5YiZ6KGo6L6+5byP44CC6ZSu5YyF5ZCr5LqG6aG555uu77yIUHJvamVjdHPvvInnmoTmraPliJnooajovr7lvI/vvIzlgLzljIXlkKvkuobmtLvliqjvvIhBY3Rpb27vvInnmoTmraPliJnooajovr7lvI/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAn55So5oi357uE55qE6ZmQ5Yi26aG555uu5riF5Y2V5L2/55So55qE5q2j5YiZ6KGo6L6+5byP44CCS2V55YyF5ZCr5LqG6aG555uu77yIUHJvamVjdHPvvInnmoTmraPliJnooajovr7lvI/vvIxDb250ZW505YyF5ZCr5LqG6YCX5Y+35YiG6ZqU55qE57uE5riF5Y2V44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICfmjIflrprlnKjmsqHmnInlvIDlp4vlkoznu5PmnZ/ml7bpl7TnmoTmg4XlhrXkuIvmmK/lkKblj6/ku6Xmj5LlhaXlt6Xml7bmlbDmja7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAn5pys5qih5Z2X5Yqf6IO95o+S5YWl5Yiw5bel5pe2566h55CG5Lit44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAn5aaC5pyJ5pyJ5aSq5aSa5LiN5a6M5pW055qE5bel5pel77yM6K+l6YCa55+l5qih5Z2X5Lya5Y+R5Ye65ZGK6K2m44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ+W3peaXtueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICflt6Xml7bnrqHnkIbnvJbovpHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ+W3peaXtueuoeeQhuamguiniOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ+W3peaXtueuoeeQhuaKpeWRiuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn5bel5pe2566h55CG6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ+W3peaXtueuoeeQhuafpeeci+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn5bel5pe2566h55CG44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ+WcqOS4gOS6m+a0u+WKqOWHj+WwkeW3peS9nOWwj+aXtuaVsOeahOaXtuWAmeS9v+eUqO+8iOWmgu+8muWPquiKsei0ueS6huS4gOWNiueahOW3ruaXheaXtumXtO+8jOWImUtleT0+5beu5peF77ybQ29udGVudD0+NTDvvInjgIInOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnpoX1RXX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ+WJjeW+gOioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn6YG45Y+W5omA5pyJ5pel5a2QJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+i2heaZguW3peS9nOijnOWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn6aCF55uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICflt6XkvZwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn5YKZ6Ki7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCDlj6rlrrnoqLHmlrzoqK3lrprntZDmnZ/mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfnhKHmlYjnmoTmmYLplpMhIOS4gOaXpeWPquaciTI05bCP5pmC44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfntZDmnZ/mmYLplpPlv4XpoIjlnKjplovlp4vmmYLplpPkuYvlvownOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn5re75Yqg5LiA6KGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAn6LaF5pmCICjlsI/mmYIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ+i2heaZgiAo5q2k5pyIKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAn6LaF5pmCICjnuL3oqIgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ+mkmOS4i+eahOi2heaZguW3peS9nOijnOWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICfkvJHlgYcgKOaXpSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn5bey5o+Q5Lqk55qE5LyR5YGHICjmraTmnIgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICflt7Lmj5DkuqTnmoTkvJHlgYcgKOe4veioiCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn6aSY5LiL55qE5LyR5YGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAn55eF5YGHICjml6UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn5bey5pS+55qE55eF5YGHICjmraTmnIgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ+W3suaUvueahOeXheWBhyAo57i96KiIKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ+S4iuaciCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAn5LiL5pyIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICflubPml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ+W3peS9nOaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICflt6XkvZzmmYLplpPnuL3oqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ+Wwj+aZgiAo5q+P5pyIKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfliY3lvoDml6XmnJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn55So5oi25aCx5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICfmr4/mnIjnuL3oqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfotoXmmYLlt6XkvZzoo5zlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICfkvJHlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ+eXheWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICfmt7vliqDpoIXnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICfliY3lvoDoqK3lrprmpoLms4EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICfmt7vliqDpoIXnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAn57eo6Lyv6aCF55uu6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICfmt7vliqDlt6XkvZwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn6aCF55uu5YiX6KGoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ+W3peS9nOWIl+ihqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ+a3u+WKoOW3peS9nCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICfnt6jovK/lt6XkvZzoqK3lrponOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICfnlKjmiLbliJfooagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfkvJHlgYfml6XmlbgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICflsI/mmYIv5q+P6YCxJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ+mWi+Wni+aZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfntZDmnZ/mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfotoXmmYLlt6XkvZwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ+WJjeS4gOWkqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ+S4i+S4gOWkqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfmnIDlvoznmoTpoIXnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICfmiYDmnInpoIXnm64nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ+WgseWRiic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ+ioree9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAn5paw55So5oi2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ+iri+mBuOWPluiHs+WwkeS4gOWkqSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ+iri+mBuOaTh+e8uuW4reWOn+WboCEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICfnorroqo3mj5LlhaUnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAn5qaC5rOBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhKTsKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgJFNlbGYtPntUaW1lWm9uZX0gPSAkUGFyYW17VGltZVpvbmV9CiAgICAgICAgfHwgJFBhcmFte1VzZXJUaW1lWm9uZX0KICAgICAgICB8fCAkRGF0ZVRpbWVPYmplY3QtPk9UUlNUaW1lWm9uZUdldCgpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFByZVJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgcmV0dXJuIDEgaWYgISRTZWxmLT57QWNjZXNzUm99OwoKICAgIG15ICREYXRlVGltZU9iamVjdEN1cnJlbnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgbXkgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgIE1vbnRoID0+ICRNb250aCwKICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRVc2VyeyAkU2VsZi0+e1VzZXJJRH0gfTsKCiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcmVkaXJlY3QgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheSBhcmUgb3V0IG9mIHJhbmdlCiAgICBpZiAoCiAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c3tFbmZvcmNlSW5zZXJ0fQogICAgICAgICYmICRTZWxmLT57QWN0aW9ufSBuZSAnQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnCiAgICAgICAgJiYgJFNlbGYtPntBY3Rpb259ICF+IC9BZ2VudFRpbWVBY2NvdW50aW5nLwogICAgICAgICkKICAgIHsKCiAgICAgICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQE1vbnRoQXJyYXkgPSAoCiAgICAgICAgJycsICAgICAnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICAgICAnQXByaWwnLCAgICdNYXknLAogICAgICAgICdKdW5lJywgJ0p1bHknLCAgICAnQXVndXN0JywgICAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLAogICAgICAgICdEZWNlbWJlcicsCiAgICApOwogICAgbXkgQFdlZWtkYXlBcnJheSA9ICggJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0JywgJ1N1bicsICk7CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwogICAgbXkgJERhdGVUaW1lT2JqZWN0Q3VycmVudCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNob3cgY29uZmlybWF0aW9uIGRpYWxvZyB0byBkZWxldGUgdGhlIGVudHJ5IG9mIHRoaXMgZGF5CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRGVsZXRlRGlhbG9nJyApICkgewoKICAgICAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCksCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1zCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFN0YXR1cyBZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBEYXRlCiAgICAgICAgaWYgKCAhJFBhcmFte1llYXJ9IHx8ICEkUGFyYW17TW9udGh9IHx8ICEkUGFyYW17RGF5fSApIHsKICAgICAgICAgICAgJFBhcmFte1llYXJ9ICA9ICRZZWFyOwogICAgICAgICAgICAkUGFyYW17TW9udGh9ID0gJE1vbnRoOwogICAgICAgICAgICAkUGFyYW17RGF5fSAgID0gJERheTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRQYXJhbXtZZWFyfSAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtZZWFyfSApOwogICAgICAgICAgICAkUGFyYW17TW9udGh9ID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICAgICAgICAgICRQYXJhbXtEYXl9ICAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtEYXl9ICk7CiAgICAgICAgfQoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBidWlsZCB0aGUgcmV0dXJuZWQgZGF0YSBzdHJ1Y3R1cmUKICAgICAgICBteSAlRGF0YSA9ICgKICAgICAgICAgICAgSFRNTCAgICAgICA9PiAkT3V0cHV0LAogICAgICAgICAgICBEaWFsb2dUeXBlID0+ICdDb25maXJtYXRpb24nLAogICAgICAgICk7CgogICAgICAgICMgcmV0dXJuIEpTT04tU3RyaW5nIGJlY2F1c2Ugb2YgQUpBWC1Nb2RlCiAgICAgICAgbXkgJE91dHB1dEpTT04gPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKAogICAgICAgICAgICBEYXRhID0+IFwlRGF0YSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZGVsZXRlIG9iamVjdCBmcm9tIGRhdGFiYXNlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0RlbGV0ZScgKSB7CiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERheSBNb250aCBZZWFyKSkgewogICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoCiAgICAgICAgICAgICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0RlbGV0ZSgKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgICAgICk7CiAgICB9CgogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBtYXNzIGVudHJ5CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ01hc3NFbnRyeScgKSB7CgogICAgICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlcyBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewogICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIHNwbGl0IHVwIGRhdGVzCiAgICAgICAgbXkgQERhdGVzICAgICAgID0gc3BsaXQgL1t8XS8sICRQYXJhbXtEYXRlc307CiAgICAgICAgbXkgJEluc2VydEVycm9yID0gMDsKCiAgICAgICAgIyBzYXZlIGVudHJpZXMgaW4gdGhlIGRiCiAgICAgICAgZm9yIG15ICREYXRlIChARGF0ZXMpIHsKCiAgICAgICAgICAgIG15ICggJFllYXIsICRNb250aCwgJERheSApID0gc3BsaXQgL1stXS8sICREYXRlOwoKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5ID0+ICRQYXJhbXtMZWF2ZURheX0gfHwgMCwKICAgICAgICAgICAgICAgICAgICBTaWNrICAgICA9PiAkUGFyYW17U2lja30gfHwgMCwKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSA9PiAkUGFyYW17T3ZlcnRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkSW5zZXJ0RXJyb3IgPSAxOwogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgIyByZWRpcmVjdCB0byBlZGl0IHNjcmVlbiB3aXRoIGxvZyBtZXNzYWdlCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O05vdGlmaWNhdGlvbj0nCiAgICAgICAgICAgICAgICAuICggJEluc2VydEVycm9yID8gJ0Vycm9yJyA6ICdTdWNjZXNzZnVsJyApLAogICAgICAgICk7CgogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgdGhlIHRpbWUgYWNjb3VudGluZyBlbGVtZW50cwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBwYXJhbXMKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdGF0dXMgWWVhciBNb250aCBEYXkgTm90aWZpY2F0aW9uKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgIH0KICAgICRQYXJhbXtSZWNvcmRzTnVtYmVyfSAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1JlY29yZHNOdW1iZXInICkgfHwgODsKICAgICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0luc2VydFdvcmtpbmdVbml0cycgKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgIyBDaGVjayBEYXRlCiAgICBpZiAoICEkUGFyYW17WWVhcn0gfHwgISRQYXJhbXtNb250aH0gfHwgISRQYXJhbXtEYXl9ICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ID0gJE1vbnRoOwogICAgICAgICRQYXJhbXtEYXl9ICAgPSAkRGF5OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFBhcmFte1llYXJ9ICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte1llYXJ9ICk7CiAgICAgICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgICAgICRQYXJhbXtEYXl9ICAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtEYXl9ICk7CiAgICB9CgogICAgIyBjaGVjayBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBhIHZhbGlkIGRhdGUKICAgICMgaWYgbm90IHZhbGlkLCBzZXQgdGhlIGRhdGUgdG8gdG9kYXkKICAgIG15ICREYXRlVGltZVZhbGlkID0gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VmFsaWRhdGUoCiAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgSG91ciAgICAgPT4gMCwKICAgICAgICBNaW51dGUgICA9PiAwLAogICAgICAgIFNlY29uZCAgID0+IDAsCiAgICAgICAgVGltZVpvbmUgPT4gJ1VUQycsCiAgICApOwoKICAgIGlmICggISREYXRlVGltZVZhbGlkICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgICAgICAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ICAgICAgID0gJE1vbnRoOwogICAgICAgICRQYXJhbXtEYXl9ICAgICAgICAgPSAkRGF5OwogICAgICAgICRQYXJhbXsnV3JvbmdEYXRlJ30gPSAxOwogICAgfQoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICA9PiAkUGFyYW17RGF5fSwKICAgICk7CgogICAgIyBmb3IgaW5pdGlhbCB1c2UsIHRoZSBmaXJzdCBhZ2VudCB3aXRoIHJ3LXJpZ2h0IHdpbGwgYmUgcmVkaXJlY3RlZAogICAgIyB0byAnU2V0dGluZycsIHNvIGhlIGNhbiBkbyB0aGUgaW5pdGlhbCBzZXR0aW5ncwogICAgaWYgKCAhJFVzZXJ7ICRTZWxmLT57VXNlcklEfSB9ICkgewogICAgICAgIHJldHVybiAkU2VsZi0+X0ZpcnN0VXNlclJlZGlyZWN0KCk7CiAgICB9CgogICAgbXkgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkTWF4QWxsb3dlZEluc2VydERheXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhBbGxvd2VkSW5zZXJ0RGF5cycpIHx8ICcxMCc7CiAgICAoICRQYXJhbXtZZWFyQWxsb3dlZH0sICRQYXJhbXtNb250aEFsbG93ZWR9LCAkUGFyYW17RGF5QWxsb3dlZH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFllYXIsICRNb250aCwgJERheSwgMCwgMCwgLSRNYXhBbGxvd2VkSW5zZXJ0RGF5cyApOwoKICAgIG15ICREYXRlVGltZU9iamVjdEdpdmVuID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIH0KICAgICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0QWxsb3dlZCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJBbGxvd2VkfSwKICAgICAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRoQWxsb3dlZH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXlBbGxvd2VkfSwKICAgICAgICB9CiAgICApOwoKICAgIGlmICggJERhdGVUaW1lT2JqZWN0R2l2ZW4tPkNvbXBhcmUoIERhdGVUaW1lT2JqZWN0ID0+ICREYXRlVGltZU9iamVjdEFsbG93ZWQgKSA8IDAgKSB7CiAgICAgICAgaWYgKCAhJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXsgJFBhcmFte1llYXJ9IH17ICRQYXJhbXtNb250aH0gfXsgJFBhcmFte0RheX0gfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICAgICAiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdWaWV3O1llYXI9JFBhcmFte1llYXJ9O01vbnRoPSRQYXJhbXtNb250aH07RGF5PSRQYXJhbXtEYXl9IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzdG9yZSBsYXN0IHNjcmVlbgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyktPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbicsCiAgICAgICAgVmFsdWUgPT4KICAgICAgICAgICAgIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgKTsKCiAgICAkUGFyYW17TW9udGhfdG9fVGV4dH0gPSAkTW9udGhBcnJheVsgJFBhcmFte01vbnRofSBdOwoKICAgICggJFBhcmFte1llYXJCYWNrfSwgJFBhcmFte01vbnRoQmFja30sICRQYXJhbXtEYXlCYWNrfSApCiAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9LCAwLCAwLCAtMSApOwogICAgKCAkUGFyYW17WWVhck5leHR9LCAkUGFyYW17TW9udGhOZXh0fSwgJFBhcmFte0RheU5leHR9ICkKICAgICAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0sIDAsIDAsIDEgKTsKCiAgICBteSAkUmVkdWNlVGltZVJlZiA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OlJlZHVjZVRpbWUnKTsKCiAgICAjIGhhc2hlcyB0byBzdG9yZSBzZXJ2ZXIgc2lkZSBlcnJvcnMKICAgIG15ICVFcnJvcnMgICAgICAgICAgPSAoKTsKICAgIG15ICVTZXJ2ZXJFcnJvckRhdGEgPSAoKTsKICAgIG15ICRFcnJvckluZGV4ICAgICAgPSAxOwoKICAgIG15ICVEYXRhOwogICAgbXkgJUFjdGlvbkxpc3QgPSAkU2VsZi0+X0FjdGlvbkxpc3QoKTsKCiAgICAjIEVkaXQgV29ya2luZyBVbml0cwogICAgaWYgKCAkUGFyYW17U3RhdHVzfSApIHsKCiAgICAgICAgIyBhcnJheXMgdG8gc2F2ZSBhbGwgc3RhcnQgYW5kIGVuZCB0aW1lcyBmb3Igc29tZSBjaGVja3MKICAgICAgICBteSAoIEBTdGFydFRpbWVzLCBARW5kVGltZXMgKTsKCiAgICAgICAgIyBkZWxldGUgcHJldmlvdXMgZW50cmllcyBmb3IgdGhpcyBkYXkgYW5kIHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0RlbGV0ZSgKICAgICAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBteSAlQ2hlY2tib3hDaGVjayA9ICgpOwogICAgICAgIGZvciBteSAkRWxlbWVudCAocXcoTGVhdmVEYXkgU2ljayBPdmVydGltZSkpIHsKICAgICAgICAgICAgbXkgJFZhbHVlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEVsZW1lbnQgKTsKICAgICAgICAgICAgaWYgKCRWYWx1ZSkgewogICAgICAgICAgICAgICAgJENoZWNrYm94Q2hlY2t7JEVsZW1lbnR9ID0gMTsKICAgICAgICAgICAgICAgICRQYXJhbXskRWxlbWVudH0gICAgICAgICA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUGFyYW17JEVsZW1lbnR9ID0gJyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbW9yZSB0aGFuIG9uZSBjaGVjayBib3ggd2FzIGNoZWNrZWQgaXQgaXMgYSBzZXJ2ZXIgZXJyb3IKICAgICAgICBpZiAoIHNjYWxhciBrZXlzICVDaGVja2JveENoZWNrID4gMSApIHsKICAgICAgICAgICAgZm9yIG15ICRDaGVja2JveCAoIHNvcnQga2V5cyAlQ2hlY2tib3hDaGVjayApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRDaGVja2JveCAuICdJbnZhbGlkJyB9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgaW5zZXJ0IHZhbHVlcyAoaWYgYW55KQogICAgICAgICAgICBpZiAoIHNjYWxhciBrZXlzICVDaGVja2JveENoZWNrID4gMCApIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF5ICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgICAgICAgICAgICAgIExlYXZlRGF5ID0+ICRDaGVja2JveENoZWNre0xlYXZlRGF5fSB8fCAwLAogICAgICAgICAgICAgICAgICAgICAgICBTaWNrICAgICA9PiAkQ2hlY2tib3hDaGVja3tTaWNrfSB8fCAwLAogICAgICAgICAgICAgICAgICAgICAgICBPdmVydGltZSA9PiAkQ2hlY2tib3hDaGVja3tPdmVydGltZX0gfHwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzIScpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCBjaGVjayBpdGVtIG9iamVjdAogICAgICAgIG15ICRDaGVja0l0ZW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtJyk7CgogICAgICAgIElEOgogICAgICAgIGZvciBteSAkSUQgKCAxIC4uICRQYXJhbXtSZWNvcmRzTnVtYmVyfSApIHsKCiAgICAgICAgICAgICMgYXJyYXlzIHRvIHNhdmUgdGhlIHNlcnZlciBlcnJvcnMgYmxvY2sgdG8gc2hvdyB0aGUgZXJyb3IgbWVzc2FnZXMKICAgICAgICAgICAgbXkgKCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCBAUGVyaW9kU2VydmVyRXJyb3JCbG9jayApID0gKCk7CgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoUHJvamVjdElEIEFjdGlvbklEIFJlbWFyayBTdGFydFRpbWUgRW5kVGltZSBQZXJpb2QpKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyIC4gJ1snIC4gJElEIC4gJ10nICk7CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgICAgICAgICBteSAkUGFyYW1SZWYgPSBcJFBhcmFteyRQYXJhbWV0ZXJ9OwoKICAgICAgICAgICAgICAgICAgICAjIGRlbGV0ZSBsZWFkaW5nIGFuZCB0YWlsaW5nIHNwYWNlcwogICAgICAgICAgICAgICAgICAgICRQYXJhbVJlZiA9ICRDaGVja0l0ZW1PYmplY3QtPlN0cmluZ0NsZWFuKAogICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdSZWYgPT4gJFBhcmFtUmVmLAogICAgICAgICAgICAgICAgICAgICAgICBUcmltTGVmdCAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgVHJpbVJpZ2h0ID0+IDEsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgbmV4dCBJRCBpZiAhJFBhcmFte1Byb2plY3RJRH0gJiYgISRQYXJhbXtBY3Rpb25JRH07CgogICAgICAgICAgICAjIGNoZWNrIGZvciBtaXNzaW5nIHZhbHVlcwogICAgICAgICAgICBpZiAoICRQYXJhbXtQcm9qZWN0SUR9ICYmICEkUGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17QWN0aW9uSURJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAhJFBhcmFte1Byb2plY3RJRH0gJiYgJFBhcmFte0FjdGlvbklEfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1Byb2plY3RJREludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjcmVhdGUgYSB2YWxpZCBwZXJpb2QKICAgICAgICAgICAgbXkgJFBlcmlvZCA9ICRQYXJhbXtQZXJpb2R9OwogICAgICAgICAgICBpZiAoICRQZXJpb2QgPX4gL14oXGQrKSwoXGQrKS8gKSB7CiAgICAgICAgICAgICAgICAkUGVyaW9kID0gJDEgLiAiLiIgLiAkMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgI2FsbG93IGZvcm1hdCBoaDptbQogICAgICAgICAgICBlbHNpZiAoICRQYXJhbXtQZXJpb2R9ID1+IC9eKFxkKyk6KFxkKykvICkgewogICAgICAgICAgICAgICAgJFBlcmlvZCA9ICQxICsgJDIgLyA2MDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiBzdGFydCBvciBlbmQgdGltZXMgYXJlIG1pc3NpbmcsIGRlbGV0ZSB0aGUgb3RoZXIgZW50cnkKICAgICAgICAgICAgaWYgKCAhJFBhcmFte1N0YXJ0VGltZX0gfHwgISRQYXJhbXtFbmRUaW1lfSApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtTdGFydFRpbWV9ID0gJyc7CiAgICAgICAgICAgICAgICAkUGFyYW17RW5kVGltZX0gICA9ICcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCAnOjAwJyB0byB0aGUgdGltZSwgaWYgaXQgZG9lc24ndCBoYXZlIGl0IHlldAogICAgICAgICAgICBpZiAoICRQYXJhbXtTdGFydFRpbWV9ICYmICRQYXJhbXtTdGFydFRpbWV9ICF+IC9eKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtTdGFydFRpbWV9IC49ICc6MDAnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJFBhcmFte0VuZFRpbWV9ICYmICRQYXJhbXtFbmRUaW1lfSAhfiAvXihcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17RW5kVGltZX0gLj0gJzowMCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKCAkUGFyYW17U3RhcnRUaW1lfSA9fiAvXihcZCspOihcZCspJC8gKQogICAgICAgICAgICAgICAgJiYgKCAkUGFyYW17RW5kVGltZX0gPX4gL14oXGQrKTooXGQrKSQvICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJFBhcmFte1N0YXJ0VGltZX0gPX4gL14oXGQrKTooXGQrKSQvOwogICAgICAgICAgICAgICAgbXkgJFN0YXJ0VGltZSA9ICQxICogNjAgKyAkMjsKICAgICAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSA9fiAvXihcZCspOihcZCspJC87CiAgICAgICAgICAgICAgICBteSAkRW5kVGltZSA9ICQxICogNjAgKyAkMjsKICAgICAgICAgICAgICAgIGlmICggJFJlZHVjZVRpbWVSZWYtPnsgJEFjdGlvbkxpc3R7ICRQYXJhbXtBY3Rpb25JRH0gfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRQZXJpb2QgPSAoICRFbmRUaW1lIC0gJFN0YXJ0VGltZSApIC8gNjAKICAgICAgICAgICAgICAgICAgICAgICAgKiAkUmVkdWNlVGltZVJlZi0+eyAkQWN0aW9uTGlzdHsgJFBhcmFte0FjdGlvbklEfSB9IH0gLyAxMDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkUGVyaW9kID0gKCAkRW5kVGltZSAtICRTdGFydFRpbWUgKSAvIDYwOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lCiAgICAgICAgICAgICAgICBpZiAoICRFbmRUaW1lIDw9ICRTdGFydFRpbWUgKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVCZWZvcmVTdGFydFRpbWVTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJFN0YXJ0VGltZXNbJElEXSA9ICRTdGFydFRpbWU7CiAgICAgICAgICAgICAgICAkRW5kVGltZXNbJElEXSAgID0gJEVuZFRpbWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXtTdGFydFRpbWV9ICYmICRQYXJhbXtTdGFydFRpbWV9ICF+IC9eKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZUludmFsaWRGb3JtYXRTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXtFbmRUaW1lfSAmJiAkUGFyYW17RW5kVGltZX0gIX4gL14oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBuZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQKICAgICAgICAgICAgaWYgKCAkUGFyYW17U3RhcnRUaW1lfSA9fiAvXi0oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZU5lZ2F0aXZlU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJFBhcmFte0VuZFRpbWV9ID1+IC9eLShcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lTmVnYXRpdmVTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkCiAgICAgICAgICAgIFBPU0lUSU9OOgogICAgICAgICAgICBmb3IgKCBteSAkUG9zaXRpb24gPSAkSUQgLSAxOyAkUG9zaXRpb24gPj0gMTsgJFBvc2l0aW9uLS0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IFBPU0lUSU9OIGlmICFkZWZpbmVkICRTdGFydFRpbWVzWyRQb3NpdGlvbl07CiAgICAgICAgICAgICAgICBuZXh0IFBPU0lUSU9OIGlmICFkZWZpbmVkICRTdGFydFRpbWVzWyRJRF07CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWVzWyRQb3NpdGlvbl0gPiAkU3RhcnRUaW1lc1skSURdCiAgICAgICAgICAgICAgICAgICAgJiYgJFN0YXJ0VGltZXNbJFBvc2l0aW9uXSA8ICRFbmRUaW1lc1skSURdCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15FbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IvfSBARW5kVGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRFbmRUaW1lc1skUG9zaXRpb25dID4gJFN0YXJ0VGltZXNbJElEXQogICAgICAgICAgICAgICAgICAgICYmICRFbmRUaW1lc1skUG9zaXRpb25dIDwgJEVuZFRpbWVzWyRJRF0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkRW5kVGltZXNbJElEXSA+ICRFbmRUaW1lc1skUG9zaXRpb25dICkgewogICAgICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICFncmVwIHsvXlN0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jawogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBARW5kVGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skUG9zaXRpb25dID09ICRTdGFydFRpbWVzWyRJRF0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJEVuZFRpbWVzWyRQb3NpdGlvbl0gPT0gJEVuZFRpbWVzWyRJRF0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBARW5kVGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWVzWyRJRF0gPiAkU3RhcnRUaW1lc1skUG9zaXRpb25dCiAgICAgICAgICAgICAgICAgICAgJiYgJFN0YXJ0VGltZXNbJElEXSA8ICRFbmRUaW1lc1skUG9zaXRpb25dCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXlN0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJEVuZFRpbWVzWyRJRF0gPiAkU3RhcnRUaW1lc1skUG9zaXRpb25dCiAgICAgICAgICAgICAgICAgICAgJiYgJEVuZFRpbWVzWyRJRF0gPCAkRW5kVGltZXNbJFBvc2l0aW9uXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyAnMjQ6MDAnIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lCiAgICAgICAgICAgIGlmICggJFN0YXJ0VGltZXNbJElEXSAmJiAkU3RhcnRUaW1lc1skSURdID09IDE0NDAgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lMjRIb3Vycyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdGltZXMgc3VwZXJpb3IgdG8gMjQ6MDAgYXJlIG5vdCBhbGxvd2VkCiAgICAgICAgICAgIGlmICggJFN0YXJ0VGltZXNbJElEXSAmJiAkU3RhcnRUaW1lc1skSURdID4gMTQ0MCApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVJbnZhbGlkJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRFbmRUaW1lc1skSURdICYmICRFbmRUaW1lc1skSURdID4gMTQ0MCApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVJbnZhbGlkJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgcmVmZXJlbmNlIHRvIHRoZSBzZXJ2ZXIgZXJyb3IgbWVzc2FnZXMgdG8gYmUgc2hvd24KICAgICAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZVNlcnZlckVycm9yQmxvY2t9ID0gXEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZVNlcnZlckVycm9yQmxvY2t9ID0gXEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBvdmVyd3JpdGUgcGVyaW9kIGlmIHRoZXJlIGFyZSBzdGFydCBhbmQgZW5kIHRpbWVzCiAgICAgICAgICAgIGlmICggJFN0YXJ0VGltZXNbJElEXSAmJiAkRW5kVGltZXNbJElEXSApIHsKICAgICAgICAgICAgICAgICRQZXJpb2QgPSAkRW5kVGltZXNbJElEXSAtICRTdGFydFRpbWVzWyRJRF07CgogICAgICAgICAgICAgICAgIyBjb252ZXJ0IHBlcmlvZCBmcm9tIG1pbnV0ZXMgdG8gaG91cnMKICAgICAgICAgICAgICAgICRQZXJpb2QgLz0gNjA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgZm9yIGVycm9ycyBpbiB0aGUgcGVyaW9kCiAgICAgICAgICAgIGlmICggJFBlcmlvZCA9PSAwICkgewogICAgICAgICAgICAgICAgcHVzaCBAUGVyaW9kU2VydmVyRXJyb3JCbG9jaywgJ1plcm9Ib3Vyc1BlcmlvZFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpJbnB1dEhvdXJzV2l0aG91dFN0YXJ0RW5kVGltZScpCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoICRQZXJpb2QgPCAwICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrLCAnTmVnYXRpdmVQZXJpb2RTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkUGVyaW9kID4gMjQgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrLCAnSW52YWxpZEhvdXJzUGVyaW9kU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICRFcnJvcnN7JEVycm9ySW5kZXh9ICYmICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZEludmFsaWR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kU2VydmVyRXJyb3JCbG9ja30gPSBcQFBlcmlvZFNlcnZlckVycm9yQmxvY2s7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaWYgdGhlcmUgd2FzIGFuIGVycm9yIG9uIHRoaXMgcm93LCBzYXZlIGFsbCBkYXRhIGluIHRoZSBzZXJ2ZXIgZXJyb3IgaGFzaAogICAgICAgICAgICBpZiAoIGRlZmluZWQgJEVycm9yc3skRXJyb3JJbmRleH0gKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoUHJvamVjdElEIEFjdGlvbklEIFJlbWFyayBTdGFydFRpbWUgRW5kVGltZSkpIHsKICAgICAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXskUGFyYW1ldGVyfSA9ICRQYXJhbXskUGFyYW1ldGVyfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1BlcmlvZH0gPSAkUGVyaW9kOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG90aGVyd2lzZSwgc2F2ZSByb3cgb24gdGhlIERCCiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICMgaW5pdGlhbGl6ZSB0aGUgYXJyYXkgb2Ygd29ya2luZyB1bml0cwogICAgICAgICAgICAgICAgQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9ID0gKCk7CgogICAgICAgICAgICAgICAgIyByZXBsYWNlIDI0OjAwIGZvciAyMzo1OTo1OSB0byBiZSBhIHZhbGlkIGVudHJ5IGluIHRoZSBEQgogICAgICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9ID0gJFBhcmFte0VuZFRpbWV9IGVxICcyNDowMCcgPyAnMjM6NTk6NTknIDogJFBhcmFte0VuZFRpbWV9OwoKICAgICAgICAgICAgICAgIG15ICVXb3JraW5nVW5pdCA9ICgKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFBhcmFte1Byb2plY3RJRH0sCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRQYXJhbXtBY3Rpb25JRH0sCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICRQYXJhbXtSZW1hcmt9LAogICAgICAgICAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAkUGFyYW17U3RhcnRUaW1lfSwKICAgICAgICAgICAgICAgICAgICBFbmRUaW1lICAgPT4gJFBhcmFte0VuZFRpbWV9LAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAkUGVyaW9kLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHB1c2ggQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9LCBcJVdvcmtpbmdVbml0OwoKICAgICAgICAgICAgICAgICREYXRhe1llYXJ9ICAgPSAkUGFyYW17WWVhcn07CiAgICAgICAgICAgICAgICAkRGF0YXtNb250aH0gID0gJFBhcmFte01vbnRofTsKICAgICAgICAgICAgICAgICREYXRhe0RheX0gICAgPSAkUGFyYW17RGF5fTsKICAgICAgICAgICAgICAgICREYXRhe1VzZXJJRH0gPSAkU2VsZi0+e1VzZXJJRH07CgogICAgICAgICAgICAgICAgaWYgKCAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoJURhdGEpICkgewoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJyksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaW5jcmVtZW50IHRoZSBlcnJvciBpbmRleCBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igb24gdGhpcyByb3cKICAgICAgICAgICAgJEVycm9ySW5kZXgrKyBpZiAoIGRlZmluZWQgJEVycm9yc3skRXJyb3JJbmRleH0gKTsKICAgICAgICB9CgogICAgICAgIGlmICglU2VydmVyRXJyb3JEYXRhKSB7CiAgICAgICAgICAgICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSA9IHVuZGVmOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNob3cgV29ya2luZyBVbml0cwogICAgIyBnZXQgZXhpc3Rpbmcgd29ya2luZyB1bml0cwogICAgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBudW1iZXIgb2Ygd29ya2luZyB1bml0cyAoPXJlY29yZHMpCiAgICAjICAgIGlmIGJpZ2dlciB0aGFuIFJlY29yZHNOdW1iZXIsIG1vcmUgdGhhbiB0aGUgbnVtYmVyIG9mIGRlZmF1bHQgcmVjb3JkcyB3ZXJlIHNhdmVkIGZvcgogICAgIyAgICB0aGlzIGRhdGUKICAgIGlmICggJERhdGF7V29ya2luZ1VuaXRzfSApIHsKICAgICAgICBteSAkV29ya2luZ1VuaXRzQ291bnQgPSBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH07CiAgICAgICAgaWYgKCAkV29ya2luZ1VuaXRzQ291bnQgPiAkUGFyYW17UmVjb3Jkc051bWJlcn0gKSB7CiAgICAgICAgICAgICRQYXJhbXtSZWNvcmRzTnVtYmVyfSA9ICRXb3JraW5nVW5pdHNDb3VudDsKICAgICAgICB9CiAgICB9CgogICAgbXkgJUZyb250ZW5kOwoKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6SW5wdXRIb3Vyc1dpdGhvdXRTdGFydEVuZFRpbWUnKSApIHsKICAgICAgICAkUGFyYW17UGVyaW9kQmxvY2t9ICAgPSAnVW5pdElucHV0UGVyaW9kJzsKICAgICAgICAkRnJvbnRlbmR7UGVyaW9kTm90ZX0gPSAnKic7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkUGFyYW17UGVyaW9kQmxvY2t9ICAgPSAnVW5pdFBlcmlvZFdpdGhvdXRJbnB1dCc7CiAgICAgICAgJEZyb250ZW5ke1BlcmlvZE5vdGV9ID0gJyc7CiAgICB9CgogICAgaWYgKCAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Db21wYXJlKCBEYXRlVGltZU9iamVjdCA9PiAkRGF0ZVRpbWVPYmplY3RHaXZlbiApICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVbml0QmxvY2snLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHNpY2ssIGxlYXZlIGRheSBhbmQgb3ZlcnRpbWUKICAgICRQYXJhbXtTaWNrfSAgICAgPSAkRGF0YXtTaWNrfSAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJyc7CiAgICAkUGFyYW17TGVhdmVEYXl9ID0gJERhdGF7TGVhdmVEYXl9ID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnOwogICAgJFBhcmFte092ZXJ0aW1lfSA9ICREYXRhe092ZXJ0aW1lfSA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsKCiAgICAkUGFyYW17VG90YWx9ID0gJERhdGF7VG90YWx9OwoKICAgICMgc2V0IGFjdGlvbiBsaXN0IGFuZCByZWxhdGVkIGNvbnN0cmFpbnRzCiAgICAjIGdlbmVyYXRlIGEgSmF2YVNjcmlwdCBBcnJheSB3aGljaCB3aWxsIGJlIG91dHB1dCB0byB0aGUgdGVtcGxhdGUKICAgIG15IEBBY3Rpb25JRHMgPSBzb3J0IHsgJEFjdGlvbkxpc3R7JGF9IGNtcCAkQWN0aW9uTGlzdHskYn0gfSBrZXlzICVBY3Rpb25MaXN0OwogICAgbXkgQEpTQWN0aW9uczsKICAgIGZvciBteSAkQWN0aW9uSUQgKEBBY3Rpb25JRHMpIHsKICAgICAgICBwdXNoIEBKU0FjdGlvbnMsIFsKICAgICAgICAgICAgJEFjdGlvbklELAogICAgICAgICAgICAkQWN0aW9uTGlzdHskQWN0aW9uSUR9CiAgICAgICAgXTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ0FjdGlvbkxpc3QnLAogICAgICAgIFZhbHVlID0+IFxASlNBY3Rpb25zCiAgICApOwoKICAgIG15ICRBY3Rpb25MaXN0Q29uc3RyYWludHMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpBY3Rpb25MaXN0Q29uc3RyYWludHMnKTsKICAgIG15IEBKU0FjdGlvbkxpc3RDb25zdHJhaW50czsKICAgIGZvciBteSAkUHJvamVjdE5hbWVSZWdFeHAgKCBzb3J0IGtleXMgJXskQWN0aW9uTGlzdENvbnN0cmFpbnRzfSApIHsKICAgICAgICBteSAkQWN0aW9uTmFtZVJlZ0V4cCA9ICRBY3Rpb25MaXN0Q29uc3RyYWludHMtPnskUHJvamVjdE5hbWVSZWdFeHB9OwogICAgICAgIHN7KFsnIlxcXSl9e1xcJDF9c214ZyBmb3IgKCAkUHJvamVjdE5hbWVSZWdFeHAsICRBY3Rpb25OYW1lUmVnRXhwICk7CiAgICAgICAgcHVzaCBASlNBY3Rpb25MaXN0Q29uc3RyYWludHMsIFsKICAgICAgICAgICAgJFByb2plY3ROYW1lUmVnRXhwLAogICAgICAgICAgICAkQWN0aW9uTmFtZVJlZ0V4cAogICAgICAgIF07CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdBY3Rpb25MaXN0Q29uc3RyYWludHMnLAogICAgICAgIFZhbHVlID0+IFxASlNBY3Rpb25MaXN0Q29uc3RyYWludHMKICAgICk7CgogICAgIyBidWlsZCBhIHdvcmtpbmcgdW5pdCBhcnJheQogICAgbXkgQFVuaXRzID0gKHVuZGVmKTsKICAgIGlmICggJERhdGF7V29ya2luZ1VuaXRzfSApIHsKICAgICAgICBwdXNoIEBVbml0cywgQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9OwogICAgfQoKICAgICRFcnJvckluZGV4ID0gMDsKCiAgICAjIGJ1aWxkIHVuaXRzCiAgICBmb3IgbXkgJElEICggMSAuLiAkUGFyYW17UmVjb3Jkc051bWJlcn0gKSB7CiAgICAgICAgJFBhcmFte0lEfSA9ICRJRDsKICAgICAgICBteSAkVW5pdFJlZiAgID0gJFVuaXRzWyRJRF07CiAgICAgICAgbXkgJFNob3dFcnJvciA9IDA7CgogICAgICAgIGlmICggISRVbml0UmVmICkgewogICAgICAgICAgICAkRXJyb3JJbmRleCsrOwogICAgICAgICAgICAkU2hvd0Vycm9yID0gMTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGRhdGEgb2YgcHJvamVjdHMKICAgICAgICBteSAkUHJvamVjdExpc3QgPSAkU2VsZi0+X1Byb2plY3RMaXN0KAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICAgICAgfHwgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UHJvamVjdElEfQogICAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1Byb2plY3RJRH0gPSAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgfHwgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UHJvamVjdElEfQogICAgICAgICAgICB8fCAnJzsKICAgICAgICAkUGFyYW17UHJvamVjdE5hbWV9ID0gJyc7CgogICAgICAgICMgc2V0IGNvbW1vbiBwYXJhbXMgZm9yIHByb2plY3Qgc2VsZWN0aW9uCiAgICAgICAgbXkgJVByb2plY3RPcHRpb25QYXJhbXMgPSAoCiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICJQcm9qZWN0SURbJElEXSIsCiAgICAgICAgICAgIElEICAgICAgICAgID0+ICJQcm9qZWN0SUQkSUQiLAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICAgICBDbGFzcyAgICAgICA9PiAnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUHJvamVjdCBQcm9qZWN0U2VsZWN0aW9uICcKICAgICAgICAgICAgICAgIC4gKCAkRXJyb3JzeyRFcnJvckluZGV4fXtQcm9qZWN0SURJbnZhbGlkfSB8fCAnJyApLAogICAgICAgICAgICBPbkNoYW5nZSA9PiAiVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLkZpbGxBY3Rpb25MaXN0KCRJRCk7IiwKICAgICAgICAgICAgVGl0bGUgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJQcm9qZWN0IiksCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEVuYWJsZUF1dG9Db21wbGV0aW9uID0gJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24iKSB8fCAwOwogICAgICAgIG15ICRDbGFzcyAgICAgICAgICAgICAgICA9ICRFbmFibGVBdXRvQ29tcGxldGlvbiA/ICcgTW9kZXJuaXplJyA6ICcnOwoKICAgICAgICAjIHNldCBwYXJhbXMgZm9yIG1vZGVybiBpbnB1dHMKICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tDbGFzc30gLj0gJENsYXNzOwoKICAgICAgICBpZiAoICRFbmFibGVBdXRvQ29tcGxldGlvbiAmJiAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIiKSApIHsKCiAgICAgICAgICAgICMgYWRkIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzCiAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0RhdGF9ICAgID0gJFByb2plY3RMaXN0LT57QWxsUHJvamVjdHN9OwogICAgICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tGaWx0ZXJzfSA9IHsKICAgICAgICAgICAgICAgIExhc3RQcm9qZWN0cyA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTGFzdCBQcm9qZWN0cycpLAogICAgICAgICAgICAgICAgICAgIFZhbHVlcyA9PiAkUHJvamVjdExpc3QtPntMYXN0UHJvamVjdHN9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICMgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cywgZXhwYW5kIGZpbHRlciBkaWFsb2cKICAgICAgICAgICAgaWYgKCBzY2FsYXIgQHsgJFByb2plY3RMaXN0LT57TGFzdFByb2plY3RzfSB9ID4gMSApIHsKICAgICAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0V4cGFuZEZpbHRlcnN9ID0gMTsKCiAgICAgICAgICAgICAgICAjIG1ha2UgdGhlIGZpbHRlciBhY3RpdmUgYnkgZGVmYXVsdCBpZiAnQWN0aXZlRmlsdGVyJyBpcyBlbmFibGVkCiAgICAgICAgICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OkFjdGl2ZUZpbHRlciIpICkgewogICAgICAgICAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0ZpbHRlcnN9LT57TGFzdFByb2plY3RzfS0+e0FjdGl2ZX0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAjIHNldCBwYXJhbXMgZm9yIHRyYWRpdGlvbmFsIHNlbGVjdHMgKGFuZCBtb2Rlcm4gaW5wdXQgZmllbGRzIGlmIGZpbHRlciBpcyBub3QgdXNlZCkKICAgICAgICAgICAgbXkgQFByb2plY3RzID0gKCBAeyAkUHJvamVjdExpc3QtPntMYXN0UHJvamVjdHN9IH0sIEB7ICRQcm9qZWN0TGlzdC0+e0FsbFByb2plY3RzfSB9ICk7CiAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0RhdGF9ID0gXEBQcm9qZWN0czsKICAgICAgICB9CgogICAgICAgICMgYnVpbGQgcHJvamVjdHMgc2VsZWN0CiAgICAgICAgJEZyb250ZW5ke1Byb2plY3RPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICVQcm9qZWN0T3B0aW9uUGFyYW1zLAogICAgICAgICk7CgogICAgICAgICMgYWN0aW9uIGxpc3QgaW5pdGlhbGx5IG9ubHkgY29udGFpbnMgZW1wdHkgYW5kIHNlbGVjdGVkIGVsZW1lbnQgYXMgd2VsbCBhcyBlbGVtZW50cwogICAgICAgICMgY29uZmlndXJlZCBmb3Igc2VsZWN0ZWQgcHJvamVjdAogICAgICAgICMgaWYgbm8gY29uc3RyYWludHMgYXJlIGNvbmZpZ3VyZWQsIGFsbCBhY3Rpb25zIHdpbGwgYmUgZGlzcGxheWVkCiAgICAgICAgbXkgJEFjdGlvbkRhdGEgPSAkU2VsZi0+X0FjdGlvbkxpc3RDb25zdHJhaW50cygKICAgICAgICAgICAgUHJvamVjdElEICAgICAgICAgICAgID0+ICRVbml0UmVmLT57UHJvamVjdElEfSB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fS0+e1Byb2plY3RJRH0sCiAgICAgICAgICAgIFByb2plY3RMaXN0ICAgICAgICAgICA9PiAkUHJvamVjdExpc3QsCiAgICAgICAgICAgIEFjdGlvbkxpc3QgICAgICAgICAgICA9PiBcJUFjdGlvbkxpc3QsCiAgICAgICAgICAgIEFjdGlvbkxpc3RDb25zdHJhaW50cyA9PiAkQWN0aW9uTGlzdENvbnN0cmFpbnRzLAogICAgICAgICk7CiAgICAgICAgJEFjdGlvbkRhdGEtPnsnJ30gPSAnLSc7CgogICAgICAgIGlmICggJFVuaXRSZWYgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0gJiYgJEFjdGlvbkxpc3R7ICRVbml0UmVmLT57QWN0aW9uSUR9IH0gKSB7CiAgICAgICAgICAgICRBY3Rpb25EYXRhLT57ICRVbml0UmVmLT57QWN0aW9uSUR9IH0gPSAkQWN0aW9uTGlzdHsgJFVuaXRSZWYtPntBY3Rpb25JRH0gfTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fQogICAgICAgICAgICAmJiAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJEFjdGlvbkxpc3R7ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e0FjdGlvbklEfSB9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRBY3Rpb25EYXRhLT57ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e0FjdGlvbklEfSB9CiAgICAgICAgICAgICAgICA9ICRBY3Rpb25MaXN0eyAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0gfTsKICAgICAgICB9CgogICAgICAgICRGcm9udGVuZHtBY3Rpb25PcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCgogICAgICAgICAgICBEYXRhICAgICAgICA9PiAkQWN0aW9uRGF0YSwKICAgICAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFVuaXRSZWYtPntBY3Rpb25JRH0gfHwgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17QWN0aW9uSUR9IHx8ICcnLAogICAgICAgICAgICBOYW1lICAgICAgICA9PiAiQWN0aW9uSURbJElEXSIsCiAgICAgICAgICAgIElEICAgICAgICAgID0+ICJBY3Rpb25JRCRJRCIsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdWYWxpZGF0ZV9EZXBlbmRpbmdSZXF1aXJlZEFORCBWYWxpZGF0ZV9EZXBlbmRpbmdfUHJvamVjdElEJwogICAgICAgICAgICAgICAgLiAkSUQKICAgICAgICAgICAgICAgIC4gJyBBY3Rpb25TZWxlY3Rpb24gJwogICAgICAgICAgICAgICAgLiAoICRFcnJvcnN7JEVycm9ySW5kZXh9e0FjdGlvbklESW52YWxpZH0gfHwgJycgKQogICAgICAgICAgICAgICAgLiAkQ2xhc3MsCiAgICAgICAgICAgIFRpdGxlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiVGFzayIpLAogICAgICAgICk7CgogICAgICAgICRQYXJhbXtSZW1hcmt9ID0gJFVuaXRSZWYtPntSZW1hcmt9IHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1JlbWFya30gfHwgJyc7CgogICAgICAgIG15ICRQZXJpb2Q7CiAgICAgICAgaWYgKAogICAgICAgICAgICAoICRVbml0UmVmLT57UGVyaW9kfSAmJiAkVW5pdFJlZi0+e1BlcmlvZH0gPT0gMCApCiAgICAgICAgICAgIHx8ICgKICAgICAgICAgICAgICAgIGRlZmluZWQgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UGVyaW9kfQogICAgICAgICAgICAgICAgJiYgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UGVyaW9kfSA9PSAwCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBlcmlvZCA9IDA7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkUGVyaW9kID0gJFVuaXRSZWYtPntQZXJpb2R9IHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1BlcmlvZH0gfHwgJyc7CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJFRpbWVQZXJpb2QgKHF3KFN0YXJ0VGltZSBFbmRUaW1lKSkgewogICAgICAgICAgICBpZiAoJFNob3dFcnJvcikgewogICAgICAgICAgICAgICAgJFBhcmFteyRUaW1lUGVyaW9kfSA9ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9eyRUaW1lUGVyaW9kfSAvLyAnJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRQYXJhbXskVGltZVBlcmlvZH0gPSAkVW5pdFJlZi0+eyRUaW1lUGVyaW9kfSAvLyAnJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGVyaW9kCiAgICAgICAgICAgICYmICRQYXJhbXtTdGFydFRpbWV9IGVxICcwMDowMCcKICAgICAgICAgICAgJiYgJFBhcmFte0VuZFRpbWV9IGVxICcwMDowMCcKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFte1N0YXJ0VGltZX0gPSAnJzsKICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9ICAgPSAnJzsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVbml0JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgICAgICAgICAleyAkRXJyb3JzeyRFcnJvckluZGV4fSB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgYWRkIHByb3BlciBzZXJ2ZXIgZXJyb3IgbWVzc2FnZSBmb3IgdGhlIHN0YXJ0IGFuZCBlbmQgdGltZXMKICAgICAgICBteSAkU2VydmVyRXJyb3JCbG9ja05hbWU7CiAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSApIHsKICAgICAgICAgICAgaWYgKCBzY2FsYXIgQHsgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lU2VydmVyRXJyb3JCbG9ja30gfSA+IDAgKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZVNlcnZlckVycm9yQmxvY2t9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlcnZlckVycm9yQmxvY2tOYW1lID0gc2hpZnQgQHsgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lU2VydmVyRXJyb3JCbG9ja30gfTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAkU2VydmVyRXJyb3JCbG9ja05hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N0YXJ0VGltZUdlbmVyaWNTZXJ2ZXJFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gKSB7CiAgICAgICAgICAgIGlmICggc2NhbGFyIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9ID4gMCApIHsKICAgICAgICAgICAgICAgIHdoaWxlICggQHsgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZVNlcnZlckVycm9yQmxvY2t9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlcnZlckVycm9yQmxvY2tOYW1lID0gc2hpZnQgQHsgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZVNlcnZlckVycm9yQmxvY2t9IH07CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlcnZlckVycm9yQmxvY2tOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0VuZFRpbWVHZW5lcmljU2VydmVyRXJyb3InLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkUGFyYW17UGVyaW9kQmxvY2t9LAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFBlcmlvZCA9PiAkUGVyaW9kLAogICAgICAgICAgICAgICAgSUQgICAgID0+ICRJRCwKICAgICAgICAgICAgICAgICV7ICRFcnJvcnN7JEVycm9ySW5kZXh9IH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgcHJvcGVyIHNlcnZlciBlcnJvciBtZXNzYWdlIGZvciB0aGUgcGVyaW9kCiAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RJbnZhbGlkfSApIHsKICAgICAgICAgICAgaWYgKCBzY2FsYXIgQHsgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kU2VydmVyRXJyb3JCbG9ja30gfSA+IDAgKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZFNlcnZlckVycm9yQmxvY2t9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlcnZlckVycm9yQmxvY2tOYW1lID0gc2hpZnQgQHsgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kU2VydmVyRXJyb3JCbG9ja30gfTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAkU2VydmVyRXJyb3JCbG9ja05hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZEdlbmVyaWNTZXJ2ZXJFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUGVyaW9kR2VuZXJpY1NlcnZlckVycm9yJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHZhbGlkaXR5IGNoZWNrCiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGFyYW17SW5zZXJ0V29ya2luZ1VuaXRzfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJFBhcmFte1NpY2t9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtCbG9ja05hbWV9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoJ0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAkUGFyYW17SW5zZXJ0V29ya2luZ1VuaXRzfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJFBhcmFte0xlYXZlRGF5fQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0KICAgICAgICAgICAgICAgIC0+VHJhbnNsYXRlKCdBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPycpOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9CiAgICAgICAgICAgICYmICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e0FjdGlvbklEfQogICAgICAgICAgICAmJiAkUGFyYW17T3ZlcnRpbWV9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtCbG9ja05hbWV9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoJ0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/Jyk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+Q29tcGFyZSggRGF0ZVRpbWVPYmplY3QgPT4gJERhdGVUaW1lT2JqZWN0R2l2ZW4gKSApIHsKICAgICAgICAkUGFyYW17VG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAoICRQYXJhbXtUb3RhbH0gfHwgMCApICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHZhbGlkaXR5IGNoZWNrcyBzdGFydAogICAgbXkgJEVycm9yTm90ZTsKICAgIGlmICggJFBhcmFte1RvdGFsfSAmJiAkUGFyYW17VG90YWx9ID4gMjQgKSB7CiAgICAgICAgJEVycm9yTm90ZSA9IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJyk7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9ICYmICRQYXJhbXtUb3RhbH0gJiYgJFBhcmFte1RvdGFsfSA+IDE2ICkgewogICAgICAgICRQYXJhbXtCbG9ja05hbWV9CiAgICAgICAgICAgID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nKTsKICAgIH0KICAgIGlmICgkRXJyb3JOb3RlKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJFBhcmFte0Jsb2NrTmFtZX0gJiYgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0Jsb2NrTmFtZScsCiAgICAgICAgICAgIFZhbHVlID0+ICRQYXJhbXtCbG9ja05hbWV9LAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte0RhdGV9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBWYWxpZGF0ZSA9PiAxLAogICAgICAgIFByZWZpeCAgID0+ICcnLAogICAgICAgIEZvcm1hdCAgID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgKTsKCiAgICBpZiAoICREYXRlVGltZU9iamVjdEdpdmVuLT5Db21wYXJlKCBEYXRlVGltZU9iamVjdCA9PiAkRGF0ZVRpbWVPYmplY3RBbGxvd2VkICkgPCAwICkgewogICAgICAgIGlmICgKICAgICAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXsgJFBhcmFte1llYXJ9IH17ICRQYXJhbXtNb250aH0gfXsgJFBhcmFte0RheX0gfQogICAgICAgICAgICAmJiAhJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVhZG9ubHknLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlKAogICAgICAgICAgICAgICAgICAgICAgICAnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0JwogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMKICAgIG15ICVJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0OwogICAgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBmb3IgbXkgJFllYXJJRCAoIHNvcnQga2V5cyAleyAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9IH0gKSB7CiAgICAgICAgZm9yIG15ICRNb250aElEICggc29ydCBrZXlzICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gfSApIHsKICAgICAgICAgICAgZm9yIG15ICREYXlJRCAoCiAgICAgICAgICAgICAgICBzb3J0IGtleXMgJXsgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXskWWVhcklEfXskTW9udGhJRH0gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdHsiJFllYXJJRC0kTW9udGhJRC0kRGF5SUQifSA9ICIkWWVhcklELSRNb250aElELSREYXlJRCI7CiAgICAgICAgICAgICAgICAkUGFyYW17SW5jb21wbGV0ZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBTaG93IHRleHQsIGlmIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFyZSBhdmFpbGFibGUKICAgIGlmICggJFBhcmFte0luY29tcGxldGV9ICkgewoKICAgICAgICAjIGlmIG1hc3MgZW50cnkgb3B0aW9uIGlzIGVuYWJsZWQsIHNob3cgbGlzdCBvZiB3b3JraW5nIGRheXMKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlciIpICkgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnknLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRXb3JraW5nRGF5cyAoIHNvcnQga2V5cyAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCApIHsKCiAgICAgICAgICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAvLS8sICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyRXb3JraW5nRGF5c30gKTsKICAgICAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdFdvcmtpbmdEYXkgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXknLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBEYXRlICAgID0+ICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyRXb3JraW5nRGF5c30sCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGVIUiAgPT4gJERhdGVUaW1lT2JqZWN0V29ya2luZ0RheS0+VG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgV2Vla2RheSA9PiAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2Vla1RvTmFtZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciA9PiAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2VlayggJFllYXIsICRNb250aCwgJERheSApCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlIHNob3cgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgYXMgYSBkcm9wLWRvd24KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgY3VycmVudCBkYXkgaXMgaW5jb21wbGV0ZQogICAgICAgICAgICAjIGlmIHllcywgc2VsZWN0IHRoZSBjdXJyZW50IGRheSBpbiB0aGUgZHJvcC1kb3duCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIHNlbGVjdCB0aGUgZW1wdHkgZWxlbWVudAogICAgICAgICAgICBteSAkU2VsZWN0ZWRJRDsKCiAgICAgICAgICAgIGlmICggJEluY29tcGxldGVXb3JraW5nRGF5c0xpc3R7IiRQYXJhbXtZZWFyfS0kUGFyYW17TW9udGh9LSRQYXJhbXtEYXl9In0gKSB7CiAgICAgICAgICAgICAgICAkU2VsZWN0ZWRJRCA9ICIkUGFyYW17WWVhcn0tJFBhcmFte01vbnRofS0kUGFyYW17RGF5fSI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRJbmNvbXBsZVdvcmtpbmdEYXlzU2VsZWN0ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0LAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRTZWxlY3RlZElELAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICJJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0IiwKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgVGl0bGUgPT4KICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIkluY29tcGxldGUgV29ya2luZyBEYXlzIiksCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnSW5jb21wbGV0ZVdvcmtpbmdEYXlzJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEluY29tcGxldGVXb3JraW5nRGF5c1NlbGVjdCA9PiAkSW5jb21wbGVXb3JraW5nRGF5c1NlbGVjdCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBteSAkVmFjYXRpb25DaGVjayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VmFjYXRpb25DaGVjaygKICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBDYWxlbmRhciA9PiAkVXNlckRhdGF7Q2FsZW5kYXJ9LAogICAgKTsKCiAgICAkUGFyYW17V2Vla2RheX0KICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpLT5EYXlPZldlZWsoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gKTsKCiAgICAjIGdldCB3b3JraW5nIGRheXMgb2YgdGhlIHVzZXIncyBjYWxlbmRhcgogICAgbXkgJENhbGVuZGFyTmFtZSA9ICdUaW1lV29ya2luZ0hvdXJzJzsKICAgICRDYWxlbmRhck5hbWUgLj0gJFVzZXJEYXRhe0NhbGVuZGFyfSA/ICI6OkNhbGVuZGFyJFVzZXJEYXRhe0NhbGVuZGFyfSIgOiAnJzsKICAgIG15ICRDYWxlbmRhcldvcmtpbmdIb3VycyA9ICRDb25maWdPYmplY3QtPkdldCgkQ2FsZW5kYXJOYW1lKTsKCiAgICAjIHNob3cgIm90aGVyIHRpbWVzIiBibG9jaywgaWYgbmVjZXNzYXJ5CiAgICBpZiAoCiAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkQ2FsZW5kYXJXb3JraW5nSG91cnMtPnsgJFdlZWtkYXlBcnJheVsgJFBhcmFte1dlZWtkYXl9IC0gMSBdIH0gKQogICAgICAgICYmICEkVmFjYXRpb25DaGVjawogICAgICAgICkKICAgIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3RoZXJUaW1lcycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJUZyb250ZW5kLAogICAgICAgICAgICAgICAgJUVycm9ycywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICRQYXJhbXtXZWVrZGF5X3RvX1RleHR9ID0gJFdlZWtkYXlBcnJheVsgJFBhcmFte1dlZWtkYXl9IC0gMSBdOwoKICAgICMgaW50ZWdyYXRlIHRoZSBoYW5kbGluZyBmb3IgcmVxdWlyZWQgcmVtYXJrcyBpbiByZWxhdGlvbiB0byBwcm9qZWN0cwogICAgJFBhcmFte1JlbWFya1JlZ0V4cH0gPSAkU2VsZi0+X1Byb2plY3QyUmVtYXJrUmVnRXhwKCk7CiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ1JlbWFya1JlZ0V4cCcsCiAgICAgICAgVmFsdWUgPT4gJFBhcmFte1JlbWFya1JlZ0V4cH0sCiAgICApOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICdFZGl0JywKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1Byb2plY3QnLAogICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgKTsKCiAgICBpZiAoICEkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0VuZm9yY2VJbnNlcnR9ICkgewoKICAgICAgICAjIHNob3cgY3JlYXRlIHByb2plY3QgbGluaywgaWYgYWxsb3dlZAogICAgICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NyZWF0ZVByb2plY3QnLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoJEVycm9yTm90ZSkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvICAgICA9PiAkRXJyb3JOb3RlLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoIGRlZmluZWQgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ICkKICAgIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1N1Y2Nlc3NmdWwgaW5zZXJ0IScpLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IG1hc3MgZW50cnkgbm90aWZpY2F0aW9uCiAgICBpZiAoICRQYXJhbXtOb3RpZmljYXRpb259IGVxICdFcnJvcicgKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gICAgID0+IFRyYW5zbGF0YWJsZSgnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzIScpLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtOb3RpZmljYXRpb259IGVxICdTdWNjZXNzZnVsJyApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzIScpLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IG5vdGlmaWNhdGlvbiBpZiB3cm9uZyBkYXRlIHdhcyBzZWxlY3RlZAogICAgaWYgKCAkUGFyYW17V3JvbmdEYXRlfSApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyAgICAgPT4gVHJhbnNsYXRhYmxlKCdFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJyksCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgKTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ1llYXInLAogICAgICAgIFZhbHVlID0+ICRQYXJhbXtZZWFyfSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ01vbnRoJywKICAgICAgICBWYWx1ZSA9PiAkUGFyYW17TW9udGh9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnRGF5JywKICAgICAgICBWYWx1ZSA9PiAkUGFyYW17RGF5fSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cgp9CgpzdWIgX0ZpcnN0VXNlclJlZGlyZWN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBGb3IgaW5pdGlhbCB1c2FnZSwgdGhlIGZpcnN0IGFnZW50IHdpdGggJ3J3JyByaWdodHMgd2lsbCBiZSByZWRpcmVjdGVkIHRvICdTZXR0aW5nJy4gVGhlbiB0aGV5IGNhbiBjb25maWd1cmUKICAgICMgICBpbml0aWFsIHNldHRpbmdzIGZvciB0aGUgdGltZSBhY2NvdW50aW5nIGZlYXR1cmUuCgogICAgIyBEZWZpbmUgYWN0aW9uIGFuZCBnZXQgaXRzIGZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24uCiAgICBteSAkQWN0aW9uID0gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJzsKICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259OwoKICAgICMgR2V0IGdyb3VwIG5hbWVzIGZyb20gY29uZmlnLgogICAgbXkgQEdyb3VwTmFtZXMgPSBAeyAkQ29uZmlnLT57R3JvdXB9IHx8IFtdIH07CgogICAgbXkgJFBlcm1pc3Npb24gPSAwOwoKICAgICMgSWYgYWNjZXNzIGlzIHJlc3RyaWN0ZWQsIGFsbG93IGFjY2VzcyBvbmx5IGlmIHVzZXIgaGFzIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIGluIGNvbmZpZ3VyZWQgZ3JvdXAocykuCiAgICBpZiAoQEdyb3VwTmFtZXMpIHsKCiAgICAgICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgICAgICMgR2V0IHVzZXIgZ3JvdXBzLCB3aGVyZSB0aGUgdXNlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zLgogICAgICAgIG15ICVHcm91cHMgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgVHlwZSAgID0+ICdydycsCiAgICAgICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICAgICAgKTsKCiAgICAgICAgR1JPVVA6CiAgICAgICAgZm9yIG15ICRHcm91cE5hbWUgKEBHcm91cE5hbWVzKSB7CiAgICAgICAgICAgIG5leHQgR1JPVVAgaWYgISRHcm91cE5hbWU7CgogICAgICAgICAgICAjIEdldCB0aGUgZ3JvdXAgSUQuCiAgICAgICAgICAgIG15ICRHcm91cElEID0gJEdyb3VwT2JqZWN0LT5Hcm91cExvb2t1cCgKICAgICAgICAgICAgICAgIEdyb3VwID0+ICRHcm91cE5hbWUsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgR1JPVVAgaWYgISRHcm91cElEOwoKICAgICAgICAgICAgIyBTdG9wIGNoZWNraW5nIGlmIG1lbWJlcnNoaXAgaW4gYXQgbGVhc3Qgb25lIGdyb3VwIGlzIGZvdW5kLgogICAgICAgICAgICBpZiAoICRHcm91cHN7JEdyb3VwSUR9ICkgewogICAgICAgICAgICAgICAgJFBlcm1pc3Npb24gPSAxOwogICAgICAgICAgICAgICAgbGFzdCBHUk9VUDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIE90aGVyd2lzZSwgYWx3YXlzIGFsbG93IGFjY2Vzcy4KICAgIGVsc2UgewogICAgICAgICRQZXJtaXNzaW9uID0gMTsKICAgIH0KCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kQWN0aW9uIiApIGlmICRQZXJtaXNzaW9uOwoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLicpLAogICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzIScpLAogICAgKTsKfQoKc3ViIF9BY3Rpb25MaXN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgbXkgJUFjdGlvbkxpc3Q7CiAgICBteSAlQWN0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyktPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgIyBnZXQgYWN0aW9uIHNldHRpbmdzCiAgICBBQ1RJT05JRDoKICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJUFjdGlvbiApIHsKICAgICAgICBuZXh0IEFDVElPTklEIGlmICEkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9uU3RhdHVzfTsKICAgICAgICBuZXh0IEFDVElPTklEIGlmICEkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9ufTsKICAgICAgICAkQWN0aW9uTGlzdHskQWN0aW9uSUR9ID0gJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvbn07CiAgICB9CiAgICAkQWN0aW9uTGlzdHsnJ30gPSAnJzsKCiAgICByZXR1cm4gJUFjdGlvbkxpc3Q7Cn0KCnN1YiBfQWN0aW9uTGlzdENvbnN0cmFpbnRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUxpc3Q7CiAgICBpZiAoICRQYXJhbXtQcm9qZWN0SUR9ICYmIGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3RDb25zdHJhaW50c30gfSApIHsKICAgICAgICBteSAkUHJvamVjdE5hbWU7CgogICAgICAgIFBST0pFQ1Q6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0ICggQHsgJFBhcmFte1Byb2plY3RMaXN0fS0+e0FsbFByb2plY3RzfSB9ICkgewogICAgICAgICAgICBpZiAoICRQcm9qZWN0LT57S2V5fSBlcSAkUGFyYW17UHJvamVjdElEfSApIHsKICAgICAgICAgICAgICAgICRQcm9qZWN0TmFtZSA9ICRQcm9qZWN0LT57VmFsdWV9OwogICAgICAgICAgICAgICAgbGFzdCBQUk9KRUNUOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoIGRlZmluZWQoJFByb2plY3ROYW1lKSApIHsKCiAgICAgICAgICAgICMgbG9vcCBvdmVyIGFjdGlvbnMgdG8gZmluZCBtYXRjaGVzIGZvciBjb25maWd1cmVkIHByb2plY3QKICAgICAgICAgICAgIyBhbmQgYWN0aW9uIHJlZy1leHAgcGFpcnMKICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQga2V5cyAleyAkUGFyYW17QWN0aW9uTGlzdH0gfSApIHsKCiAgICAgICAgICAgICAgICBteSAkQWN0aW9uTmFtZSA9ICRQYXJhbXtBY3Rpb25MaXN0fS0+eyRBY3Rpb25JRH07CgogICAgICAgICAgICAgICAgUFJPSkVDVE5BTUVSRUdFWFA6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFByb2plY3ROYW1lUmVnRXhwICggc29ydCBrZXlzICV7ICRQYXJhbXtBY3Rpb25MaXN0Q29uc3RyYWludHN9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJEFjdGlvbk5hbWVSZWdFeHAgPSAkUGFyYW17QWN0aW9uTGlzdENvbnN0cmFpbnRzfS0+eyRQcm9qZWN0TmFtZVJlZ0V4cH07CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAkUHJvamVjdE5hbWUgICA9fiBteyRQcm9qZWN0TmFtZVJlZ0V4cH1zbXgKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJEFjdGlvbk5hbWUgPX4gbXskQWN0aW9uTmFtZVJlZ0V4cH1zbXgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExpc3R7JEFjdGlvbklEfSA9ICRBY3Rpb25OYW1lOwogICAgICAgICAgICAgICAgICAgICAgICBsYXN0IFBST0pFQ1ROQU1FUkVHRVhQOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGFsbCBhdmFpbGFibGUgYWN0aW9ucyB3aWxsIGJlIGFkZGVkIGlmIG5vIGFjdGlvbiB3YXMgYWRkZWQgYWJvdmUgKHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24pCiAgICBpZiAoICFrZXlzICVMaXN0ICkgewogICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3R9IH0gKSB7CiAgICAgICAgICAgIG15ICRBY3Rpb25OYW1lID0gJFBhcmFte0FjdGlvbkxpc3R9LT57JEFjdGlvbklEfTsKICAgICAgICAgICAgJExpc3R7JEFjdGlvbklEfSA9ICRBY3Rpb25OYW1lOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXCVMaXN0Owp9CgpzdWIgX1Byb2plY3RMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyBnZXQgcHJvamVjdCBzZXR0aW5ncwogICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJywKICAgICk7CgogICAgaWYgKCAhJFNlbGYtPntMYXN0UHJvamVjdHNSZWZ9ICkgewoKICAgICAgICAjIGdldCB0aGUgbGFzdCBwcm9qZWN0cwogICAgICAgIG15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aGUgZmF2b3JpdGVzCiAgICAgICAgJXsgJFNlbGYtPntMYXN0UHJvamVjdHNSZWZ9IH0gPSBtYXAgeyAkXyA9PiAxIH0gQExhc3RQcm9qZWN0czsKICAgIH0KCiAgICBteSBATGFzdFByb2plY3RzID0gKAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJycsCiAgICAgICAgICAgIFZhbHVlID0+ICctJywKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCB0aGUgc2VwYXJhdG9yCiAgICBQUk9KRUNUSUQ6CiAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgc29ydCB7ICRQcm9qZWN0e1Byb2plY3R9eyRhfSBjbXAgJFByb2plY3R7UHJvamVjdH17JGJ9IH0KICAgICAgICBrZXlzICV7ICRQcm9qZWN0e1Byb2plY3R9IH0KICAgICAgICApCiAgICB7CiAgICAgICAgbmV4dCBQUk9KRUNUSUQgaWYgISRTZWxmLT57TGFzdFByb2plY3RzUmVmfS0+eyRQcm9qZWN0SUR9OwogICAgICAgIG15ICVIYXNoID0gKAogICAgICAgICAgICBLZXkgICA9PiAkUHJvamVjdElELAogICAgICAgICAgICBWYWx1ZSA9PiAkUHJvamVjdHtQcm9qZWN0fXskUHJvamVjdElEfSwKICAgICAgICApOwogICAgICAgIHB1c2ggQExhc3RQcm9qZWN0cywgXCVIYXNoOwogICAgfQoKICAgIEBMYXN0UHJvamVjdHMgPSAkU2VsZi0+X1Byb2plY3RMaXN0Q29uc3RyYWludHMoCiAgICAgICAgTGlzdCAgICAgICA9PiBcQExhc3RQcm9qZWN0cywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtTZWxlY3RlZElEfSB8fCAnJywKICAgICk7CgogICAgbXkgQEFsbFByb2plY3RzOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBjaGVjayBpZiBBdXRvQ29tcGxldGlvbiBpcyBkaXNhYmxlZAogICAgIyBpbiB0aGlzIGNhc2UgYSBzZXBhcmF0b3IgaXMgbmVlZGVkIGJldHdlZW4gdHdvIGxpc3RzIG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwpCiAgICBpZiAoCiAgICAgICAgISRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIikKICAgICAgICB8fCAhJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIikKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCBzY2FsYXIgQExhc3RQcm9qZWN0cyA+IDEgKSB7CgogICAgICAgICAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICAgICAgICAgIyBhZGQgbGFzdCBwcm9qZWN0cyBzZXBhcmF0b3IgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdAogICAgICAgICAgICBteSAkTGFzdFByb2plY3RzU3RyID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdMYXN0IFNlbGVjdGVkIFByb2plY3RzJyk7CgogICAgICAgICAgICB1bnNoaWZ0IEBMYXN0UHJvamVjdHMsIHsKICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICcwJywKICAgICAgICAgICAgICAgIFZhbHVlICAgID0+ICItLS0kTGFzdFByb2plY3RzU3RyLS0tIiwKICAgICAgICAgICAgICAgIERpc2FibGVkID0+IDEsCiAgICAgICAgICAgIH07CgogICAgICAgICAgICAjIGFkZCBhbGwgcHJvamVjdHMgc2VwYXJhdG9yIHJpZ2h0IGFmdGVyIHRoZSBsYXN0IHNlbGVjdGVkIHByb2plY3RzIGxpc3QKICAgICAgICAgICAgbXkgJEFsbFByb2plY3RzU3RyID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdBbGwgUHJvamVjdHMnKTsKCiAgICAgICAgICAgIHB1c2ggQExhc3RQcm9qZWN0cywgewogICAgICAgICAgICAgICAgS2V5ICAgICAgPT4gJzAnLAogICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gIi0tLSRBbGxQcm9qZWN0c1N0ci0tLSIsCiAgICAgICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIEBBbGxQcm9qZWN0cyA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJycsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAnLScsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGFkZCBhbGwgYWxsb3dlZCBwcm9qZWN0cyB0byB0aGUgbGlzdAogICAgUFJPSkVDVElEOgogICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgIHNvcnQgeyAkUHJvamVjdHtQcm9qZWN0fXskYX0gY21wICRQcm9qZWN0e1Byb2plY3R9eyRifSB9CiAgICAgICAga2V5cyAleyAkUHJvamVjdHtQcm9qZWN0fSB9CiAgICAgICAgKQogICAgewogICAgICAgIG5leHQgUFJPSkVDVElEIGlmICEkUHJvamVjdHtQcm9qZWN0fXskUHJvamVjdElEfTsKICAgICAgICBteSAlSGFzaCA9ICgKICAgICAgICAgICAgS2V5ICAgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgVmFsdWUgPT4gJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRQYXJhbXtTZWxlY3RlZElEfSAmJiAkUGFyYW17U2VsZWN0ZWRJRH0gZXEgJFByb2plY3RJRCApIHsKICAgICAgICAgICAgJEhhc2h7U2VsZWN0ZWR9ID0gMTsKICAgICAgICB9CgogICAgICAgIHB1c2ggQEFsbFByb2plY3RzLCBcJUhhc2g7CiAgICB9CgogICAgQEFsbFByb2plY3RzID0gJFNlbGYtPl9Qcm9qZWN0TGlzdENvbnN0cmFpbnRzKAogICAgICAgIExpc3QgICAgICAgPT4gXEBBbGxQcm9qZWN0cywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtTZWxlY3RlZElEfSB8fCAnJywKICAgICk7CgogICAgbXkgJVByb2plY3RzID0gKAogICAgICAgIExhc3RQcm9qZWN0cyA9PiBcQExhc3RQcm9qZWN0cywKICAgICAgICBBbGxQcm9qZWN0cyAgPT4gXEBBbGxQcm9qZWN0cywKICAgICk7CgogICAgcmV0dXJuIFwlUHJvamVjdHM7Cn0KCnN1YiBfUHJvamVjdExpc3RDb25zdHJhaW50cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBMaXN0OwogICAgbXkgJFByb2plY3RDb3VudCAgICAgICAgICAgPSAwOwogICAgbXkgJFByb2plY3RMaXN0Q29uc3RyYWludHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpQcm9qZWN0TGlzdENvbnN0cmFpbnRzJyk7CgogICAgaWYgKCBrZXlzICV7JFByb2plY3RMaXN0Q29uc3RyYWludHN9ICkgewoKICAgICAgICAjIGdldCBncm91cHMgb2YgY3VycmVudCB1c2VyCiAgICAgICAgbXkgJUdyb3VwcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIFR5cGUgICA9PiAncm8nLAogICAgICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgICk7CiAgICAgICAgJUdyb3VwcyA9IG1hcCB7ICRHcm91cHN7JF99ID0+IDEgfSBrZXlzICVHcm91cHM7CgogICAgICAgICMgZ2V0IHByb2plY3QgbGlzdCBjb25zdHJhaW50cwogICAgICAgIG15ICVQcm9qZWN0UmVnZXg7CiAgICAgICAgZm9yIG15ICRQcm9qZWN0UmVnZXggKCBzb3J0IGtleXMgJXskUHJvamVjdExpc3RDb25zdHJhaW50c30gKSB7CiAgICAgICAgICAgIGZvciBteSAkUHJvamVjdEdyb3VwICggc3BsaXQgLyxccyovLCAkUHJvamVjdExpc3RDb25zdHJhaW50cy0+eyRQcm9qZWN0UmVnZXh9ICkgewogICAgICAgICAgICAgICAgaWYgKCAkR3JvdXBzeyRQcm9qZWN0R3JvdXB9ICkgewogICAgICAgICAgICAgICAgICAgICRQcm9qZWN0UmVnZXh7JFByb2plY3RSZWdleH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG15IEBQcm9qZWN0UmVnZXggPSBrZXlzICVQcm9qZWN0UmVnZXg7CgogICAgICAgICMgcmVkdWNlIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gY29uZmlndXJhdGlvbgogICAgICAgIGlmICggcmVmKCAkUGFyYW17TGlzdH0gKSAmJiBAUHJvamVjdFJlZ2V4ICkgewoKICAgICAgICAgICAgbXkgJEVsZW1lbnRDb3VudCA9IDA7CgogICAgICAgICAgICBmb3IgbXkgJFByb2plY3QgKCBAeyAkUGFyYW17TGlzdH0gfSApIHsKICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0TmFtZSA9ICRQcm9qZWN0LT57VmFsdWV9OwoKICAgICAgICAgICAgICAgICMgZW1wdHkgZmlyc3QgZWxlbWVudCwgbGFzdCBwcm9qZWN0cyBzZXBhcmF0b3IgYW5kIGN1cnJlbnRseSBzZWxlY3RlZCBwcm9qZWN0CiAgICAgICAgICAgICAgICBpZiAoICEkRWxlbWVudENvdW50IHx8ICEkUHJvamVjdC0+e0tleX0gfHwgJFByb2plY3QtPntLZXl9IGVxICRQYXJhbXtTZWxlY3RlZElEfSApIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBMaXN0LCAkUHJvamVjdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIFBST0pFQ1RSRUdFWFA6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0UmVnZXggKEBQcm9qZWN0UmVnZXgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkUHJvamVjdE5hbWUgPX4gbXskUHJvamVjdFJlZ2V4fXNteCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQExpc3QsICRQcm9qZWN0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFByb2plY3RDb3VudCsrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBQUk9KRUNUUkVHRVhQOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJEVsZW1lbnRDb3VudCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGZ1bGwgcHJvamVjdCBsaXN0IGlmIGNvbnN0cmFpbnRzIHJlc3VsdGVkIGluIGVtcHR5IHByb2plY3QgbGlzdCBvciBpZiBjb25zdHJhaW50cyBhcmVuJ3QKICAgICMgY29uZmlndXJlZCAocG9zc2libGUgbWlzY29uZmlndXJhdGlvbikKICAgIGlmICggISRQcm9qZWN0Q291bnQgKSB7CiAgICAgICAgQExpc3QgPSBAeyAkUGFyYW17TGlzdH0gfTsKICAgIH0KCiAgICByZXR1cm4gQExpc3Q7Cn0KCiMgaW50ZWdyYXRlIHRoZSBoYW5kbGluZyBmb3IgcmVxdWlyZWQgcmVtYXJrcyBpbiByZWxhdGlvbiB0byBwcm9qZWN0cwoKc3ViIF9Qcm9qZWN0MlJlbWFya1JlZ0V4cCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgIG15IEBQcm9qZWN0czJSZW1hcmsgPSAoKTsKICAgIG15ICVQcm9qZWN0RGF0YSAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKS0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnLAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICByZXR1cm4gJycgaWYgISRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OlByb2plY3QyUmVtYXJrUmVnRXhwJyk7CgogICAgbXkgJFByb2plY3QyUmVtYXJrUmVnRXhwID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6UHJvamVjdDJSZW1hcmtSZWdFeHAnKTsKCiAgICBmb3IgbXkgJFByb2plY3RJRCAoIHNvcnQga2V5cyAleyAkUHJvamVjdERhdGF7UHJvamVjdH0gfSApIHsKICAgICAgICBpZiAoICRQcm9qZWN0RGF0YXtQcm9qZWN0fXskUHJvamVjdElEfSA9fiBteyRQcm9qZWN0MlJlbWFya1JlZ0V4cH1zbXggKSB7CiAgICAgICAgICAgIHB1c2ggQFByb2plY3RzMlJlbWFyaywgJFByb2plY3RJRDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGpvaW4gJ3wnLCBAUHJvamVjdHMyUmVtYXJrOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgJFNlbGYtPntUaW1lWm9uZX0gPSAkUGFyYW17VGltZVpvbmV9CiAgICAgICAgfHwgJFBhcmFte1VzZXJUaW1lWm9uZX0KICAgICAgICB8fCAkRGF0ZVRpbWVPYmplY3QtPk9UUlNUaW1lWm9uZUdldCgpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBNb250aEFycmF5ID0gKAogICAgICAgICcnLCAgICAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAgICAgJ0FwcmlsJywgICAnTWF5JywKICAgICAgICAnSnVuZScsICdKdWx5JywgICAgJ0F1Z3VzdCcsICAgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywKICAgICAgICAnRGVjZW1iZXInLAogICAgKTsKICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgb3ZlcnZpZXcgYWJvdXQgdGhlIHVzZXJzIHRpbWUgYWNjb3VudGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIERheSBNb250aCBZZWFyIFVzZXJJRCBQcm9qZWN0U3RhdHVzU2hvdykpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CiAgICAkUGFyYW17QWN0aW9ufSA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFBhcmFte1VzZXJJRH0gPSAkU2VsZi0+e1VzZXJJRH07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoICRQYXJhbXtVc2VySUR9ICE9ICRTZWxmLT57VXNlcklEfSAmJiAhJFNlbGYtPntBY2Nlc3NSd30gKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgJFBhcmFte0FjdGlvbn0gPSAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnOwogICAgfQogICAgaWYgKCAkUGFyYW17VXNlcklEfSAhPSAkU2VsZi0+e1VzZXJJRH0gKSB7CiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17VXNlcn0gPSAkU2hvd25Vc2Vyc3sgJFBhcmFte1VzZXJJRH0gfTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICAjIGNyZWF0ZSBvbmUgYmFzZSBvYmplY3QKICAgIG15ICREYXRlVGltZU9iamVjdEdpdmVuID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0TmV4dCA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5DbG9uZSgpOwogICAgbXkgJERhdGVUaW1lT2JqZWN0UHJldiA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5DbG9uZSgpOwogICAgbXkgJERhdGVQYXJhbXNDdXJyZW50ICA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5HZXQoKTsKCiAgICAjIGNhbGN1bGF0ZSB0aGUgbmV4dCBtb250aAogICAgJERhdGVUaW1lT2JqZWN0TmV4dC0+QWRkKAogICAgICAgIE1vbnRocyA9PiAxLAogICAgKTsKCiAgICBteSAkRGF0ZVBhcmFtc05leHQgPSAkRGF0ZVRpbWVPYmplY3ROZXh0LT5HZXQoKTsKCiAgICAkUGFyYW17WWVhck5leHR9ICA9ICREYXRlUGFyYW1zTmV4dC0+e1llYXJ9OwogICAgJFBhcmFte01vbnRoTmV4dH0gPSAkRGF0ZVBhcmFtc05leHQtPntNb250aH07CiAgICAkUGFyYW17RGF5TmV4dH0gICA9ICREYXRlUGFyYW1zTmV4dC0+e0RheX07CgogICAgIyBjYWxjdWxhdGUgdGhlIG5leHQgbW9udGgKICAgICREYXRlVGltZU9iamVjdFByZXYtPlN1YnRyYWN0KAogICAgICAgIE1vbnRocyA9PiAxLAogICAgKTsKCiAgICBteSAkRGF0ZVBhcmFtc0JhY2sgPSAkRGF0ZVRpbWVPYmplY3RQcmV2LT5HZXQoKTsKICAgICRQYXJhbXtZZWFyQmFja30gID0gJERhdGVQYXJhbXNCYWNrLT57WWVhcn07CiAgICAkUGFyYW17TW9udGhCYWNrfSA9ICREYXRlUGFyYW1zQmFjay0+e01vbnRofTsKICAgICRQYXJhbXtEYXlCYWNrfSAgID0gJERhdGVQYXJhbXNCYWNrLT57RGF5fTsKCiAgICAjIE92ZXJ2aWV3IHBlciBkYXkKICAgIG15ICRMYXN0RGF5T2ZNb250aCA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5MYXN0RGF5T2ZNb250aEdldCgpOwogICAgbXkgJERheXNPZk1vbnRoICAgID0gJExhc3REYXlPZk1vbnRoLT57RGF5fTsKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBmb3IgbXkgJERheSAoIDEgLi4gJERheXNPZk1vbnRoICkgewogICAgICAgICRQYXJhbXtEYXl9ID0gc3ByaW50ZiggIiUwMmQiLCAkRGF5ICk7CgogICAgICAgICRQYXJhbXtXZWVrZGF5fSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF5T2ZXZWVrKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9ICk7CgogICAgICAgIG15ICRWYWNhdGlvbkNoZWNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgICAgID0+ICREYXksCiAgICAgICAgICAgIENhbGVuZGFyID0+ICRVc2VyRGF0YXtDYWxlbmRhcn0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJERhdGUgICAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTA0ZC0lMDJkLSUwMmQiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICREYXkgKTsKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3RTdGFydCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgU3RyaW5nID0+ICREYXRlIC4gJyAwMDowMDowMCcsCiAgICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIG15ICREYXlTdGFydFRpbWUgPSAkRGF0ZVRpbWVPYmplY3RTdGFydC0+VG9FcG9jaCgpOwoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3RTdG9wID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJERhdGUgLiAnIDIzOjU5OjU5JywKICAgICAgICAgICAgfQogICAgICAgICk7CiAgICAgICAgbXkgJERheVN0b3BUaW1lID0gJERhdGVUaW1lT2JqZWN0U3RvcC0+VG9FcG9jaCgpOwoKICAgICAgICAjIGFkZCB0aW1lIHpvbmUgdG8gY2FsY3VsYXRpb24KICAgICAgICBteSAkVXNlckNhbGVuZGFyID0gJFVzZXJEYXRhe0NhbGVuZGFyfSB8fCAnJzsKICAgICAgICBteSAkWm9uZSAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICRVc2VyQ2FsZW5kYXIgKTsKICAgICAgICBpZiAoJFpvbmUpIHsKICAgICAgICAgICAgbXkgJFpvbmVTZWNvbmRzID0gJFpvbmUgKiA2MCAqIDYwOwogICAgICAgICAgICAkRGF5U3RhcnRUaW1lID0gJERheVN0YXJ0VGltZSAtICRab25lU2Vjb25kczsKICAgICAgICAgICAgJERheVN0b3BUaW1lICA9ICREYXlTdG9wVGltZSAtICRab25lU2Vjb25kczsKICAgICAgICB9CgogICAgICAgIG15ICRUaGlzRGF5V29ya2luZ1RpbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdUaW1lKAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJERheVN0YXJ0VGltZSwKICAgICAgICAgICAgU3RvcFRpbWUgID0+ICREYXlTdG9wVGltZSwKICAgICAgICAgICAgQ2FsZW5kYXIgID0+ICRVc2VyQ2FsZW5kYXIsCiAgICAgICAgKSB8fCAnMCc7CgogICAgICAgIGlmICggJFBhcmFte1llYXJ9IGVxICRZZWFyICYmICRQYXJhbXtNb250aH0gZXEgJE1vbnRoICYmICRDdXJyZW50RGF5IGVxICREYXkgKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gPSAnQWN0aXZlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCRWYWNhdGlvbkNoZWNrKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gICA9ICdWYWNhdGlvbic7CiAgICAgICAgICAgICRQYXJhbXtDb21tZW50fSA9ICRWYWNhdGlvbkNoZWNrOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoJFRoaXNEYXlXb3JraW5nVGltZSkgewogICAgICAgICAgICAkUGFyYW17Q2xhc3N9ID0gJ1dvcmtpbmdEYXknOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBhcmFte0NsYXNzfSA9ICdOb25Xb3JraW5nRGF5JzsKICAgICAgICB9CgogICAgICAgIG15ICVEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNHZXQoCiAgICAgICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17Q29tbWVudH0gPSAkRGF0YXtTaWNrfQogICAgICAgICAgICA/IFRyYW5zbGF0YWJsZSgnU2ljayBsZWF2ZScpCiAgICAgICAgICAgIDogJERhdGF7TGVhdmVEYXl9ID8gVHJhbnNsYXRhYmxlKCdPbiB2YWNhdGlvbicpCiAgICAgICAgICAgIDogJERhdGF7T3ZlcnRpbWV9ID8gVHJhbnNsYXRhYmxlKCdPbiBvdmVydGltZSBsZWF2ZScpCiAgICAgICAgICAgIDogICAgICAgICAgICAgICAgICAgJyc7CgogICAgICAgICRQYXJhbXtXb3JraW5nSG91cnN9ID0gJERhdGF7VG90YWx9ID8gc3ByaW50ZiggIiUuMmYiLCAkRGF0YXtUb3RhbH0gKSA6ICcnOwoKICAgICAgICAkUGFyYW17V2Vla2RheV90b19UZXh0fSA9ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSAtIDEgXTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUm93JywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgICAgICRQYXJhbXtDb21tZW50fSA9ICcnOwogICAgfQoKICAgIG15ICVVc2VyUmVwb3J0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyUmVwb3J0aW5nKAogICAgICAgIFllYXIgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCA9PiAkUGFyYW17TW9udGh9LAogICAgKTsKICAgIGZvciBteSAkUmVwb3J0RWxlbWVudCAoCiAgICAgICAgcXcoVGFyZ2V0U3RhdGUgVGFyZ2V0U3RhdGVUb3RhbCBXb3JraW5nSG91cnNUb3RhbCBXb3JraW5nSG91cnMKICAgICAgICBPdmVydGltZSBPdmVydGltZVRvdGFsIE92ZXJ0aW1lVW50aWwgTGVhdmVEYXkgTGVhdmVEYXlUb3RhbAogICAgICAgIExlYXZlRGF5UmVtYWluaW5nIFNpY2sgU2lja1RvdGFsIFNpY2tSZW1haW5pbmcpCiAgICAgICAgKQogICAgewogICAgICAgICRVc2VyUmVwb3J0eyAkUGFyYW17VXNlcklEfSB9eyRSZXBvcnRFbGVtZW50fSB8fD0gMDsKICAgICAgICAkUGFyYW17JFJlcG9ydEVsZW1lbnR9ID0gc3ByaW50ZiggIiUuMmYiLCAkVXNlclJlcG9ydHsgJFBhcmFte1VzZXJJRH0gfXskUmVwb3J0RWxlbWVudH0gKTsKICAgIH0KCiAgICBpZiAoICRVc2VyRGF0YXtTaG93T3ZlcnRpbWV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydGltZScsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgICMgT3ZlcnZpZXcgcGVyIHByb2plY3QgYW5kIGFjdGlvbgogICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0QWN0aW9uUmVwb3J0aW5nKAogICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJVByb2plY3REYXRhICkgKSB7CgogICAgICAgICMgc2hvdyB0aGUgcmVwb3J0IHNvcnQgYnkgcHJvamVjdHMKICAgICAgICBpZiAoICEkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IHx8ICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ3ZhbGlkJyApIHsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICdhbGwnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgKSB7CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gPSAndmFsaWQnOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFte1Nob3dQcm9qZWN0c30gPSAnU2hvdyAnIC4gJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSAuICcgcHJvamVjdHMnOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdFRhYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwoKICAgICAgICBQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgICAgICBzb3J0IHsgJFByb2plY3REYXRheyRhfXtOYW1lfSBjbXAgJFByb2plY3REYXRheyRifXtOYW1lfSB9IGtleXMgJVByb2plY3REYXRhCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRQcm9qZWN0UmVmID0gJFByb2plY3REYXRheyRQcm9qZWN0SUR9OwogICAgICAgICAgICBteSAkQWN0aW9uc1JlZiA9ICRQcm9qZWN0UmVmLT57QWN0aW9uc307CgogICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAnJzsKICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gID0gJFByb2plY3RSZWYtPntTdGF0dXN9ID8gJycgOiAncGFzc2l2JzsKCiAgICAgICAgICAgIG15ICRUb3RhbCAgICAgID0gMDsKICAgICAgICAgICAgbXkgJFRvdGFsVG90YWwgPSAwOwoKICAgICAgICAgICAgbmV4dCBQUk9KRUNUSUQgaWYgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyAmJiAkUGFyYW17U3RhdHVzfTsKCiAgICAgICAgICAgIGlmICgkQWN0aW9uc1JlZikgewogICAgICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoCiAgICAgICAgICAgICAgICAgICAgc29ydCB7ICRBY3Rpb25zUmVmLT57JGF9e05hbWV9IGNtcCAkQWN0aW9uc1JlZi0+eyRifXtOYW1lfSB9CiAgICAgICAgICAgICAgICAgICAga2V5cyAleyRBY3Rpb25zUmVmfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBteSAkQWN0aW9uUmVmID0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9OwoKICAgICAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9ufSAgICAgPSAkQWN0aW9uUmVmLT57TmFtZX07CiAgICAgICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57UGVyTW9udGh9IHx8IDAgKTsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17SG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRBY3Rpb25SZWYtPntUb3RhbH0gfHwgMCApOwogICAgICAgICAgICAgICAgICAgICRUb3RhbCAgICAgICs9ICRQYXJhbXtIb3Vyc307CiAgICAgICAgICAgICAgICAgICAgJFRvdGFsVG90YWwgKz0gJFBhcmFte0hvdXJzVG90YWx9OwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb24nLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFBhcmFte1Byb2plY3R9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdFJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgICAgICBteSAkUHJvamVjdERlc2NyaXB0aW9uID0gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRQcm9qZWN0UmVmLT57RGVzY3JpcHRpb259LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5ld0xpbmUgICAgICAgID0+IDUwLAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvd1NwYW4gPT4gKCAxICsgc2NhbGFyIGtleXMgJXskQWN0aW9uc1JlZn0gKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXMgID0+ICRQYXJhbXtTdGF0dXN9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUHJvamVjdERlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0RGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJFByb2plY3REZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkVXNlckRhdGF7Q3JlYXRlUHJvamVjdH0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBwZXJzb25zIHdobyBhcmUgYWxsb3dlZCB0byBzZWUgdGhlIGNyZWF0ZSBvYmplY3QgbGluayBhcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYWxsb3dlZCB0byBzZWUgdGhlIHByb2plY3QgcmVwb3J0aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0TGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3QgICA9PiAkUHJvamVjdFJlZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3ROb0xpbmsnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyBQcm9qZWN0ID0+ICRQcm9qZWN0UmVmLT57TmFtZX0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBOb3cgc2hvdyByb3cgd2l0aCB0b3RhbCByZXN1bHQgb2YgYWxsIGFjdGlvbnMgb2YgdGhpcyBwcm9qZWN0CiAgICAgICAgICAgICAgICAkUGFyYW17SG91cnN9ICAgICAgPSBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbCApOwogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWxUb3RhbCApOwogICAgICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ICAgICAgKz0gJFRvdGFsOwogICAgICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKz0gJFRvdGFsVG90YWw7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25Ub3RhbCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCBkZWZpbmVkKCAkUGFyYW17VG90YWxIb3Vyc30gKSApIHsKICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ID0gc3ByaW50ZiggIiUuMmYiLCAkUGFyYW17VG90YWxIb3Vyc30gKTsKICAgICAgICB9CiAgICAgICAgaWYgKCBkZWZpbmVkKCAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSApICkgewogICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKTsKICAgICAgICB9CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0dyYW5kVG90YWwnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgIyBidWlsZCBvdXRwdXQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdPdmVydmlldycpLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9DaGVja1ZhbGlkaXR5VXNlclBlcmlvZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRXJyb3JzID0gKCk7CiAgICBteSAlR2V0UGFyYW07CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIGZvciAoIG15ICRQZXJpb2QgPSAxOyAkUGVyaW9kIDw9ICRQYXJhbXtQZXJpb2R9OyAkUGVyaW9kKysgKSB7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERhdGVTdGFydCBEYXRlRW5kIExlYXZlRGF5cykpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9CiAgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAiWyRQZXJpb2RdIiApOwogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17JFBhcmFtZXRlcn0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3sgJFBhcmFtZXRlciAuICctJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ01pc3NpbmdWYWx1ZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbXkgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggJy0nLCAkR2V0UGFyYW17RGF0ZVN0YXJ0fSApOwogICAgICAgIG15ICRTdGFydERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICApOwogICAgICAgICggJFllYXIsICRNb250aCwgJERheSApID0gc3BsaXQoICctJywgJEdldFBhcmFte0RhdGVFbmR9ICk7CiAgICAgICAgbXkgJEVuZERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICApOwogICAgICAgIGlmICggISRTdGFydERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggISRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggJFN0YXJ0RGF0ZSAmJiAkRW5kRGF0ZSAmJiAkU3RhcnREYXRlID49ICRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnQmVmb3JlRGF0ZVN0YXJ0JzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVFcnJvcnM7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyB0aW1lIGFjY291bnRpbmcgcHJvamVjdCByZXBvcnRpbmcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUmVwb3J0aW5nUHJvamVjdCcgKSB7CgogICAgICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIlRpbWVBY2NvdW50aW5nOjpGcm9udGVuZDo6JFNlbGYtPntTdWJhY3Rpb259Iik7CgogICAgICAgIG15ICVGcm9udGVuZCA9ICgpOwoKICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICAkUGFyYW17UHJvamVjdElEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9qZWN0SUQnICk7CgogICAgICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJykKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICVBY3Rpb24gID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdHtQcm9qZWN0fS0+eyAkUGFyYW17UHJvamVjdElEfSB9OwoKICAgICAgICAjIGdldCBzeXN0ZW0gdXNlcnMKICAgICAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAwCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ID0gJENvbmZpZy0+e1Nob3dPbmx5QWN0aXZlVXNlcnN9OwoKICAgICAgICBpZiAoICRQYXJhbXtTaG93T25seUFjdGl2ZVVzZXJzfSApIHsKCiAgICAgICAgICAgICMgZ2V0IHJlZ2lzdGVyZWQgdXNlcnMKICAgICAgICAgICAgbXkgJVJlZ2lzdGVyZWRVc2VycyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCiAgICAgICAgICAgICMgcmVkdWNlIHNob3duIHVzZXJzIHRvIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgcmVnaXN0ZXJlZCBpbiB0aW1lIGFjY291bnRpbmcKICAgICAgICAgICAgJVNob3duVXNlcnMgPSBtYXAgeyAkXyA9PiAkU2hvd25Vc2Vyc3skX30gfSBrZXlzICVSZWdpc3RlcmVkVXNlcnM7CiAgICAgICAgfQoKICAgICAgICAjIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nIGlzIG5vdCByZXdvcmtlZAogICAgICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCksCiAgICAgICAgKTsKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAoKTsKICAgICAgICBteSAlUHJvamVjdFRpbWUgPSAoKTsKCiAgICAgICAgbXkgQFVzZXJXaGl0ZUxpc3Q7CgogICAgICAgICMgT25seSBvbmUgZnVuY3Rpb24gc2hvdWxkIGJlIGVub3VnaAogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVTaG93blVzZXJzICkgewoKICAgICAgICAgICAgIyBPdmVydmlldyBwZXIgcHJvamVjdCBhbmQgYWN0aW9uCiAgICAgICAgICAgICMgUkVNQVJLOiBUaGlzIGlzIHRoZSB3cm9uZyBmdW5jdGlvbiB0byBnZXQgdGhpcyBpbmZvcm1hdGlvbgogICAgICAgICAgICAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggJFByb2plY3REYXRheyAkUGFyYW17UHJvamVjdElEfSB9ICkgewogICAgICAgICAgICAgICAgbXkgJFVzZXJUb3RhbEhvdXJzSW5Qcm9qZWN0OwogICAgICAgICAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkUHJvamVjdERhdGF7ICRQYXJhbXtQcm9qZWN0SUR9IH0tPntBY3Rpb25zfTsKICAgICAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXskQWN0aW9uc1JlZn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RUaW1leyRBY3Rpb25JRH0tPnskVXNlcklEfS0+e0hvdXJzfSA9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfS0+e1RvdGFsfTsKCiAgICAgICAgICAgICAgICAgICAgIyByZW1lbWJlciB0aGUgc3VtIG9mIGFsbCBob3VycyBvZiBhbGwgdGFza3MKICAgICAgICAgICAgICAgICAgICAkVXNlclRvdGFsSG91cnNJblByb2plY3QgKz0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9LT57VG90YWx9IHx8IDA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyByZW1lbWJlciBvbmx5IHRoZSB1c2VycyB0aGF0IGhhcyBiZWVuIGFkZGVkIGhvdXJzIHRvIHRoaXMgcHJvamVjdAogICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRVc2VyVG90YWxIb3Vyc0luUHJvamVjdCAmJiAkVXNlclRvdGFsSG91cnNJblByb2plY3QgPiAwICkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFVzZXJXaGl0ZUxpc3QsICRVc2VySUQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ICkgewoKICAgICAgICAgICAgIyByZWR1Y2Ugc2hvd24gdXNlcnMgdG8gb25seSB0aGUgb25lcyB0aGF0IGFyZSBhY3RpdmUgaW4gdGhlIHByb2plY3QgKGJ5IGFkZGluZyBob3VycykKICAgICAgICAgICAgJVNob3duVXNlcnMgPSBtYXAgeyAkXyA9PiAkU2hvd25Vc2Vyc3skX30gfSBAVXNlcldoaXRlTGlzdDsKICAgICAgICB9CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJVNob3duVXNlcnMgKSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb1VzZXJEYXRhRm91bmRNc2cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgdGhlIGhlYWRlciBsaW5lCiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJOYW1lJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsgVXNlciA9PiAkU2hvd25Vc2Vyc3skVXNlcklEfSB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBiZXR0ZXIgc29sdXRpb24gZm9yIHNvcnQgYWN0aW9ucyBuZWNlc3NhcnkKICAgICAgICAgICAgbXkgJU5ld0FjdGlvbiA9ICgpOwogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICVQcm9qZWN0VGltZSApIHsKICAgICAgICAgICAgICAgICROZXdBY3Rpb257JEFjdGlvbklEfSA9ICRBY3Rpb257JEFjdGlvbklEfS0+e0FjdGlvbn07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJUFjdGlvbiA9ICVOZXdBY3Rpb247CgogICAgICAgICAgICAjIHNob3cgdGhlIHJlc3VsdHMKICAgICAgICAgICAgbXkgJVRvdGFsID0gKCk7CiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IHsgJEFjdGlvbnskYX0gY21wICRBY3Rpb257JGJ9IH0ga2V5cyAlQWN0aW9uICkgewogICAgICAgICAgICAgICAgbXkgJFRvdGFsSG91cnMgPSAwOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb257JEFjdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICAgICAkVG90YWxIb3VycyAgICAgKz0gJFByb2plY3RUaW1leyRBY3Rpb25JRH17JFVzZXJJRH17SG91cnN9IHx8IDA7CiAgICAgICAgICAgICAgICAgICAgJFRvdGFseyRVc2VySUR9ICs9ICRQcm9qZWN0VGltZXskQWN0aW9uSUR9eyRVc2VySUR9e0hvdXJzfSB8fCAwOwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3VycyA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwcmludGYoICIlLjJmIiwgJFByb2plY3RUaW1leyRBY3Rpb25JRH17JFVzZXJJRH17SG91cnN9IHx8IDAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgVG90YWwKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIb3VycyA9PiBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbEhvdXJzICksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFBhcmFte1RvdGFsQWxsfSA9IDA7CiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtUb3RhbEFsbH0gKz0gJFRvdGFseyRVc2VySUR9OwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRvdGFsJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgVG90YWwgPT4gc3ByaW50ZiggIiUuMmYiLCAkVG90YWx7JFVzZXJJRH0gKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyVG90YWxBbGwnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgVG90YWxBbGwgPT4gc3ByaW50ZiggIiUuMmYiLCAkUGFyYW17VG90YWxBbGx9ICksCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBteSBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEhpc3RvcnkoCiAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUGFyYW17UHJvamVjdElEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoIFxAUHJvamVjdEhpc3RvcnlBcnJheSApICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vUHJvamVjdERhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0VGFibGUnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICVGcm9udGVuZAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGZvciBteSAkUm93IChAUHJvamVjdEhpc3RvcnlBcnJheSkgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUm93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgVXNlciAgID0+ICRSb3ctPntVc2VyfSwKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICRSb3ctPntBY3Rpb259LAogICAgICAgICAgICAgICAgICAgICAgICBSZW1hcmsgPT4gJFJvdy0+e1JlbWFya30gfHwgJy0tJywKICAgICAgICAgICAgICAgICAgICAgICAgUGVyaW9kID0+IHNwcmludGYoICIlLjJmIiwgJFJvdy0+e1BlcmlvZH0gKSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZSAgID0+ICRSb3ctPntEYXRlfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzaG93IHRoZSB0b3RhbCBzdW0gb2YgaG91cnMgYXQgdGhlIGVuZCBvZiB0aGUgaGlzdG9yeSBsaXN0CiAgICAgICAgICAgICMgSSBhbHNvIGNhbiB1c2UgJFBhcmFte1RvdGFsQWxsfQogICAgICAgICAgICBteSAkUHJvamVjdFRvdGFsSG91cnMgPSBzcHJpbnRmKAogICAgICAgICAgICAgICAgIiUuMmYiLAogICAgICAgICAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0VG90YWxIb3VycygKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFBhcmFte1Byb2plY3RJRH0sCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0hpc3RvcnlUb3RhbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBIaXN0b3J5VG90YWwgPT4gJFByb2plY3RUb3RhbEhvdXJzIHx8IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBvdXRwdXQKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZyBQcm9qZWN0JyksCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdGltZSBhY2NvdW50aW5nIHJlcG9ydGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICVGcm9udGVuZCAgID0gKCk7CiAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMAogICAgKTsKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1J3fSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFN0YXR1cyBNb250aCBZZWFyIFByb2plY3RTdGF0dXNTaG93KSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICBteSAlTW9udGggPSAoKTsKICAgIGZvciBteSAkSUQgKCAxIC4uIDEyICkgewogICAgICAgICRNb250aHsgc3ByaW50ZiggIiUwMmQiLCAkSUQgKSB9ID0gJE1vbnRoQXJyYXlbJElEXTsKICAgIH0KCiAgICAkRnJvbnRlbmR7TW9udGhPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVNb250aCwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17TW9udGh9IHx8ICcnLAogICAgICAgIE5hbWUgICAgICAgID0+ICdNb250aCcsCiAgICAgICAgU29ydCAgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJNb250aCIpLAogICAgKTsKCiAgICBteSBAWWVhciA9ICggJFllYXIgLSA0IC4uICRZZWFyICsgMSApOwoKICAgICRGcm9udGVuZHtZZWFyT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFxAWWVhciwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17WWVhcn0gfHwgJycsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1llYXInLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJZZWFyIiksCiAgICApOwoKICAgICggJFBhcmFte1llYXJCYWNrfSwgJFBhcmFte01vbnRoQmFja30sICRQYXJhbXtEYXlCYWNrfSApCiAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sIDEsIDAsIC0xLCAwICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAxLCAwLCAxLCAwICk7CgogICAgbXkgJVVzZXJSZXBvcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICVVc2VyQmFzaWNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJVNob3duVXNlcnMgKSB8fCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlVXNlclJlcG9ydCApICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1VzZXJEYXRhRm91bmRNc2cnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJUYWJsZScsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CgogICAgICAgIFVTRVJJRDoKICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkU2hvd25Vc2Vyc3skYX0gY21wICRTaG93blVzZXJzeyRifSB9IGtleXMgJVNob3duVXNlcnMgKSB7CiAgICAgICAgICAgIG5leHQgVVNFUklEIGlmICEkVXNlclJlcG9ydHskVXNlcklEfTsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyICgKICAgICAgICAgICAgICAgIHF3KExlYXZlRGF5IE92ZXJ0aW1lIFdvcmtpbmdIb3VycyBTaWNrIExlYXZlRGF5UmVtYWluaW5nIE92ZXJ0aW1lVG90YWwpCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9IHNwcmludGYoICIlLjJmIiwgKCAkVXNlclJlcG9ydHskVXNlcklEfXskUGFyYW1ldGVyfSB8fCAwICkgKTsKICAgICAgICAgICAgICAgICRQYXJhbXsgJ1RvdGFsJyAuICRQYXJhbWV0ZXIgfSArPSAkUGFyYW17JFBhcmFtZXRlcn07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgU2hvdyBPdmVydGltZSBpZiBhbGxvd2VkCiAgICAgICAgICAgIGlmICggISRVc2VyQmFzaWNzeyRVc2VySUR9e1Nob3dPdmVydGltZX0gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17T3ZlcnRpbWV9ICAgICAgPSAnJzsKICAgICAgICAgICAgICAgICRQYXJhbXtPdmVydGltZVRvdGFsfSA9ICcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkUGFyYW17VXNlcn0gICA9ICRTaG93blVzZXJzeyRVc2VySUR9OwogICAgICAgICAgICAkUGFyYW17VXNlcklEfSA9ICRVc2VySUQ7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkUGFyYW1ldGVyICgKICAgICAgICAgICAgcXcoVG90YWxMZWF2ZURheSBUb3RhbE92ZXJ0aW1lIFRvdGFsV29ya2luZ0hvdXJzCiAgICAgICAgICAgIFRvdGFsU2ljayBUb3RhbExlYXZlRGF5UmVtYWluaW5nIFRvdGFsT3ZlcnRpbWVUb3RhbCkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gc3ByaW50ZiggIiUuMmYiLCAoICRQYXJhbXskUGFyYW1ldGVyfSApIHx8IDAgKTsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVc2VyR3JhbmRUb3RhbCcsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgdGhlIHJlcG9ydCBzb3J0IGJ5IHByb2plY3RzCiAgICBpZiAoICEkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IHx8ICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ3ZhbGlkJyApIHsKICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9ID0gJ2FsbCc7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgKSB7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICd2YWxpZCc7CiAgICB9CgogICAgJFBhcmFte1Nob3dQcm9qZWN0c30gPSAnU2hvdyAnIC4gJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSAuICcgcHJvamVjdHMnOwoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEFjdGlvblJlcG9ydGluZygKICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlUHJvamVjdERhdGEgKSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9Qcm9qZWN0RGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzTGlua0NsYXNzfSA9ICdIaWRkZW4nOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3RUYWJsZScsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CgogICAgICAgICMgUkVNQVJLOiBtZXJnZSB0aGlzIHByb2plY3QgcmVwb3J0aW5nIGxpc3Qgd2l0aCB0aGUgbGlzdCBpbiBvdmVydmlldwogICAgICAgIFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgICAgIHNvcnQgeyAkUHJvamVjdERhdGF7JGF9LT57TmFtZX0gY21wICRQcm9qZWN0RGF0YXskYn0tPntOYW1lfSB9CiAgICAgICAgICAgIGtleXMgJVByb2plY3REYXRhCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRQcm9qZWN0UmVmID0gJFByb2plY3REYXRheyRQcm9qZWN0SUR9OwogICAgICAgICAgICBteSAkQWN0aW9uc1JlZiA9ICRQcm9qZWN0UmVmLT57QWN0aW9uc307CgogICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAnJzsKICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gID0gJFByb2plY3RSZWYtPntTdGF0dXN9ID8gJycgOiAncGFzc2l2JzsKCiAgICAgICAgICAgIG15ICRUb3RhbCAgICAgID0gMDsKICAgICAgICAgICAgbXkgJFRvdGFsVG90YWwgPSAwOwoKICAgICAgICAgICAgbmV4dCBQUk9KRUNUSUQgaWYgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyAmJiAkUGFyYW17U3RhdHVzfTsKCiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKAogICAgICAgICAgICAgICAgc29ydCB7ICRBY3Rpb25zUmVmLT57JGF9LT57TmFtZX0gY21wICRBY3Rpb25zUmVmLT57JGJ9LT57TmFtZX0gfQogICAgICAgICAgICAgICAga2V5cyAleyRBY3Rpb25zUmVmfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAkQWN0aW9uUmVmID0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9OwoKICAgICAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0SUR9ICA9ICRQcm9qZWN0SUQ7CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9ufSAgICAgPSAkQWN0aW9uUmVmLT57TmFtZX07CiAgICAgICAgICAgICAgICAkUGFyYW17SG91cnN9ICAgICAgPSBzcHJpbnRmKCAiJS4yZiIsICRBY3Rpb25SZWYtPntQZXJNb250aH0gfHwgMCApOwogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57VG90YWx9IHx8IDAgKTsKICAgICAgICAgICAgICAgICRUb3RhbCAgICAgICs9ICRQYXJhbXtIb3Vyc307CiAgICAgICAgICAgICAgICAkVG90YWxUb3RhbCArPSAkUGFyYW17SG91cnNUb3RhbH07CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb24nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdFJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0RGVzY3JpcHRpb24gPSAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkUHJvamVjdFJlZi0+e0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgTmV3TGluZSAgICAgICAgPT4gNTAsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3QnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvd1NwYW4gICAgICAgICAgICA9PiAoIDEgKyBzY2FsYXIga2V5cyAleyRBY3Rpb25zUmVmfSApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzICAgICAgICAgICAgID0+ICRQYXJhbXtTdGF0dXN9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICRQcm9qZWN0RGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RSZWYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCAgICAgICAgICA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRQYXJhbXtIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJFRvdGFsICk7CiAgICAgICAgICAgICRQYXJhbXtIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFRvdGFsVG90YWwgKTsKICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ICAgICAgKz0gJFRvdGFsOwogICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSArPSAkVG90YWxUb3RhbDsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25Ub3RhbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSAgICAgIHx8PSAwOwogICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9IHx8PSAwOwoKICAgICAgICAkUGFyYW17VG90YWxIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnN9ICk7CiAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0R3JhbmRUb3RhbCcsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBidWlsZCBvdXRwdXQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdSZXBvcnRpbmcnKSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nJwogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICMgZXhwcmVzc2lvbiBhZGQgdGltZSBwZXJpb2Qgd2FzIHByZXNzZWQKICAgIGlmICgKICAgICAgICAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWRkUGVyaW9kJyApCiAgICAgICAgfHwgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1Ym1pdFVzZXJEYXRhJyApCiAgICAgICAgKQogICAgewoKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgJEdldFBhcmFte1VzZXJJRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcklEJyApOwogICAgICAgIG15ICRQZXJpb2RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRHZXRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgdmFsaWRpdHkgb2YgcGVyaW9kcwogICAgICAgIG15ICVFcnJvcnMgPSAkU2VsZi0+X0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcygKICAgICAgICAgICAgUGVyaW9kID0+ICRQZXJpb2RzLAogICAgICAgICk7CgogICAgICAgICMgaWYgdGhlIHBlcmlvZCBkYXRhIGlzIE9LCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgZ2V0IGFsbCBwYXJhbWV0ZXJzCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdWJhY3Rpb24gRGVzY3JpcHRpb24gQ2FsZW5kYXIpKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFNob3dPdmVydGltZSBDcmVhdGVQcm9qZWN0IEFsbG93U2tpcCkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkUGVyaW9kID0gMTsKICAgICAgICAgICAgbXkgJVBlcmlvZERhdGE7CgogICAgICAgICAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkR2V0UGFyYW17VXNlcklEfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgcGFyYW1ldGVycyBmb3IgYWxsIHJlZ2lzdGVyZWQgcGVyaW9kcwogICAgICAgICAgICB3aGlsZSAoICRVc2VyRGF0YXskUGVyaW9kfSApIHsKICAgICAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhXZWVrbHlIb3VycyBPdmVydGltZSBEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMpKSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZERhdGF7JFBlcmlvZH17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyIC4gIlskUGVyaW9kXSIgKQogICAgICAgICAgICAgICAgICAgICAgICB8fCAkVXNlckRhdGF7JFBlcmlvZH17JFBhcmFtZXRlcn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkUGVyaW9kRGF0YXskUGVyaW9kfXtVc2VyU3RhdHVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICJQZXJpb2RTdGF0dXNbJFBlcmlvZF0iICkgfHwgMDsKICAgICAgICAgICAgICAgICRQZXJpb2QrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkR2V0UGFyYW17UGVyaW9kfSA9IFwlUGVyaW9kRGF0YTsKCiAgICAgICAgICAgICMgdXBkYXRlIHBlcmlvZHMKICAgICAgICAgICAgaWYgKCAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoJUdldFBhcmFtKSApIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZFBlcmlvZCcgKSApIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgdGhlIGVkaXQgdGltZSBzZXR0aW5ncyBhZ2FpbiwgYnV0IG5vdyB3aXRoIGEgbmV3IGVtcHR5IHRpbWUgcGVyaW9kIGxpbmUKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgICAgICAgICAiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nO1N1YmFjdGlvbj0kR2V0UGFyYW17U3ViYWN0aW9ufTtVc2VySUQ9JEdldFBhcmFte1VzZXJJRH07IgogICAgICAgICAgICAgICAgICAgICAgICAuICJOZXdUaW1lUGVyaW9kPTEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgdGhlIG92ZXJ2aWV3IG9mIHRhc2tzIGFuZCB1c2VycwogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmc7VXNlcj0kU2VsZi0+e1N1YmFjdGlvbn0iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQgcHJvamVjdAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRQcm9qZWN0JyApIHsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9Qcm9qZWN0U2V0dGluZ3NFZGl0KCBBY3Rpb24gPT4gJ0FkZFByb2plY3QnICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIHByb2plY3QgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFByb2plY3RBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICRQcm9qZWN0SUQ7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1ldGVycwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0IFByb2plY3REZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KICAgICAgICAkR2V0UGFyYW17UHJvamVjdFN0YXR1c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUHJvamVjdFN0YXR1cycgKQogICAgICAgICAgICB8fCAnMCc7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1Byb2plY3R9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0RXJyb3JUeXBlfSA9ICdQcm9qZWN0TWlzc2luZ1ZhbHVlJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlIG5hbWUgaXMgdW5pcXVlCiAgICAgICAgICAgIG15ICVFeGlzdGluZ1Byb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCVFeGlzdGluZ1Byb2plY3QpIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0RXJyb3JUeXBlfSA9ICdQcm9qZWN0RHVwbGljYXRlTmFtZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgYWRkIHByb2plY3QKICAgICAgICAgICAgJFByb2plY3RJRCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRQcm9qZWN0SUQpIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIHRoZSBvdXRwdXQKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdQcm9qZWN0IGFkZGVkIScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7JUdldFBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyB3ZW50IHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJE5vdGUKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgIEluZm8gICAgID0+ICROb3RlLAogICAgICAgICAgICApCiAgICAgICAgICAgIDogJyc7CiAgICAgICAgJFNlbGYtPl9Qcm9qZWN0U2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZFByb2plY3QnLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCBwcm9qZWN0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRQcm9qZWN0JyApIHsKICAgICAgICBteSAkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICk7CgogICAgICAgICMgZ2V0IHByb2plY3QgZGF0YQogICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICBJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fUHJvamVjdFNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0UHJvamVjdCcsCiAgICAgICAgICAgICVQcm9qZWN0LAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgcHJvamVjdCBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFByb2plY3RBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CgogICAgICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgICAgICAkR2V0UGFyYW17SUR9ICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICkgfHwgJyc7CiAgICAgICAgJEdldFBhcmFte1Byb2plY3RTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2plY3RTdGF0dXMnICkKICAgICAgICAgICAgfHwgJzAnOwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0IFByb2plY3REZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBpZiAoICEkR2V0UGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlIG5hbWUgaXMgdW5pcXVlCiAgICAgICAgICAgIG15ICVFeGlzdGluZ1Byb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgaWYgdGhlIHByb2plY3QgbmFtZSBpcyBmb3VuZCwgY2hlY2sgdGhhdCB0aGUgSUQgaXMgZGlmZmVyZW50CiAgICAgICAgICAgIGlmICggJUV4aXN0aW5nUHJvamVjdCAmJiAkRXhpc3RpbmdQcm9qZWN0e0lEfSBuZSAkR2V0UGFyYW17SUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0SW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RFcnJvclR5cGV9ID0gJ1Byb2plY3REdXBsaWNhdGVOYW1lJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBlZGl0IHByb2plY3QKICAgICAgICAgICAgaWYgKCAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSglR2V0UGFyYW0pICkgewoKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdQcm9qZWN0IHVwZGF0ZWQhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fUHJvamVjdFNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0UHJvamVjdCcsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB0YXNrCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFRhc2snICkgewogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1Rhc2tTZXR0aW5nc0VkaXQoIEFjdGlvbiA9PiAnQWRkVGFzaycgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIHRhc2sgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFRhc2tBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICRUYXNrSUQ7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1ldGVycwogICAgICAgICRHZXRQYXJhbXtUYXNrfSAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYXNrJyApIHx8ICcnOwogICAgICAgICRHZXRQYXJhbXtUYXNrU3RhdHVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYXNrU3RhdHVzJyApCiAgICAgICAgICAgIHx8ICcwJzsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBpZiAoICEkR2V0UGFyYW17VGFza30gKSB7CiAgICAgICAgICAgICRFcnJvcnN7VGFza0ludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze1Rhc2tFcnJvclR5cGV9ID0gJ1Rhc2tNaXNzaW5nVmFsdWUnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgbmFtZSBpcyB1bmlxdWUKICAgICAgICAgICAgbXkgJUV4aXN0aW5nVGFzayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRHZXRQYXJhbXtUYXNrfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCVFeGlzdGluZ1Rhc2spIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7VGFza0ludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3tUYXNrRXJyb3JUeXBlfSA9ICdUYXNrRHVwbGljYXRlTmFtZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgYWRkIHRhc2sKICAgICAgICAgICAgJFRhc2tJRCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEdldFBhcmFte1Rhc2t9LAogICAgICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+ICRHZXRQYXJhbXtUYXNrU3RhdHVzfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkVGFza0lEKSB7CgogICAgICAgICAgICAgICAgIyBidWlsZCB0aGUgb3V0cHV0CiAgICAgICAgICAgICAgICAkU2VsZi0+X1NldHRpbmdPdmVydmlldygpOwogICAgICAgICAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVGFzayBhZGRlZCEnKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fVGFza1NldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGRUYXNrJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgdGFzawogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0VGFzaycgKSB7CiAgICAgICAgbXkgJElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FjdGlvbklEJyApIHx8ICcnOwoKICAgICAgICAjIGdldCBwcm9qZWN0IGRhdGEKICAgICAgICBteSAlVGFzayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJVRhc2tEYXRhID0gKAogICAgICAgICAgICBUYXNrICAgICAgID0+ICRUYXNre0FjdGlvbn0sCiAgICAgICAgICAgIFRhc2tTdGF0dXMgPT4gJFRhc2t7QWN0aW9uU3RhdHVzfSwKICAgICAgICApOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9UYXNrU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gICA9PiAnRWRpdFRhc2snLAogICAgICAgICAgICBBY3Rpb25JRCA9PiAkSUQsCiAgICAgICAgICAgICVUYXNrRGF0YSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHByb2plY3QgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRUYXNrQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAoICVHZXRQYXJhbSwgJUVycm9ycyApOwoKICAgICAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICAgICAgJEdldFBhcmFte0FjdGlvbklEfSAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FjdGlvbklEJyApICAgfHwgJyc7CiAgICAgICAgJEdldFBhcmFte1Rhc2tTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rhc2tTdGF0dXMnICkgfHwgJzAnOwogICAgICAgICRHZXRQYXJhbXtUYXNrfSAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYXNrJyApICAgICAgIHx8ICcnOwoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGlmICggISRHZXRQYXJhbXtUYXNrfSApIHsKICAgICAgICAgICAgJEVycm9yc3tUYXNrSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgbmFtZSBpcyB1bmlxdWUKICAgICAgICAgICAgbXkgJUV4aXN0aW5nVGFzayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRHZXRQYXJhbXtUYXNrfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgaWYgdGhlIHRhc2sgbmFtZSBpcyBmb3VuZCwgY2hlY2sgdGhhdCB0aGUgSUQgaXMgZGlmZmVyZW50CiAgICAgICAgICAgIGlmICggJUV4aXN0aW5nVGFzayAmJiAkRXhpc3RpbmdUYXNre0lEfSBuZSAkR2V0UGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tUYXNrSW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Rhc2tFcnJvclR5cGV9ID0gJ1Rhc2tEdXBsaWNhdGVOYW1lJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBlZGl0IGFjdGlvbiAodGFzaykKICAgICAgICAgICAgbXkgJEFjdGlvblVwZGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgICAgICBBY3Rpb25JRCAgICAgPT4gJEdldFBhcmFte0FjdGlvbklEfSwKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkR2V0UGFyYW17VGFza30sCiAgICAgICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gJEdldFBhcmFte1Rhc2tTdGF0dXN9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRBY3Rpb25VcGRhdGUpIHsKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdUYXNrIHVwZGF0ZWQhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fVGFza1NldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0VGFzaycsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB1c2VyCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFVzZXInICkgewoKICAgICAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgJE5ld1VzZXJJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOZXdVc2VySUQnICkKICAgICAgICAgICAgfHwgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZXJJRCcgKQogICAgICAgICAgICB8fCAnJzsKICAgICAgICBpZiAoICEkTmV3VXNlcklEICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1RoZSBVc2VySUQgaXMgbm90IHZhbGlkIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE5ld1RpbWVQZXJpb2QgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmV3VGltZVBlcmlvZCcgKTsKCiAgICAgICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KAogICAgICAgICAgICBVc2VySUQgPT4gJE5ld1VzZXJJRCwKICAgICAgICApOwoKICAgICAgICBteSAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJE5ld1VzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICRMYXN0UGVyaW9kTnVtYmVyICsgMSwKICAgICAgICApOwoKICAgICAgICAjIGlmIGl0IGlzIG5vdCBhbiBhY3Rpb24gYWJvdXQgYWRkaW5nIGEgbmV3IHRpbWUgcGVyaW9kCiAgICAgICAgaWYgKCAhJE5ld1RpbWVQZXJpb2QgJiYgISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAlVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICROZXdVc2VySUQsCiAgICAgICAgKTsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9Vc2VyU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ0FkZFVzZXInLAogICAgICAgICAgICBTdWJhY3Rpb24gPT4gJ0FkZFVzZXInLAogICAgICAgICAgICAlVXNlciwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHVzZXIgc2V0dGluZ3MKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFVzZXInICkgewogICAgICAgIG15ICRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VySUQnICkgfHwgJyc7CiAgICAgICAgaWYgKCAhJElEICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1RoZSBVc2VySUQgaXMgbm90IHZhbGlkIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE5ld1RpbWVQZXJpb2QgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmV3VGltZVBlcmlvZCcgKTsKICAgICAgICBteSAkTGFzdFBlcmlvZE51bWJlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiBpdCBpcyBhbiBhY3Rpb24gYWJvdXQgYWRkaW5nIGEgbmV3IHRpbWUgcGVyaW9kLCBpbnNlcnQgaXQKICAgICAgICBpZiAoJE5ld1RpbWVQZXJpb2QpIHsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQsCiAgICAgICAgICAgICAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIgKyAxLAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJyksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJUVycm9ycyA9ICgpOwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBZGRQZXJpb2QnICkKICAgICAgICAgICAgfHwgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1Ym1pdFVzZXJEYXRhJyApCiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICAjIGNoZWNrIHZhbGlkaXR5IG9mIHBlcmlvZHMKICAgICAgICAgICAgJUVycm9ycyA9ICRTZWxmLT5fQ2hlY2tWYWxpZGl0eVVzZXJQZXJpb2RzKAogICAgICAgICAgICAgICAgUGVyaW9kID0+ICRMYXN0UGVyaW9kTnVtYmVyLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fVXNlclNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uICAgID0+ICdFZGl0VXNlcicsCiAgICAgICAgICAgIFN1YmFjdGlvbiA9PiAnRWRpdFVzZXInLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJElELAogICAgICAgICAgICBFcnJvcnMgICAgPT4gXCVFcnJvcnMsCiAgICAgICAgICAgIFBlcmlvZHMgICA9PiAkTGFzdFBlcmlvZE51bWJlciwKICAgICAgICAgICAgJVVzZXIsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc2V0dGluZ3MgZm9yIGhhbmRsaW5nIHRpbWUgYWNjb3VudGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIGdldCB1c2VyIGRhdGEKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRVc2VyRGF0YXtDcmVhdGVQcm9qZWN0fSAmJiAhJFNlbGYtPntBY2Nlc3NSd30gKSB7CgogICAgICAgICMgcmV0dXJuIG5vIHBlcm1pc3Npb24gc2NyZWVuCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRoZSB1c2VyIGFjdGlvbiB0byBzaG93IGEgbWVzc2FnZSBpZiBhbiB1c2VyIHdhcyB1cGRhdGVkIG9yIGFkZGVkCiAgICBteSAkTm90ZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VyJyApOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICAkU2VsZi0+X1NldHRpbmdPdmVydmlldygpOwogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1NldHRpbmcnKSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAjIHNob3cgYSBub3RpZmljYXRpb24gbWVzc2FnZSBpZiBwcm9wZXIKICAgIGlmICgkTm90ZSkgewogICAgICAgICRPdXRwdXQgLj0gJE5vdGUgZXEgJ0VkaXRVc2VyJwogICAgICAgICAgICA/ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1VzZXIgdXBkYXRlZCEnKSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1VzZXIgYWRkZWQhJyksCiAgICAgICAgICAgICk7CiAgICB9CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0OwoKfQoKc3ViIF9DaGVja1ZhbGlkaXR5VXNlclBlcmlvZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRXJyb3JzID0gKCk7CiAgICBteSAlR2V0UGFyYW07CgogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJFBhcmFte1BlcmlvZH07ICRQZXJpb2QrKyApIHsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0KICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciAuICJbJFBlcmlvZF0iICk7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRQYXJhbWV0ZXIgLiAnLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnTWlzc2luZ1ZhbHVlJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlU3RhcnR9ICk7CiAgICAgICAgbXkgJFN0YXJ0RGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgTWludXRlID0+IDAsCiAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICk7CiAgICAgICAgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggJy0nLCAkR2V0UGFyYW17RGF0ZUVuZH0gKTsKICAgICAgICBteSAkRW5kRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgTWludXRlID0+IDAsCiAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFN0YXJ0RGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdJbnZhbGlkJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAhJEVuZERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdJbnZhbGlkJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAkU3RhcnREYXRlICYmICRFbmREYXRlICYmICRTdGFydERhdGUgPj0gJEVuZERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdCZWZvcmVEYXRlU3RhcnQnOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJUVycm9yczsKfQoKc3ViIF9Qcm9qZWN0U2V0dGluZ3NFZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1Byb2plY3QnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uTGlzdFByb2plY3QnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uU2V0dGluZ092ZXJ2aWV3JywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAjIGRlZmluZSBzdGF0dXMgbGlzdAogICAgbXkgJVN0YXR1c0xpc3QgPSAoCiAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ3ZhbGlkJyksCiAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ2ludmFsaWQnKSwKICAgICk7CgogICAgbXkgJFByb2plY3RTdGF0dXMgPSAxOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtQcm9qZWN0U3RhdHVzfSApIHsKICAgICAgICAkUHJvamVjdFN0YXR1cyA9ICRQYXJhbXtQcm9qZWN0U3RhdHVzfTsKICAgIH0KCiAgICAkUGFyYW17U3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVTdGF0dXNMaXN0LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFByb2plY3RTdGF0dXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnUHJvamVjdFN0YXR1cycsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGVQcm9qZWN0JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgc2hvd3MgaGVhZGVyCiAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdFZGl0UHJvamVjdCcgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckVkaXRQcm9qZWN0JywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckFkZFByb2plY3QnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHNlcnZlciBlcnJvciBtZXNzYWdlIChpZiBhbnkpIGZvciB0aGUgcHJvamVjdCBuYW1lCiAgICBpZiAoICRQYXJhbXtQcm9qZWN0RXJyb3JUeXBlfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkUGFyYW17UHJvamVjdEVycm9yVHlwZX0sCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9TZXR0aW5nT3ZlcnZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlUHJvamVjdCA9ICgpOwogICAgbXkgJURhdGEgICAgPSAoKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZFByb2plY3QnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgaGFzaCB0byBzYXZlIHJlZ2lzdGVyZWQgdXNlcnMKICAgIG15ICVVc2VyOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgaWYgKCAkU2VsZi0+e0FjY2Vzc1J3fSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uQWRkVGFzaycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGdldCBsaXN0IG9mIHJlZ2lzdGVyZWQgdXNlcnMgKGlmIGFueSkKICAgICAgICAlVXNlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCiAgICAgICAgVVNFUklORk86CiAgICAgICAgZm9yIG15ICRVc2VySW5mbyAoIHNvcnQgeyAkU2hvd25Vc2Vyc3skYX0gY21wICRTaG93blVzZXJzeyRifSB9IGtleXMgJVNob3duVXNlcnMgKSB7CiAgICAgICAgICAgIG5leHQgVVNFUklORk8gaWYgISRVc2VyeyRVc2VySW5mb307CgogICAgICAgICAgICAjIGRlbGV0ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgdXNlciBmcm9tIHRoZSAnbmV3JyBsaXN0CiAgICAgICAgICAgIGRlbGV0ZSAkU2hvd25Vc2Vyc3skVXNlckluZm99OwogICAgICAgIH0KCiAgICAgICAgJFNob3duVXNlcnN7Jy0nfSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4iKTsKCiAgICAgICAgaWYgKCBzY2FsYXIga2V5cyAlU2hvd25Vc2VycyA+IDEgKSB7CiAgICAgICAgICAgIG15ICROZXdVc2VyT3B0aW9uID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVTaG93blVzZXJzLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICcnLAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdOZXdVc2VySUQnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMCwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIk5ldyBVc2VyIiksCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uQWRkVXNlcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBOZXdVc2VyT3B0aW9uID0+ICROZXdVc2VyT3B0aW9uLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBTaG93IHByb2plY3QgZGF0YQogICAgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0UHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIGRlZmluZSBzdGF0dXMgbGlzdAogICAgbXkgJVN0YXR1c0xpc3QgPSAoCiAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ3ZhbGlkJyksCiAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ2ludmFsaWQnKSwKICAgICk7CgogICAgIyBzaG93IGxpc3Qgb2YgYXZhaWxhYmxlIHByb2plY3RzIChpZiBhbnkpCiAgICBpZiAoICRQcm9qZWN0e1Byb2plY3R9ICkgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRQcm9qZWN0VGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CgogICAgICAgIGZvciBteSAkUHJvamVjdElEICgKICAgICAgICAgICAgc29ydCB7ICRQcm9qZWN0e1Byb2plY3R9eyRhfSBjbXAgJFByb2plY3R7UHJvamVjdH17JGJ9IH0KICAgICAgICAgICAga2V5cyAleyAkUHJvamVjdHtQcm9qZWN0fSB9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSAgICAgICAgICAgID0gJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH07CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0RGVzY3JpcHRpb259ID0gJFByb2plY3R7UHJvamVjdERlc2NyaXB0aW9ufXskUHJvamVjdElEfTsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RJRH0gICAgICAgICAgPSAkUHJvamVjdElEOwogICAgICAgICAgICAkUGFyYW17U3RhdHVzfSAgICAgICAgICAgICA9ICRTdGF0dXNMaXN0eyAkUHJvamVjdHtQcm9qZWN0U3RhdHVzfXskUHJvamVjdElEfSB9OwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFByb2plY3RSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2UsIHNob3cgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UKICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1Byb2plY3REYXRhRm91bmRNc2cnLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0FjY2Vzc1J3fSApIHsKCiAgICAgICAgIyBTaG93IGFjdGlvbiBkYXRhCiAgICAgICAgbXkgJUFjdGlvbiA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZycsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgbGlzdCBvZiBhdmFpbGFibGUgdGFza3MvYWN0aW9ucyAoaWYgYW55KQogICAgICAgIGlmICglQWN0aW9uKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCB7ICRBY3Rpb257JGF9e0FjdGlvbn0gY21wICRBY3Rpb257JGJ9e0FjdGlvbn0gfSBrZXlzICVBY3Rpb24gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9ufSAgID0gJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvbn07CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9uSUR9ID0gJEFjdGlvbklEOwogICAgICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gICA9ICRTdGF0dXNMaXN0eyAkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9uU3RhdHVzfSB9OwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZ1JvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlLCBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9TZXR0aW5nRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgdXNlciBkYXRhCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlcicsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgbGlzdCBvZiByZWdpc3RlcmVkIHVzZXJzIChpZiBhbnkpCiAgICAgICAgaWYgKCVVc2VyKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlclRhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkVXNlcnskYX0gY21wICRVc2VyeyRifSB9IGtleXMgJVVzZXIgKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgbWlzc2luZyB1c2VyIGRhdGEKICAgICAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBteSAlVXNlckdlbmVyYWxEYXRhID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkUGFyYW17VXNlcn0gICAgICAgPSAiJFVzZXJHZW5lcmFsRGF0YXtVc2VyRnVsbG5hbWV9ICgkVXNlckdlbmVyYWxEYXRhe1VzZXJMb2dpbn0pIjsKICAgICAgICAgICAgICAgICRQYXJhbXtVc2VySUR9ICAgICA9ICRVc2VySUQ7CiAgICAgICAgICAgICAgICAkUGFyYW17Q29tbWVudH0gICAgPSAkVXNlckRhdGF7RGVzY3JpcHRpb259OwogICAgICAgICAgICAgICAgJFBhcmFte0NhbGVuZGFyTm99ID0gJFVzZXJEYXRhe0NhbGVuZGFyfTsKICAgICAgICAgICAgICAgICRQYXJhbXtDYWxlbmRhcn0gICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgKICAgICAgICAgICAgICAgICAgICAiVGltZVpvbmU6OkNhbGVuZGFyIgogICAgICAgICAgICAgICAgICAgICAgICAuICggJFBhcmFte0NhbGVuZGFyTm99IHx8ICcnICkgLiAiTmFtZSIKICAgICAgICAgICAgICAgICkgfHwgJ0RlZmF1bHQnOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlclJvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlLCBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9Vc2VyRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgX1Rhc2tTZXR0aW5nc0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1NldHRpbmcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uTGlzdFNldHRpbmcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uT3ZlcnZpZXdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAjIGRlZmluZSBzdGF0dXMgbGlzdAogICAgbXkgJVN0YXR1c0xpc3QgPSAoCiAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ3ZhbGlkJyksCiAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ2ludmFsaWQnKSwKICAgICk7CgogICAgbXkgJFRhc2tTdGF0dXMgPSAxOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtUYXNrU3RhdHVzfSApIHsKICAgICAgICAkVGFza1N0YXR1cyA9ICRQYXJhbXtUYXNrU3RhdHVzfTsKICAgIH0KCiAgICAkUGFyYW17U3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVTdGF0dXNMaXN0LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFRhc2tTdGF0dXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnVGFza1N0YXR1cycsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGVUYXNrJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgc2hvd3MgaGVhZGVyCiAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdFZGl0VGFzaycgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckVkaXRUYXNrJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckFkZFRhc2snLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHNlcnZlciBlcnJvciBtZXNzYWdlIChpZiBhbnkpIGZvciB0aGUgdGFzayBuYW1lCiAgICBpZiAoICRQYXJhbXtUYXNrRXJyb3JUeXBlfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkUGFyYW17VGFza0Vycm9yVHlwZX0sCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9Vc2VyU2V0dGluZ3NFZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGVzY3JpcHRpb24gU2hvd092ZXJ0aW1lIENyZWF0ZVByb2plY3QgQWxsb3dTa2lwIENhbGVuZGFyKSkgewogICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1NldHRpbmcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uTGlzdFNldHRpbmcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uT3ZlcnZpZXdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1JlZmVyZW5jZScsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCd2YWxpZCcpLAogICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdpbnZhbGlkJyksCiAgICApOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZmlsbCB1cCB0aGUgY2FsZW5kYXIgbGlzdAogICAgbXkgJENhbGVuZGFyTGlzdFJlZiA9IHsgMCA9PiAnRGVmYXVsdCcgfTsKICAgIG15ICRDYWxlbmRhckluZGV4ICAgPSAxOwogICAgd2hpbGUgKCAkQ29uZmlnT2JqZWN0LT5HZXQoICJUaW1lWm9uZTo6Q2FsZW5kYXIiIC4gJENhbGVuZGFySW5kZXggLiAiTmFtZSIgKSApIHsKICAgICAgICAkQ2FsZW5kYXJMaXN0UmVmLT57JENhbGVuZGFySW5kZXh9ID0gJENvbmZpZ09iamVjdC0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICRDYWxlbmRhckluZGV4IC4gIk5hbWUiICk7CiAgICAgICAgJENhbGVuZGFySW5kZXgrKzsKICAgIH0KCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCB1c2VyIGRhdGEKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICRQYXJhbXtDYWxlbmRhck9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiAkQ2FsZW5kYXJMaXN0UmVmLAogICAgICAgIE5hbWUgICAgICAgID0+ICdDYWxlbmRhcicsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBTZWxlY3RlZElEICA9PiAkR2V0UGFyYW17Q2FsZW5kYXJ9IHx8ICRVc2VyRGF0YXtDYWxlbmRhcn0gfHwgMCwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJFBhcmFte0Rlc2NyaXB0aW9ufSA9ICRHZXRQYXJhbXtEZXNjcmlwdGlvbn0gfHwgJFVzZXJEYXRhe0Rlc2NyaXB0aW9ufSB8fCAnJzsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZVVzZXInLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFNob3dPdmVydGltZSA9PiAoICRHZXRQYXJhbXtTaG93T3ZlcnRpbWV9IHx8ICRVc2VyRGF0YXtTaG93T3ZlcnRpbWV9ICkKICAgICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInCiAgICAgICAgICAgIDogJycsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gKCAkR2V0UGFyYW17Q3JlYXRlUHJvamVjdH0gfHwgJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICkKICAgICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInCiAgICAgICAgICAgIDogJycsCiAgICAgICAgICAgIEFsbG93U2tpcCA9PiAoICRHZXRQYXJhbXtBbGxvd1NraXB9IHx8ICRVc2VyRGF0YXtBbGxvd1NraXB9ICkKICAgICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInCiAgICAgICAgICAgIDogJycsCiAgICAgICAgfQogICAgKTsKCiAgICAjIGlmIHRoZXJlIGFyZSBlcnJvcnMgdG8gc2hvdwogICAgaWYgKCAkUGFyYW17RXJyb3JzfSAmJiAleyAkUGFyYW17RXJyb3JzfSB9ICkgewoKICAgICAgICAjIHNob3cgYWxsIGV4aXN0aW5nIHBlcmlvZHMKICAgICAgICBmb3IgKCBteSAkUGVyaW9kID0gMTsgJFBlcmlvZCA8PSAkUGFyYW17UGVyaW9kc307ICRQZXJpb2QrKyApIHsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMgV2Vla2x5SG91cnMgT3ZlcnRpbWUgUGVyaW9kU3RhdHVzICkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICIkUGFyYW1ldGVyXFskUGVyaW9kXF0iICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRQYXJhbXskUGVyaW9kfXtQZXJpb2RTdGF0dXNPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte1BlcmlvZFN0YXR1c30gfHwgJFBhcmFteyRQZXJpb2R9e1BlcmlvZFN0YXR1c30sCiAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICJQZXJpb2RTdGF0dXNbJFBlcmlvZF0iLAogICAgICAgICAgICAgICAgSUQgICAgICAgICA9PiAiUGVyaW9kU3RhdHVzLSRQZXJpb2QiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlBlcmlvZCBTdGF0dXMiKSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZE92ZXJ2aWV3Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgICAgICAgPT4gJFBlcmlvZCwKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnRJbnZhbGlkID0+ICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfQogICAgICAgICAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kSW52YWxpZCAgID0+ICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gfHwgJycsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzSW52YWxpZCA9PiAkUGFyYW17RXJyb3JzfS0+eyAnTGVhdmVEYXlzLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgICAgICAgID0+ICRHZXRQYXJhbXtEYXRlU3RhcnR9LAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgICAgICAgICA9PiAkR2V0UGFyYW17RGF0ZUVuZH0sCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgICAgICAgID0+ICRHZXRQYXJhbXtMZWF2ZURheXN9LAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzICAgICAgICA9PiAkR2V0UGFyYW17V2Vla2x5SG91cnN9LAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgICAgICAgICA9PiAkR2V0UGFyYW17T3ZlcnRpbWV9LAogICAgICAgICAgICAgICAgICAgIFBlcmlvZFN0YXR1c09wdGlvbiA9PiAkUGFyYW17JFBlcmlvZH17UGVyaW9kU3RhdHVzT3B0aW9ufSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RhdGVTdGFydCcKICAgICAgICAgICAgICAgICAgICAuICgKICAgICAgICAgICAgICAgICAgICAkUGFyYW17RXJyb3JzfS0+eyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfQogICAgICAgICAgICAgICAgICAgICAgICB8fCAnTWlzc2luZ1ZhbHVlJwogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgUGVyaW9kID0+ICRQZXJpb2QgfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdEYXRlRW5kJwogICAgICAgICAgICAgICAgICAgIC4gKCAkUGFyYW17RXJyb3JzfS0+eyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gfHwgJ01pc3NpbmdWYWx1ZScgKSwKICAgICAgICAgICAgICAgIERhdGEgPT4geyBQZXJpb2QgPT4gJFBlcmlvZCB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TaW5nbGVVc2VyU2V0dGluZ3NHZXQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgdXNlciBkYXRhCiAgICAgICAgaWYgKCVVc2VyKSB7CiAgICAgICAgICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJExhc3RQZXJpb2ROdW1iZXI7ICRQZXJpb2QrKyApIHsKICAgICAgICAgICAgICAgIG15ICVQZXJpb2RQYXJhbSA9ICgpOwoKICAgICAgICAgICAgICAgICMgZ2V0IGFsbCBuZWVkZWQgZGF0YSB0byBkaXNwbGF5CiAgICAgICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzIFdlZWtseUhvdXJzIE92ZXJ0aW1lKSkgewogICAgICAgICAgICAgICAgICAgICRQZXJpb2RQYXJhbXskUGFyYW1ldGVyfSA9ICRVc2VyeyRQZXJpb2R9eyRQYXJhbWV0ZXJ9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFBlcmlvZFBhcmFte1BlcmlvZH0gPSAkUGVyaW9kOwoKICAgICAgICAgICAgICAgICRQZXJpb2RQYXJhbXtQZXJpb2RTdGF0dXNPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICA9PiBcJVN0YXR1c0xpc3QsCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiAkVXNlcnskUGVyaW9kfXtVc2VyU3RhdHVzfSwKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICJQZXJpb2RTdGF0dXNbJFBlcmlvZF0iLAogICAgICAgICAgICAgICAgICAgIElEICAgICAgICAgPT4gIlBlcmlvZFN0YXR1cy0kUGVyaW9kIiwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiUGVyaW9kIFN0YXR1cyIpLAogICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZE92ZXJ2aWV3Um93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IFwlUGVyaW9kUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RPdmVydmlld1Jvd05vRGF0YScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyB2aWV3IG9sZGVyIGRheSBpbnNlcnRzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgcGFyYW1zCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF5IE1vbnRoIFllYXIgVXNlcklEKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZCBwYXJhbXMKICAgIGZvciBteSAkTmVlZGVkIChxdyhEYXkgTW9udGggWWVhcikpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1ZpZXc6IE5lZWQgJXMhJywgJE5lZWRlZCApLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGZvcm1hdCB0aGUgZGF0ZSBwYXJ0cwogICAgJFBhcmFte1llYXJ9ICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte1llYXJ9ICk7CiAgICAkUGFyYW17TW9udGh9ID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICAkUGFyYW17RGF5fSAgID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17RGF5fSApOwoKICAgICMgaWYgbm8gVXNlcklEIHBvc3RlZCB1c2UgdGhlIGN1cnJlbnQgdXNlcgogICAgJFBhcmFte1VzZXJJRH0gfHw9ICRTZWxmLT57VXNlcklEfTsKCiAgICAjIGdldCB0aW1lIGFuZCB0aW1lYWNjb3VudGluZyBvYmplY3QKICAgIG15ICREYXRlVGltZU9iamVjdEN1cnJlbnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCBjdXJyZW50IGRhdGUgYW5kIHRpbWUKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpLAogICAgKTsKCiAgICBteSAkTWF4QWxsb3dlZEluc2VydERheXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhBbGxvd2VkSW5zZXJ0RGF5cycpIHx8ICcxMCc7CiAgICAoICRQYXJhbXtZZWFyQWxsb3dlZH0sICRQYXJhbXtNb250aEFsbG93ZWR9LCAkUGFyYW17RGF5QWxsb3dlZH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFllYXIsICRNb250aCwgJERheSwgMCwgMCwgLSRNYXhBbGxvd2VkSW5zZXJ0RGF5cyApOwoKICAgIG15ICREYXRlVGltZU9iamVjdEdpdmVuID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIH0KICAgICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0QWxsb3dlZCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJBbGxvd2VkfSwKICAgICAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRoQWxsb3dlZH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXlBbGxvd2VkfSwKICAgICAgICB9CiAgICApOwoKICAgIGlmICgKICAgICAgICAkRGF0ZVRpbWVPYmplY3RHaXZlbi0+Q29tcGFyZSggRGF0ZVRpbWVPYmplY3QgPT4gJERhdGVUaW1lT2JqZWN0QWxsb3dlZCApCiAgICAgICAgPiAwCiAgICAgICAgJiYgJFBhcmFte1VzZXJJRH0gPT0gJFNlbGYtPntVc2VySUR9CiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHRoZSBuYW1pbmcgb2YgdGhlIGFnZW50IHdoaWNoIHRpbWUgYWNjb3VudGluZyBpcyB2aXNpdGVkCiAgICBpZiAoICRQYXJhbXtVc2VySUR9ICE9ICRTZWxmLT57VXNlcklEfSApIHsKICAgICAgICBteSAlU2hvd25Vc2VycyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEKICAgICAgICApOwogICAgICAgICRQYXJhbXtVc2VyfSA9ICRTaG93blVzZXJzeyAkUGFyYW17VXNlcklEfSB9OwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVc2VyJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgICRQYXJhbXtXZWVrZGF5fSAgICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXlPZldlZWsoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gKTsKICAgICRQYXJhbXtXZWVrZGF5X3RvX1RleHR9ID0gJFdlZWtkYXlBcnJheVsgJFBhcmFte1dlZWtkYXl9IC0gMSBdOwogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ICAgPSAkTW9udGhBcnJheVsgJFBhcmFte01vbnRofSBdOwoKICAgICMgVmFsdWVzIGZvciB0aGUgbGluayBpY29ucyA8PgogICAgKCAkUGFyYW17WWVhckJhY2t9LCAkUGFyYW17TW9udGhCYWNrfSwgJFBhcmFte0RheUJhY2t9ICkKICAgICAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0sIDAsIDAsIC0xICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSwgMCwgMCwgMSApOwoKICAgICRQYXJhbXtEYXRlU2VsZWN0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkRGF0ZVNlbGVjdGlvbigKICAgICAgICAlUGFyYW0sCiAgICAgICAgUHJlZml4ICAgPT4gJycsCiAgICAgICAgRm9ybWF0ICAgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsCiAgICAgICAgVmFsaWRhdGUgPT4gMSwKICAgICAgICBDbGFzcyAgICA9PiAkUGFyYW17RXJyb3JzfS0+e0RhdGVJbnZhbGlkfSwKICAgICk7CgogICAgIyBTaG93IFdvcmtpbmcgVW5pdHMKICAgICMgZ2V0IGV4aXN0aW5nIHdvcmtpbmcgdW5pdHMKICAgIG15ICVEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNHZXQoCiAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAkUGFyYW17RGF0ZX0gPSAkRGF0YXtEYXRlfTsKCiAgICAjIGdldCBwcm9qZWN0IGFuZCBhY3Rpb24gc2V0dGluZ3MKICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKICAgIG15ICVBY3Rpb24gID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKICAgICMgZ2V0IHNpY2ssIGxlYXZlIGRheSBhbmQgb3ZlcnRpbWUKICAgICRQYXJhbXtTaWNrfSAgICAgPSAkRGF0YXtTaWNrfSAgICAgPyAnY2hlY2tlZCcgOiAnJzsKICAgICRQYXJhbXtMZWF2ZURheX0gPSAkRGF0YXtMZWF2ZURheX0gPyAnY2hlY2tlZCcgOiAnJzsKICAgICRQYXJhbXtPdmVydGltZX0gPSAkRGF0YXtPdmVydGltZX0gPyAnY2hlY2tlZCcgOiAnJzsKCiAgICAjIG9ubHkgc2hvdyB0aGUgdW5pdCBibG9jayBpZiB0aGVyZSBpcyBzb21lIGRhdGEKICAgIG15ICRVbml0c1JlZiA9ICREYXRhe1dvcmtpbmdVbml0c307CiAgICBpZiAoICRVbml0c1JlZi0+WzBdICkgewoKICAgICAgICBmb3IgbXkgJFVuaXRSZWYgKCBAeyRVbml0c1JlZn0gKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VuaXQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdCAgID0+ICRQcm9qZWN0e1Byb2plY3R9eyAkVW5pdFJlZi0+e1Byb2plY3RJRH0gfSwKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICAgPT4gJEFjdGlvbnsgJFVuaXRSZWYtPntBY3Rpb25JRH0gfXtBY3Rpb259LAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAkVW5pdFJlZi0+e1JlbWFya30sCiAgICAgICAgICAgICAgICAgICAgU3RhcnRUaW1lID0+ICRVbml0UmVmLT57U3RhcnRUaW1lfSwKICAgICAgICAgICAgICAgICAgICBFbmRUaW1lICAgPT4gJFVuaXRSZWYtPntFbmRUaW1lfSwKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJFVuaXRSZWYtPntQZXJpb2R9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUb3RhbCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgVG90YWwgPT4gc3ByaW50ZiggIiUuMmYiLCAkRGF0YXtUb3RhbH0gKSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vRGF0YUZvdW5kJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFBhcmFte1NpY2t9IHx8ICRQYXJhbXtMZWF2ZURheX0gfHwgJFBhcmFte092ZXJ0aW1lfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3RoZXJUaW1lcycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgU2ljayAgICAgPT4gJFBhcmFte1NpY2t9LAogICAgICAgICAgICAgICAgTGVhdmVEYXkgPT4gJFBhcmFte0xlYXZlRGF5fSwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lID0+ICRQYXJhbXtPdmVydGltZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBteSAkVmFjYXRpb24gPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgQ2FsZW5kYXIgPT4gJFVzZXJEYXRhe0NhbGVuZGFyfSwKICAgICk7CgogICAgaWYgKCRWYWNhdGlvbikgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdWYWNhdGlvbicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgVmFjYXRpb24gPT4gJFZhY2F0aW9uLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBwcmVzZW50YXRpb24KICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gJ1ZpZXcnLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nVmlldycKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBXMzAwcHgiPgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiWWVhciIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLlllYXIgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiTW9udGgiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgIDxwIGNsYXNzPSJWYWx1ZSI+CiAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuTW9udGgpIHwgaHRtbCAlXQogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkRheSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLkRheSB8IGh0bWwgJV0KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPC9maWVsZHNldD4KPHAgY2xhc3M9IlNwYWNpbmdUb3AgQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5PyIpIHwgaHRtbCAlXQo8L3A+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIkVkaXQgVGltZSBSZWNvcmQiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Byb2plY3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNyZWF0ZVByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1nZWFyIj48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBzZXR0aW5ncyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkNyZWF0ZVByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Byb2plY3QiKSAlXQoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJWYWxpZGF0ZSIgbmFtZT0iRGF0ZVNlbGVjdGlvbiIgaWQ9IkRhdGVTZWxlY3Rpb25Gb3JtIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkVkaXQiIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRlICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9Ik5hdmlnYXRpb25TZWxlY3QiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIElubGluZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1hcnJvdy1jaXJjbGUtby1yaWdodCI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF5cyB3aXRob3V0IGVudHJpZXMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICBbJSBEYXRhLkluY29tcGxldGVXb3JraW5nRGF5c1NlbGVjdCAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkluY29tcGxldGVXb3JraW5nRGF5cyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnkiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXlzIHdpdGhvdXQgZW50cmllcyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBJbmNvbXBsZXRlV29ya2luZ0RheXMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGlkPSJTZWxlY3RBbGxEYXlzIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwiIG5hbWU9IkluY29tcGxldGVXb3JraW5nRGF5LUFsbCIgLz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRGF0ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICBbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlcxMHBjIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJJbmNvbXBsZXRlV29ya2luZ0RheS1bJSBEYXRhLkRhdGUgfCBodG1sICVdIiBuYW1lPSJJbmNvbXBsZXRlV29ya2luZ0RheS1bJSBEYXRhLkRhdGUgfCBodG1sICVdIiAvPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGxhYmVsIGZvcj0iSW5jb21wbGV0ZVdvcmtpbmdEYXktWyUgRGF0YS5EYXRlIHwgaHRtbCAlXSI+WyUgRGF0YS5EYXRlSFIgfCBMb2NhbGl6ZSgiRGF0ZSIpICVdIC0gWyUgVHJhbnNsYXRlKERhdGEuV2Vla2RheSkgfCBodG1sICVdPC9sYWJlbD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJXMTBwYyI+PGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXkgfCB1cmkgJV0iPjxpIGNsYXNzPSJmYSBmYS1lZGl0Ij48L2k+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgWyUgUmVuZGVyQmxvY2tFbmQoIkluY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeVNpbmdsZURheSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICAgICAgPCEtLSA8dWwgY2xhc3M9IkluY29tcGxldGVXb3JraW5nRGF5cyI+CiAgICAgICAgICAgICAgICAgICAgPGxpIGlkPSJTZWxlY3RBbGxEYXlzIj48bGFiZWwgZm9yPSJJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwiPjxlbT5bJSBUcmFuc2xhdGUoIlNlbGVjdCBhbGwgZGF5cyIpIHwgaHRtbCAlXTwvZW0+PC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4gLSA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4gLS0+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgaWQ9Ik1hc3NFbnRyeSIgbmFtZT0iTWFzc0VudHJ5IiBjbGFzcz0iU3BhY2luZ1RvcFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9Ik1hc3NFbnRyeSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJEYXRlcyIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJMZWF2ZURheSIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTaWNrIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ0aW1lIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJNYXNzRW50cnlTdWJtaXQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlLW8iPiA8L2k+WyUgVHJhbnNsYXRlKCJNYXNzIGVudHJ5IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1hc3NFbnRyeUNvbmZpcm1EaWFsb2ciIGNsYXNzPSJIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlBsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyIpIHwgaHRtbCAlXS48L2gyPgogICAgICAgICAgICAgICAgICAgIDx1bCBpZD0iTWFzc0VudHJ5Q29uZmlybVJhZGlvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJMZWF2ZURheSIgbmFtZT0iQWJzZW5jZVtdIiBpZD0iQ29uZmlybUxlYXZlRGF5IiAvPjxsYWJlbCBmb3I9IkNvbmZpcm1MZWF2ZURheSI+WyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXTwvbGFiZWw+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJTaWNrIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtU2ljayIgLz48bGFiZWwgZm9yPSJDb25maXJtU2ljayI+WyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9InJhZGlvIiBkYXRhLWFic2VuY2U9Ik92ZXJ0aW1lIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtT3ZlcnRpbWUiIC8+PGxhYmVsIGZvcj0iQ29uZmlybU92ZXJ0aW1lIj5bJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnkiKSAlXQoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJSZWZlcmVuY2UiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgXCIqXCIuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRhdGUiKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZShEYXRhLldlZWtkYXlfdG9fVGV4dCkgfCBodG1sICVdIFslIERhdGEuWWVhciB8IGh0bWwgJV0tWyUgRGF0YS5Nb250aCB8IGh0bWwgJV0tWyUgRGF0YS5EYXkgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iV29ya2luZ1VuaXRzIiBpZD0iV29ya2luZ1VuaXRzIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJFZGl0IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlJlY29yZHNOdW1iZXIiIGlkPSJSZWNvcmRzTnVtYmVyIiB2YWx1ZT0iWyUgRGF0YS5SZWNvcmRzTnVtYmVyIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdGF0dXMiIHZhbHVlPSJBY3Rpb24iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iWWVhciIgdmFsdWU9IlslIERhdGEuWWVhciB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTW9udGgiIHZhbHVlPSJbJSBEYXRhLk1vbnRoIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJEYXkiIHZhbHVlPSJbJSBEYXRhLkRheSB8IGh0bWwgJV0iIC8+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXRCbG9jayIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciBIaWdoQ2VsbHMiIGlkPSJJbnNlcnRXb3JraW5nSG91cnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUmVtYXJrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGFydCIpIHwgaHRtbCAlXSAoSEg6TU0pPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJFbmQiKSB8IGh0bWwgJV0gKEhIOk1NKTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPlslIERhdGEuUGVyaW9kTm90ZSB8IGh0bWwgJV08L3NwYW4+IFslIFRyYW5zbGF0ZSgiUGVyaW9kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVW5pdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IldvcmtpbmdIb3VycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3RPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvamVjdElEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RJRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb21ib19Qcm9qZWN0SURbJSBEYXRhLklEIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ29tYm9fUHJvamVjdElEWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQWN0aW9uT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbWJvX0FjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbWJvX0FjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJSZW1hcmtbWyUgRGF0YS5JRCB8IGh0bWwgJV1dIiBpZD0iUmVtYXJrWyUgRGF0YS5JRCB8IGh0bWwgJV0iIGNsYXNzPSJWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19SZW1hcmsgWyUgRGF0YS5SZW1hcmtJbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuUmVtYXJrIHwgaHRtbCAlXSIgc2l6ZT0iMzUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbWFyayIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmVtYXJrWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSZW1hcmtbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlN0YXJ0VGltZVtbJSBEYXRhLklEIHwgaHRtbCAlXV0iIGlkPSJTdGFydFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXSIgY2xhc3M9IlN0YXJ0VGltZSBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19TdGFydFRpbWUgWyUgRGF0YS5TdGFydFRpbWVSZXF1aXJlZCB8IGh0bWwgJV0gWyUgRGF0YS5TdGFydFRpbWVJbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuU3RhcnRUaW1lIHwgaHRtbCAlXSIgc2l6ZT0iNyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU3RhcnQgVGltZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU3RhcnRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlN0YXJ0VGltZVslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZU5lZ2F0aXZlU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlJlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lMjRIb3VycyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIjI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZTI0SG91cnMiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWVJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJFbmRUaW1lW1slIERhdGEuSUQgfCBodG1sICVdXSIgaWQ9IkVuZFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXSIgY2xhc3M9IkVuZFRpbWUgVmFsaWRhdGVfRGVwZW5kaW5nUmVxdWlyZWRBTkQgVmFsaWRhdGVfRGVwZW5kaW5nX1N0YXJ0VGltZVslIERhdGEuSUQgfCBodG1sICVdIFslIERhdGEuRW5kVGltZVJlcXVpcmVkIHwgaHRtbCAlXSBbJSBEYXRhLkVuZFRpbWVJbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuRW5kVGltZSB8IGh0bWwgJV0iIHNpemU9IjciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkVuZCBUaW1lIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJFbmRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkVuZFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVuZFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lQmVmb3JlU3RhcnRUaW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZUJlZm9yZVN0YXJ0VGltZVNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZU5lZ2F0aXZlU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZU5lZ2F0aXZlU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZUludmFsaWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0SW5wdXRQZXJpb2QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlBlcmlvZFtbJSBEYXRhLklEIHwgaHRtbCAlXV0iIGlkPSJQZXJpb2RbJSBEYXRhLklEIHwgaHRtbCAlXSIgY2xhc3M9IlBlcmlvZCBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19QZXJpb2QgVmFsaWRhdGVfVGltZVVuaXRzIFslIERhdGEuUGVyaW9kUmVxdWlyZWQgfCBodG1sICVdIFslIERhdGEuUGVyaW9kSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIHNpemU9IjciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlBlcmlvZCIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGVyaW9kWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBlcmlvZFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGVyaW9kR2VuZXJpY1NlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbnZhbGlkSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJJbnZhbGlkSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlplcm9Ib3Vyc1BlcmlvZFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJaZXJvSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk5lZ2F0aXZlUGVyaW9kU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiTmVnYXRpdmVQZXJpb2RTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVW5pdElucHV0UGVyaW9kIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVW5pdFBlcmlvZFdpdGhvdXRJbnB1dCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuUGVyaW9kIHwgaHRtbCAlXTwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0UGVyaW9kV2l0aG91dElucHV0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiIgY2xhc3M9IlJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQbHVzIiB0eXBlPSJidXR0b24iIGlkPSJNb3JlSW5wdXRGaWVsZHMiIG5hbWU9Ik1vcmVJbnB1dEZpZWxkcyI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgb25lIHJvdyIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVuaXRCbG9jayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPjwvdGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIlRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTo8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iVG90YWxIb3VycyI+WyUgRGF0YS5Ub3RhbCB8IGh0bWwgJV08L3NwYW4+PC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlYWRvbmx5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLkRlc2NyaXB0aW9uKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlYWRvbmx5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdGhlclRpbWVzIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wIEFic2VuY2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBpZD0iTGVhdmVEYXkiIG5hbWU9IkxlYXZlRGF5IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXSIgY2xhc3M9IlslIERhdGEuTGVhdmVEYXlJbnZhbGlkICVdIiBbJSBEYXRhLkxlYXZlRGF5ICVdIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkxlYXZlRGF5Ij5bJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGVhdmVEYXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGlkPSJTaWNrIiBuYW1lPSJTaWNrIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdIiBjbGFzcz0iWyUgRGF0YS5TaWNrSW52YWxpZCAlXSIgWyUgRGF0YS5TaWNrICVdIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNpY2siPlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNpY2tTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGlkPSJPdmVydGltZSIgbmFtZT0iT3ZlcnRpbWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdIiBjbGFzcz0iWyUgRGF0YS5PdmVydGltZUludmFsaWQgJV0iIFslIERhdGEuT3ZlcnRpbWUgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iT3ZlcnRpbWUiPlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdmVydGltZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIllvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk90aGVyVGltZXMiKSAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNlbnRlciBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIG5hbWU9Ikluc2VydFdvcmtpbmdVbml0cyIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJEZWxldGVUaW1lQWNjb3VudGluZ0VudHJ5IiBocmVmPSIjIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTsiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8cCBpZD0iU2lja0xlYXZlTWVzc2FnZSIgY2xhc3M9IkhpZGRlbiBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/IikgfCBodG1sICVdCjwvcD4KCjxwIGlkPSJWYWNhdGlvbk1lc3NhZ2UiIGNsYXNzPSJIaWRkZW4gQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8iKSB8IGh0bWwgJV0KPC9wPgoKPHAgaWQ9Ik92ZXJ0aW1lTWVzc2FnZSIgY2xhc3M9IkhpZGRlbiBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyIpIHwgaHRtbCAlXQo8L3A+Cgo8cCBpZD0iTW9yZTE2SG91cnNNZXNzYWdlIiBjbGFzcz0iSGlkZGVuIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyIpIHwgaHRtbCAlXQo8L3A+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiI+CiAgICA8aDEgY2xhc3M9IkhlYWRlciI+WyUgVHJhbnNsYXRlKCJUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3IikgfCBodG1sICVdPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckxhc3QiPgogICAgICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydGltZSIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIk92ZXJ0aW1lIChIb3VycykiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgKHRoaXMgbW9udGgpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5PdmVydGltZSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk92ZXJ0aW1lICh0b3RhbCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLk92ZXJ0aW1lVW50aWwgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLk92ZXJ0aW1lVG90YWwgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ0aW1lIikgJV0KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlZhY2F0aW9uIChEYXlzKSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLkxlYXZlRGF5IHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiVmFjYXRpb24gdGFrZW4gKHRvdGFsKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuTGVhdmVEYXlUb3RhbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlJlbWFpbmluZyB2YWNhdGlvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuTGVhdmVEYXlSZW1haW5pbmcgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlNpY2sgTGVhdmUgKERheXMpIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlNpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5TaWNrIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5TaWNrVG90YWwgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIk92ZXJ2aWV3IikgfCBodG1sICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAtIFslIERhdGEuVXNlciB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQWRkaXRpb25hbEluZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQcmV2aW91cyBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJCYWNrIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhCYWNrIHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTmV4dCBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJOZXh0IHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhOZXh0IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5Nb250aF90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJEYXkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIldlZWtkYXkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIldvcmtpbmcgSG91cnMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXSBNYXN0ZXJBY3Rpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRml4ZWQgRGF5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIERhdGEuQWN0aW9uIHwgdXJpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07RGF5PVslIERhdGEuRGF5IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRml4ZWQgV2Vla2RheSI+WyUgVHJhbnNsYXRlKERhdGEuV2Vla2RheV90b19UZXh0KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5Db21tZW50KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuV29ya2luZ0hvdXJzIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AgUmlnaHQiPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJUb3RhbCB3b3JrZWQgaG91cnMiKSB8IGh0bWwgJV06PC9zdHJvbmc+IFslIERhdGEuV29ya2luZ0hvdXJzIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlVzZXIncyBwcm9qZWN0IG92ZXJ2aWV3IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07UHJvamVjdFN0YXR1c1Nob3c9WyUgRGF0YS5Qcm9qZWN0U3RhdHVzU2hvdyB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFslIFRyYW5zbGF0ZShEYXRhLlNob3dQcm9qZWN0cykgfCBodG1sICVdKQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciBIaWdoQ2VsbHMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiSG91cnMgKG1vbnRobHkpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAoTGlmZXRpbWUpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHJvd3NwYW49IlslIERhdGEuUm93U3BhbiAlXSIgY2xhc3M9IlJvd1NwYW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0Tm9MaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0ICVdClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0Tm9MaW5rIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdExpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZztTdWJhY3Rpb249UmVwb3J0aW5nUHJvamVjdDtQcm9qZWN0SUQ9WyUgRGF0YS5Qcm9qZWN0SUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3RMaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+WyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnMgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkhvdXJzVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvblRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSG91cnMgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvblRvdGFsIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJHcmFuZFRvdGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIkdyYW5kIHRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxIb3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJHcmFuZFRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlRpbWUgcmVwb3J0aW5nIikgfCBodG1sICVdOiBbJSBUcmFuc2xhdGUoRGF0YS5Nb250aF90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyICVdPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTW9udGggTmF2aWdhdGlvbiIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik1vbnRoU2VsZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3cgTGVmdCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUHJldmlvdXMgbW9udGgiKSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyQmFjayB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoQmFjayB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTmV4dCBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJOZXh0IHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhOZXh0IHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+WyUgVHJhbnNsYXRlKERhdGEuTW9udGhfdG9fVGV4dCkgfCBodG1sICVdIFslIERhdGEuWWVhciAlXTwvc3Ryb25nPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iY29tcG9zZSIgaWQ9IkRhdGVTZWxlY3Rpb25Gb3JtIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlJlcG9ydGluZyIgLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk1vbnRoT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5ZZWFyT3B0aW9uICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTmF2aWdhdGlvblNlbGVjdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIFNwYWNpbmdUb3AiIGFjY2Vzc2tleT0iZyI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBkYXRlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVXNlciByZXBvcnRzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQgY2xhc3M9IlR3b1Jvd3MiPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2VudGVyIiBjb2xzcGFuPSI0Ij5bJSBUcmFuc2xhdGUoIk1vbnRobHkgdG90YWwiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIiIGNvbHNwYW49IjIiPlslIFRyYW5zbGF0ZSgiTGlmZXRpbWUgdG90YWwiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJVc2VyIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIldvcmtpbmcgSG91cnMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVmFjYXRpb24iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU2ljayBsZWF2ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJPdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiByZW1haW5pbmciKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLldvcmtpbmdIb3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5PdmVydGltZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5MZWF2ZURheSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5TaWNrIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLk92ZXJ0aW1lVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuTGVhdmVEYXlSZW1haW5pbmcgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyR3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbFdvcmtpbmdIb3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsT3ZlcnRpbWUgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbExlYXZlRGF5IHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxTaWNrIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxPdmVydGltZVRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxMZWF2ZURheVJlbWFpbmluZyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlckdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXJUYWJsZSIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0cyIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJbJSBEYXRhLlByb2plY3RTdGF0dXNMaW5rQ2xhc3MgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07UHJvamVjdFN0YXR1c1Nob3c9WyUgRGF0YS5Qcm9qZWN0U3RhdHVzU2hvdyB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIChbJSBUcmFuc2xhdGUoRGF0YS5TaG93UHJvamVjdHMpIHwgaHRtbCAlXSkKICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIChtb250aGx5KSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAoTGlmZXRpbWUpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCByb3dzcGFuPSJbJSBEYXRhLlJvd1NwYW4gJV0iIGNsYXNzPSJSb3dTcGFuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249UmVwb3J0aW5nUHJvamVjdDtQcm9qZWN0SUQ9WyUgRGF0YS5Qcm9qZWN0SUQgfCB1cmkgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJvamVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5bJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdERlc2NyaXB0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkhvdXJzVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25Ub3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLkhvdXJzIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3Vyc1RvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvblRvdGFsIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RHcmFuZFRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkdyYW5kVG90YWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIkdyYW5kIHRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsSG91cnMgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0R3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdFRhYmxlIikgJV0KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0IikgfCBodG1sICVdOiBbJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+ClslIElGIERhdGEuU2hvd09ubHlBY3RpdmVVc2VycyA9PSAnMScgJV0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkN1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblN5c0NvbmZpZztTdWJhY3Rpb249RWRpdDtTeXNDb25maWdHcm91cD1UaW1lQWNjb3VudGluZztTeXNDb25maWdTdWJHcm91cD1Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdXRuaW5nOjpWaWV3UmVwb3J0aW5nUHJvamVjdCI+U2hvd09ubHlBY3RpdmVVc2VyczwvYT4KICAgICAgICAgICAgICAgIDwvcD4KWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblN5c0NvbmZpZztTdWJhY3Rpb249RWRpdDtTeXNDb25maWdHcm91cD1UaW1lQWNjb3VudGluZztTeXNDb25maWdTdWJHcm91cD1Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdXRuaW5nOjpWaWV3UmVwb3J0aW5nUHJvamVjdCI+U2hvd09ubHlBY3RpdmVVc2VyczwvYT4KICAgICAgICAgICAgICAgIDwvcD4KWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0IikgfCBodG1sICVdOiBbJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Vc2VyRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Vc2VyRGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXJUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlck5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIERhdGEuVXNlciB8IGh0bWwgJV08L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlck5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkhvdXJzIHwgaHRtbCAlXTwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlclRvdGFsIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRvdGFsQWxsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEFsbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlclRvdGFsQWxsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KIFslIFJlbmRlckJsb2NrRW5kKCJVc2VyVGFibGUiKSAlXQoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJIaXN0b3J5IikgfCBodG1sICVdOiBbJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJEYXRlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSZW1hcmsiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUGVyaW9kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuRGF0ZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuVXNlciB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5SZW1hcmsgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuUGVyaW9kIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkdyYW5kVG90YWwiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIaXN0b3J5VG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSGlzdG9yeVRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJIaXN0b3J5VG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Byb2plY3QiKSAlXQo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIkVkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25MaXN0UHJvamVjdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFByb2plY3QiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgcHJvamVjdCIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFByb2plY3QiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uU2V0dGluZ092ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBzZXR0aW5ncyBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvblNldHRpbmdPdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3RQcm9qZWN0IikgJV0KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdVcGRhdGVQcm9qZWN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZGRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBQcm9qZWN0IikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFkZFByb2plY3QiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJFZGl0UHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFByb2plY3QgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRWRpdFByb2plY3QiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iUHJvamVjdFVwZGF0ZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXUFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iSUQiIHZhbHVlPSJbJSBEYXRhLklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlByb2plY3QiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUHJvamVjdCIgaWQ9IlByb2plY3QiIHZhbHVlPSJbJSBEYXRhLlByb2plY3QgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5Qcm9qZWN0SW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RNaXNzaW5nVmFsdWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvamVjdFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdE1pc3NpbmdWYWx1ZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0RHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0RHVwbGljYXRlTmFtZSIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJvamVjdERlc2NyaXB0aW9uIj5bJSBUcmFuc2xhdGUoIkRlc2NyaXB0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJQcm9qZWN0RGVzY3JpcHRpb24iIGlkPSJQcm9qZWN0RGVzY3JpcHRpb24iIHZhbHVlPSJbJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIxNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByb2plY3RTdGF0dXMiPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhdHVzT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiBpZD0iU3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlUHJvamVjdCIpICVdCiAgICA8L2Rpdj4KPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Byb2plY3QiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU2V0dGluZyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uTGlzdFNldHRpbmciKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQWRkUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBZGRQcm9qZWN0Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIHByb2plY3QiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGRQcm9qZWN0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQWRkVGFzayIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBZGRUYXNrIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQgdGFzayIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgdGFzayIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFRhc2siKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBpZD0iQWN0aW9uQWRkVXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBZGRVc2VyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5ld1VzZXJPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGRVc2VyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXdTZXR0aW5nIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBzZXR0aW5ncyBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbk92ZXJ2aWV3U2V0dGluZyIpICVdCgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25MaXN0U2V0dGluZyIpICVdCgogICAgWyUgSUYgIUVudigiU3ViYWN0aW9uIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRmlsdGVyIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWx0ZXJCb3giIHBsYWNlaG9sZGVyPSJbJSBUcmFuc2xhdGUoIkp1c3Qgc3RhcnQgdHlwaW5nIHRvIGZpbHRlci4uLiIpIHwgaHRtbCAlXSIgdmFsdWU9IiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWZlcmVuY2UiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlJlZmVyZW5jZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlJlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSBcIipcIi4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVmZXJlbmNlIikgJV0KCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+PGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vUHJvamVjdERhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vUHJvamVjdERhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFByb2plY3RUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlByb2plY3RzIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzMzcGMiPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlczM3BjIj5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuU3RhdHVzID09ICdpbnZhbGlkJyVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249RWRpdFByb2plY3Q7SUQ9WyUgRGF0YS5Qcm9qZWN0SUQgfCB1cmkgJV0iPlslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB0aXRsZT0iWyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gfCBodG1sICVdIj5bJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiB8IHRydW5jYXRlKDQwKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlN0YXR1cykgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFByb2plY3RUYWJsZSIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZyIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPjxhIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgb3IgaGlkZSB0aGUgY29udGVudCIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iPjwvaT48L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJUYXNrIExpc3QiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1NldHRpbmdEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1NldHRpbmdEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nVGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJUYXNrcyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlczM3BjIj5bJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbJSBJRiBEYXRhLlN0YXR1cyA9PSAnaW52YWxpZCclXWNsYXNzPSJJbnZhbGlkIlslIEVORCAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUVkaXRUYXNrO0FjdGlvbklEPVslIERhdGEuQWN0aW9uSUQgfCB1cmkgJV0iPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlN0YXR1cykgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFNldHRpbmdUYWJsZSIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3VXBkYXRlVGFzayIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyQWRkVGFzayIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBZGQgVGFzayIpIHwgaHRtbCAlXTwvaDI+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJBZGRUYXNrIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyRWRpdFRhc2siKSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRWRpdCBUYXNrIFNldHRpbmdzIikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckVkaXRUYXNrIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9IlRhc2tVcGRhdGUiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV1BY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbklEIiB2YWx1ZT0iWyUgRGF0YS5BY3Rpb25JRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUYXNrIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlRhc2siIGlkPSJUYXNrIiB2YWx1ZT0iWyUgRGF0YS5UYXNrIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuVGFza0ludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUYXNrRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUYXNrTWlzc2luZ1ZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRhc2tTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRhc2tNaXNzaW5nVmFsdWUiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVGFza0R1cGxpY2F0ZU5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGFza1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGFza0R1cGxpY2F0ZU5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVGFza1N0YXR1cyI+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0dXNPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIGlkPSJTdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVUYXNrIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0VXNlciIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPjxhIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgb3IgaGlkZSB0aGUgY29udGVudCIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iPjwvaT48L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJVc2VyIExpc3QiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRVc2VyVGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJVc2VycyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlczM3BjIj5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXMzNwYyI+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNhbGVuZGFyIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0VXNlclJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUVkaXRVc2VyO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+WyUgRGF0YS5Vc2VyIHwgaHRtbCAlXTwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQ29tbWVudCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuQ2FsZW5kYXIpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFVzZXJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRVc2VyVGFibGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0VXNlciIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZVVzZXIiKSAlXQogICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9IlVzZXJVcGRhdGUiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuU3ViYWN0aW9uIHwgaHRtbCAlXSIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJVc2VySUQiIHZhbHVlPSJbJSBEYXRhLlVzZXJJRCB8IGh0bWwgJV0iIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWRkUGVyaW9kIiB2YWx1ZT0iIiAvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1Ym1pdFVzZXJEYXRhIiB2YWx1ZT0iIiAvPgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVXNlciBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOYW1lIj5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiVXNlcm5hbWUiKSB8IGh0bWwgJV0pOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVmFsdWUiPlslIERhdGEuVXNlckZ1bGxuYW1lIHwgaHRtbCAlXSAoWyUgRGF0YS5Vc2VyTG9naW4gfCBodG1sICVdKTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRGVzY3JpcHRpb24iPlslIFRyYW5zbGF0ZSgiRGVzY3JpcHRpb24iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJEZXNjcmlwdGlvbiIgaWQ9IkRlc2NyaXB0aW9uIiBjbGFzcz0iVzUwcGMiIHZhbHVlPSJbJSBEYXRhLkRlc2NyaXB0aW9uIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNob3dPdmVydGltZSI+WyUgVHJhbnNsYXRlKCJVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNob3dPdmVydGltZSIgaWQ9IlNob3dPdmVydGltZSIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgT3ZlcnRpbWUiKSB8IGh0bWwgJV0iIFslIERhdGEuU2hvd092ZXJ0aW1lICVdIC8+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDcmVhdGVQcm9qZWN0Ij5bJSBUcmFuc2xhdGUoIlVzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJDcmVhdGVQcm9qZWN0IiBpZD0iQ3JlYXRlUHJvamVjdCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFsbG93IHByb2plY3QgY3JlYXRpb24iKSB8IGh0bWwgJV0iIFslIERhdGEuQ3JlYXRlUHJvamVjdCAlXSAvPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQWxsb3dTa2lwIj5bJSBUcmFuc2xhdGUoIlVzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IkFsbG93U2tpcCIgaWQ9IkFsbG93U2tpcCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyIpIHwgaHRtbCAlXSIgWyUgRGF0YS5BbGxvd1NraXAgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ2FsZW5kYXIiPlslIFRyYW5zbGF0ZSgiQ2FsZW5kYXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2FsZW5kYXJPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlRpbWUgU3BhbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciBUaW1lQWNjb3VudGluZ1RhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlBlcmlvZCBCZWdpbiIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJQZXJpb2QgRW5kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkRheXMgb2YgVmFjYXRpb24iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiSG91cnMgcGVyIFdlZWsiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQXV0aG9yaXplZCBPdmVydGltZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQZXJpb2RPdmVydmlld1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkRhdGVTdGFydC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkRhdGVTdGFydFtbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5EYXRlU3RhcnQgfCBodG1sICVdIiBjbGFzcz0iIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuRGF0ZVN0YXJ0SW52YWxpZCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN0YXJ0IERhdGUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoIlBsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZVN0YXJ0SW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRGF0ZVN0YXJ0SW52YWxpZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkRhdGVTdGFydE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVTdGFydE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkRhdGVFbmRbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuRGF0ZUVuZCB8IGh0bWwgJV0iIGNsYXNzPSIgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5EYXRlRW5kSW52YWxpZCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkVuZCBEYXRlIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVFbmQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlRW5kSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVFbmRJbnZhbGlkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZUVuZE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlRW5kTWlzc2luZ1ZhbHVlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZUVuZEJlZm9yZURhdGVTdGFydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlRW5kQmVmb3JlRGF0ZVN0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJMZWF2ZURheXMtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBuYW1lPSJMZWF2ZURheXNbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuTGVhdmVEYXlzIHwgaHRtbCAlXSIgY2xhc3M9IkxlYXZlRGF5cyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkxlYXZlRGF5c0ludmFsaWQgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJMZWF2ZSBEYXlzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxlYXZlRGF5cy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGVhdmVEYXlzLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJXZWVrbHlIb3Vycy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IldlZWtseUhvdXJzW1slIERhdGEuUGVyaW9kIHwgaHRtbCAlXV0iIHZhbHVlPSJbJSBEYXRhLldlZWtseUhvdXJzIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiV2Vla2x5IEhvdXJzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Ik92ZXJ0aW1lLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXSIgbmFtZT0iT3ZlcnRpbWVbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuT3ZlcnRpbWUgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPdmVydGltZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5QZXJpb2RTdGF0dXNPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RPdmVydmlld1JvdyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQZXJpb2RPdmVydmlld1Jvd05vRGF0YSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIHRpbWUgcGVyaW9kcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RPdmVydmlld1Jvd05vRGF0YSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFkZCB0aW1lIHBlcmlvZCIpIHwgaHRtbCAlXSIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIHRpbWUgcGVyaW9kIikgfCBodG1sICVdIiBpZD0iQWRkUGVyaW9kIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQbHVzIFNwYWNpbmdUb3BTbWFsbCI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+IFslIFRyYW5zbGF0ZSgiQWRkIHRpbWUgcGVyaW9kIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iIGlkPSJTdWJtaXRVc2VyRGF0YSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9mb3JtPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVVc2VyIikgJV0KICAgIDwvZGl2Pgo8L2Rpdj4KClslIFJlbmRlckJsb2NrRW5kKCJTZXR0aW5nIikgJV0K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlZpZXcgVGltZSBSZWNvcmQiKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlciIpICVdCiAgICAgICAgLSBbJSBUcmFuc2xhdGUoIlZpZXcgb2YgIikgfCBodG1sICVdIFslIERhdGEuVXNlciB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQogICAgPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3O1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRhdGUgTmF2aWdhdGlvbiIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik1vbnRoU2VsZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlByZXZpb3VzIGRheSIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJCYWNrIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhCYWNrIHwgdXJpICVdO0RheT1bJSBEYXRhLkRheUJhY2sgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5leHQgZGF5IikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV07RGF5PVslIERhdGEuRGF5TmV4dCB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlllYXIgfCBodG1sICVdLVslIERhdGEuTW9udGggfCBodG1sICVdLVslIERhdGEuRGF5IHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iRGF0ZVNlbGVjdGlvbiIgY2xhc3M9IlZhbGlkYXRlIiBpZD0iRGF0ZVNlbGVjdGlvbkZvcm0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iVmlldyIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJVc2VySUQiICAgIHZhbHVlPSJbJSBEYXRhLlVzZXJJRCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRlU2VsZWN0aW9uICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTmF2aWdhdGlvblNlbGVjdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIFNwYWNpbmdUb3AiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1hcnJvdy1jaXJjbGUtby1yaWdodCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gZGF0ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRhdGUiKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZShEYXRhLldlZWtkYXlfdG9fVGV4dCkgfCBodG1sICVdIFslIERhdGEuRGF0ZSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUmVtYXJrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlN0YXJ0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkVuZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQZXJpb2QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5SZW1hcmsgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuU3RhcnRUaW1lIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkVuZFRpbWUgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuUGVyaW9kIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdOjwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJUb3RhbCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb0RhdGFGb3VuZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI2Ij5bJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5LiIpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZCIpICVdCgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3RoZXJUaW1lcyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Ii0yIiBpZD0iTGVhdmVEYXkiIG5hbWU9IkxlYXZlRGF5IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXSIgWyUgRGF0YS5MZWF2ZURheSAlXSBkaXNhYmxlZCAvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkxlYXZlRGF5Ij5bJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSItMSIgaWQ9IlNpY2siIG5hbWU9IlNpY2siIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIHNpY2sgbGVhdmUiKSB8IGh0bWwgJV0iIFslIERhdGEuU2ljayAlXSBkaXNhYmxlZCAvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNpY2siPlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iLTMiIGlkPSJPdmVydGltZSIgbmFtZT0iT3ZlcnRpbWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdIiBbJSBEYXRhLk92ZXJ0aW1lICVdIGRpc2FibGVkIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iT3ZlcnRpbWUiPlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdGhlclRpbWVzIikgJV0KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIlZhY2F0aW9uIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3BTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFjYXRpb24gfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJWYWNhdGlvbiIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpOb3RpZmljYXRpb246OlRpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgVXNlcklEIHBhcmFtCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAkUGFyYW17VXNlcklEfSB8fCBkaWUgIkdvdCBubyBVc2VySUQhIjsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9LAogICAgICAgIE1vbnRoID0+ICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9LAogICAgICAgIERheSAgID0+ICREYXRlVGltZVNldHRpbmdzLT57RGF5fSwKICAgICk7CiAgICBpZiAoICRVc2VyeyAkU2VsZi0+e1VzZXJJRH0gfSApIHsKICAgICAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgcmVkaXJlY3QgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheSBhcmUgb3V0IG9mIHJhbmdlCiAgICAgICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgICAgICBteSAkUHJpb3JpdHkgICAgID0gKCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0VuZm9yY2VJbnNlcnR9ICkgPyAnRXJyb3InIDogJ1dhcm5pbmcnOwogICAgICAgIGlmICggJEluY29tcGxldGVXb3JraW5nRGF5c3tXYXJuaW5nfSB8fCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0VuZm9yY2VJbnNlcnR9ICkgewogICAgICAgICAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT5Ob3RpZnkoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAkUHJpb3JpdHksCiAgICAgICAgICAgICAgICBMaW5rICAgICA9PiAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9IC4gJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgICAgICAgICBJbmZvICAgICA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJyc7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpUb29sQmFyOjpJbmNvbXBsZXRlV29ya2luZ0RheXM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgRGVmaW5lIGFjdGlvbiBhbmQgZ2V0IGl0cyBmcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uLgogICAgbXkgJEFjdGlvbiA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CiAgICBteSAkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGcm9udGVuZDo6TW9kdWxlJyktPnskQWN0aW9ufTsKCiAgICAjIERvIG5vdCBzaG93IGljb24gaWYgZnJvbnRlbmQgbW9kdWxlIGlzIG5vdCByZWdpc3RlcmVkLgogICAgcmV0dXJuIGlmICEkQ29uZmlnOwoKICAgICMgR2V0IGdyb3VwIG5hbWVzIGZyb20gY29uZmlnLgogICAgbXkgQEdyb3VwTmFtZXMgPSBAeyAkQ29uZmlnLT57R3JvdXB9IHx8IFtdIH07CgogICAgIyBJZiBhY2Nlc3MgaXMgcmVzdHJpY3RlZCwgYWxsb3cgYWNjZXNzIG9ubHkgaWYgdXNlciBoYXMgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMgaW4gY29uZmlndXJlZCBncm91cChzKS4KICAgIGlmIChAR3JvdXBOYW1lcykgewoKICAgICAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAgICAgIyBHZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMuCiAgICAgICAgbXkgJUdyb3VwTGlzdCA9ICRHcm91cE9iamVjdC0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICApOwoKICAgICAgICBteSAkUGVybWlzc2lvbiA9IDA7CgogICAgICAgIEdST1VQOgogICAgICAgIGZvciBteSAkR3JvdXBOYW1lIChAR3JvdXBOYW1lcykgewogICAgICAgICAgICBuZXh0IEdST1VQIGlmICEkR3JvdXBOYW1lOwoKICAgICAgICAgICAgIyBHZXQgdGhlIGdyb3VwIElELgogICAgICAgICAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgICAgICAgICBHcm91cCA9PiAkR3JvdXBOYW1lLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IEdST1VQIGlmICEkR3JvdXBJRDsKCiAgICAgICAgICAgICMgU3RvcCBjaGVja2luZyBpZiBtZW1iZXJzaGlwIGluIGF0IGxlYXN0IG9uZSBncm91cCBpcyBmb3VuZC4KICAgICAgICAgICAgaWYgKCAkR3JvdXBMaXN0eyRHcm91cElEfSApIHsKICAgICAgICAgICAgICAgICRQZXJtaXNzaW9uID0gMTsKICAgICAgICAgICAgICAgIGxhc3QgR1JPVVA7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgRGVueSBhY2Nlc3MgaWYgdGhlIGFnZW50IGRvZXNuJ3QgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMuCiAgICAgICAgcmV0dXJuIGlmICEkUGVybWlzc2lvbjsKICAgIH0KCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfSwKICAgICAgICBNb250aCA9PiAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofSwKICAgICAgICBEYXkgICA9PiAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX0sCiAgICApOwoKICAgICMgRGVueSBhY2Nlc3MsIGlmIHVzZXIgaGFzIG5vIHZhbGlkIHBlcmlvZC4KICAgIHJldHVybiBpZiAhJFVzZXJDdXJyZW50UGVyaW9keyAkU2VsZi0+e1VzZXJJRH0gfTsKCiAgICAjIEdldCB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzLgogICAgbXkgJENvdW50ICAgICAgICAgICAgICAgICA9IDA7CiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIFlFQVJJRDoKICAgIGZvciBteSAkWWVhcklEICggc29ydCBrZXlzICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX0gfSApIHsKCiAgICAgICAgbmV4dCBZRUFSSUQgaWYgISRZZWFySUQ7CiAgICAgICAgbmV4dCBZRUFSSUQgaWYgISRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH07CiAgICAgICAgbmV4dCBZRUFSSUQgaWYgcmVmICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gbmUgJ0hBU0gnOwoKICAgICAgICAjIEV4dHJhY3QgeWVhci4KICAgICAgICBteSAlWWVhciA9ICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gfTsKCiAgICAgICAgTU9OVEg6CiAgICAgICAgZm9yIG15ICRNb250aElEICggc29ydCBrZXlzICVZZWFyICkgewoKICAgICAgICAgICAgbmV4dCBNT05USCBpZiAhJE1vbnRoSUQ7CiAgICAgICAgICAgIG5leHQgTU9OVEggaWYgISRZZWFyeyRNb250aElEfTsKICAgICAgICAgICAgbmV4dCBNT05USCBpZiByZWYgJFllYXJ7JE1vbnRoSUR9IG5lICdIQVNIJzsKCiAgICAgICAgICAgICMgZXh0cmFjdCBtb250aAogICAgICAgICAgICBteSAlTW9udGggPSAleyAkWWVhcnskTW9udGhJRH0gfTsKCiAgICAgICAgICAgICRDb3VudCArPSBzY2FsYXIga2V5cyAlTW9udGg7CgogICAgICAgICAgICAjIFJlbW92ZSBjdXJyZW50IGRheSBiZWNhdXNlIGl0IG1ha2VzIG5vIHNlbnNlIHRvIHNob3cgdGhlIGN1cnJlbnQgZGF5IGFzIGluY29tcGxldGUuCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICREYXRlVGltZVNldHRpbmdzLT57WWVhcn0gZXEgJFllYXJJRAogICAgICAgICAgICAgICAgJiYgJE1vbnRoSUQgZXEgc3ByaW50ZiggJyUwMmQnLCAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofSApCiAgICAgICAgICAgICAgICAmJiBkZWZpbmVkICRNb250aHsgc3ByaW50ZiggJyUwMmQnLCAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX0gKSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRDb3VudC0tOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBHZXQgdG9vbGJhciBvYmplY3QgcGFyYW1ldGVycy4KICAgIG15ICRDbGFzcyA9ICRQYXJhbXtDb25maWd9LT57Q3NzQ2xhc3N9OwogICAgbXkgJFRleHQgID0gVHJhbnNsYXRhYmxlKCdJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cycpOwogICAgbXkgJFVSTCAgID0gJExheW91dE9iamVjdC0+e0Jhc2VsaW5rfTsKICAgIG15ICRJY29uICA9ICRQYXJhbXtDb25maWd9LT57SWNvbn07CgogICAgcmV0dXJuICgpIGlmICEkQ291bnQ7CgogICAgbXkgJVJldHVybiA9ICgKICAgICAgICAxMDAwODEwID0+IHsKICAgICAgICAgICAgQmxvY2sgICAgICAgPT4gJ1Rvb2xCYXJJdGVtJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJFRleHQsCiAgICAgICAgICAgIENvdW50ICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICBJY29uICAgICAgICA9PiAkSWNvbiwKICAgICAgICAgICAgTGluayAgICAgICAgPT4gJFVSTCAuICdBY3Rpb249JyAuICRBY3Rpb24sCiAgICAgICAgICAgIEFjY2Vzc0tleSAgID0+ICcnLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAlUmV0dXJuOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8b3B0aW9uIHZhbHVlPSJ7eyBWYWx1ZSB9fSIge3sgInNlbGVjdGVkIiBpZiBTZWxlY3RlZCB9fT57eyBUZXh0IH19PC9vcHRpb24+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8c3BhbiBjbGFzcz0iQUpBWExvYWRlciI+PC9zcGFuPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyggOmFsbCApOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nIC0gdGltZSBhY2NvdW50aW5nIGxpYgoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgdGltZSBhY2NvdW50aW5nIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBVc2VyQ3VycmVudFBlcmlvZEdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSBjdXJyZW50IHBlcmlvZCBkYXRhIG9mIHRoZSBzcGVjaWZpZWQgdXNlcgoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoID0+ICcxMicsCiAgICAgICAgRGF5ICAgPT4gJzI0JywKICAgICk7CgpUaGUgcmV0dXJuZWQgaGFzaCBjb250YWlucyB0aGUgZm9sbG93aW5nIGVsZW1lbnRzOgoKICAgICVVc2VyRGF0YSA9ICgKICAgICAgICAxID0+IHsKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgPT4gMTIzLAogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAwNS0xMi0yNCcsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDA1LTEyLTI0JywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gNDAuNCwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gMTIsCiAgICAgICAgICAgIE92ZXJUaW1lICAgID0+IDM0LAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFVzZXJDdXJyZW50UGVyaW9kR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBmb3IgbXkgJE5lZWRlZFBhcmFtIChxdyhZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZFBhcmFtfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJDdXJyZW50UGVyaW9kR2V0OiBOZWVkICROZWVkZWRQYXJhbSEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGJ1aWxkIGRhdGUgc3RyaW5nIGZvciBnaXZlbiBwYXJhbXMKICAgIG15ICREYXRlID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQgMDA6MDA6MDAiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9OwoKICAgICMgY2hlY2sgY2FjaGUKICAgIGlmICggJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9ICkgewoKICAgICAgICByZXR1cm4gJXsgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9IH07CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgV0hFUkUgZGF0ZV9zdGFydCA8PSA/CiAgICAgICAgICAgICAgICBBTkQgZGF0ZV9lbmQgID49ID8KICAgICAgICAgICAgICAgIEFORCBzdGF0dXMgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCREYXRlLCBcJERhdGUsIFwxLCBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRVc2VyUmVmID0gewogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQZXJpb2QgICAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICksCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+IHN1YnN0ciggJFJvd1szXSwgMCwgMTAgKSwKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJvd1s0XSwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJFJvd1s1XSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJFJvd1s2XSwKICAgICAgICB9OwogICAgICAgICREYXRheyAkUm93WzBdIH0gPSAkVXNlclJlZjsKICAgIH0KCiAgICAjIGNoZWNrIGZvciB2YWxpZCB1c2VyIGRhdGEKICAgIHJldHVybiBpZiAhJURhdGE7CgogICAgIyBzdG9yZSB1c2VyIGRhdGEgaW4gY2FjaGUKICAgICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9eyREYXRlfSA9IFwlRGF0YTsKCiAgICByZXR1cm4gJURhdGE7Cn0KCj1oZWFkMiBVc2VyUmVwb3J0aW5nKCkKCnJldHVybnMgYSBoYXNoIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgbGVhdmUgZGF5cywgb3ZlcnRpbWVzLAp3b3JraW5nIGhvdXJzIGV0Yy4gb2YgYWxsIHVzZXJzCgogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoID0+ICcxMicsCiAgICAgICAgRGF5ICAgPT4gJzEyJywgICAgICAjIE9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJSZXBvcnRpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsb2cgb2JqZWN0CiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgZm9yIG15ICROZWVkZWRQYXJhbSAocXcoWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWRQYXJhbX0gJiYgJE5lZWRlZFBhcmFtIG5lICdEYXknICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJSZXBvcnRpbmc6IE5lZWQgJE5lZWRlZFBhcmFtISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayB2YWxpZCBkYXRlIHZhbHVlcwogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXl9IHx8IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkRGF0ZVRpbWVPYmplY3Q7CgogICAgIyBnZXQgZGF5cyBvZiBtb250aCBpZiBub3QgcHJvdmlkZWQKICAgIG15ICRMYXN0RGF5T2ZNb250aCA9ICREYXRlVGltZU9iamVjdC0+TGFzdERheU9mTW9udGhHZXQoKTsKICAgICRQYXJhbXtEYXl9IHx8PSAkTGFzdERheU9mTW9udGgtPntEYXl9OwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRTZWxmLT5Vc2VyQ3VycmVudFBlcmlvZEdldCglUGFyYW0pOwogICAgbXkgJFllYXJTdGFydCAgICAgICAgID0gMTk3MDsKICAgIG15ICRNb250aFN0YXJ0ICAgICAgICA9IDE7CiAgICBteSAkRGF5U3RhcnQgICAgICAgICAgPSAxOwogICAgbXkgJFllYXJFbmQgICAgICAgICAgID0gJFBhcmFte1llYXJ9OwogICAgbXkgJE1vbnRoRW5kICAgICAgICAgID0gJFBhcmFte01vbnRofTsKICAgIG15ICREYXlFbmQgICAgICAgICAgICA9ICRQYXJhbXtEYXl9OwoKICAgIG15ICVEYXRhOwoKICAgIFVTRVJJRDoKICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVVc2VyQ3VycmVudFBlcmlvZCApIHsKCiAgICAgICAgaWYgKCAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9ID1+IG17IFxBIChcZHs0fSktKFxkezJ9KS0oXGR7Mn0pIH14bXMgKSB7CiAgICAgICAgICAgICRZZWFyU3RhcnQgID0gJDE7CiAgICAgICAgICAgICRNb250aFN0YXJ0ID0gJDI7CiAgICAgICAgICAgICREYXlTdGFydCAgID0gJDM7CiAgICAgICAgfQoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyU3RhcnQsCiAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGhTdGFydCwKICAgICAgICAgICAgICAgIERheSAgID0+ICREYXlTdGFydCwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkRGF0ZVRpbWVPYmplY3QgKSB7CgogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdVc2VyUmVwb3J0aW5nOiBJbnZhbGlkIHN0YXJ0IGRhdGUgZm9yIHVzZXIgJwogICAgICAgICAgICAgICAgICAgIC4gIiRVc2VySUQ6ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtEYXRlU3RhcnR9IiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgVVNFUklEOwogICAgICAgIH0KCiAgICAgICAgbXkgJUN1cnJlbnRVc2VyRGF0YSA9ICgKICAgICAgICAgICAgTGVhdmVEYXRlICAgICAgICA9PiAwLAogICAgICAgICAgICBTaWNrICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVGFyZ2V0U3RhdGUgICAgICA9PiAwLAogICAgICAgICAgICBMZWF2ZURheVRvdGFsICAgID0+IDAsCiAgICAgICAgICAgIFNpY2tUb3RhbCAgICAgICAgPT4gMCwKICAgICAgICAgICAgU2lja1RvdGFsICAgICAgICA9PiAwLAogICAgICAgICAgICBUYXJnZXRTdGF0ZVRvdGFsID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENhbGVuZGFyID0geyAkU2VsZi0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKSB9LT57Q2FsZW5kYXJ9OwoKICAgICAgICBZRUFSOgogICAgICAgIGZvciBteSAkWWVhciAoICRZZWFyU3RhcnQgLi4gJFllYXJFbmQgKSB7CgogICAgICAgICAgICBteSAkTW9udGhTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCA/ICRNb250aFN0YXJ0IDogMTsKICAgICAgICAgICAgbXkgJE1vbnRoRW5kUG9pbnQgICA9ICRZZWFyID09ICRZZWFyRW5kICAgPyAkTW9udGhFbmQgICA6IDEyOwoKICAgICAgICAgICAgTU9OVEg6CiAgICAgICAgICAgIGZvciBteSAkTW9udGggKCAkTW9udGhTdGFydFBvaW50IC4uICRNb250aEVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgIG15ICREYXlTdGFydFBvaW50ID0KICAgICAgICAgICAgICAgICAgICAkWWVhciA9PSAkWWVhclN0YXJ0ICYmICRNb250aCA9PSAkTW9udGhTdGFydAogICAgICAgICAgICAgICAgICAgID8gJERheVN0YXJ0CiAgICAgICAgICAgICAgICAgICAgOiAxOwoKICAgICAgICAgICAgICAgIG15ICREYXlFbmRQb2ludDsKCiAgICAgICAgICAgICAgICBpZiAoICRZZWFyID09ICRZZWFyRW5kICYmICRNb250aCA9PSAkTW9udGhFbmQgKSB7CiAgICAgICAgICAgICAgICAgICAgJERheUVuZFBvaW50ID0gJERheUVuZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICREYXlFbmRQb2ludCA9ICRTZWxmLT5EYXlzSW5Nb250aCggJFllYXIsICRNb250aCApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERBWToKICAgICAgICAgICAgICAgIGZvciBteSAkRGF5ICggJERheVN0YXJ0UG9pbnQgLi4gJERheUVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAkU2VsZi0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBteSAkTGVhdmVEYXkgICAgPSAwOwogICAgICAgICAgICAgICAgICAgIG15ICRTaWNrICAgICAgICA9IDA7CiAgICAgICAgICAgICAgICAgICAgbXkgJE92ZXJ0aW1lICAgID0gMDsKICAgICAgICAgICAgICAgICAgICBteSAkVGFyZ2V0U3RhdGUgPSAwOwoKICAgICAgICAgICAgICAgICAgICBpZiAoICRXb3JraW5nVW5pdHtMZWF2ZURheX0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlUb3RhbH0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgJExlYXZlRGF5ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkV29ya2luZ1VuaXR7U2lja30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7U2lja1RvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkU2ljayA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFdvcmtpbmdVbml0e092ZXJ0aW1lfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkT3ZlcnRpbWUgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICBteSAkVmFjYXRpb25DaGVjayA9ICRTZWxmLT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciA9PiAkQ2FsZW5kYXIgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBteSAkV2Vla2RheSA9ICRTZWxmLT5EYXlPZldlZWsoICRZZWFyLCAkTW9udGgsICREYXkgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRXZWVrZGF5ICE9IDYKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJFdlZWtkYXkgIT0gNwogICAgICAgICAgICAgICAgICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgJiYgISRTaWNrCiAgICAgICAgICAgICAgICAgICAgICAgICYmICEkTGVhdmVEYXkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtUYXJnZXRTdGF0ZVRvdGFsfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKz0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e1dlZWtseUhvdXJzfSAvIDU7CiAgICAgICAgICAgICAgICAgICAgICAgICRUYXJnZXRTdGF0ZSA9ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtXZWVrbHlIb3Vyc30gLyA1OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTW9udGggPT0gJE1vbnRoRW5kICYmICRZZWFyID09ICRZZWFyRW5kICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlfSAgKz0gJFRhcmdldFN0YXRlOwogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1dvcmtpbmdIb3Vyc30gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtMZWF2ZURheX0gICAgICs9ICRMZWF2ZURheTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtTaWNrfSAgICAgICAgICs9ICRTaWNrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZX0gICAgICA9ICRDdXJyZW50VXNlckRhdGF7V29ya2luZ0hvdXJzfSAtICRDdXJyZW50VXNlckRhdGF7VGFyZ2V0U3RhdGV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVUb3RhbH0gPSAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH17T3ZlcnRpbWV9CiAgICAgICAgICAgICsgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0KICAgICAgICAgICAgLSAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlVG90YWx9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVVbnRpbH0gICAgID0gJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSAtICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlSZW1haW5pbmd9ID0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e0xlYXZlRGF5c30gLSAkQ3VycmVudFVzZXJEYXRhe0xlYXZlRGF5VG90YWx9OwoKICAgICAgICAkRGF0YXskVXNlcklEfSA9IFwlQ3VycmVudFVzZXJEYXRhOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFByb2plY3RTZXR0aW5nc0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIGFsbCB0aGUgcHJvamVjdHMnIGRhdGEKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJyB8fCAnaW52YWxpZCcsIG9wdGlvbmFsIGRlZmF1bHQgdmFsaWQgJiYgaW52YWxpZAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0U2V0dGluZ3NHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkV2hlcmUgPSAnJzsKICAgIGlmICggJFBhcmFte1N0YXR1c30gKSB7CiAgICAgICAgJFdoZXJlID0gJyBXSEVSRSBzdGF0dXMgPSAnOwogICAgICAgICRXaGVyZSAuPSAkUGFyYW17U3RhdHVzfSBlcSAnaW52YWxpZCcgPyAiJzAnIiA6ICInMSciOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIgogICAgICAgICAgICBTRUxFQ1QgaWQsIHByb2plY3QsIGRlc2NyaXB0aW9uLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICAkV2hlcmUiLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRJRCA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7UHJvamVjdH17JElEfSAgICAgICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtQcm9qZWN0RGVzY3JpcHRpb259eyRJRH0gPSAkUm93WzJdOwogICAgICAgICREYXRhe1Byb2plY3RTdGF0dXN9eyRJRH0gICAgICA9ICRSb3dbM107CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgUHJvamVjdEdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSByZXF1ZXN0ZWQgcHJvamVjdCBkYXRhCgogICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KCBJRCA9PiAyICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCiAgICBvcgoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCggUHJvamVjdCA9PiAnaW50ZXJuYWwnICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIElEICAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0R2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtJRH0gJiYgISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgSUQgb3IgcHJvamVjdCBuYW1lIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJVByb2plY3Q7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgSUQKICAgIGlmICggJFBhcmFte0lEfSApIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBwcm9qZWN0LCBkZXNjcmlwdGlvbiwgc3RhdHVzCiAgICAgICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19wcm9qZWN0CiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJRH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVByb2plY3QgPSAoCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFBhcmFte0lEfSwKICAgICAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAkRGF0YVsyXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIHRhc2sgbmFtZQogICAgZWxzZSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgaWQsIGRlc2NyaXB0aW9uLCBzdGF0dXMKICAgICAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgICAgIFdIRVJFIHByb2plY3QgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17UHJvamVjdH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVByb2plY3QgPSAoCiAgICAgICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFBhcmFte1Byb2plY3R9LAogICAgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+ICREYXRhWzBdLAogICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICREYXRhWzFdLAogICAgICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+ICREYXRhWzJdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJVByb2plY3Q7Cn0KCj1oZWFkMiBQcm9qZWN0U2V0dGluZ3NJbnNlcnQoKQoKaW5zZXJ0cyBhIG5ldyBwcm9qZWN0IGluIHRoZSBkYgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLCAgICAjIG9wdGlvbmFsCiAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdkZXNjcmlwdGlvbicsICMgb3B0aW9uYWwKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSB8fCAwLCAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICByZXR1cm5zIElEIG9mIGNyZWF0ZWQgcHJvamVjdAoKPWN1dAoKc3ViIFByb2plY3RTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtQcm9qZWN0fSAgICAgICAgICAgIHx8PSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0UHJvamVjdE5hbWUnKTsKICAgICRQYXJhbXtQcm9qZWN0RGVzY3JpcHRpb259IHx8PSAnJzsKCiAgICBpZiAoICRQYXJhbXtQcm9qZWN0U3RhdHVzfSBuZSAnMCcgJiYgJFBhcmFte1Byb2plY3RTdGF0dXN9IG5lICcxJyApIHsKICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0UHJvamVjdFN0YXR1cycpOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBpbnNlcnQgcHJvamVjdCByZWNvcmQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfcHJvamVjdCAocHJvamVjdCwgZGVzY3JpcHRpb24sIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/KScsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17UHJvamVjdH0sIFwkUGFyYW17UHJvamVjdERlc2NyaXB0aW9ufSwgXCRQYXJhbXtQcm9qZWN0U3RhdHVzfSBdLAogICAgKTsKCiAgICAjIGdldCBpZCBvZiBuZXdseSBjcmVhdGVkIHByb2plY3QgcmVjb3JkCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgaWQKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICBXSEVSRSBwcm9qZWN0ID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1Byb2plY3R9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJFByb2plY3RJRDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRQcm9qZWN0SUQgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiAkUHJvamVjdElEOwp9Cgo9aGVhZDIgUHJvamVjdFNldHRpbmdzVXBkYXRlKCkKCnVwZGF0ZXMgYSBwcm9qZWN0CgogICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSgKICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0U2V0dGluZ3NVcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIFByb2plY3QpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBTUUwKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFVQREFURSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICBTRVQgcHJvamVjdCA9ID8sIGRlc2NyaXB0aW9uID0gPywgc3RhdHVzID0gPwogICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte1Byb2plY3R9LCBcJFBhcmFte1Byb2plY3REZXNjcmlwdGlvbn0sIFwkUGFyYW17UHJvamVjdFN0YXR1c30sIFwkUGFyYW17SUR9LAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQWN0aW9uU2V0dGluZ3NHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCBhbGwgdGhlIGFjdGlvbnMgc2V0dGluZ3MKCiAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCj1jdXQKCnN1YiBBY3Rpb25TZXR0aW5nc0dldCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBpZCwgYWN0aW9uLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9e0FjdGlvbn0gICAgICAgPSAkUm93WzFdOwogICAgICAgICREYXRheyAkUm93WzBdIH17QWN0aW9uU3RhdHVzfSA9ICRSb3dbMl07CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgQWN0aW9uR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIHJlcXVlc3RlZCBhY3Rpb24gKHRhc2spIGRhdGEKCiAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KCBJRCA9PiAyICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIEFjdGlvbiAgICAgICA9PiAnTXkgdGFzaycsCiAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICApOwoKICAgIG9yCgogICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCggQWN0aW9uID0+ICdNeSB0YXNrJyApOwoKVGhpcyByZXR1cm5zIHNvbWV0aGluZyBsaWtlOgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICgKICAgICAgICBJRCAgICAgICAgICAgPT4gMiwKICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQWN0aW9uR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtJRH0gJiYgISRQYXJhbXtBY3Rpb259ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBJRCBvciBBY3Rpb24hJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlVGFzazsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgbG9vayBmb3IgdGhlIHRhc2sgZGF0YSB3aXRoIHRoZSBJRAogICAgaWYgKCAkUGFyYW17SUR9ICkgewoKICAgICAgICAjIFNRTAogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgU0VMRUNUIGFjdGlvbiwgc3RhdHVzCiAgICAgICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19hY3Rpb24KICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0lEfSBdLAogICAgICAgICk7CiAgICAgICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAlVGFzayA9ICgKICAgICAgICAgICAgICAgIElEICAgICAgICAgICA9PiAkUGFyYW17SUR9LAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICREYXRhWzBdLAogICAgICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+ICREYXRhWzFdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgdGFzayBuYW1lCiAgICBlbHNlIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBpZCwgc3RhdHVzCiAgICAgICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19hY3Rpb24KICAgICAgICAgICAgICAgIFdIRVJFIGFjdGlvbiA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtBY3Rpb259IF0sCiAgICAgICAgKTsKICAgICAgICB3aGlsZSAoIG15IEBEYXRhID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICVUYXNrID0gKAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICAgICAgSUQgICAgICAgICAgID0+ICREYXRhWzBdLAogICAgICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+ICREYXRhWzFdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJVRhc2s7Cn0KCj1oZWFkMiBBY3Rpb25TZXR0aW5nc0luc2VydCgpCgppbnNlcnRzIGEgbmV3IGFjdGlvbiBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgIEFjdGlvbiAgICAgICA9PiAnbWVldGluZycsICAgIyBvcHRpb25hbAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxIHx8IDAsICAgICAgIyBvcHRpb25hbAogICAgKTsKCj1jdXQKCnN1YiBBY3Rpb25TZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtBY3Rpb259IHx8PSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0QWN0aW9uTmFtZScpIHx8ICcnOwogICAgaWYgKCAkUGFyYW17QWN0aW9uU3RhdHVzfSBuZSAnMCcgJiYgJFBhcmFte0FjdGlvblN0YXR1c30gbmUgJzEnICkgewogICAgICAgICRQYXJhbXtBY3Rpb25TdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvblN0YXR1cycpOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfYWN0aW9uIChhY3Rpb24sIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/KScsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17QWN0aW9ufSwgXCRQYXJhbXtBY3Rpb25TdGF0dXN9LCBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEFjdGlvblNldHRpbmdzVXBkYXRlKCkKCnVwZGF0ZXMgYW4gYWN0aW9uICh0YXNrKQoKICAgIG15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgICAgICBBY3Rpb25JRCAgICAgPT4gMTIzLAogICAgICAgIEFjdGlvbiAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBBY3Rpb25TZXR0aW5nc1VwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoQWN0aW9uSUQgQWN0aW9uKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgU1FMCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX2FjdGlvbgogICAgICAgICAgICBTRVQgYWN0aW9uID0gPywgc3RhdHVzID0gPwogICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0FjdGlvbn0sIFwkUGFyYW17QWN0aW9uU3RhdHVzfSwgXCRQYXJhbXtBY3Rpb25JRH0KICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFVzZXJMaXN0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIHVzZXIgZGF0YSBvZiBhbGwgdXNlcnMKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7Cgo9Y3V0CgpzdWIgVXNlckxpc3QgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIGRlc2NyaXB0aW9uLCBzaG93X292ZXJ0aW1lLCBjcmVhdGVfcHJvamVjdCwgYWxsb3dfc2tpcCwgY2FsZW5kYXIKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtVc2VySUR9ICAgICAgICA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtEZXNjcmlwdGlvbn0gICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtTaG93T3ZlcnRpbWV9ICA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtDcmVhdGVQcm9qZWN0fSA9ICRSb3dbM107CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtBbGxvd1NraXB9ICAgICA9ICRSb3dbNF07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtDYWxlbmRhcn0gICAgICA9ICRSb3dbNV07CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgVXNlckdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB1c2VyIGRhdGEgb2Ygb25lIHVzZXIKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+IDE1LAogICAgKTsKCj1jdXQKCnN1YiBVc2VyR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgZGF0YQogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdVc2VyR2V0OiBOZWVkIFVzZXJJRCEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGRlc2NyaXB0aW9uLCBzaG93X292ZXJ0aW1lLCBjcmVhdGVfcHJvamVjdCwgYWxsb3dfc2tpcCwgY2FsZW5kYXIKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcgogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRhe1VzZXJJRH0gICAgICAgID0gJFBhcmFte1VzZXJJRH07CiAgICAgICAgJERhdGF7RGVzY3JpcHRpb259ICAgPSAkUm93WzBdOwogICAgICAgICREYXRhe1Nob3dPdmVydGltZX0gID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtDcmVhdGVQcm9qZWN0fSA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7QWxsb3dTa2lwfSAgICAgPSAkUm93WzNdOwogICAgICAgICREYXRhe0NhbGVuZGFyfSAgICAgID0gJFJvd1s0XTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1oZWFkMiBVc2VyU2V0dGluZ3NHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgY29tcGxldGUgdXNlciBwZXJpb2QgZGF0YSBmb3IgYWxsIHVzZXJzCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NHZXQoKTsKCnJldHVybnM6CiAgICAlVXNlckRhdGEgPSAoCiAgICAgICAgMyA9PiB7CiAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIjIwMTUtMTItMzEiLAogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIjIwMTUtMDEtMDEiLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gIjIzLjAwIiwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICIwLjAwIiwKICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAzLAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICI0MC4wMCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIDIgPT4gewogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIjIwMTUtMTItMzEiLAogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIjIwMTUtMDEtMDEiLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gIjIzLjAwIiwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICIwLjAwIiwKICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDIsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAzLAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICIzMi4wMCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICA0ID0+IHsKICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiMjAxNS0xMi0zMSIsCiAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiMjAxNS0wMS0wMSIsCiAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAiMjMuMDAiLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gIjAuMDAiLAogICAgICAgICAgICAgICAgUGVyaW9kICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDQsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gIjQwLjAwIiwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfTsKCj1jdXQKCnN1YiBVc2VyU2V0dGluZ3NHZXQgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUsIHN0YXR1cwogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17VXNlcklEfSAgICAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17UGVyaW9kfSAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17RGF0ZVN0YXJ0fSAgID0gc3Vic3RyKCAkUm93WzJdLCAwLCAxMCApOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtEYXRlRW5kfSAgICAgPSBzdWJzdHIoICRSb3dbM10sIDAsIDEwICk7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1dlZWtseUhvdXJzfSA9ICRSb3dbNF07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e0xlYXZlRGF5c30gICA9ICRSb3dbNV07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e092ZXJ0aW1lfSAgICA9ICRSb3dbNl07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1VzZXJTdGF0dXN9ICA9ICRSb3dbN107CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgU2luZ2xlVXNlclNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIHJlcXVlc3RlZCB1c2VyJ3MgcGVyaW9kIGRhdGEKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCggVXNlcklEID0+IDEgKTsKCj1jdXQKCnN1YiBTaW5nbGVVc2VyU2V0dGluZ3NHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgdXNlcl9pZCwgcHJlZmVyZW5jZV9wZXJpb2QsIGRhdGVfc3RhcnQsIGRhdGVfZW5kLCB3ZWVrbHlfaG91cnMsIGxlYXZlX2RheXMsCiAgICAgICAgICAgICAgICBvdmVydGltZSwgc3RhdHVzCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kIFdIRVJFIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtVc2VySUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVVc2VyRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1VzZXJJRH0gICAgICA9ICRSb3dbMF07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17UGVyaW9kfSAgICAgID0gJFJvd1sxXTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtEYXRlU3RhcnR9ICAgPSBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICk7CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17RGF0ZUVuZH0gICAgID0gc3Vic3RyKCAkUm93WzNdLCAwLCAxMCApOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1dlZWtseUhvdXJzfSA9ICRSb3dbNF07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17TGVhdmVEYXlzfSAgID0gJFJvd1s1XTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtPdmVydGltZX0gICAgPSAkUm93WzZdOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1VzZXJTdGF0dXN9ICA9ICRSb3dbN107CiAgICB9CgogICAgcmV0dXJuICVVc2VyRGF0YTsKfQoKPWhlYWQyIFVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCkKCnJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgbGFzdCByZWdpc3RlcmVkIHBlcmlvZCBmb3IgdGhlIHNwZWNpZmllZCB1c2VyCgogICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCBVc2VySUQgPT4gMSApOwoKPWN1dAoKc3ViIFVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIG1heChwcmVmZXJlbmNlX3BlcmlvZCkKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgQFJvdyAgICAgICAgICAgICAgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKTsKICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFJvd1swXSB8fCAwOwoKICAgIHJldHVybiAkTGFzdFBlcmlvZE51bWJlcjsKfQoKPWhlYWQyIFVzZXJTZXR0aW5nc0luc2VydCgpCgppbnNlcnQgbmV3IHVzZXIgZGF0YSBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICBVc2VySUQgICAgICAgPT4gJzInLAogICAgICAgIFBlcmlvZCAgICAgICA9PiAnMicsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcgKFVzZXJJRCBQZXJpb2QpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIHVzZXIgZXhpc3RzCiAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJJRCAkUGFyYW17VXNlcklEfSBkb2VzIG5vdCBleGlzdCEiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtXZWVrbHlIb3Vyc30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlcldlZWtseUhvdXJzJykKICAgICAgICB8fCAnNDAnOwogICAgJFBhcmFte0xlYXZlRGF5c30gID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJMZWF2ZURheXMnKSB8fCAnMjUnOwogICAgJFBhcmFte1VzZXJTdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJTdGF0dXMnKSAgICB8fCAnMSc7CiAgICAkUGFyYW17T3ZlcnRpbWV9ICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlck92ZXJ0aW1lJykgIHx8ICcwJzsKICAgICRQYXJhbXtEYXRlRW5kfSAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZUVuZCcpCiAgICAgICAgfHwgJzIwMTktMTItMzEnOwogICAgJFBhcmFte0RhdGVTdGFydH0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRhdGVTdGFydCcpCiAgICAgICAgfHwgJzIwMTktMDEtMDEnOwogICAgJFBhcmFte0Rlc2NyaXB0aW9ufSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGVzY3JpcHRpb24nKQogICAgICAgIHx8ICdQdXQgeW91ciBkZXNjcmlwdGlvbiBoZXJlLic7CgogICAgJFBhcmFte0RhdGVTdGFydH0gLj0gJyAwMDowMDowMCc7CiAgICAkUGFyYW17RGF0ZUVuZH0gICAuPSAnIDAwOjAwOjAwJzsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZGVsZXRlICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QgKHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LAogICAgICAgICAgICAgICAgZGF0ZV9lbmQsIHdlZWtseV9ob3VycywgbGVhdmVfZGF5cywgb3ZlcnRpbWUsIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgICAgICBcJFBhcmFte1BlcmlvZH0sICAgIFwkUGFyYW17RGF0ZVN0YXJ0fSwgXCRQYXJhbXtEYXRlRW5kfSwKICAgICAgICAgICAgXCRQYXJhbXtXZWVrbHlIb3Vyc30sIFwkUGFyYW17TGVhdmVEYXlzfSwgXCRQYXJhbXtPdmVydGltZX0sICBcJFBhcmFte1VzZXJTdGF0dXN9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgc2VsZWN0IFVzZXJJRAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtVc2VySUR9LCBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICRVc2VySUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVXNlcklEID0gJFJvd1swXTsKICAgIH0KCiAgICBpZiAoICFkZWZpbmVkICRVc2VySUQgKSB7CgogICAgICAgICMgZGIgaW5zZXJ0CiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3VzZXIgKHVzZXJfaWQsIGRlc2NyaXB0aW9uKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LCA/KScsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0sIFwkUGFyYW17RGVzY3JpcHRpb259LCBdLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBVc2VyU2V0dGluZ3NVcGRhdGUoKQoKdXBkYXRlcyB1c2VyIGRhdGEgaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NvbWUgVGV4dCcsCiAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxIHx8IDAsCiAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxIHx8IDAsCiAgICAgICAgQWxsb3dTa2lwICAgICA9PiAxIHx8IDAsCiAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgID0+ICcyMDE1LTEyLTEyJywKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgICA9PiAnMjAxNS0xMi0zMScsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyAgPT4gJzM4JywKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICAgPT4gMSB8fCAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICAyID0+IHsKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgICA9PiAnMjAxNS0xMi0xMicsCiAgICAgICAgICAgICAgICBEYXRlRW5kICAgICAgPT4gJzIwMTUtMTItMzEnLAogICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgID0+ICczOCcsCiAgICAgICAgICAgICAgICBMZWF2ZURheXMgICAgPT4gJzI1JywKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgID0+IDEgfHwgMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgMyA9PiAuLi4uLi4KICAgICAgICB9CiAgICApOwoKPWN1dAoKc3ViIFVzZXJTZXR0aW5nc1VwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBkZWxldGUgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J307CgogICAgbXkgJFVzZXJJRCA9ICRQYXJhbXtVc2VySUR9OwoKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1BlcmlvZH0tPnsxfXtEYXRlU3RhcnR9ICYmICFkZWZpbmVkICRQYXJhbXtQZXJpb2R9LT57MX17RGF0ZUVuZH0gKSB7CgogICAgICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJTZXR0aW5nVXBkYXRlOiBObyBkYXRhIGZvciB1c2VyIGlkICRVc2VySUQhIgogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZXMKICAgICRQYXJhbXtTaG93T3ZlcnRpbWV9ICB8fD0gMDsKICAgICRQYXJhbXtDcmVhdGVQcm9qZWN0fSB8fD0gMDsKICAgICRQYXJhbXtBbGxvd1NraXB9ICAgICB8fD0gMDsKICAgICRQYXJhbXtDYWxlbmRhcn0gICAgICB8fD0gMDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgaW5zZXJ0CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgVVBEQVRFIHRpbWVfYWNjb3VudGluZ191c2VyCiAgICAgICAgICAgIFNFVCBkZXNjcmlwdGlvbiA9ID8sIHNob3dfb3ZlcnRpbWUgPSA/LCBjcmVhdGVfcHJvamVjdCA9ID8sIGFsbG93X3NraXAgPSA/LCBjYWxlbmRhciA9ID8KICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0Rlc2NyaXB0aW9ufSwgXCRQYXJhbXtTaG93T3ZlcnRpbWV9LAogICAgICAgICAgICBcJFBhcmFte0NyZWF0ZVByb2plY3R9LCBcJFBhcmFte0FsbG93U2tpcH0sIFwkUGFyYW17Q2FsZW5kYXJ9LCBcJFBhcmFte1VzZXJJRH0KICAgICAgICBdLAogICAgKTsKCiAgICAjIHVwZGF0ZSBhbGwgcGVyaW9kcwogICAgZm9yIG15ICRQZXJpb2QgKCBzb3J0IGtleXMgJXsgJFBhcmFte1BlcmlvZH0gfSApIHsKCiAgICAgICAgIyBkYiBpbnNlcnQKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kCiAgICAgICAgICAgICAgICBTRVQgbGVhdmVfZGF5cyA9ID8sIGRhdGVfc3RhcnQgPSA/LCBkYXRlX2VuZCA9ID8sIG92ZXJ0aW1lID0gPywgd2Vla2x5X2hvdXJzID0gPywKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSA/CiAgICAgICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPwogICAgICAgICAgICAgICAgICAgIEFORCBwcmVmZXJlbmNlX3BlcmlvZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e0xlYXZlRGF5c30sICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17RGF0ZVN0YXJ0fSwKICAgICAgICAgICAgICAgIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e0RhdGVFbmR9LCAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17T3ZlcnRpbWV9LAogICAgICAgICAgICAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17V2Vla2x5SG91cnN9LCBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtVc2VyU3RhdHVzfSwKICAgICAgICAgICAgICAgIFwkVXNlcklELCBcJFBlcmlvZCwKICAgICAgICAgICAgXQogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBXb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFuZAp0aGUgaW5mb3JtYXRpb24gaWYgdGhlIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFyZSBpbiB0aGUgYWxsb3dlZApyYW5nZS4KCiAgICBteSAlV29ya2luZ1VuaXRzQ2hlY2sgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgV29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNlcklEfTsKCiAgICBteSAlVXNlckRhdGEgPSAkU2VsZi0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKTsKICAgIGlmICggISVVc2VyRGF0YSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0NvdWxkIG5vdCBnZXQgdXNlciBkYXRhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBTa2lwIGNoZWNrIGZvciB1c2VycyB0aGF0IGFyZSBub3QgcmVxdWlyZWQgdG8gbG9nIHRpbWVzLgogICAgcmV0dXJuICgpIGlmICRVc2VyRGF0YXtBbGxvd1NraXB9OwoKICAgIG15ICVEYXRhICAgICAgICAgICAgICAgID0gKCk7CiAgICBteSAkV29ya2luZ1VuaXRJRCAgICAgICA9IDA7CiAgICBteSAlQ29tcGxldGVXb3JraW5nRGF5cyA9ICgpOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkRGF0ZVRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICgKICAgICAgICAkRGF0ZVRpbWVTZXR0aW5ncy0+e1NlY29uZH0sCiAgICAgICAgJERhdGVUaW1lU2V0dGluZ3MtPntNaW51dGV9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57SG91cn0sCiAgICAgICAgJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57WWVhcn0sCiAgICApOwoKICAgICMgVE9ETzogU2VhcmNoIG9ubHkgaW4gdGhlIEN1cnJlbnRVc2VyUGVyaW9kCiAgICAjIFRPRE86IFNlYXJjaCBvbmx5IHdvcmtpbmcgdW5pdHMgd2hlcmUgYWN0aW9uX2lkIGFuZCBwcm9qZWN0X2lkIGlzIHRydWUKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgRElTVElOQ1QgdGltZV9zdGFydAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkVXNlcklEIF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIGlmICggJFJvd1swXSA9fiAvXihcZCspLShcZCspLShcZCspLyApIHsKICAgICAgICAgICAgJENvbXBsZXRlV29ya2luZ0RheXN7JDF9eyQyfXskM30gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlVXNlckN1cnJlbnRQZXJpb2QgPSAkU2VsZi0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgIERheSAgID0+ICREYXksCiAgICApOwoKICAgIG15ICRXb3JraW5nRGF5cyA9IDA7CiAgICBteSAkWWVhclN0YXJ0ICAgPSAxOTcwOwogICAgbXkgJE1vbnRoU3RhcnQgID0gMTsKICAgIG15ICREYXlTdGFydCAgICA9IDE7CiAgICBteSAkWWVhckVuZCAgICAgPSAkWWVhcjsKICAgIG15ICRNb250aEVuZCAgICA9ICRNb250aDsKICAgIG15ICREYXlFbmQgICAgICA9ICREYXk7CgogICAgaWYgKAogICAgICAgICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfS0+e0RhdGVTdGFydH0KICAgICAgICAmJiAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9ID1+IC9eKFxkKyktKFxkKyktKFxkKykvCiAgICAgICAgKQogICAgewogICAgICAgICRZZWFyU3RhcnQgID0gJDE7CiAgICAgICAgJE1vbnRoU3RhcnQgPSAkMjsKICAgICAgICAkRGF5U3RhcnQgICA9ICQzOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRDYWxlbmRhciA9ICRVc2VyRGF0YXtDYWxlbmRhcn07CgogICAgZm9yIG15ICRZZWFyICggJFllYXJTdGFydCAuLiAkWWVhckVuZCApIHsKCiAgICAgICAgbXkgJE1vbnRoU3RhcnRQb2ludCA9ICRZZWFyID09ICRZZWFyU3RhcnQgPyAkTW9udGhTdGFydCA6IDE7CiAgICAgICAgbXkgJE1vbnRoRW5kUG9pbnQgICA9ICRZZWFyID09ICRZZWFyRW5kICAgPyAkTW9udGhFbmQgICA6IDEyOwoKICAgICAgICBmb3IgbXkgJE1vbnRoICggJE1vbnRoU3RhcnRQb2ludCAuLiAkTW9udGhFbmRQb2ludCApIHsKCiAgICAgICAgICAgIG15ICREYXlTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCAmJiAkTW9udGggPT0gJE1vbnRoU3RhcnQgPyAkRGF5U3RhcnQgOiAxOwoKICAgICAgICAgICAgbXkgJERheUVuZFBvaW50OwogICAgICAgICAgICBpZiAoICRZZWFyID09ICRZZWFyRW5kICYmICRNb250aCA9PSAkTW9udGhFbmQgKSB7CiAgICAgICAgICAgICAgICAkRGF5RW5kUG9pbnQgPSAkRGF5RW5kOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJERheUVuZFBvaW50ID0gJFNlbGYtPkRheXNJbk1vbnRoKCAkWWVhciwgJE1vbnRoICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRNb250aFN0cmluZyA9IHNwcmludGYgIiUwMmQiLCAkTW9udGg7CgogICAgICAgICAgICBmb3IgbXkgJERheSAoICREYXlTdGFydFBvaW50IC4uICREYXlFbmRQb2ludCApIHsKCiAgICAgICAgICAgICAgICBteSAkVmFjYXRpb25DaGVjayA9ICRTZWxmLT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgIENhbGVuZGFyID0+ICRDYWxlbmRhciB8fCAnJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBHZXQgY2FsZW5kYXIgdGltZXpvbmUgb3IgdXNlIHRoZSBvbmUgb2YgdGltZS1hY2NvdW50aW5nIG9iamVjdC4KICAgICAgICAgICAgICAgIG15ICRUaW1lWm9uZSA9ICRDb25maWdPYmplY3QtPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAoICRDYWxlbmRhciB8fCAnJyApICkKICAgICAgICAgICAgICAgICAgICB8fCAkU2VsZi0+e1RpbWVab25lfTsKCiAgICAgICAgICAgICAgICBteSAkRGF5U3RhcnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBIb3VyICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBNaW51dGUgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBTZWNvbmQgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZSA9PiAkVGltZVpvbmUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJERheVN0b3BUaW1lID0gJERheVN0YXJ0VGltZS0+Q2xvbmUoKTsKICAgICAgICAgICAgICAgICREYXlTdG9wVGltZS0+U2V0KAogICAgICAgICAgICAgICAgICAgIEhvdXIgICA9PiAyMywKICAgICAgICAgICAgICAgICAgICBNaW51dGUgPT4gNTksCiAgICAgICAgICAgICAgICAgICAgU2Vjb25kID0+IDU5LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIENvbnZlcnQgdG8gdGhlIHRpbWV6b25lIG9mIHRpbWUtYWNjb3VudGluZyBvYmplY3QuCiAgICAgICAgICAgICAgICAkRGF5U3RhcnRUaW1lLT5Ub1RpbWVab25lKAogICAgICAgICAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICREYXlTdG9wVGltZS0+VG9UaW1lWm9uZSgKICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBDb252ZXJ0IHRvIGVwb2Nocy4KICAgICAgICAgICAgICAgICREYXlTdGFydFRpbWUgPSAkRGF5U3RhcnRUaW1lLT5Ub0Vwb2NoKCk7CiAgICAgICAgICAgICAgICAkRGF5U3RvcFRpbWUgID0gJERheVN0b3BUaW1lLT5Ub0Vwb2NoKCk7CgogICAgICAgICAgICAgICAgIyBPTEQgQ09ERQoKICAgICAgICAgICAgICAgICNteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgIyAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICMgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgIyAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgIyAgICAgICAgRGF5ICAgPT4gJERheSwKICAgICAgICAgICAgICAgICMgICAgfSwKICAgICAgICAgICAgICAgICMpOwoKICAgICAgICAgICAgICAgICNteSAkRGF0ZSA9IHNwcmludGYgIiUwNGQtJTAyZC0lMDJkIiwgJFllYXIsICRNb250aCwgJERheTsKCiAgICAgICAgICAgICAgICAjbXkgJERhdGVUaW1lT2JqZWN0U3RhcnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgIyAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICMgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgIFN0cmluZyA9PiAkRGF0ZSAuICcgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgIyAgICB9LAogICAgICAgICAgICAgICAgIyk7CiAgICAgICAgICAgICAgICAjbXkgJERheVN0YXJ0VGltZSA9ICREYXRlVGltZU9iamVjdFN0YXJ0LT5Ub0Vwb2NoKCk7CgogICAgICAgICAgICAgICAgI215ICREYXRlVGltZU9iamVjdFN0b3AgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgIyAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICMgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgIFN0cmluZyA9PiAkRGF0ZSAuICcgMjM6NTk6NTknLAogICAgICAgICAgICAgICAgIyAgICB9LAogICAgICAgICAgICAgICAgIyk7CiAgICAgICAgICAgICAgICAjbXkgJERheVN0b3BUaW1lID0gJERhdGVUaW1lT2JqZWN0U3RvcC0+VG9FcG9jaCgpOwoKICAgICAgICAgICAgICAgICMgYWRkIHRpbWUgem9uZSB0byBjYWxjdWxhdGlvbgogICAgICAgICAgICAgICAgI215ICRab25lID0gJENvbmZpZ09iamVjdC0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICggJENhbGVuZGFyIHx8ICcnICkgKTsKICAgICAgICAgICAgICAgICNpZiAoJFpvbmUpIHsKICAgICAgICAgICAgICAgICMgICAgbXkgJFpvbmVTZWNvbmRzID0gJFpvbmUgKiA2MCAqIDYwOwogICAgICAgICAgICAgICAgIyAgICAkRGF5U3RhcnRUaW1lID0gJERheVN0YXJ0VGltZSAtICRab25lU2Vjb25kczsKICAgICAgICAgICAgICAgICMgICAgJERheVN0b3BUaW1lICA9ICREYXlTdG9wVGltZSAtICRab25lU2Vjb25kczsKICAgICAgICAgICAgICAgICN9CgogICAgICAgICAgICAgICAgIyBFTkQKCiAgICAgICAgICAgICAgICBteSAkVGhpc0RheVdvcmtpbmdUaW1lID0gJFNlbGYtPldvcmtpbmdUaW1lKAogICAgICAgICAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAkRGF5U3RhcnRUaW1lLAogICAgICAgICAgICAgICAgICAgIFN0b3BUaW1lICA9PiAkRGF5U3RvcFRpbWUsCiAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgID0+ICRDYWxlbmRhciB8fCAnJywKICAgICAgICAgICAgICAgICkgfHwgJzAnOwoKICAgICAgICAgICAgICAgIG15ICREYXlTdHJpbmcgPSBzcHJpbnRmICIlMDJkIiwgJERheTsKCiAgICAgICAgICAgICAgICBpZiAoICRUaGlzRGF5V29ya2luZ1RpbWUgJiYgISRWYWNhdGlvbkNoZWNrICkgewogICAgICAgICAgICAgICAgICAgICRXb3JraW5nRGF5cyArPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRUaGlzRGF5V29ya2luZ1RpbWUKICAgICAgICAgICAgICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICAgICAgICAgICAgICAmJiAhJENvbXBsZXRlV29ya2luZ0RheXN7JFllYXJ9eyRNb250aFN0cmluZ317JERheVN0cmluZ30KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9eyRNb250aFN0cmluZ317JERheVN0cmluZ30gPSAkV29ya2luZ0RheXM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBteSAkTWF4SW50ZXJ2YWxsT2ZJbmNvbXBsZXRlRGF5cyA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cycpIHx8ICc1JzsKICAgIG15ICRNYXhJbnRlcnZhbGxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZwogICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZycpCiAgICAgICAgfHwgJzMnOwogICAgZm9yIG15ICRZZWFyICggc29ydCBrZXlzICV7ICREYXRhe0luY29tcGxldGV9IH0gKSB7CgogICAgICAgIGZvciBteSAkTW9udGggKCBzb3J0IGtleXMgJXsgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9IH0gKSB7CgogICAgICAgICAgICBmb3IgbXkgJERheSAoIHNvcnQga2V5cyAleyAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn17JE1vbnRofSB9ICkgewoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn17JE1vbnRofXskRGF5fQogICAgICAgICAgICAgICAgICAgIDwgJFdvcmtpbmdEYXlzIC0gJE1heEludGVydmFsbE9mSW5jb21wbGV0ZURheXMKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7RW5mb3JjZUluc2VydH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAgICAgICAgICREYXRhe0luY29tcGxldGV9eyRZZWFyfXskTW9udGh9eyREYXl9CiAgICAgICAgICAgICAgICAgICAgPCAkV29ya2luZ0RheXMgLSAkTWF4SW50ZXJ2YWxsT2ZJbmNvbXBsZXRlRGF5c0JlZm9yZVdhcm5pbmcKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7V2FybmluZ30gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFdvcmtpbmdVbml0c0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB3b3JraW5nIHVuaXRzIGRhdGEKCiAgICBteSAlV29ya2luZ1VuaXRzRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgIFllYXIgICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggID0+ICc3JywKICAgICAgICBEYXkgICAgPT4gJzEzJywKICAgICAgICBVc2VySUQgPT4gJzEyMycsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREYXRlICAgICAgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CiAgICBteSAkRGF0ZVN0YXJ0ID0gJERhdGUgLiAiIDAwOjAwOjAwIjsKICAgIG15ICREYXRlU3RvcCAgPSAkRGF0ZSAuICIgMjM6NTk6NTkiOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBhc2sgdGhlIGRhdGFiYXNlCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LCB0aW1lX2VuZCwgcGVyaW9kCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHRpbWVfc3RhcnQgPj0gPwogICAgICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPD0gPwogICAgICAgICAgICAgICAgQU5EIHVzZXJfaWQgPSA/CiAgICAgICAgICAgIE9SREVSIGJ5IGlkJywKICAgICAgICBCaW5kID0+IFsgXCREYXRlU3RhcnQsIFwkRGF0ZVN0b3AsIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICBteSAlRGF0YSA9ICgKICAgICAgICBUb3RhbCA9PiAwLAogICAgICAgIERhdGUgID0+ICREYXRlLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAkUm93WzRdICF+IG17XiAoLis/KSBccyAoXGQrOlxkKykgOiAoXGQrKSB9eG1zOwoKICAgICAgICAjIGNoZWNrIGlmIGl0IGlzIGEgc3BlY2lhbCB3b3JraW5nIHVuaXQKICAgICAgICBpZiAoICRSb3dbMV0gPT0gLTEgKSB7CiAgICAgICAgICAgIG15ICRBY3Rpb25JRCA9ICRSb3dbMl07CgogICAgICAgICAgICAkRGF0YXtTaWNrfSAgICAgPSAkQWN0aW9uSUQgPT0gLTEgPyAxIDogMDsKICAgICAgICAgICAgJERhdGF7TGVhdmVEYXl9ID0gJEFjdGlvbklEID09IC0yID8gMSA6IDA7CiAgICAgICAgICAgICREYXRhe092ZXJ0aW1lfSA9ICRBY3Rpb25JRCA9PSAtMyA/IDEgOiAwOwoKICAgICAgICAgICAgbmV4dCBST1c7CiAgICAgICAgfQoKICAgICAgICBteSAkU3RhcnRUaW1lID0gJDI7CiAgICAgICAgbXkgJEVuZFRpbWUgICA9ICcnOwogICAgICAgIGlmICggJFJvd1s1XSA9fiBte14oLis/KVxzKFxkKzpcZCspOihcZCspfXhtcyApIHsKICAgICAgICAgICAgJEVuZFRpbWUgPSAkMjsKCiAgICAgICAgICAgICMgcmVwbGFjZSAyMzo1OTo1OSB3aXRoIDI0OjAwCiAgICAgICAgICAgIGlmICggJEVuZFRpbWUgZXEgJzIzOjU5JyAmJiAkMyBlcSAnNTknICkgewogICAgICAgICAgICAgICAgJEVuZFRpbWUgPSAnMjQ6MDAnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAoCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFJvd1sxXSwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRSb3dbMl0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAkUm93WzNdLAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJFN0YXJ0VGltZSwKICAgICAgICAgICAgRW5kVGltZSAgID0+ICRFbmRUaW1lLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gZGVmaW5lZCggJFJvd1s2XSApID8gc3ByaW50ZiggIiUuMmYiLCAkUm93WzZdICkgOiAwLAogICAgICAgICk7CgogICAgICAgICMgb25seSBjb3VudCBjb21wbGV0ZSB3b3JraW5nIHVuaXRzCiAgICAgICAgaWYgKCAkUm93WzFdICYmICRSb3dbMl0gKSB7CiAgICAgICAgICAgICREYXRhe1RvdGFsfSArPSAkV29ya2luZ1VuaXR7UGVyaW9kfTsKICAgICAgICB9CgogICAgICAgIHB1c2ggQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9LCBcJVdvcmtpbmdVbml0OwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFdvcmtpbmdVbml0c0luc2VydCgpCgppbnNlcnQgd29ya2luZyB1bml0cyBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICBZZWFyICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggPT4gJzA3JywKICAgICAgICBEYXkgICA9PiAnMDInLAogICAgICAgIExlYXZlRGF5ID0+IDEsIHx8IDAKICAgICAgICBTaWNrICAgICA9PiAxLCB8fCAwCiAgICAgICAgT3ZlcnRpbWUgPT4gMSwgfHwgMAogICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAxLAogICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+IDIzLAogICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTb21lVGV4dCcsCiAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJzc6MzAnLAogICAgICAgICAgICAgICAgRW5kVGltZSAgID0+ICcxMTowMCcsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzguNScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsgLi4uLi4uIH0sCiAgICAgICAgXSwKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBXb3JraW5nVW5pdHNJbnNlcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoWWVhciBNb250aCBEYXkgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIldvcmtpbmdVbml0c0luc2VydDogTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERhdGUgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CgogICAgIyBhZGQgc3BlY2lhbCB0aW1lIHdvcmtpbmcgdW5pdHMKICAgIG15ICVTcGVjaWFsQWN0aW9uID0gKAogICAgICAgICdTaWNrJyAgICAgPT4gJy0xJywKICAgICAgICAnTGVhdmVEYXknID0+ICctMicsCiAgICAgICAgJ092ZXJ0aW1lJyA9PiAnLTMnLAogICAgKTsKCiAgICBFTEVNRU5UOgogICAgZm9yIG15ICRFbGVtZW50IChxdyhMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewoKICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRQYXJhbXskRWxlbWVudH07CgogICAgICAgIG15ICVVbml0ID0gKAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gLTEsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkU3BlY2lhbEFjdGlvbnskRWxlbWVudH0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAnJywKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICcnLAogICAgICAgICAgICBFbmRUaW1lICAgPT4gJycsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAwLAogICAgICAgICk7CgogICAgICAgIHB1c2ggQHsgJFBhcmFte1dvcmtpbmdVbml0c30gfSwgXCVVbml0OwogICAgfQoKICAgICMgaW5zZXJ0IG5ldyB3b3JraW5nIHVuaXRzCiAgICBVTklUUkVGOgogICAgZm9yIG15ICRVbml0UmVmICggQHsgJFBhcmFte1dvcmtpbmdVbml0c30gfSApIHsKCiAgICAgICAgbXkgJFN0YXJ0VGltZSA9ICREYXRlIC4gJyAnIC4gKCAkVW5pdFJlZi0+e1N0YXJ0VGltZX0gfHwgJzAwOjAwJyApIC4gJzowMCc7CiAgICAgICAgbXkgJEVuZFRpbWUgICA9ICREYXRlIC4gJyAnIC4gKCAkVW5pdFJlZi0+e0VuZFRpbWV9ICAgfHwgJzAwOjAwJyApIC4gJzowMCc7CgogICAgICAgICMgJycgZG9lcyBub3Qgd29yayBpbiBpbnRlZ2VyIGZpZWxkIG9mIFBvc3RncmVTUUwKICAgICAgICAkVW5pdFJlZi0+e1Byb2plY3RJRH0gfHw9IDA7CiAgICAgICAgJFVuaXRSZWYtPntBY3Rpb25JRH0gIHx8PSAwOwogICAgICAgICRVbml0UmVmLT57UGVyaW9kfSAgICB8fD0gMDsKCiAgICAgICAgIyBidWlsZCBEUUwKICAgICAgICBteSAkU1FMID0gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfdGFibGUgKHVzZXJfaWQsIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LAogICAgICAgICAgICAgICAgdGltZV9lbmQsIHBlcmlvZCwgY3JlYXRlZCApCiAgICAgICAgICAgIFZBTFVFUyAgKCA/LCA/LCA/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCknOwogICAgICAgIG15ICRCaW5kID0gWwogICAgICAgICAgICBcJFBhcmFte1VzZXJJRH0sIFwkVW5pdFJlZi0+e1Byb2plY3RJRH0sIFwkVW5pdFJlZi0+e0FjdGlvbklEfSwKICAgICAgICAgICAgXCRVbml0UmVmLT57UmVtYXJrfSwgXCRTdGFydFRpbWUsIFwkRW5kVGltZSwgXCRVbml0UmVmLT57UGVyaW9kfSwKICAgICAgICBdOwoKICAgICAgICAjIGRiIGluc2VydAogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgICAgIEJpbmQgPT4gJEJpbmQKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgV29ya2luZ1VuaXRzRGVsZXRlKCkKCmRlbGV0ZXMgd29ya2luZyB1bml0cyBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0RlbGV0ZSgKICAgICAgICBZZWFyICAgPT4gJzIwMTUnLAogICAgICAgIE1vbnRoICA9PiAnNycsCiAgICAgICAgRGF5ICAgID0+ICcxMycsCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgV29ya2luZ1VuaXRzRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3KFllYXIgTW9udGggRGF5IFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJXb3JraW5nVW5pdHNJbnNlcnQ6IE5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREYXRlICAgICAgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CiAgICBteSAkU3RhcnRUaW1lID0gJERhdGUgLiAnIDAwOjAwOjAwJzsKICAgIG15ICRFbmRUaW1lICAgPSAkRGF0ZSAuICcgMjM6NTk6NTknOwoKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIERFTEVURSBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB0aW1lX3N0YXJ0ID49ID8KICAgICAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0IDw9ID8KICAgICAgICAgICAgICAgIEFORCB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkU3RhcnRUaW1lLCBcJEVuZFRpbWUsIFwkUGFyYW17VXNlcklEfSwgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nKCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGhvdXJzIGRlcGVuZGVudCBwcm9qZWN0IGFuZCBhY3Rpb24gZGF0YQoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEFjdGlvblJlcG9ydGluZygKICAgICAgICBZZWFyICA9PiAyMDA1LAogICAgICAgIE1vbnRoID0+IDcsCiAgICAgICAgVXNlcklEID0+IDEyMywgIyBvcHRpb25hbDsgbm8gVXNlcklEIG1lYW5zICdvZiBhbGwgdXNlcnMnCiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RBY3Rpb25SZXBvcnRpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhZZWFyIE1vbnRoKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXskUGFyYW1ldGVyfSApIHx8ICcnOwogICAgICAgIGlmICggISRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlByb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgJFBhcmFtZXRlciEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgaG91cnMgcGVyIG1vbnRoCiAgICBteSAkRGF5c0luTW9udGggPSAkU2VsZi0+RGF5c0luTW9udGgoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSApOwogICAgbXkgJERhdGVTdHJpbmcgID0gJFBhcmFte1llYXJ9IC4gIi0iIC4gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICBteSAkU1FMRGF0ZSAgICAgPSAiJERhdGVTdHJpbmctJERheXNJbk1vbnRoIDIzOjU5OjU5IjsKCiAgICBteSAkU1FMID0gJwogICAgICAgIFNFTEVDVCBwcm9qZWN0X2lkLCBhY3Rpb25faWQsIHBlcmlvZAogICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgV0hFUkUgcHJvamVjdF9pZCAhPSAtMQogICAgICAgICAgICBBTkQgdGltZV9zdGFydCA8PSA/JzsKICAgIG15IEBCaW5kID0gKCBcJFNRTERhdGUgKTsKCiAgICBpZiAoICRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRTUUwgLj0gJyBBTkQgdXNlcl9pZCA9ID8nOwogICAgICAgIHB1c2ggQEJpbmQsIFwkUGFyYW17VXNlcklEfTsKICAgIH0KCiAgICAjIHRvdGFsIGhvdXJzCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gXEBCaW5kLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAhJFJvd1syXTsKCiAgICAgICAgJERhdGF7ICRSb3dbMF0gfS0+e0FjdGlvbnN9LT57ICRSb3dbMV0gfS0+e1RvdGFsfSArPSAkUm93WzJdOwogICAgfQoKICAgIG15ICRTUUxEYXRlU3RhcnQgPSAiJERhdGVTdHJpbmctMDEgMDA6MDA6MDAiOwoKICAgICRTUUwgPSAnCiAgICAgICAgU0VMRUNUIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcGVyaW9kCiAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICBXSEVSRSBwcm9qZWN0X2lkICE9IC0xCiAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0ID49ID8KICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPD0gPyc7CiAgICBAQmluZCA9ICggXCRTUUxEYXRlU3RhcnQsIFwkU1FMRGF0ZSApOwoKICAgIGlmICggJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFNRTCAuPSAnIEFORCB1c2VyX2lkID0gPyc7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXtVc2VySUR9OwogICAgfQoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBcQEJpbmQsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAhJFJvd1syXTsKCiAgICAgICAgJERhdGF7ICRSb3dbMF0gfS0+e0FjdGlvbnN9LT57ICRSb3dbMV0gfS0+e1Blck1vbnRofSArPSAkUm93WzJdOwogICAgfQoKICAgICMgYWRkIHJlYWRhYmxlIGNvbXBvbmVudHMKICAgIG15ICVQcm9qZWN0ID0gJFNlbGYtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbiAgPSAkU2VsZi0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICBmb3IgbXkgJFByb2plY3RJRCAoIHNvcnQga2V5cyAlRGF0YSApIHsKCiAgICAgICAgJERhdGF7JFByb2plY3RJRH0tPntOYW1lfSAgICAgICAgPSAkUHJvamVjdHtQcm9qZWN0fS0+eyRQcm9qZWN0SUR9IHx8ICcnOwogICAgICAgICREYXRheyRQcm9qZWN0SUR9LT57U3RhdHVzfSAgICAgID0gJFByb2plY3R7UHJvamVjdFN0YXR1c30tPnskUHJvamVjdElEfTsKICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e0Rlc2NyaXB0aW9ufSA9ICRQcm9qZWN0e1Byb2plY3REZXNjcmlwdGlvbn0tPnskUHJvamVjdElEfTsKCiAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkRGF0YXskUHJvamVjdElEfS0+e0FjdGlvbnN9OwoKICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICV7JEFjdGlvbnNSZWZ9ICkgewogICAgICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e0FjdGlvbnN9LT57JEFjdGlvbklEfS0+e05hbWV9ID0gJEFjdGlvbnskQWN0aW9uSUR9LT57QWN0aW9ufSB8fCAnJzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgUHJvamVjdFRvdGFsSG91cnMoKQoKcmV0dXJucyB0aGUgc3VtIG9mIGFsbCBob3VycyByZWxhdGVkIHRvIGEgcHJvamVjdAoKICAgIG15ICRQcm9qZWN0VG90YWxIb3VycyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFRvdGFsSG91cnMoCiAgICAgICAgUHJvamVjdElEICA9PiAxNSwKICAgICk7Cgo9Y3V0CgpzdWIgUHJvamVjdFRvdGFsSG91cnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBwYXJhbQogICAgaWYgKCAhJFBhcmFte1Byb2plY3RJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdQcm9qZWN0QWN0aW9uUmVwb3J0aW5nOiBOZWVkIFByb2plY3RJRCEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBhc2sgdGhlIGRhdGFiYXNlCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgU1VNKHBlcmlvZCkKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgcHJvamVjdF9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtQcm9qZWN0SUR9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkVG90YWwgPSAwOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFRvdGFsID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJFRvdGFsOwp9Cgo9aGVhZDIgUHJvamVjdEhpc3RvcnkoKQoKcmV0dXJucyBhbiBhcnJheSB3aXRoIGFsbCBXb3JraW5nVW5pdHMgcmVsYXRlZCB0byBhIHByb2plY3QKCiAgICBteSBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEhpc3RvcnkoCiAgICAgICAgUHJvamVjdElEICA9PiAxNSwKICAgICk7CgpUaGlzIHdvdWxkIHJldHVybgoKICAgIEBQcm9qZWN0SGlzdG9yeUFycmF5ID0gKAogICAgICAgIHsKICAgICAgICAgICAgSUQgICAgICAgID0+IDk5OSwKICAgICAgICAgICAgVXNlcklEICAgID0+IDE1LAogICAgICAgICAgICBVc2VyICAgICAgPT4gJ1RvbScsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiA2LAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ21pc2MnLAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJ3JlbWFyaycsCiAgICAgICAgICAgIFRpbWVTdGFydCA9PiAnNzowMCcsCiAgICAgICAgICAgIFRpbWVFbmQgICA9PiAnMTg6MDAnLAogICAgICAgICAgICBEYXRlICAgICAgPT4gJzIwMDgtMTAtMzEnLCAjIHRoZSBkYXRlIG9mIHRoZSB3b3JraW5nIHVuaXQKICAgICAgICAgICAgUGVyaW9kICAgID0+IDExLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJzIwMDgtMTEtMDEnLCAjIHRoZSBpbnNlcnQgdGltZSBvZiB0aGUgd29ya2luZyB1bml0CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIElEICAgICAgICA9PiA5OTksCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAxNiwKICAgICAgICAgICAgVXNlciAgICAgID0+ICdNYW5lJywKICAgICAgICAgICAgQWN0aW9uSUQgID0+IDcsCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAnZGV2ZWxvcG1lbnQnLAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJ3JlbWFyaycsCiAgICAgICAgICAgIFRpbWVTdGFydCA9PiAnNzowMCcsCiAgICAgICAgICAgIFRpbWVFbmQgICA9PiAnMTg6MDAnLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMTEsCiAgICAgICAgICAgIERhdGUgICAgICA9PiAnMjAwOC0xMS0wMycsCiAgICAgICAgICAgIENyZWF0ZWQgICA9PiAnMjAwOC0xMS0wMycsCiAgICAgICAgfQogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0SGlzdG9yeSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtCiAgICBpZiAoICEkUGFyYW17UHJvamVjdElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1Byb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgUHJvamVjdElEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjYWxsIGFjdGlvbiBkYXRhIHRvIGdldCB0aGUgcmVhZGFibGUgbmFtZSBvZiB0aGUgYWN0aW9uCiAgICBteSAlQWN0aW9uRGF0YSA9ICRTZWxmLT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKICAgICMgZ2V0IHVzZXIgbGlzdAogICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGFzayB0aGUgZGF0YWJhc2UKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgaWQsIHVzZXJfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LCB0aW1lX2VuZCwgcGVyaW9kLCBjcmVhdGVkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHByb2plY3RfaWQgPSA/CiAgICAgICAgICAgIE9SREVSIEJZIHRpbWVfc3RhcnQnLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1Byb2plY3RJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSBARGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBteSAkVXNlclJlZiA9IHsKICAgICAgICAgICAgSUQgICAgICAgID0+ICRSb3dbMF0sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBVc2VyICAgICAgPT4gJFNob3duVXNlcnN7ICRSb3dbMV0gfSwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRSb3dbMl0sCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAkQWN0aW9uRGF0YXsgJFJvd1syXSB9e0FjdGlvbn0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAkUm93WzNdIHx8ICcnLAogICAgICAgICAgICBUaW1lU3RhcnQgPT4gJFJvd1s0XSwKICAgICAgICAgICAgVGltZUVuZCAgID0+ICRSb3dbNV0sCiAgICAgICAgICAgIERhdGUgICAgICA9PiAkUm93WzRdLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gJFJvd1s2XSwKICAgICAgICAgICAgQ3JlYXRlZCAgID0+ICRSb3dbN10sCiAgICAgICAgfTsKICAgICAgICAkVXNlclJlZi0+e0RhdGV9ID1+IHN7KFxkXGRcZFxkLVxkXGQtXGRcZCkgXHMgLisgfXskMX14bXM7CgogICAgICAgIHB1c2ggQERhdGEsICRVc2VyUmVmOwogICAgfQoKICAgIHJldHVybiBARGF0YTsKfQoKPWhlYWQyIExhc3RQcm9qZWN0c09mVXNlcigpCgpyZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGxhc3QgcHJvamVjdHMgb2YgdGhlIGN1cnJlbnQgdXNlcgoKICAgIG15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBMYXN0UHJvamVjdHNPZlVzZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEIgogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAjIEkgZG9uJ3QgdXNlIGRpc3RpbmN0IGJlY2F1c2Ugb2YgT1JERVIgQlkgcHJvYmxlbXMgb2YgUG9zdGdyZVNRTAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHByb2plY3RfaWQgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8KICAgICAgICAgICAgICAgIEFORCBwcm9qZWN0X2lkIDw+IC0xCiAgICAgICAgICAgIE9SREVSIEJZIHRpbWVfc3RhcnQgREVTQycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICBMaW1pdCA9PiA0MCwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlUHJvamVjdHM7CiAgICBteSAkQ291bnRlciA9IDA7CiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbmV4dCBST1cgaWYgJENvdW50ZXIgPiA3OwogICAgICAgIG5leHQgUk9XIGlmICRQcm9qZWN0c3sgJFJvd1swXSB9OwoKICAgICAgICAkUHJvamVjdHN7ICRSb3dbMF0gfSA9IDE7CiAgICAgICAgJENvdW50ZXIrKzsKICAgIH0KCiAgICByZXR1cm4ga2V5cyAlUHJvamVjdHM7Cn0KCj1oZWFkMiBEYXlPZldlZWsoKQoKU3Vic3RpdHV0ZSBmb3IgRGF0ZTo6UGNhbGM6OkRheV9vZl9XZWVrKCkgd2hpY2ggdXNlcyBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUuCgo9Y3V0CgpzdWIgRGF5T2ZXZWVrIHsKICAgIG15ICggJFNlbGYsICRZZWFyLCAkTW9udGgsICREYXkgKSA9IEBfOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgVGltZVpvbmUgPT4gJ2Zsb2F0aW5nJywKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICEkRGF0ZVRpbWVPYmplY3QgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICJlcnJvciIsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBjcmVhdGluZyBEYXRlVGltZSBvYmplY3QuIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJERhdGVUaW1lVmFsdWVzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICByZXR1cm4gJERhdGVUaW1lVmFsdWVzLT57RGF5T2ZXZWVrfTsKfQoKPWhlYWQyIEFkZERlbHRhWU1EKCkKClN1YnN0aXR1dGUgZm9yIERhdGU6OlBjYWxjOjpBZGRfRGVsdGFfWU1EKCkgd2hpY2ggdXNlcyBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUuCgo9Y3V0CgpzdWIgQWRkRGVsdGFZTUQgewogICAgbXkgKCAkU2VsZiwgJFllYXIsICRNb250aCwgJERheSwgJFllYXJzVG9BZGQsICRNb250aHNUb0FkZCwgJERheXNUb0FkZCApID0gQF87CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICBUaW1lWm9uZSA9PiAnZmxvYXRpbmcnLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggISREYXRlVGltZU9iamVjdCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gImVycm9yIiwKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIGNyZWF0aW5nIERhdGVUaW1lIG9iamVjdC4iLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAoICRZZWFyLCAkTW9udGgsICREYXksICk7CiAgICB9CgogICAgJERhdGVUaW1lT2JqZWN0LT5BZGQoCiAgICAgICAgWWVhcnMgID0+ICRZZWFyc1RvQWRkICB8fCAwLAogICAgICAgIE1vbnRocyA9PiAkTW9udGhzVG9BZGQgfHwgMCwKICAgICAgICBEYXlzICAgPT4gJERheXNUb0FkZCAgIHx8IDAsCiAgICApOwogICAgbXkgJERhdGVUaW1lVmFsdWVzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICByZXR1cm4gKAogICAgICAgICREYXRlVGltZVZhbHVlcy0+e1llYXJ9LAogICAgICAgICREYXRlVGltZVZhbHVlcy0+e01vbnRofSwKICAgICAgICAkRGF0ZVRpbWVWYWx1ZXMtPntEYXl9LAogICAgKTsKfQoKPWhlYWQyIERheXNJbk1vbnRoKCkKClN1YnN0aXR1dGUgZm9yIERhdGU6OlBjYWxjOjpEYXlzX2luX01vbnRoKCkgd2hpY2ggdXNlcyBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUuCgo9Y3V0CgpzdWIgRGF5c0luTW9udGggewogICAgbXkgKCAkU2VsZiwgJFllYXIsICRNb250aCApID0gQF87CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgICA9PiAxLAogICAgICAgICAgICBUaW1lWm9uZSA9PiAnZmxvYXRpbmcnLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggISREYXRlVGltZU9iamVjdCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gImVycm9yIiwKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIGNyZWF0aW5nIERhdGVUaW1lIG9iamVjdC4iLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkTGFzdERheU9mTW9udGggPSAkRGF0ZVRpbWVPYmplY3QtPkxhc3REYXlPZk1vbnRoR2V0KCk7CgogICAgcmV0dXJuICRMYXN0RGF5T2ZNb250aC0+e0RheX07Cn0KCj1oZWFkMiBWYWNhdGlvbkNoZWNrKCkKCmNoZWNrIGlmIHRoZSBzZWxlY3RlZCBkYXkgaXMgYSB2YWNhdGlvbiAoaXQgZG9lcyBub3QgbWF0dGVyIGlmIHlvdQppbnNlcnQgMDEgb3IgMSBmb3IgbW9udGggb3IgZGF5IGluIHRoZSBmdW5jdGlvbiBvciBpbiB0aGUgU3lzQ29uZmlnKQoKcmV0dXJucyAodHJ1ZSkgdmFjYXRpb24gZGF5IGlmIGV4aXN0cywgcmV0dXJucyBmYWxzZSBpZiBkYXRlIGlzIG5vCnZhY2F0aW9uIGRheQoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VmFjYXRpb25DaGVjaygKICAgICAgICBZZWFyICAgICA9PiAyMDA1LAogICAgICAgIE1vbnRoICAgID0+IDcgfHwgJzA3JywKICAgICAgICBEYXkgICAgICA9PiAxMywKICAgICk7CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgIFllYXIgICAgID0+IDIwMDUsCiAgICAgICAgTW9udGggICAgPT4gNyB8fCAnMDcnLAogICAgICAgIERheSAgICAgID0+IDEzLAogICAgICAgIENhbGVuZGFyID0+IDMsICMgJycgaXMgZGVmYXVsdDsgMCBpcyBoYW5kbGVkIGxpa2UgJycKICAgICk7Cgo9Y3V0CgpzdWIgVmFjYXRpb25DaGVjayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1zCiAgICBmb3IgKHF3KFllYXIgTW9udGggRGF5KSkgewogICAgICAgIGlmICggISRQYXJhbXskX30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJWYWNhdGlvbkNoZWNrOiBOZWVkICRfISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9LAogICAgICAgIH0sCiAgICApOwogICAgaWYgKCAhJERhdGVUaW1lT2JqZWN0ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3IgY3JlYXRpbmcgRGF0ZVRpbWUgb2JqZWN0LiIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuICREYXRlVGltZU9iamVjdC0+SXNWYWNhdGlvbkRheSgKICAgICAgICBDYWxlbmRhciA9PiAkUGFyYW17Q2FsZW5kYXJ9LAogICAgKTsKfQoKPWhlYWQyIFdvcmtpbmdUaW1lKCkKCmdldCB0aGUgd29ya2luZyB0aW1lIGluIHNlY29uZHMgYmV0d2VlbiB0aGVzZSBsb2NhbCBzeXN0ZW0gdGltZXMuCgogICAgbXkgJFdvcmtpbmdUaW1lID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVGltZSgKICAgICAgICBTdGFydFRpbWUgPT4gJENyZWF0ZWQsCiAgICAgICAgU3RvcFRpbWUgID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICApOwoKICAgIG15ICRXb3JraW5nVGltZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1RpbWUoCiAgICAgICAgU3RhcnRUaW1lID0+ICRDcmVhdGVkLAogICAgICAgIFN0b3BUaW1lICA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgICAgIENhbGVuZGFyICA9PiAzLCAjICcnIGlzIGRlZmF1bHQKICAgICk7Cgo9Y3V0CgpzdWIgV29ya2luZ1RpbWUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIChxdyhTdGFydFRpbWUgU3RvcFRpbWUpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JF99ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkXyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwIGlmICRQYXJhbXtTdGFydFRpbWV9ID49ICRQYXJhbXtTdG9wVGltZX07CgogICAgbXkgJFN0YXJ0RGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIEVwb2NoICAgID0+ICRQYXJhbXtTdGFydFRpbWV9LAogICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkU3RvcERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBFcG9jaCAgICA9PiAkUGFyYW17U3RvcFRpbWV9LAogICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkRGVsdGEgPSAkU3RhcnREYXRlVGltZU9iamVjdC0+RGVsdGEoCiAgICAgICAgRGF0ZVRpbWVPYmplY3QgPT4gJFN0b3BEYXRlVGltZU9iamVjdCwKICAgICAgICBGb3JXb3JraW5nVGltZSA9PiAxLAogICAgICAgIENhbGVuZGFyICAgICAgID0+ICRQYXJhbXtDYWxlbmRhcn0sCiAgICApOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCREZWx0YSkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdFcnJvciBjYWxjdWxhdGluZyB3b3JraW5nIHRpbWUuJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gJERlbHRhLT57QWJzb2x1dGVTZWNvbmRzfTsKfQoKPWhlYWQyIFN5c3RlbVRpbWUyRGF0ZSgpCgpjb252ZXJ0cyBhIHN5c3RlbSB0aW1lIHRvIGEgc3RydWN0dXJlZCBkYXRlIGFycmF5LgoKICAgIG15ICgkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciwgJFdlZWtEYXkpID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgKTsKCiRXZWVrRGF5IGlzIHRoZSBkYXkgb2YgdGhlIHdlZWssIHdpdGggMCBpbmRpY2F0aW5nIFN1bmRheSBhbmQgMyBpbmRpY2F0aW5nIFdlZG5lc2RheS4KCj1jdXQKCnN1YiBTeXN0ZW1UaW1lMkRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17U3lzdGVtVGltZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN5c3RlbVRpbWUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIEVwb2NoID0+ICRQYXJhbXtTeXN0ZW1UaW1lfSwKICAgICAgICB9LAogICAgKTsKCiAgICAkRGF0ZVRpbWVPYmplY3QtPlRvVGltZVpvbmUoIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9ICk7CgogICAgbXkgJERhdGVUaW1lVmFsdWVzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICBteSAkWWVhciAgPSAkRGF0ZVRpbWVWYWx1ZXMtPntZZWFyfTsKICAgIG15ICRNb250aCA9IHNwcmludGYgIiUwMmQiLCAkRGF0ZVRpbWVWYWx1ZXMtPntNb250aH07CiAgICBteSAkRGF5ICAgPSBzcHJpbnRmICIlMDJkIiwgJERhdGVUaW1lVmFsdWVzLT57RGF5fTsKICAgIG15ICRIb3VyICA9IHNwcmludGYgIiUwMmQiLCAkRGF0ZVRpbWVWYWx1ZXMtPntIb3VyfTsKICAgIG15ICRNaW4gICA9IHNwcmludGYgIiUwMmQiLCAkRGF0ZVRpbWVWYWx1ZXMtPntNaW51dGV9OwogICAgbXkgJFNlYyAgID0gc3ByaW50ZiAiJTAyZCIsICREYXRlVGltZVZhbHVlcy0+e1NlY29uZH07CgogICAgbXkgJFdEYXkgPSAkRGF0ZVRpbWVWYWx1ZXMtPntEYXlPZldlZWt9ID09IDcgPyAwIDogJERhdGVUaW1lVmFsdWVzLT57RGF5T2ZXZWVrfTsKCiAgICByZXR1cm4gKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciwgJFdEYXkgKTsKfQoKPWhlYWQyIERheU9mV2Vla1RvTmFtZSgpCgpDb252ZXJ0IGEgZGF5IG51bWJlciBpbnRvIHRoZSBkYXkgbmFtZQoKICAgIG15ICREYXlOYW1lID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXlPZldlZWtUb05hbWUoCiAgICAgICAgTnVtYmVyID0+IDEgIyB3aWxsIHJldHVybiAnTW9uZGF5JwogICAgKTsKCj1jdXQKCnN1YiBEYXlPZldlZWtUb05hbWUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17TnVtYmVyfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgTnVtYmVyISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAhSXNQb3NpdGl2ZUludGVnZXIoICRQYXJhbXtOdW1iZXJ9ICkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOdW1iZXIgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICggJFBhcmFte051bWJlcn0gPiA3ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTnVtYmVyIG11c3Qgbm90IGJlIGdyYXRlciB0aGFuIDchIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSBARGF5TmFtZXMgPSAoCiAgICAgICAgJ01vbmRheScsCiAgICAgICAgJ1R1ZXNkYXknLAogICAgICAgICdXZWRuZXNkYXknLAogICAgICAgICdUaHVyc2RheScsCiAgICAgICAgJ0ZyaWRheScsCiAgICAgICAgJ1NhdHVyZGF5JywKICAgICAgICAnU3VuZGF5JwogICAgKTsKCiAgICByZXR1cm4gJERheU5hbWVzWyAkUGFyYW17TnVtYmVyfSAtIDEgXTsKfQoKPWhlYWQyIERhdGUyU3lzdGVtVGltZSgpCgpjb252ZXJ0cyBhIHN0cnVjdHVyZWQgZGF0ZSBhcnJheSB0byBzeXN0ZW0gdGltZSBvZiBPVFJTLgoKICAgIG15ICRTeXN0ZW1UaW1lID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgWWVhciAgID0+IDIwMDQsCiAgICAgICAgTW9udGggID0+IDgsCiAgICAgICAgRGF5ICAgID0+IDE0LAogICAgICAgIEhvdXIgICA9PiAyMiwKICAgICAgICBNaW51dGUgPT4gNDUsCiAgICAgICAgU2Vjb25kID0+IDAsCiAgICApOwoKPWN1dAoKc3ViIERhdGUyU3lzdGVtVGltZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3KFllYXIgTW9udGggRGF5IEhvdXIgTWludXRlIFNlY29uZCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskX30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRfISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggISREYXRlVGltZU9iamVjdCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgIkludmFsaWQgRGF0ZSAnJFBhcmFte1llYXJ9LSRQYXJhbXtNb250aH0tJFBhcmFte0RheX0gJFBhcmFte0hvdXJ9OiRQYXJhbXtNaW51dGV9OiRQYXJhbXtTZWNvbmR9JyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRTeXN0ZW1UaW1lID0gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCk7CgogICAgcmV0dXJuICRTeXN0ZW1UaW1lOwp9Cgo9aGVhZDIgVGltZVN0YW1wMlN5c3RlbVRpbWUoKQoKY29udmVydHMgYSBnaXZlbiB0aW1lIHN0YW1wIHRvIGxvY2FsIHN5c3RlbSB0aW1lLgoKICAgIG15ICRTeXN0ZW1UaW1lID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICBTdHJpbmcgPT4gJzIwMDQtMDgtMTQgMjI6NDU6MDAnLAogICAgKTsKCj1jdXQKCnN1YiBUaW1lU3RhbXAyU3lzdGVtVGltZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17U3RyaW5nfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgU3RyaW5nIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJFN5c3RlbVRpbWUgPSAwOwoKICAgICMgbWF0Y2ggaXNvIGRhdGUgZm9ybWF0CiAgICBpZiAoICRQYXJhbXtTdHJpbmd9ID1+IC8oXGR7NH0pLShcZHsxLDJ9KS0oXGR7MSwyfSlccyhcZHsxLDJ9KTooXGR7MSwyfSk6KFxkezEsMn0pLyApIHsKICAgICAgICAkU3lzdGVtVGltZSA9ICRTZWxmLT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkMSwKICAgICAgICAgICAgTW9udGggID0+ICQyLAogICAgICAgICAgICBEYXkgICAgPT4gJDMsCiAgICAgICAgICAgIEhvdXIgICA9PiAkNCwKICAgICAgICAgICAgTWludXRlID0+ICQ1LAogICAgICAgICAgICBTZWNvbmQgPT4gJDYsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1hdGNoIGlzbyBkYXRlIGZvcm1hdCAod3JvbmcgZm9ybWF0KQogICAgZWxzaWYgKCAkUGFyYW17U3RyaW5nfSA9fiAvKFxkezEsMn0pLShcZHsxLDJ9KS0oXGR7NH0pXHMoXGR7MSwyfSk6KFxkezEsMn0pOihcZHsxLDJ9KS8gKSB7CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU2VsZi0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJDMsCiAgICAgICAgICAgIE1vbnRoICA9PiAkMiwKICAgICAgICAgICAgRGF5ICAgID0+ICQxLAogICAgICAgICAgICBIb3VyICAgPT4gJDQsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAkNSwKICAgICAgICAgICAgU2Vjb25kID0+ICQ2LAogICAgICAgICk7CiAgICB9CgogICAgIyBtYXRjaCBldXJvIHRpbWUgZm9ybWF0CiAgICBlbHNpZiAoICRQYXJhbXtTdHJpbmd9ID1+IC8oXGR7MSwyfSlcLihcZHsxLDJ9KVwuKFxkezR9KVxzKFxkezEsMn0pOihcZHsxLDJ9KTooXGR7MSwyfSkvICkgewogICAgICAgICRTeXN0ZW1UaW1lID0gJFNlbGYtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICQzLAogICAgICAgICAgICBNb250aCAgPT4gJDIsCiAgICAgICAgICAgIERheSAgICA9PiAkMSwKICAgICAgICAgICAgSG91ciAgID0+ICQ0LAogICAgICAgICAgICBNaW51dGUgPT4gJDUsCiAgICAgICAgICAgIFNlY29uZCA9PiAkNiwKICAgICAgICApOwogICAgfQoKICAgICMgbWF0Y2ggeXl5eS1tbS1kZFRoaDptbTpzcyt0dDp6eiB0aW1lIGZvcm1hdAogICAgZWxzaWYgKAogICAgICAgICRQYXJhbXtTdHJpbmd9CiAgICAgICAgPX4gLyhcZHs0fSktKFxkezEsMn0pLShcZHsxLDJ9KVQoXGR7MSwyfSk6KFxkezEsMn0pOihcZHsxLDJ9KShcK3xcLSkoKFxkezEsMn0pOihcZHsxLDJ9KSkvaQogICAgICAgICkKICAgIHsKICAgICAgICAkU3lzdGVtVGltZSA9ICRTZWxmLT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkMSwKICAgICAgICAgICAgTW9udGggID0+ICQyLAogICAgICAgICAgICBEYXkgICAgPT4gJDMsCiAgICAgICAgICAgIEhvdXIgICA9PiAkNCwKICAgICAgICAgICAgTWludXRlID0+ICQ1LAogICAgICAgICAgICBTZWNvbmQgPT4gJDYsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1hdGNoIG1haWwgdGltZSBmb3JtYXQKICAgIGVsc2lmICgKICAgICAgICAkUGFyYW17U3RyaW5nfQogICAgICAgID1+IC8oKC4uLiksXHMrfCkoXGR7MSwyfSlccyguLi4pXHMoXGR7NH0pXHMoXGR7MSwyfSk6KFxkezEsMn0pOihcZHsxLDJ9KVxzKChcK3xcLSkoXGR7Mn0pKFxkezJ9KXwuLi4pLwogICAgICAgICkKICAgIHsKICAgICAgICBteSBATW9udGhNYXAgICAgPSBxdy9KYW4gRmViIE1hciBBcHIgTWF5IEp1biBKdWwgQXVnIFNlcCBPY3QgTm92IERlYy87CiAgICAgICAgbXkgJE1vbnRoICAgICAgID0gMTsKICAgICAgICBteSAkTW9udGhTdHJpbmcgPSAkNDsKICAgICAgICBmb3IgbXkgJE1vbnRoQ291bnQgKCAwIC4uICQjTW9udGhNYXAgKSB7CiAgICAgICAgICAgIGlmICggJE1vbnRoU3RyaW5nID1+IC8kTW9udGhNYXBbJE1vbnRoQ291bnRdL2kgKSB7CiAgICAgICAgICAgICAgICAkTW9udGggPSAkTW9udGhDb3VudCArIDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU2VsZi0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJDUsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkMywKICAgICAgICAgICAgSG91ciAgID0+ICQ2LAogICAgICAgICAgICBNaW51dGUgPT4gJDcsCiAgICAgICAgICAgIFNlY29uZCA9PiAkOCwKICAgICAgICApOyAgICAjICsgJFNlbGYtPntUaW1lU2VjRGlmZn07CiAgICB9CiAgICBlbHNpZiAoICAgICMgbWF0Y2ggeXl5eS1tbS1kZFRoaDptbTpzc1oKICAgICAgICAkUGFyYW17U3RyaW5nfSA9fiAvKFxkezR9KS0oXGR7MSwyfSktKFxkezEsMn0pVChcZHsxLDJ9KTooXGR7MSwyfSk6KFxkezEsMn0pWiQvCiAgICAgICAgKQogICAgewogICAgICAgICRTeXN0ZW1UaW1lID0gJFNlbGYtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICQxLAogICAgICAgICAgICBNb250aCAgPT4gJDIsCiAgICAgICAgICAgIERheSAgICA9PiAkMywKICAgICAgICAgICAgSG91ciAgID0+ICQ0LAogICAgICAgICAgICBNaW51dGUgPT4gJDUsCiAgICAgICAgICAgIFNlY29uZCA9PiAkNiwKICAgICAgICApOwogICAgfQoKICAgICMgcmV0dXJuIGVycm9yCiAgICBpZiAoICFkZWZpbmVkICRTeXN0ZW1UaW1lICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiSW52YWxpZCBEYXRlICckUGFyYW17U3RyaW5nfSchIiwKICAgICAgICApOwogICAgfQoKICAgICMgcmV0dXJuIHN5c3RlbSB0aW1lCiAgICByZXR1cm4gJFN5c3RlbVRpbWU7Cgp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpTdGF0czo6RHluYW1pYzo6VGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIEdldE9iamVjdE5hbWUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gJ1RpbWVBY2NvdW50aW5nJzsKfQoKc3ViIEdldE9iamVjdEF0dHJpYnV0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgIyBzZXQgcHJlZGVmaW5lZCBzdGFydCB0aW1lCiAgICBteSAkVGltZVN0YW1wID0gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpOwogICAgbXkgKCREYXRlKSA9IHNwbGl0IC9ccysvLCAkVGltZVN0YW1wOwogICAgbXkgJFRvZGF5ID0gc3ByaW50ZiAiJXMgMjM6NTk6NTkiLCAkRGF0ZTsKCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCBwcm9qZWN0IGxpc3QKICAgIG15ICVQcm9qZWN0TGlzdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnLAogICAgKTsKCiAgICAjIGdldCBhY3Rpb24gbGlzdAogICAgbXkgJUFjdGlvbkxpc3RTb3VyY2UgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CiAgICBteSAlQWN0aW9uTGlzdDsKCiAgICBmb3IgbXkgJEFjdGlvbiAoIHNvcnQga2V5cyAlQWN0aW9uTGlzdFNvdXJjZSApIHsKICAgICAgICAkQWN0aW9uTGlzdHskQWN0aW9ufSA9ICRBY3Rpb25MaXN0U291cmNleyRBY3Rpb259LT57QWN0aW9ufTsKICAgIH0KCiAgICAjIGdldCB1c2VyIGxpc3QKICAgIG15ICVVc2VyTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICBteSBAQXR0cmlidXRlcyA9ICgKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdQcm9qZWN0JyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1Byb2plY3QnLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdNdWx0aVNlbGVjdEZpZWxkJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAwLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+ICRQcm9qZWN0TGlzdHtQcm9qZWN0fSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1VzZXInKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnVXNlcicsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ011bHRpU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDAsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gXCVVc2VyTGlzdCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1NvcnQgc2VxdWVuY2UnKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDEsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMCwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnU29ydFNlcXVlbmNlJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgVXAgICA9PiAnYXNjZW5kaW5nJywKICAgICAgICAgICAgICAgIERvd24gPT4gJ2Rlc2NlbmRpbmcnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnVGFzaycpLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMCwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdQcm9qZWN0QWN0aW9uJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMCwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiBcJUFjdGlvbkxpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdQZXJpb2QnKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnUGVyaW9kJywKICAgICAgICAgICAgVGltZVBlcmlvZEZvcm1hdCA9PiAnRGF0ZUlucHV0Rm9ybWF0JywgICAgICAgICMgJ0RhdGVJbnB1dEZvcm1hdExvbmcnLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdUaW1lJywKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICBUaW1lU3RhcnQgPT4gJ1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnQnLAogICAgICAgICAgICAgICAgVGltZVN0b3AgID0+ICdUaW1lQWNjb3VudGluZ1BlcmlvZFN0b3AnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiBAQXR0cmlidXRlczsKfQoKc3ViIEdldEhlYWRlckxpbmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15IEBIZWFkZXJMaW5lID0gKCIiKTsKCiAgICAjIFVzZXJzIGFzIFgtdmFsdWUKICAgIGlmICggJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSAmJiAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9IGVxICdVc2VyJyApIHsKCiAgICAgICAgIyB1c2VyIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFVzZXJJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgdXNlcnMKICAgICAgICBVU0VSSUQ6CiAgICAgICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CiAgICAgICAgICAgIG15ICRVc2VyTmFtZSA9ICRVc2VyT2JqZWN0LT5Vc2VyTmFtZSgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcHVzaCBASGVhZGVyTGluZSwgJFVzZXJOYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIFByb2plY3RzIGFzIFgtdmFsdWUKICAgIGVsc2UgewogICAgICAgICMgcHJvamVjdHMgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBteSBAUHJvamVjdElEcyA9IEB7ICRQYXJhbXtYVmFsdWV9LT57U2VsZWN0ZWRWYWx1ZXN9IH07CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICBQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKEBQcm9qZWN0SURzKSB7CiAgICAgICAgICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgIElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBIZWFkZXJMaW5lLCAkUHJvamVjdERhdGF7UHJvamVjdH07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcQEhlYWRlckxpbmU7Cn0KCnN1YiBHZXRTdGF0VGFibGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15IEBTdGF0QXJyYXk7CiAgICBteSBAVXNlcklEczsKCiAgICAjIFVzZXJzIGFzIFgtdmFsdWUKICAgIGlmICggJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSAmJiAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9IGVxICdVc2VyJyApIHsKCiAgICAgICAgIyB1c2VyIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgQFVzZXJJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCBzdGF0IGRhdGEKICAgICAgICBteSAkU3RhdERhdGEgPSAkU2VsZi0+X0dldFN0YXREYXRhKAogICAgICAgICAgICBQYXJhbSAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgIFVzZXJJRHMgPT4gXEBVc2VySURzLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgc3RhdCBkYXRhCiAgICAgICAgcmV0dXJuIGlmICEkU3RhdERhdGE7CiAgICAgICAgcmV0dXJuIGlmIHJlZiAkU3RhdERhdGEgbmUgJ0FSUkFZJzsKCiAgICAgICAgbXkgQFJhd1N0YXRBcnJheSA9IEB7JFN0YXREYXRhfTsKICAgICAgICByZXR1cm4gaWYgIUBSYXdTdGF0QXJyYXk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBuZWVkZWQgZGF0YQogICAgICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCk7CiAgICAgICAgbXkgJVByb2plY3RMaXN0ID0gJXsgJFByb2plY3REYXRhe1Byb2plY3R9IHx8IHt9IH07CgogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVBY3Rpb25MaXN0ID0gbWFwIHsgKCAkXyA9PiAkQWN0aW9uRGF0YXskX30tPntBY3Rpb259ICkgfSBrZXlzICVBY3Rpb25EYXRhOwoKICAgICAgICBteSBAU29ydGVkUHJvamVjdElEcyA9IHNvcnQgeyAkUHJvamVjdExpc3R7JGF9IGNtcCAkUHJvamVjdExpc3R7JGJ9IH0ga2V5cyAlUHJvamVjdExpc3Q7CiAgICAgICAgbXkgQFNvcnRlZEFjdGlvbklEcyAgPSBzb3J0IHsgJEFjdGlvbkxpc3R7JGF9IGNtcCAkQWN0aW9uTGlzdHskYn0gfSBrZXlzICVBY3Rpb25MaXN0OwoKICAgICAgICAjIHJlLXNvcnQgcHJvamVjdHMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHNlcXVlbmNlCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtWYWx1ZVNlcmllc30gKQogICAgICAgICAgICAmJiAkUGFyYW17VmFsdWVTZXJpZXN9LT5bMF0tPntTZWxlY3RlZFZhbHVlc30tPlswXSBlcSAnRG93bicKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgQFNvcnRlZFByb2plY3RJRHMgPSByZXZlcnNlIEBTb3J0ZWRQcm9qZWN0SURzOwogICAgICAgIH0KCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIHByb2plY3QgbGlzdAogICAgICAgIFNPUlRFRFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFNvcnRlZFByb2plY3RJRCAoQFNvcnRlZFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fQogICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkUHJvamVjdElEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSB8fCBbXSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgU09SVEVEUFJPSkVDVElEOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCB0aGUgY3VycmVudCBwcm9qZWN0IGRhdGEgb2YgY3VycmVudCBwcm9qZWN0CiAgICAgICAgICAgIG15IEBQcm9qZWN0U3RhdERhdGEgPSBncmVwIHsgJF8tPntQcm9qZWN0SUR9ID09ICRTb3J0ZWRQcm9qZWN0SUQgfSBAUmF3U3RhdEFycmF5OwoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIGFjdGlvbiBsaXN0CiAgICAgICAgICAgIFNPUlRFREFDVElPTklEOgogICAgICAgICAgICBmb3IgbXkgJFNvcnRlZEFjdGlvbklEIChAU29ydGVkQWN0aW9uSURzKSB7CgogICAgICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufQogICAgICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZEFjdGlvbklEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSB8fCBbXSB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG5leHQgU09SVEVEQUNUSU9OSUQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBnZXQgdGhlIGN1cnJlbnQgYWN0aW9uIG91dCBvZiB0aGUgY3VycmVudCBwcm9qZWN0CiAgICAgICAgICAgICAgICBteSBAQWN0aW9uU3RhdERhdGEgPSBncmVwIHsgJF8tPntBY3Rpb25JRH0gPT0gJFNvcnRlZEFjdGlvbklEIH0gQFByb2plY3RTdGF0RGF0YTsKCiAgICAgICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICAgICAjIGFkZCBkZXNjcmlwdGl2ZSBmaXJzdCBjb2x1bW4KICAgICAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICIkUHJvamVjdExpc3R7JFNvcnRlZFByb2plY3RJRH06OiRBY3Rpb25MaXN0eyRTb3J0ZWRBY3Rpb25JRH0iOwogICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHVzZXJzCiAgICAgICAgICAgICAgICBVU0VSSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoQFVzZXJJRHMpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBhdCBsZWFzdCBnZXQgJzAnIGZvciB1c2VyIGRhdGEKICAgICAgICAgICAgICAgICAgICBteSAkVXNlclBlcmlvZFN1bSA9IDA7CgogICAgICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHBlcmlvZCBkYXRhIG9mIHVzZXIKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFBlcmlvZERhdGEgKCBncmVwIHsgJF8tPntVc2VySUR9ID09ICRVc2VySUQgfSBAQWN0aW9uU3RhdERhdGEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRVc2VyUGVyaW9kU3VtICs9ICRQZXJpb2REYXRhLT57UGVyaW9kfTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgc2FmZSB1c2VyIGRhdGEgdG8gcm93IGRhdGEKICAgICAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCAkVXNlclBlcmlvZFN1bTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHN0b3JlIGN1cnJlbnQgcm93IHRvIGdsb2JhbCBzdGF0IGFycmF5CiAgICAgICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIFByb2plY3RzIGFzIFgtdmFsdWUKICAgIGVsc2UgewoKICAgICAgICAjIHByb2plY3RzIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFByb2plY3RJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyB3ZSBuZWVkIHRvIGdldCBhbGwgdXNlcnMKICAgICAgICBteSAlVXNlcklEcyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ1Nob3J0JywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBAVXNlcklEcyA9IGtleXMgJVVzZXJJRHM7CgogICAgICAgICMgZ2V0IGNhbGN1bGF0ZWQgc3RhdHMgZGF0YQogICAgICAgIG15ICRTdGF0RGF0YSA9ICRTZWxmLT5fR2V0U3RhdERhdGEoCiAgICAgICAgICAgIFBhcmFtICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgVXNlcklEcyA9PiBcQFVzZXJJRHMsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBzdGF0IGRhdGEKICAgICAgICByZXR1cm4gaWYgISRTdGF0RGF0YTsKICAgICAgICByZXR1cm4gaWYgcmVmICRTdGF0RGF0YSBuZSAnQVJSQVknOwoKICAgICAgICBteSBAUmF3U3RhdEFycmF5ID0gQHskU3RhdERhdGF9OwogICAgICAgIHJldHVybiBpZiAhQFJhd1N0YXRBcnJheTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBuZWVkZWQgZGF0YQogICAgICAgIG15ICVVc2VyTGlzdCA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15IEBTb3J0ZWRVc2VySURzID0gc29ydCB7ICRVc2VyTGlzdHskYX0gY21wICRVc2VyTGlzdHskYn0gfSBrZXlzICVVc2VyTGlzdDsKCiAgICAgICAgIyByZS1zb3J0IHVzZXJzIGRlcGVuZGluZyBvbiBzZWxlY3RlZCBzZXF1ZW5jZQogICAgICAgIGlmICgKICAgICAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWVTZXJpZXN9ICkKICAgICAgICAgICAgJiYgJFBhcmFte1ZhbHVlU2VyaWVzfS0+WzBdLT57U2VsZWN0ZWRWYWx1ZXN9LT5bMF0gZXEgJ0Rvd24nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIEBTb3J0ZWRVc2VySURzID0gcmV2ZXJzZSBAU29ydGVkVXNlcklEczsKICAgICAgICB9CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCB1c2VyIGxpc3QKICAgICAgICBTT1JURURVU0VSSUQ6CiAgICAgICAgZm9yIG15ICRTb3J0ZWRVc2VySUQgKEBTb3J0ZWRVc2VySURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIHVzZXJzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VXNlcn0KICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZFVzZXJJRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VXNlcn0gfHwgW10gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFNPUlRFRFVTRVJJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgdGhlIGN1cnJlbnQgdXNlciBkYXRhIG9mIGN1cnJlbnQgdXNlcgogICAgICAgICAgICBteSBAVXNlclN0YXREYXRhID0gZ3JlcCB7ICRfLT57VXNlcklEfSA9PSAkU29ydGVkVXNlcklEIH0gQFJhd1N0YXRBcnJheTsKCiAgICAgICAgICAgIG15IEBSb3dEYXRhOwoKICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICRVc2VyTGlzdHskU29ydGVkVXNlcklEfTsKICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgUFJPSkVDVElEOgogICAgICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoQFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICAgICAjIGF0IGxlYXN0IGdldCAnMCcgZm9yIHVzZXIgZGF0YQogICAgICAgICAgICAgICAgbXkgJFByb2plY3RQZXJpb2RTdW0gPSAwOwoKICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHBlcmlvZCBkYXRhIG9mIHVzZXIKICAgICAgICAgICAgICAgIGZvciBteSAkUGVyaW9kRGF0YSAoIGdyZXAgeyAkXy0+e1Byb2plY3RJRH0gPT0gJFByb2plY3RJRCB9IEBVc2VyU3RhdERhdGEgKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RQZXJpb2RTdW0gKz0gJFBlcmlvZERhdGEtPntQZXJpb2R9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc2FmZSB1c2VyIGRhdGEgdG8gcm93IGRhdGEKICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRQcm9qZWN0UGVyaW9kU3VtOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHN0b3JlIGN1cnJlbnQgcm93IHRvIGdsb2JhbCBzdGF0IGFycmF5CiAgICAgICAgICAgIHB1c2ggQFN0YXRBcnJheSwgXEBSb3dEYXRhOwogICAgICAgIH0KCiAgICB9CgogICAgcmV0dXJuIEBTdGF0QXJyYXk7Cn0KCnN1YiBHZXRTdGF0VGFibGVQcmV2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFN0YXRBcnJheTsKICAgIG15IEBVc2VySURzOwoKICAgICMgVXNlcnMgYXMgWC12YWx1ZQogICAgaWYgKCAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9ICYmICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gZXEgJ1VzZXInICkgewoKICAgICAgICAjIHVzZXIgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBAVXNlcklEcyA9IEB7ICRQYXJhbXtYVmFsdWV9LT57U2VsZWN0ZWRWYWx1ZXN9IH07CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBuZWVkZWQgZGF0YQogICAgICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCk7CiAgICAgICAgbXkgJVByb2plY3RMaXN0ID0gJXsgJFByb2plY3REYXRhe1Byb2plY3R9IHx8IHt9IH07CgogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVBY3Rpb25MaXN0ID0gbWFwIHsgKCAkXyA9PiAkQWN0aW9uRGF0YXskX30tPntBY3Rpb259ICkgfSBrZXlzICVBY3Rpb25EYXRhOwoKICAgICAgICBteSBAU29ydGVkUHJvamVjdElEcyA9IHNvcnQgeyAkUHJvamVjdExpc3R7JGF9IGNtcCAkUHJvamVjdExpc3R7JGJ9IH0ga2V5cyAlUHJvamVjdExpc3Q7CiAgICAgICAgbXkgQFNvcnRlZEFjdGlvbklEcyAgPSBzb3J0IHsgJEFjdGlvbkxpc3R7JGF9IGNtcCAkQWN0aW9uTGlzdHskYn0gfSBrZXlzICVBY3Rpb25MaXN0OwoKICAgICAgICAjIHJlLXNvcnQgcHJvamVjdHMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHNlcXVlbmNlCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtWYWx1ZVNlcmllc30gKQogICAgICAgICAgICAmJiAkUGFyYW17VmFsdWVTZXJpZXN9LT5bMF0tPntTZWxlY3RlZFZhbHVlc30tPlswXSBlcSAnRG93bicKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgQFNvcnRlZFByb2plY3RJRHMgPSByZXZlcnNlIEBTb3J0ZWRQcm9qZWN0SURzOwogICAgICAgIH0KCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIHByb2plY3QgbGlzdAogICAgICAgIFNPUlRFRFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFNvcnRlZFByb2plY3RJRCAoQFNvcnRlZFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fQogICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkUHJvamVjdElEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSB8fCBbXSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgU09SVEVEUFJPSkVDVElEOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgYWN0aW9uIGxpc3QKICAgICAgICAgICAgU09SVEVEQUNUSU9OSUQ6CiAgICAgICAgICAgIGZvciBteSAkU29ydGVkQWN0aW9uSUQgKEBTb3J0ZWRBY3Rpb25JRHMpIHsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259CiAgICAgICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkQWN0aW9uSUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IHx8IFtdIH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBTT1JURURBQ1RJT05JRDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICAgICAjIGFkZCBkZXNjcmlwdGl2ZSBmaXJzdCBjb2x1bW4KICAgICAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICIkUHJvamVjdExpc3R7JFNvcnRlZFByb2plY3RJRH06OiRBY3Rpb25MaXN0eyRTb3J0ZWRBY3Rpb25JRH0iOwogICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHVzZXJzCiAgICAgICAgICAgICAgICBVU0VSSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoQFVzZXJJRHMpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzYWZlIHVzZXIgZGF0YSB0byByb3cgZGF0YQogICAgICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsIGludCByYW5kIDUwOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc3RvcmUgY3VycmVudCByb3cgdG8gZ2xvYmFsIHN0YXQgYXJyYXkKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXRBcnJheSwgXEBSb3dEYXRhOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgUHJvamVjdHMgYXMgWC12YWx1ZQogICAgZWxzZSB7CgogICAgICAgICMgcHJvamVjdHMgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBteSBAUHJvamVjdElEcyA9IEB7ICRQYXJhbXtYVmFsdWV9e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyB3ZSBuZWVkIHRvIGdldCBhbGwgdXNlcnMKICAgICAgICBteSAlVXNlcklEcyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ1Nob3J0JywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBAVXNlcklEcyA9IGtleXMgJVVzZXJJRHM7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlVXNlckxpc3QgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSBAU29ydGVkVXNlcklEcyA9IHNvcnQgeyAkVXNlckxpc3R7JGF9IGNtcCAkVXNlckxpc3R7JGJ9IH0ga2V5cyAlVXNlckxpc3Q7CgogICAgICAgICMgcmUtc29ydCB1c2VycyBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc2VxdWVuY2UKICAgICAgICBpZiAoCiAgICAgICAgICAgIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1ZhbHVlU2VyaWVzfSApCiAgICAgICAgICAgICYmICRQYXJhbXtWYWx1ZVNlcmllc30tPlswXS0+e1NlbGVjdGVkVmFsdWVzfS0+WzBdIGVxICdEb3duJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBAU29ydGVkVXNlcklEcyA9IHJldmVyc2UgQFNvcnRlZFVzZXJJRHM7CiAgICAgICAgfQoKICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgdXNlciBsaXN0CiAgICAgICAgU09SVEVEVVNFUklEOgogICAgICAgIGZvciBteSAkU29ydGVkVXNlcklEIChAU29ydGVkVXNlcklEcykgewoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCB1c2VycwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9CiAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRVc2VySUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9IHx8IFtdIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBTT1JURURVU0VSSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15IEBSb3dEYXRhOwoKICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICRVc2VyTGlzdHskU29ydGVkVXNlcklEfTsKICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgUFJPSkVDVElEOgogICAgICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoQFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICAgICAjIHNhZmUgdXNlciBkYXRhIHRvIHJvdyBkYXRhCiAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCBpbnQgcmFuZCA1MDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzdG9yZSBjdXJyZW50IHJvdyB0byBnbG9iYWwgc3RhdCBhcnJheQogICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIEBTdGF0QXJyYXk7Cn0KCnN1YiBFeHBvcnRXcmFwcGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIHdyYXAgaWRzIHRvIHVzZWQgc3BlbGxpbmcKICAgIGZvciBteSAkVXNlIChxdyhVc2VBc1ZhbHVlU2VyaWVzIFVzZUFzUmVzdHJpY3Rpb24gVXNlQXNYdmFsdWUpKSB7CgogICAgICAgIEVMRU1FTlQ6CiAgICAgICAgZm9yIG15ICRFbGVtZW50ICggQHsgJFBhcmFteyRVc2V9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQ7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBteSAkRWxlbWVudE5hbWUgPSAkRWxlbWVudC0+e0VsZW1lbnR9OwogICAgICAgICAgICBteSAkVmFsdWVzICAgICAgPSAkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIGlmICggJEVsZW1lbnROYW1lIGVxICdVc2VyJyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRJRC0+e0NvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdCcgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICVUbXBQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgSUQgPT4gJElELT57Q29udGVudH0KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFRtcFByb2plY3REYXRhe1Byb2plY3R9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEVsZW1lbnROYW1lIGVxICdQcm9qZWN0QWN0aW9uJyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJVRtcEFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgICAgICAgICAgICAgSUQgPT4gJElELT57Q29udGVudH0KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFRtcEFjdGlvbkRhdGF7QWN0aW9ufTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgpzdWIgSW1wb3J0V3JhcHBlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJExvZ09iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyB3cmFwIHVzZWQgc3BlbGxpbmcgdG8gaWRzCiAgICBmb3IgbXkgJFVzZSAocXcoVXNlQXNWYWx1ZVNlcmllcyBVc2VBc1Jlc3RyaWN0aW9uIFVzZUFzWHZhbHVlKSkgewogICAgICAgIEVMRU1FTlQ6CiAgICAgICAgZm9yIG15ICRFbGVtZW50ICggQHsgJFBhcmFteyRVc2V9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQ7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBteSAkRWxlbWVudE5hbWUgPSAkRWxlbWVudC0+e0VsZW1lbnR9OwogICAgICAgICAgICBteSAkVmFsdWVzICAgICAgPSAkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIGlmICggJEVsZW1lbnROYW1lIGVxICdVc2VyJyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gJElELT57Q29udGVudH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCRVc2VySUQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkVXNlcklEOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbXBvcnQ6IENhbicgZmluZCB0aGUgdXNlciAkSUQtPntDb250ZW50fSEiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRCA9IHVuZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdCcgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRJRC0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUHJvamVjdHtJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFByb2plY3R7SUR9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbXBvcnQ6IENhbicgZmluZCBwcm9qZWN0ICRJRC0+e0NvbnRlbnR9ISIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJElEID0gdW5kZWY7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEVsZW1lbnROYW1lIGVxICdQcm9qZWN0QWN0aW9uJyApIHsKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAlQWN0aW9uID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAkSUQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggJEFjdGlvbntJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJEFjdGlvbntJRH07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkltcG9ydDogQ2FuJyBmaW5kIGFjdGlvbiAkSUQtPntDb250ZW50fSEiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRCA9IHVuZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgpzdWIgR2V0RXh0ZW5kZWRUaXRsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpZiAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnR9IHx8ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdG9wfTsKCiAgICBteSAlRGF0ZUluZGV4VG9OYW1lID0gKAogICAgICAgICdTZWNvbmQnID0+IDAsCiAgICAgICAgJ01pbnV0ZScgPT4gMSwKICAgICAgICAnSG91cicgICA9PiAyLAogICAgICAgICdEYXknICAgID0+IDMsCiAgICAgICAgJ01vbnRoJyAgPT4gNCwKICAgICAgICAnWWVhcicgICA9PiA1LAogICAgKTsKCiAgICBteSAlUHJldmlvdXNNb250aERhdGVzID0gJFNlbGYtPl9HZXRQcmV2aW91c01vbnRoRGF0ZXMoCiAgICAgICAgRGF0ZUluZGV4VG9OYW1lID0+IFwlRGF0ZUluZGV4VG9OYW1lLAogICAgKTsKCiAgICBteSAkU3RhcnREYXRlID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQgMDA6MDA6MDAiLCAkUHJldmlvdXNNb250aERhdGVze05ld1N0YXJ0RGF0ZX0tPlswXSwKICAgICAgICAkUHJldmlvdXNNb250aERhdGVze05ld1N0YXJ0RGF0ZX0tPlsxXSwgJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdGFydERhdGV9LT5bMl07CiAgICBteSAkU3RvcERhdGUgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCAwMDowMDowMCIsICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RvcERhdGV9LT5bMF0sCiAgICAgICAgJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlsxXSwgJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlsyXTsKCiAgICByZXR1cm4gIiRTdGFydERhdGUtJFN0b3BEYXRlIjsKfQoKc3ViIF9HZXRTdGF0RGF0YSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBSZXR1cm47CiAgICBteSBAVXNlcklEcyA9IEB7ICRQYXJhbXtVc2VySURzfSB8fCBbXSB9OwoKICAgIG15ICVEYXRlSW5kZXhUb05hbWUgPSAoCiAgICAgICAgJ1NlY29uZCcgPT4gMCwKICAgICAgICAnTWludXRlJyA9PiAxLAogICAgICAgICdIb3VyJyAgID0+IDIsCiAgICAgICAgJ0RheScgICAgPT4gMywKICAgICAgICAnTW9udGgnICA9PiA0LAogICAgICAgICdZZWFyJyAgID0+IDUsCiAgICApOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgbG9vcGluZyBvdmVyIGFsbCBvciBzZWxlY3RlZCB1c2VycwogICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CgogICAgICAgIG15ICRTdGFydERhdGU7CiAgICAgICAgbXkgJFN0b3BEYXRlOwoKICAgICAgICAjIGNoZWNrIGlmIHRpbWUgcGVyaW9kIGhhcyBiZWVuIHNlbGVjdGVkCiAgICAgICAgaWYgKCAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnR9ICkgewoKICAgICAgICAgICAgIyBnZXQgVU5JWCB0aW1lLXN0YW1wIG9mIHN0YXJ0IGFuZCBlbmQgdmFsdWVzCiAgICAgICAgICAgICRTdGFydERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdGFydH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTdG9wRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntUaW1lQWNjb3VudGluZ1BlcmlvZFN0b3B9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgSU1QT1JUQU5UOgogICAgICAgICAgICAjIElmIG5vIHRpbWUgcGVyaW9kIGhhZCBiZWVuIHNlbGVjdGVkIHByZXZpb3VzIG1vbnRoIHdpbGwgYmUgdXNlZCBhcyBwZXJpb2QhCiAgICAgICAgICAgIG15ICVQcmV2aW91c01vbnRoRGF0ZXMgPSAkU2VsZi0+X0dldFByZXZpb3VzTW9udGhEYXRlcygKICAgICAgICAgICAgICAgIERhdGVJbmRleFRvTmFtZSA9PiBcJURhdGVJbmRleFRvTmFtZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgQ2FsY3VsYXRlIFVOSVggdGltZXN0YW1wcyBmb3Igc3RhcnQgYW5kIHN0b3AgZGF0ZS4KICAgICAgICAgICAgJFN0YXJ0RGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICAgICAgWWVhciAgID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzBdLAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzFdLAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzJdLAogICAgICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU3RvcERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkUHJldmlvdXNNb250aERhdGVze05ld1N0b3BEYXRlfS0+WzBdLAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RvcERhdGV9LT5bMV0sCiAgICAgICAgICAgICAgICBEYXkgICAgPT4gJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlsyXSwKICAgICAgICAgICAgICAgIEhvdXIgICA9PiAyMywKICAgICAgICAgICAgICAgIE1pbnV0ZSA9PiA1OSwKICAgICAgICAgICAgICAgIFNlY29uZCA9PiA1OSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2FsY3VsYXRlIG51bWJlciBvZiBkYXlzIHdpdGhpbiB0aGUgZ2l2ZW4gcmFuZ2UKICAgICAgICBteSAkRGF5cyA9IGludCggKCAkU3RvcERhdGUgLSAkU3RhcnREYXRlICkgLyA4NjQwMCApICsgMTsKCiAgICAgICAgREFZOgogICAgICAgIGZvciBteSAkRGF5ICggMCAuLiAkRGF5cyApIHsKCiAgICAgICAgICAgICMgZ2V0IGRheSByZWxhdGl2ZSB0byBzdGFydCBkYXRlCiAgICAgICAgICAgIG15ICREYXRlT2ZQZXJpb2QgPSAkU3RhcnREYXRlICsgJERheSAqIDg2NDAwOwoKICAgICAgICAgICAgIyBnZXQgbmVlZGVkIGRhdGUgdmFsdWVzIG91dCBvZiB0aW1lLXN0YW1wCiAgICAgICAgICAgIG15IEBEYXRlVmFsdWVzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlT2ZQZXJpb2QsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCB3b3JraW5nIHVuaXQgZm9yIHVzZXIgYW5kIGRheQogICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkRGF0ZVZhbHVlc1sgJERhdGVJbmRleFRvTmFtZXsnWWVhcid9IF0sCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJERhdGVWYWx1ZXNbICREYXRlSW5kZXhUb05hbWV7J01vbnRoJ30gXSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkRGF0ZVZhbHVlc1sgJERhdGVJbmRleFRvTmFtZXsnRGF5J30gXSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBleHRyYWN0IGRldGFpbGVkIGluZm9ybWF0aW9uCiAgICAgICAgICAgIG15IEBEYXlXb3JraW5nVW5pdHMgPSBAeyAkV29ya2luZ1VuaXR7V29ya2luZ1VuaXRzfSB8fCBbXSB9OwoKICAgICAgICAgICAgIyBjaGVjayBmb3IgcHJvamVjdCByZXN0cmljdGlvbnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fQogICAgICAgICAgICAgICAgJiYgcmVmICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57UHJvamVjdH0gZXEgJ0FSUkFZJwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgIyBidWlsZCBtYXRjaGluZyBoYXNoIGZvciBzZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICAgICAgbXkgJVNlbGVjdGVkUHJvamVjdElEcyA9IG1hcCB7ICggJF8gPT4gMSApIH0gQHsgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSB9OwoKICAgICAgICAgICAgICAgICMgZmlsdGVyIG9ubHkgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgICAgIG15IEBGaWx0ZXJlZFByb2plY3RXVXMgPSBncmVwIHsKICAgICAgICAgICAgICAgICAgICAkU2VsZWN0ZWRQcm9qZWN0SURzeyAkXy0+e1Byb2plY3RJRH0gfQogICAgICAgICAgICAgICAgfSBARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgICAgIEBEYXlXb3JraW5nVW5pdHMgPSBARmlsdGVyZWRQcm9qZWN0V1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGZvciB0YXNrIHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15ICVTZWxlY3RlZEFjdGlvbklEcyA9IG1hcCB7ICggJF8gPT4gMSApIH0gQHsgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSB9OwoKICAgICAgICAgICAgICAgICMgZmlsdGVyIG9ubHkgc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgbXkgQEZpbHRlcmVkQWN0aW9uV1VzID0gZ3JlcCB7ICRTZWxlY3RlZEFjdGlvbklEc3sgJF8tPntBY3Rpb25JRH0gfSB9IEBEYXlXb3JraW5nVW5pdHM7CgogICAgICAgICAgICAgICAgQERheVdvcmtpbmdVbml0cyA9IEBGaWx0ZXJlZEFjdGlvbldVczsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdXNlciByZXN0cmljdGlvbnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntVc2VyfQogICAgICAgICAgICAgICAgJiYgcmVmICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VXNlcn0gZXEgJ0FSUkFZJwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgIyBidWlsZCBtYXRjaGluZyBoYXNoIGZvciBzZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBteSAlU2VsZWN0ZWRVc2VySURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1VzZXJ9IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBteSBARmlsdGVyZWRVc2VyV1VzID0gZ3JlcCB7ICRTZWxlY3RlZFVzZXJJRHN7ICRfLT57VXNlcklEfSB9IH0gQERheVdvcmtpbmdVbml0czsKCiAgICAgICAgICAgICAgICBARGF5V29ya2luZ1VuaXRzID0gQEZpbHRlcmVkVXNlcldVczsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBkbyBub3Qgc3RvcmUgZGF0YSBpZiBubyBkYXRhIGlzIGF2YWlsYWJsZQogICAgICAgICAgICBuZXh0IERBWSBpZiAhQERheVdvcmtpbmdVbml0czsKCiAgICAgICAgICAgICMgYWRkIGRhdGEgdG8gZ2xvYmFsIHJlc3VsdCBzZXQKICAgICAgICAgICAgcHVzaCBAUmV0dXJuLCBARGF5V29ya2luZ1VuaXRzOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXEBSZXR1cm47Cn0KCnN1YiBfR2V0UHJldmlvdXNNb250aERhdGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte0RhdGVJbmRleFRvTmFtZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIERhdGVJbmRleFRvTmFtZSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgIyBHZXQgY3VycmVudCBkYXRlIHZhbHVlcy4KICAgIG15IEBDdXJyZW50RGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpLAogICAgKTsKCiAgICAjIEdldCBmaXJzdCBkYXkgb2YgcHJldmlvdXMgbW9udGguCiAgICBteSBATmV3U3RhcnREYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCgKICAgICAgICAkQ3VycmVudERhdGVbICRQYXJhbXtEYXRlSW5kZXhUb05hbWV9LT57J1llYXInfSBdLAogICAgICAgICRDdXJyZW50RGF0ZVsgJFBhcmFte0RhdGVJbmRleFRvTmFtZX0tPnsnTW9udGgnfSBdLAogICAgICAgIDEsCiAgICAgICAgMCwKICAgICAgICAtMSwKICAgICAgICAwLAogICAgKTsKCiAgICAjIEdldCBmaXJzdCBkYXkgb2YgbmV4dCBtb250aCByZWxhdGl2ZSB0byBwcmV2aW91cyBtb250aC4KICAgIG15IEBOZXdTdG9wRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoCiAgICAgICAgJE5ld1N0YXJ0RGF0ZVswXSwKICAgICAgICAkTmV3U3RhcnREYXRlWzFdLAogICAgICAgICROZXdTdGFydERhdGVbMl0sCiAgICAgICAgMCwKICAgICAgICArMSwKICAgICAgICAwLAogICAgKTsKCiAgICAjIEdldCBsYXN0IG9mIGRheSBwcmV2aW91cyBtb250aC4KICAgIEBOZXdTdG9wRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoCiAgICAgICAgJE5ld1N0b3BEYXRlWzBdLAogICAgICAgICROZXdTdG9wRGF0ZVsxXSwKICAgICAgICAkTmV3U3RvcERhdGVbMl0sCiAgICAgICAgMCwKICAgICAgICAwLAogICAgICAgIC0xLAogICAgKTsKCiAgICByZXR1cm4gKAogICAgICAgIE5ld1N0YXJ0RGF0ZSA9PiBcQE5ld1N0YXJ0RGF0ZSwKICAgICAgICBOZXdTdG9wRGF0ZSAgPT4gXEBOZXdTdG9wRGF0ZSwKICAgICk7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgID0+ICdFbXB0eScsCiAgICAgICAgQ29uZmlnICA9PiB7fSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnV3JvbmcgRGF5IChzdHJpbmcpJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gJ2EnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1dyb25nIERheSAoMCknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIE51bWJlciA9PiAwLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1dyb25nIERheSAoLTEpJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gLTEsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnV3JvbmcgRGF5ICg4KScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDgsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTW9uZGF5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICdNb25kYXknLAogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVHVlc2RheScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDIsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnVHVlc2RheScsCiAgICAgICAgU3VjY2VzcyAgICAgICAgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdXZWRuZXNkYXknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIE51bWJlciA9PiAzLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJ1dlZG5lc2RheScsCiAgICAgICAgU3VjY2VzcyAgICAgICAgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdUaHVyc2RheScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDQsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnVGh1cnNkYXknLAogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRnJpZGF5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gNSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICdGcmlkYXknLAogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnU2F0dXJkYXknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIE51bWJlciA9PiA2LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJ1NhdHVyZGF5JywKICAgICAgICBTdWNjZXNzICAgICAgICA9PiAxLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1N1bmRheScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDcsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnU3VuZGF5JywKICAgICAgICBTdWNjZXNzICAgICAgICA9PiAxLAogICAgfSwKKTsKCm5vIHdhcm5pbmdzICdvbmNlJzsgICAgIyMgbm8gY3JpdGljCm15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwp1c2Ugd2FybmluZ3M7CgpURVNUOgpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewogICAgbXkgJERheU5hbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2Vla1RvTmFtZSggJXsgJFRlc3QtPntDb25maWd9IH0gKTsKCiAgICBpZiAoICEkVGVzdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgJERheU5hbWUsCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IERheU9mV2Vla1RvTmFtZSgpIC0gd2l0aCBmYWxzZSIsCiAgICAgICAgKTsKICAgICAgICBuZXh0IFRFU1Q7CiAgICB9CgogICAgJFNlbGYtPklzKAogICAgICAgICREYXlOYW1lLAogICAgICAgICRUZXN0LT57RXhwZWN0ZWRSZXN1bHR9LAogICAgICAgICIkVGVzdC0+e05hbWV9IERheU9mV2Vla1RvTmFtZSgpIiwKICAgICk7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSB2YXI6OnBhY2thZ2VzZXR1cDo6VGltZUFjY291bnRpbmc7CgpteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCm15ICRSYW5kb21Hcm91cCA9ICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgID0+ICdSZXN0b3JlIHBlcm1pc3Npb25zIG9mIEFnZW50VGltZUFjY291bnRpbmdFZGl0IGZyb250ZW5kIG1vZHVsZScsCiAgICAgICAgU2V0dGluZ3MgID0+IFsnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0J10sCiAgICAgICAgT2xkQ29uZmlnID0+IHsKICAgICAgICAgICAgJ0Zyb250ZW5kOjpNb2R1bGUnID0+IHsKICAgICAgICAgICAgICAgICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcgPT4gewogICAgICAgICAgICAgICAgICAgICdEZXNjcmlwdGlvbicgPT4gJ1RpbWUgYWNjb3VudGluZyBlZGl0LicsCiAgICAgICAgICAgICAgICAgICAgJ0dyb3VwJyAgICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICRSYW5kb21Hcm91cCwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICdHcm91cFJvJyA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICRSYW5kb21Hcm91cCwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICdOYXZCYXInID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2Vzc0tleScgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCbG9jaycgICAgICAgPT4gJ0l0ZW1BcmVhJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEZXNjcmlwdGlvbicgPT4gJ1RpbWUgYWNjb3VudGluZy4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbmsnICAgICAgICA9PiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYW1lJyAgICAgICAgPT4gJ1RpbWUgQWNjb3VudGluZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTmF2QmFyJyAgICAgID0+ICdUaW1lQWNjb3VudGluZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUHJpbycgICAgICAgID0+ICc2MDAwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUeXBlJyAgICAgICAgPT4gJ01lbnUnCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY2Nlc3NLZXknICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmxvY2snICAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Rlc2NyaXB0aW9uJyA9PiAnRWRpdCB0aW1lIHJlY29yZC4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0dyb3VwUm8nICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJhbmRvbUdyb3VwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMaW5rJyAgID0+ICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05hbWUnICAgPT4gJ0VkaXQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05hdkJhcicgPT4gJ1RpbWVBY2NvdW50aW5nJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQcmlvJyAgID0+ICcyMDAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1R5cGUnICAgPT4gJycKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICB7CiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1Jlc3RvcmUgcGVybWlzc2lvbnMgb2YgRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3IHRvIHRoZSBvbGQgZGVmYXVsdHMnLAogICAgICAgIFNldHRpbmdzICAgID0+IFsnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3J10sCiAgICAgICAgT2xkQ29uZmlnICAgPT4ge30sCiAgICAgICAgT2xkRGVmYXVsdHMgPT4gewogICAgICAgICAgICAnRnJvbnRlbmQ6Ok1vZHVsZScgPT4gewogICAgICAgICAgICAgICAgJ0FnZW50VGltZUFjY291bnRpbmdWaWV3JyA9PiB7CiAgICAgICAgICAgICAgICAgICAgR3JvdXAgICA9PiBbJ3RpbWVfYWNjb3VudGluZyddLAogICAgICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWyd0aW1lX2FjY291bnRpbmcnXSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBDb25maWcgPT4ge30sCiAgICB9LAopOwoKbXkgJEdldENvbmZpZyA9IHN1YiB7CiAgICBteSAkU291cmNlICAgICAgPSBzaGlmdDsKICAgIG15ICRTZXR0aW5nTmFtZSA9IHNoaWZ0OwoKICAgIG15ICRDb25maWcgPSAkU291cmNlOwogICAgbXkgQEtleXMgICA9IHNwbGl0ICcjIyMnLCAkU2V0dGluZ05hbWU7CiAgICB3aGlsZSAoIG15ICRLZXkgPSBzaGlmdCBAS2V5cyApIHsKICAgICAgICAkQ29uZmlnID0gJENvbmZpZy0+eyRLZXl9OwogICAgfQoKICAgIHJldHVybiAkQ29uZmlnOwp9OwoKbXkgJENoZWNrR3JvdXBHcm91cFJvID0gc3ViIHsKICAgIG15ICVQYXJhbSAgICA9IEBfOwogICAgbXkgJEV4cGVjdGVkID0gJFBhcmFte0V4cGVjdGVkfTsKICAgIG15ICRSZXN1bHQgICA9ICRQYXJhbXtSZXN1bHR9OwogICAgbXkgJFRlc3ROYW1lID0gJFBhcmFte1Rlc3ROYW1lfTsKCiAgICBpZiAoICRFeHBlY3RlZC0+e0dyb3VwfSB8fCAkRXhwZWN0ZWQtPntHcm91cFJvfSApIHsKCiAgICAgICAgIyBDaGVjayBmb3IgS2V5IEdyb3VwIGFuZCBHcm91cFJvLgogICAgICAgIGZvciBteSAkS2V5IChxdyhHcm91cCBHcm91cFJvKSkgewogICAgICAgICAgICAkU2VsZi0+SXNEZWVwbHkoCiAgICAgICAgICAgICAgICAkUmVzdWx0LT57JEtleX0sCiAgICAgICAgICAgICAgICAkRXhwZWN0ZWQtPnskS2V5fSAvLyBbXSwKICAgICAgICAgICAgICAgICRUZXN0TmFtZSAuICIsICckeyBLZXkgfScgZml4ZWQhIgogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KfTsKCm15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgpURVNUOgpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewoKICAgICMgSWYgdGhlIGtleSAnQ29uZmlnJyBleGlzdHMsIGxldHMgc2V0IHRoZSBuZXcgY29uZmlnIGJlZm9yZSBkbyBhbnl0aGluZyBlbHNlCiAgICBpZiAoICRUZXN0LT57Q29uZmlnfSApIHsKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkVGVzdC0+e0NvbmZpZ30gfSApIHsKICAgICAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgICAgIEtleSAgID0+ICRLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVGVzdC0+e0NvbmZpZ30tPnskS2V5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBDaGVjayBpZiBpdCB3YXMgcmVzdG9yZWQgdG8gdGhlIG9sZCBjb25maWcKICAgIG15ICRPbGRDb25maWcgPSAkVGVzdC0+e09sZENvbmZpZ307CiAgICBsb2NhbCAqdmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nOjpfR2V0T1RSUzVDb25maWdCYWNrdXAgPSBzdWIgeyAgICAjIyBubyBjcml0aWMKICAgICAgICByZXR1cm4gJE9sZENvbmZpZzsKICAgIH07CiAgICB2YXI6OnBhY2thZ2VzZXR1cDo6VGltZUFjY291bnRpbmctPm5ldygpLT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzkyKCk7CgogICAgIyBDaGVjayBpZiB0aGUgbmV3IGNvbmZpZyBpcyBhY2NvcmRpbmcgdG8gdGhlIG9sZCBvbmUuCiAgICBteSBAU2V0dGluZ3MgPSBAeyAkVGVzdC0+e1NldHRpbmdzfSB9OwogICAgU0VUVElOR19OQU1FOgogICAgZm9yIG15ICRTZXR0aW5nTmFtZSAoQFNldHRpbmdzKSB7CiAgICAgICAgbXkgJFNldHRpbmdPbGRDb25maWcgICA9ICRHZXRDb25maWctPiggJE9sZENvbmZpZywgICAgICAgICAgICRTZXR0aW5nTmFtZSApOwogICAgICAgIG15ICRTZXR0aW5nT2xkRGVmYXVsdHMgPSAkR2V0Q29uZmlnLT4oICRUZXN0LT57T2xkRGVmYXVsdHN9LCAkU2V0dGluZ05hbWUgKTsKICAgICAgICBteSAlQ29uZmlnICAgICAgICAgICAgID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0dldCgKICAgICAgICAgICAgTmFtZSA9PiAkU2V0dGluZ05hbWUsCiAgICAgICAgKTsKICAgICAgICBteSAkRWZmZWN0aXZlVmFsdWUgPSAkQ29uZmlne0VmZmVjdGl2ZVZhbHVlfTsKCiAgICAgICAgIyBJdCdzIG5vdCBhIGNvbXBsZXggdmFsdWUsIGNoZWNrIG9ubHkgaWYgdGhlIHZhbHVlIHdhcyByZXN0b3JlZC4KICAgICAgICBpZiAoICEoIHJlZiAkRWZmZWN0aXZlVmFsdWUgKSApIHsKICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJEVmZmVjdGl2ZVZhbHVlLAogICAgICAgICAgICAgICAgJFNldHRpbmdPbGRDb25maWcgLy8gJFNldHRpbmdPbGREZWZhdWx0cywKICAgICAgICAgICAgICAgICRUZXN0LT57TmFtZX0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgU0VUVElOR19OQU1FOwogICAgICAgIH0KCiAgICAgICAgJENoZWNrR3JvdXBHcm91cFJvLT4oCiAgICAgICAgICAgIEV4cGVjdGVkID0+ICRTZXR0aW5nT2xkQ29uZmlnIC8vICRTZXR0aW5nT2xkRGVmYXVsdHMsCiAgICAgICAgICAgIFJlc3VsdCAgID0+ICRFZmZlY3RpdmVWYWx1ZSwKICAgICAgICAgICAgVGVzdE5hbWUgPT4gJFRlc3QtPntOYW1lfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICRTZXR0aW5nT2xkQ29uZmlnLT57TmF2QmFyfSB8fCAkU2V0dGluZ09sZERlZmF1bHRzLT57TmF2QmFyfSApIHsKCiAgICAgICAgICAgICMgQ2hlY2sgZm9yIG5hdmlnYXRpb24gcGVybWlzc2lvbnMuCiAgICAgICAgICAgIG15ICggdW5kZWYsICRGcm9udGVuZCApID0gc3BsaXQgJyMjIycsICRTZXR0aW5nTmFtZTsKCiAgICAgICAgICAgICMgR2V0IHRoZSBvbGQgbmF2aWdhdGlvbi4KICAgICAgICAgICAgbXkgJE9sZE5hdmlnYXRpb24gPSAkU2V0dGluZ09sZENvbmZpZy0+e05hdkJhcn0gLy8gJFNldHRpbmdPbGREZWZhdWx0cy0+e05hdkJhcn07CgogICAgICAgICAgICAjIEdldCB0aGUgY3VycmVudCBuYXZpZ2F0aW9uLgogICAgICAgICAgICBteSAkTmV3TmF2aWdhdGlvbgogICAgICAgICAgICAgICAgPSAkR2V0Q29uZmlnLT4oICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyksICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjIycgLiAkRnJvbnRlbmQgKTsKCiAgICAgICAgICAgICMgQ2hlY2sgaWYgdGhlIHBlcm1pc3Npb24gaXMgdGhlIHNhbWUgYXMgdGhlIG9sZCBvbmUuCiAgICAgICAgICAgIGZvciBteSAkSW5kZXggKCBzb3J0IGtleXMgJXskTmV3TmF2aWdhdGlvbn0gKSB7CiAgICAgICAgICAgICAgICBteSAkTmV3SXRlbXMgPSAkTmV3TmF2aWdhdGlvbi0+eyRJbmRleH07CiAgICAgICAgICAgICAgICBmb3IgbXkgJE5ld0l0ZW0gKCBAeyROZXdJdGVtc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJE9sZEl0ZW0KICAgICAgICAgICAgICAgICAgICAgICAgPSBMaXN0OjpVdGlsOjpmaXJzdCB7ICRfLT57TmFtZX0gZXEgJE5ld0l0ZW0tPntOYW1lfSAmJiAkXy0+e0Jsb2NrfSBlcSAkTmV3SXRlbS0+e0Jsb2NrfSB9CiAgICAgICAgICAgICAgICAgICAgQHskT2xkTmF2aWdhdGlvbn07CiAgICAgICAgICAgICAgICAgICAgbmV4dCBORVdfSVRFTSBpZiAhJE9sZEl0ZW07CgogICAgICAgICAgICAgICAgICAgICRDaGVja0dyb3VwR3JvdXBSby0+KAogICAgICAgICAgICAgICAgICAgICAgICBFeHBlY3RlZCA9PiAkT2xkSXRlbSwKICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0ICAgPT4gJE5ld0l0ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgIFRlc3ROYW1lID0+IHNwcmludGYoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGVzdC0+e05hbWV9IC4gJyAoTmF2aWdhdGlvbiAlcyknLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ld0l0ZW0tPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXdJdGVtLT57QmxvY2t9ID8gJy0nIC4gJE5ld0l0ZW0tPntCbG9ja30gOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgojIFJlc3RvcmUgZGVmYXVsdCBzZXR0aW5nIHZhbHVlcyBhZnRlciB0ZXN0aW5nLCBzaW5jZSBvdmVycmlkZXMgYXJlIGRlcGxveWVkIGZyb20gZXh0ZXJuYWwgY29kZS4KbXkgQFNldHRpbmdzID0gKAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldycsCiAgICAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZycsCiAgICAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3JywKICAgICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0IyMjMDAyLVRpbWVBY2NvdW50aW5nJywKICAgICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldyMjIzAwMi1UaW1lQWNjb3VudGluZycsCiAgICAnRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZyMjIzAwMi1UaW1lQWNjb3VudGluZycsCiAgICAnRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nIyMjMDAyLVRpbWVBY2NvdW50aW5nJywKKTsKCmZvciBteSAkU2V0dGluZ05hbWUgKEBTZXR0aW5ncykgewogICAgbXkgJEV4Y2x1c2l2ZUxvY2tHVUlEID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0xvY2soCiAgICAgICAgTmFtZSAgID0+ICRTZXR0aW5nTmFtZSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRXhjbHVzaXZlTG9ja0dVSUQsCiAgICAgICAgIkxvY2tlZCAkU2V0dGluZ05hbWUiCiAgICApOwoKICAgIG15ICRTdWNjZXNzID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ1Jlc2V0KAogICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICRTZXR0aW5nTmFtZSwKICAgICAgICBFeGNsdXNpdmVMb2NrR1VJRCA9PiAkRXhjbHVzaXZlTG9ja0dVSUQsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkU3VjY2VzcywKICAgICAgICAiUmVzZXQgJFNldHRpbmdOYW1lIgogICAgKTsKfQoKbXkgJFN1Y2Nlc3MgPSAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWd1cmF0aW9uRGVwbG95KAogICAgQ29tbWVudHMgICAgICA9PiAnVXBncmFkZUxvd2VyVGhhbjUwOTIudCcsCiAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICBGb3JjZSAgICAgICAgID0+IDEsCiAgICBEaXJ0eVNldHRpbmdzID0+IFxAU2V0dGluZ3MsCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAnUmVzdG9yZWQgZGVmYXVsdCBjb25maWd1cmF0aW9uJwopOwoKMTsK
CiMgLS0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGRlY2xhcmUgZXh0ZXJuYWxseSBkZWZpbmVkIHZhcmlhYmxlcyB0byBhdm9pZCBlcnJvcnMgdW5kZXIgJ3VzZSBzdHJpY3QnCnVzZSB2YXJzIHF3KCRTZWxmKTsKCiMgZ2V0IGhlbHBlciBvYmplY3QKJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyA9PiB7CiAgICAgICAgUmVzdG9yZURhdGFiYXNlID0+IDEsCiAgICB9LAopOwpteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCm15ICRVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgpOwoKbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKbXkgJFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCik7CgpteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCm15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgIFBlcmlvZCA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlVzZXJTZXR0aW5nc0luc2VydCgpIGZvciB1c2VyICRVc2VySUQiLAopOwoKJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgIFVzZXJJRCAgICAgICAgPT4gJFVzZXJJRCwKICAgIERlc2NyaXB0aW9uICAgPT4gJ1NvbWUgVGV4dCcsCiAgICBDcmVhdGVQcm9qZWN0ID0+IDEgfHwgMCwKICAgIFNob3dPdmVydGltZSAgPT4gMSB8fCAwLAogICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICcyMDE2LTAxLTAxJywKICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gJzIwMTYtMTItMzEnLAogICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgIH0sCiAgICB9LAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlVzZXJTZXR0aW5nc1VwZGF0ZSgpIGZvciB1c2VyICRVc2VySUQiLAopOwoKIyBUaGlzIHVuaXQgdGVzdCBvbmx5IGNoZWNrIHRoYXQgdGhlIGZ1bmN0aW9uIHVzZXMgY29ycmVjdCBkYXRlIHZhbHVlcyBhbmQgaXQgZG9lcyBub3QgYnJlYWsKZm9yIG15ICRNb250aCAoIDEgLi4gMTIgKSB7CiAgICBteSAkTW9udGhTdWNjZXNzID0gMTsKICAgIGZvciBteSAkRGF5ICggMSAuLiAyOCApIHsKICAgICAgICAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgPT4gJzIwMTYnLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgU2ljayAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICRNb250aFN1Y2Nlc3MgPSAwOwogICAgICAgIH0KICAgIH0KICAgICRTZWxmLT5UcnVlKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICJXb3JraW5nVW5pdHNJbnNlcnQoKSBpbiBtb250aCAkTW9udGggZm9yIHVzZXIgJFVzZXJJRCIsCiAgICApOwp9CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICcyMDE2LUphbi0xJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICA9PiAyMDE2LAogICAgICAgICAgICBNb250aCA9PiAxLAogICAgICAgICAgICBEYXkgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnMjAxNi1GZWItMScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gMjAxNiwKICAgICAgICAgICAgTW9udGggPT4gMiwKICAgICAgICAgICAgRGF5ICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJzIwMTYtT2N0LTEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+IDIwMTYsCiAgICAgICAgICAgIE1vbnRoID0+IDEwLAogICAgICAgICAgICBEYXkgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnMjAxNi1EZWMtMTInLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+IDIwMTYsCiAgICAgICAgICAgIE1vbnRoID0+IDEyLAogICAgICAgICAgICBEYXkgICA9PiAxMiwKICAgICAgICB9LAogICAgfSwKKTsKCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKAogICAgICAgIE9iamVjdHMgPT4gWyAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywgXSwKICAgICk7CgogICAgIyBSZWRlZmluZSBWYWNhdGlvbkNoZWNrIGluIG9yZGVyIHRvIGJyZWFrIG9uIGEgd3JvbmcgZGF0ZSAodGhpcyBzaG91bGQgbm90IGhhcHBlbikuCiAgICBubyB3YXJuaW5ncyBxdyggb25jZSByZWRlZmluZSApOyAgICAjIyBubyBjcml0aWMKICAgIGxvY2FsICpLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmc6OlZhY2F0aW9uQ2hlY2sgPSBzdWIgewogICAgICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1zCiAgICAgICAgZm9yIChxdyhZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICAgICAgaWYgKCAhJFBhcmFteyRffSApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlZhY2F0aW9uQ2hlY2s6IE5lZWQgJF8hIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgVGltZVpvbmUgPT4gJFNlbGYtPntUaW1lWm9uZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBJZiBkYXRlIGlzIHdyb25nIERhdGVUaW1lT2JqZWN0IGlzIHVuZGVmaW5lZCBhbmQgaXQgc2hvdWxkIGJyZWFrIHVuaXQgdGVzdCBpZgogICAgICAgICMgICBJc1ZhY2F0aW9uRGF5KCkgaXMgY2FsbGVkLCB0aGlzIGhhcHBlbnMgYXQgY2VydGFpbiBwb2ludCBpbiBVc2VyUmVwb3J0aW5nKCkuCgogICAgICAgIHJldHVybiAkRGF0ZVRpbWVPYmplY3QtPklzVmFjYXRpb25EYXkoCiAgICAgICAgICAgIENhbGVuZGFyID0+ICRQYXJhbXtDYWxlbmRhcn0sCiAgICAgICAgKTsKICAgIH07CiAgICB1c2Ugd2FybmluZ3M7CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgJFNlbGYtPklzTm90RGVlcGx5KAogICAgICAgIFwlRGF0YSwKICAgICAgICB7fSwKICAgICAgICAiJFRlc3QtPntOYW1lfSBVc2VyUmVwb3J0aW5nKCkgcmV0dXJuIHZhbHVlIGlzIG5vdCBlbXB0eSIKICAgICk7Cn0KMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgZGVjbGFyZSBleHRlcm5hbGx5IGRlZmluZWQgdmFyaWFibGVzIHRvIGF2b2lkIGVycm9ycyB1bmRlciAndXNlIHN0cmljdCcKdXNlIHZhcnMgcXcoJFNlbGYpOwoKJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+U2V0KAogICAgS2V5ICAgPT4gJ1RpbWVWYWNhdGlvbkRheXM6OkNhbGVuZGFyMScsCiAgICBWYWx1ZSA9PiB7CiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIDEgPT4gJ05ldyBZZWFyXCdzIERheScKICAgICAgICB9LAogICAgICAgIDEyID0+IHsKICAgICAgICAgICAgMTIgPT4gJ0Jlc3QgZGF5IGluIHdvcmxkJywKICAgICAgICAgICAgMjQgPT4gJ0NocmlzdG1hcyBFdmUnLAogICAgICAgICAgICAyNSA9PiAnRmlyc3QgQ2hyaXN0bWFzIERheScsCiAgICAgICAgICAgIDI2ID0+ICdTZWNvbmQgQ2hyaXN0bWFzIERheScsCiAgICAgICAgICAgIDMxID0+ICdOZXcgWWVhclwncyBFdmUnCiAgICAgICAgfSwKICAgICAgICA1ID0+IHsKICAgICAgICAgICAgMSA9PiAnSW50ZXJuYXRpb25hbCBXb3JrZXJzXCcgRGF5JwogICAgICAgIH0sCiAgICB9LAopOwoKbXkgQFRlc3RzID0gKAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ05vIFBhcmFtcycsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7fSwKICAgICAgICBFeHBlY3RlZFZhbHVlID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTm8gWWVhcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTW9udGggICAgPT4gMSwKICAgICAgICAgICAgRGF5ICAgICAgPT4gMSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBNb250aCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgRGF5ICAgICAgPT4gMSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBEYXknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+IDIwMTcsCiAgICAgICAgICAgIE1vbnRoICAgID0+IDEsCiAgICAgICAgICAgIENhbGVuZGFyID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFZhbHVlID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnV3JvbmcgRGF0ZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgTW9udGggICAgPT4gMiwKICAgICAgICAgICAgRGF5ICAgICAgPT4gMjksCiAgICAgICAgICAgIENhbGVuZGFyID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFZhbHVlID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTm8gVmFjYXRpb24gRGF5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAyMDE3LAogICAgICAgICAgICBNb250aCAgICA9PiAyLAogICAgICAgICAgICBEYXkgICAgICA9PiAxNSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWYWNhdGlvbiBEYXkgTnVtZXJpYyBNb250aCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgTW9udGggICAgPT4gMSwKICAgICAgICAgICAgRGF5ICAgICAgPT4gMSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gIk5ldyBZZWFyJ3MgRGF5IiwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWYWNhdGlvbiBEYXkgU3RyaW5nIE1vbnRoJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAyMDE3LAogICAgICAgICAgICBNb250aCAgICA9PiAnMDEnLAogICAgICAgICAgICBEYXkgICAgICA9PiAxLAogICAgICAgICAgICBDYWxlbmRhciA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRWYWx1ZSA9PiAiTmV3IFllYXIncyBEYXkiLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ZhY2F0aW9uIERheSBDdXN0b20nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+IDIwMTcsCiAgICAgICAgICAgIE1vbnRoICAgID0+IDEyLAogICAgICAgICAgICBEYXkgICAgICA9PiAxMiwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gIkJlc3QgZGF5IGluIHdvcmxkIiwKICAgIH0KKTsKCm15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICBteSAkUmVzdWx0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5WYWNhdGlvbkNoZWNrKCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkUmVzdWx0IC8vIDAsCiAgICAgICAgJFRlc3QtPntFeHBlY3RlZFZhbHVlfSwKICAgICAgICAiJFRlc3QtPntOYW1lfSBWYWNhdGlvbkNoZWNrKCkiLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgZGVjbGFyZSBleHRlcm5hbGx5IGRlZmluZWQgdmFyaWFibGVzIHRvIGF2b2lkIGVycm9ycyB1bmRlciAndXNlIHN0cmljdCcKdXNlIHZhcnMgcXcoJFNlbGYpOwoKIyBnZXQgaGVscGVyIG9iamVjdAokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKIyBzZXQgZml4ZWQgdGltZQokSGVscGVyLT5GaXhlZFRpbWVTZXQoCiAgICAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFN0cmluZyA9PiAnMjAxMS0wMS0zMSAyMzo1OTo1OScsCiAgICAgICAgfSwKICAgICktPlRvRXBvY2goKSwKKTsKCm15ICRSYW5kb21OdW1iZXIgPSBpbnQgc3Vic3RyICRIZWxwZXItPkdldFJhbmRvbU51bWJlcigpLCAtNSwgNTsKCiMgZGF0YSBmb3IgdGhlIG5ldyBhY3Rpb24gKHRhc2spCm15ICVOZXdBY3Rpb25EYXRhID0gKAogICAgQWN0aW9uICAgICAgID0+ICdUZXN0QWN0aW9uJyAuICRSYW5kb21OdW1iZXIsCiAgICBBY3Rpb25TdGF0dXMgPT4gMSwKKTsKCiMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgojIGNyZWF0ZSBhIG5ldyBhY3Rpb24gKHRhc2spCm15ICRJbnNlcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KCVOZXdBY3Rpb25EYXRhKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGFjdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgdGVzdCBhY3Rpb24gc2V0dGluZ3MgaW50byBkYXRhYmFzZScsCik7CgojIGdldCB0aGUgYWN0aW9uIGRhdGEgdGhhdCB3YXMgaW5zZXJ0ZWQgYWJvdmUKbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCggQWN0aW9uID0+ICROZXdBY3Rpb25EYXRhe0FjdGlvbn0gKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGRhdGEgc2F2ZWQgaW4gdGhlIERCIGlzIHRoZSBzYW1lIHRoYXQgd2FzIGluc2VydGVkCiRTZWxmLT5JcygKICAgICRBY3Rpb25EYXRhe0FjdGlvblN0YXR1c30sCiAgICAkTmV3QWN0aW9uRGF0YXtBY3Rpb25TdGF0dXN9LAogICAgJ0NvbXBhcmUgYWN0aW9uIHN0YXR1cyBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwoKIyBtb2RpZnkgdGhlIGFjdGlvbiBuYW1lCm15ICRVcGRhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzVXBkYXRlKAogICAgQWN0aW9uSUQgICAgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgIEFjdGlvbiAgICAgICA9PiAkTmV3QWN0aW9uRGF0YXtBY3Rpb259IC4gJ21vZGlmaWVkJywKICAgIEFjdGlvblN0YXR1cyA9PiAxLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyB1cGRhdGVkCiRTZWxmLT5UcnVlKAogICAgJFVwZGF0ZSwKICAgICdVcGRhdGUgdGVzdCBhY3Rpb24gc2V0dGluZ3MnLAopOwoKIyBnZXQgYWxsIGFjdGlvbnMgZGF0YQpteSAlQWxsQWN0aW9ucyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiMgdmVyaWZ5IHRoZSBsYXN0IG1vZGlmaWNhdGlvbgokU2VsZi0+SXMoCiAgICAkQWxsQWN0aW9uc3sgJEFjdGlvbkRhdGF7SUR9IH17QWN0aW9ufSwKICAgICROZXdBY3Rpb25EYXRhe0FjdGlvbn0gLiAnbW9kaWZpZWQnLAogICAgJ0NvbXBhcmUgYWN0aW9uIG5hbWUgc2F2ZWQgaW4gREIgd2l0aCB0aGUgc3BlY2lmaWVkIGluIHRoZSB1cGRhdGUnLAopOwoKIyBkYXRhIGZvciB0aGUgbmV3IHByb2plY3QKbXkgJU5ld1Byb2plY3REYXRhID0gKAogICAgUHJvamVjdCAgICAgICAgICAgID0+ICdUZXN0UHJvamVjdCcgLiAkUmFuZG9tTnVtYmVyLAogICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdUZXN0JywKICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAopOwoKIyBjcmVhdGUgYSBuZXcgcHJvamVjdApteSAkUHJvamVjdElEID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoJU5ld1Byb2plY3REYXRhKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGFjdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJFByb2plY3RJRCwKICAgICdJbnNlcnQgdGVzdCBwcm9qZWN0IHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKIyBnZXQgdGhlIGFjdGlvbiBkYXRhIHRoYXQgd2FzIGluc2VydGVkIGFib3ZlCm15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCggSUQgPT4gJFByb2plY3RJRCApOwoKIyB2ZXJpZnkgdGhhdCB0aGUgZGF0YSBzYXZlZCBpbiB0aGUgREIgaXMgdGhlIHNhbWUgdGhhdCB3YXMgaW5zZXJ0ZWQKJFNlbGYtPklzKAogICAgJFByb2plY3REYXRhe1Byb2plY3R9LAogICAgJE5ld1Byb2plY3REYXRhe1Byb2plY3R9LAogICAgJ0NvbXBhcmUgcHJvamVjdCBuYW1lIHNhdmVkIGluIERCIHdpdGggdGhlIGluc2VydGVkIG9uZScsCik7CiRTZWxmLT5JcygKICAgICRQcm9qZWN0RGF0YXtQcm9qZWN0RGVzY3JpcHRpb259LAogICAgJE5ld1Byb2plY3REYXRhe1Byb2plY3REZXNjcmlwdGlvbn0sCiAgICAnQ29tcGFyZSBwcm9qZWN0IGRlc2NyaXB0aW9uIHNhdmVkIGluIERCIHdpdGggdGhlIGluc2VydGVkIG9uZScsCik7CiRTZWxmLT5JcygKICAgICRQcm9qZWN0RGF0YXtQcm9qZWN0U3RhdHVzfSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0U3RhdHVzfSwKICAgICdDb21wYXJlIHByb2plY3Qgc3RhdHVzIHNhdmVkIGluIERCIHdpdGggdGhlIGluc2VydGVkIG9uZScsCik7CgojIG1vZGlmeSB0aGUgcHJvamVjdCBuYW1lCiRVcGRhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSgKICAgIElEICAgICAgICAgICAgICAgICA9PiAkUHJvamVjdElELAogICAgUHJvamVjdCAgICAgICAgICAgID0+ICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0fSAuICdtb2RpZmllZCcsCiAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1Rlc3QnLAogICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCik7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHVwZGF0ZWQKJFNlbGYtPlRydWUoCiAgICAkVXBkYXRlLAogICAgJ1VwZGF0ZSB0ZXN0IHByb2plY3Qgc2V0dGluZ3MnLAopOwoKIyBnZXQgYWxsIHByb2plY3RzIGRhdGEKbXkgJUFsbFByb2plY3RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoIFN0YXR1cyA9PiAndmFsaWQnICk7CgojIHZlcmlmeSB0aGUgbGFzdCBtb2RpZmljYXRpb24KJFNlbGYtPklzKAogICAgJEFsbFByb2plY3Rze1Byb2plY3R9eyRQcm9qZWN0SUR9LAogICAgJE5ld1Byb2plY3REYXRhe1Byb2plY3R9IC4gJ21vZGlmaWVkJywKICAgICdDb21wYXJlIHByb2plY3QgbmFtZSBzYXZlZCBpbiBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZScsCik7CgojIGNyZWF0ZSBuZXcgdXNlcgpteSAkVXNlckxvZ2luID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKS0+VGVzdFVzZXJDcmVhdGUoKTsKbXkgJFVzZXJJRCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICBVc2VyTG9naW4gPT4gJFVzZXJMb2dpbiwKKTsKCiMgb2J0YWluIHRoZSBsYXN0IHJlZ2lzdGVyZWQgcGVyaW9kIG9mIHRoZSB0ZXN0IHVzZXIKbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCBVc2VySUQgPT4gJFVzZXJJRCApICsgMTsKCiMgY3JlYXRlIHJlZ2lzdHJ5IGZvciB0aGUgbmV3IHVzZXIgaW4gVEEKJEluc2VydCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgVXNlcklEID0+ICRVc2VySUQsCiAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIsCik7CgojIHZlcmlmeSB0aGF0IHRoZSB1c2VyIHdhcyBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkSW5zZXJ0LAogICAgJ0luc2VydCB0ZXN0IHVzZXIgc2V0dGluZ3MgaW50byBkYXRhYmFzZScsCik7CgojIGluc2VydCBhbm90aGVyIHBlcmlvZCBlbnRyeSBmb3IgdGhlIHNhbWUgdXNlcgokSW5zZXJ0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciArIDEsCik7CgojIHZlcmlmeSB0aGF0IHRoZSB1c2VyIHdhcyBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkSW5zZXJ0LAogICAgJ0luc2VydCB0aW1lIHBlcmlvZCBmb3IgdGVzdCB1c2VyIHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKJFJhbmRvbU51bWJlciA9IGludCBzdWJzdHIgJEhlbHBlci0+R2V0UmFuZG9tTnVtYmVyKCksIC0zLCAzOwoKIyB1cGRhdGUgdXNlciBkYXRhCm15ICVVc2VyU2V0dGluZ3NVcGRhdGVEYXRhID0gKAogICAgVXNlcklEICAgICAgICA9PiAkVXNlcklELAogICAgRGVzY3JpcHRpb24gICA9PiAnVGVzdCB1c2VyJyAuICRSYW5kb21OdW1iZXIsCiAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICBBbGxvd1NraXAgICAgID0+IDEsCiAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAxID0+IHsKICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gJzIwMTEtMDEtMDEnLAogICAgICAgICAgICBEYXRlRW5kICAgICA9PiAnMjAxMS0wMS0zMScsCiAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICRSYW5kb21OdW1iZXIsCiAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcxMCcsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICcyMCcsCiAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgfSwKICAgICAgICAyID0+IHsKICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gJzIwMTEtMDItMDEnLAogICAgICAgICAgICBEYXRlRW5kICAgICA9PiAnMjAxMS0xMi0zMScsCiAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICRSYW5kb21OdW1iZXIgKyAxMCwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzUnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMTAnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgIH0sCiAgICB9LAopOwokVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoJVVzZXJTZXR0aW5nc1VwZGF0ZURhdGEpOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyB1cGRhdGVkCiRTZWxmLT5UcnVlKAogICAgJFVwZGF0ZSwKICAgICdVcGRhdGUgdGVzdCB1c2VyIHNldHRpbmdzJywKKTsKCiMgZ2V0IHVzZXIgc2V0dGluZ3MKbXkgJVNpbmdsZVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TaW5nbGVVc2VyU2V0dGluZ3NHZXQoIFVzZXJJRCA9PiAkVXNlcklEICk7CgojIHZlcmlmeSB0aGUgbGFzdCBtb2RpZmljYXRpb24KJFNlbGYtPklzKAogICAgaW50ICRTaW5nbGVVc2VyRGF0YXsxfXtXZWVrbHlIb3Vyc30sCiAgICAkUmFuZG9tTnVtYmVyLAogICAgJ0NvbXBhcmUgd2Vla2x5IGhvdXJzIGZvciBwZXJpb2QgMSBzYXZlZCBpbiBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZScsCik7CgokU2VsZi0+SXMoCiAgICBpbnQgJFNpbmdsZVVzZXJEYXRhezJ9e1dlZWtseUhvdXJzfSwKICAgICRSYW5kb21OdW1iZXIgKyAxMCwKICAgICdDb21wYXJlIHdlZWtseSBob3VycyBmb3IgcGVyaW9kIDIgc2F2ZWQgaW4gREIgd2l0aCB0aGUgc3BlY2lmaWVkIGluIHRoZSB1cGRhdGUnLAopOwoKIyBnZXQgdXNlciBkYXRhCiVTaW5nbGVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKTsKCiMgY29tcGFyZSBkYXRhIHNhdmVkIG9uIHRoZSBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUKJFNlbGYtPklzKAogICAgJFNpbmdsZVVzZXJEYXRhe0Rlc2NyaXB0aW9ufSwKICAgICdUZXN0IHVzZXInIC4gJFJhbmRvbU51bWJlciwKICAgICdDb21wYXJlIGRlc2NyaXB0aW9uIHNhdmVkIG9uIHRoZSBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIGluc2VydGlvbicsCik7CgojIGdldCBhbGwgdXNlcnMgZGF0YQpteSAlQWxsVXNlcnNEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKIyB2ZXJpZnkgdGhhdCB0aGUgdGVzdCB1c2VyIGlzIGluIHRoZSBsaXN0CiRTZWxmLT5UcnVlKAogICAgJEFsbFVzZXJzRGF0YXskVXNlcklEfXtEZXNjcmlwdGlvbn0sCiAgICAnVmVyaWZ5IHRoZSBleGlzdGVuY2Ugb2YgdGhlIHRlc3QgdXNlciBpbiB0aGUgbGlzdCcKKTsKCiMgZ2V0IGFsbCBwZXJpb2RzIG9mIGRhdGEgb2YgYWxsIHVzZXJzCm15ICVBbGxVc2Vyc1BlcmlvZERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0dldCgpOwoKIyB2ZXJpZnkgdGhlIHBlcmlvZCBkYXRhIG9mIHRoZSB0ZXN0IHVzZXIKbXkgJENvcnJlY3RVc2VyRGF0YSA9CiAgICAoCiAgICAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e1dlZWtseUhvdXJzfSA9PSAkUmFuZG9tTnVtYmVyCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsxfXtMZWF2ZURheXN9ID09IDEwCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsxfXtPdmVydGltZX0gPT0gMjAKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e1VzZXJTdGF0dXN9CiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsyfXtXZWVrbHlIb3Vyc30gPT0gJFJhbmRvbU51bWJlciArIDEwCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsyfXtMZWF2ZURheXN9ID09IDUKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezJ9e092ZXJ0aW1lfSA9PSAxMAogICAgICAgICYmICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17Mn17VXNlclN0YXR1c30KICAgICkgPyAxIDogMDsKCiRTZWxmLT5UcnVlKAogICAgJENvcnJlY3RVc2VyRGF0YSwKICAgICdWZXJpZnkgdGhlIHBlcmlvZCBkYXRhIG9mIHRoZSB0ZXN0IHVzZXIgaW4gdGhlIGxpc3QnCik7CgojIGdldCBjdXJyZW50IHBlcmlvZCBvZiB1c2VyCm15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICBZZWFyICA9PiAnMjAxMScsCiAgICBNb250aCA9PiAnMDEnLAogICAgRGF5ICAgPT4gJzE1JywKKTsKCiMgY2hlY2sgdGhlIHBlcmlvZAokU2VsZi0+SXMoCiAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntQZXJpb2R9LAogICAgMSwKICAgICdWZXJpZnkgY3VycmVudCBwZXJpb2QnLAopOwoKJFNlbGYtPklzKAogICAgJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9LT57RGF0ZVN0YXJ0fSwKICAgICcyMDExLTAxLTAxJywKICAgICdWZXJpZnkgc3RhcnQgZGF0ZSBvZiBjdXJyZW50IHBlcmlvZCcsCik7CgokU2VsZi0+SXMoCiAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlRW5kfSwKICAgICcyMDExLTAxLTMxJywKICAgICdWZXJpZnkgZW5kIGRhdGUgb2YgY3VycmVudCBwZXJpb2QnLAopOwoKIyBDaGVjayBmb3IgY29tcGxldGVuZXNzIC0gc2hvdWxkIGJlIG9rIGFzIHVzZXIgaXMgbm90IHJlcXVpcmVkIHRvIGxvZyB0aW1lcy4KbXkgJVdvcmtpbmdVbml0c0NoZWNrQWxsb3dTa2lwID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CiRTZWxmLT5GYWxzZSgKICAgICRXb3JraW5nVW5pdHNDaGVja0FsbG93U2tpcHtFbmZvcmNlSW5zZXJ0fSwKICAgICdWZXJpZnkgdXNlciBwZXJtaXNzaW9uIHRvIHNraXAgbG9nZ2luZyBlbmFibGVkJywKKTsKCiMgVXBkYXRlICdBbGxvd1NraXAnIGZsYWcuCiRVcGRhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICVVc2VyU2V0dGluZ3NVcGRhdGVEYXRhLAogICAgQWxsb3dTa2lwID0+IDAsCik7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHVwZGF0ZWQKJFNlbGYtPlRydWUoCiAgICAkVXBkYXRlLAogICAgJ1VwZGF0ZSB0ZXN0IHVzZXIgc2V0dGluZ3MnLAopOwoKIyBDaGVjayBmb3IgY29tcGxldGVuZXNzIC0gc2hvdWxkIHJldHVybiBhIHJlc3VsdCBhcyB1c2VyIGlzIG5vdyByZXF1aXJlZCB0byBsb2cgdGltZXMuCm15ICVXb3JraW5nVW5pdHNDaGVja05vQWxsb3dTa2lwID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CiRTZWxmLT5UcnVlKAogICAgJFdvcmtpbmdVbml0c0NoZWNrTm9BbGxvd1NraXB7RW5mb3JjZUluc2VydH0sCiAgICAnVmVyaWZ5IHVzZXIgcGVybWlzc2lvbiB0byBza2lwIGxvZ2dpbmcgZGlzYWJsZWQnLAopOwoKIyBoYXNoIHdpdGggdGhlIHdvcmtpbmcgdW5pdHMgZm9yIEphbi4gMTR0aCwgMjAxMQpteSAlV29ya2luZ1VuaXRzID0gKAogICAgWWVhciAgICAgICAgID0+ICcyMDExJywKICAgIE1vbnRoICAgICAgICA9PiAnMDEnLAogICAgRGF5ICAgICAgICAgID0+ICcxNCcsCiAgICBMZWF2ZURheSAgICAgPT4gMCwKICAgIFNpY2sgICAgICAgICA9PiAwLAogICAgT3ZlcnRpbWUgICAgID0+IDAsCiAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgIHsKICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uRGF0YXtJRH0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAnTXkgY29tbWVudCcsCiAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAnNzowMCcsCiAgICAgICAgICAgIEVuZFRpbWUgICA9PiAnMTA6MDAnLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMy4wLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdNeSBjb21tZW50JywKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICcxMzowMCcsCiAgICAgICAgICAgIEVuZFRpbWUgICA9PiAnMTU6MDAnLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMi4wLAogICAgICAgIH0sCiAgICBdLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIGluc2VydCB3b3JraW5nIHVuaXRzIGluIHRoZSBEQgokSW5zZXJ0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoJVdvcmtpbmdVbml0cyk7CgojIHZlcmlmeSB0aGF0IHRoZSB3b3JraW5nIHVuaXRzIHdlcmUgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyIGludG8gZGF0YWJhc2UnLAopOwoKIyBnZXQgYWxsIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5Cm15ICVXb3JraW5nVW5pdHNDaGVjayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgdGhhdCBKYW4gMTR0aCwgMjAxMSBpcyBub3QgaW4gdGhlIGxpc3Qgb2YgZGF5cyB3aXRob3V0IGVudHJ5CiRTZWxmLT5GYWxzZSgKICAgIGRlZmluZWQgJFdvcmtpbmdVbml0c0NoZWNreydJbmNvbXBsZXRlJ317JzIwMTEnfXsnMDEnfXsnMTQnfSwKICAgICdWZXJpZnkgY29tcGxldGlvbiBvZiB3b3JraW5nIHVuaXRzJwopOwoKIyBnZXQgd29ya2luZyB1bml0cyBvZiBhbGwgdXNlcnMKbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICBZZWFyICA9PiAnMjAxMScsCiAgICBNb250aCA9PiAnMDEnLAogICAgRGF5ICAgPT4gJzE1JywKKTsKCiMgdmVyaWZ5IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgd29ya2luZyB1bml0cyBmb3IgdGhlIHRlc3QgdXNlcgokU2VsZi0+SXMoCiAgICAkRGF0YXskVXNlcklEfXtXb3JraW5nSG91cnNUb3RhbH0sCiAgICA1LAogICAgJ1ZlcmlmeSBudW1iZXIgb2Ygd29ya2luZyBob3VycyBvZiB0aGUgdGVzdCB1c2VyJywKKTsKCiMgZ2V0IHByb2plY3RzIGluIHdoaWNoIHRoZSB0ZXN0IHVzZXIgaGFzIHdvcmtlZCBvbgpteSBATGFzdFByb2plY3RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5MYXN0UHJvamVjdHNPZlVzZXIoCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKKTsKCm15ICRUZXN0UHJvamVjdEV4aXN0ZW5jZTsKCklEOgpmb3IgbXkgJElEIChATGFzdFByb2plY3RzKSB7CiAgICBuZXh0IElEIGlmICRJRCAhPSAkUHJvamVjdElEOwogICAgJFRlc3RQcm9qZWN0RXhpc3RlbmNlID0gMTsKfQoKIyB2ZXJpZnkgdGhhdCBleGlzdGVuY2Ugb2YgdGhlIHRlc3QgcHJvamVjdCBpbnRvIHRoZSB1c2VyJ3MgbGlzdAokU2VsZi0+VHJ1ZSgKICAgICRUZXN0UHJvamVjdEV4aXN0ZW5jZSwKICAgICdWZXJpZnkgdGhhdCBleGlzdGVuY2Ugb2YgdGhlIHRlc3QgcHJvamVjdCBpbnRvIHRoZSB1c2VyXCdzIGxpc3QnLAopOwoKIyBnZXQgcHJvamVjdCAtIGFjdGlvbiB3b3JraW5nIGhvdXJzCm15ICVQcm9qZWN0QWN0aW9uV29ya2luZ0hvdXJzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0QWN0aW9uUmVwb3J0aW5nKAogICAgWWVhciAgID0+IDIwMTEsCiAgICBNb250aCAgPT4gMSwKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgdG90YWwgcmVwb3J0ZWQgaG91cnMgZm9yIHRoZSB0ZXN0IGFjdGlvbiAodGFzaykgYW5kIHRlc3QgcHJvamVjdAokU2VsZi0+SXMoCiAgICAkUHJvamVjdEFjdGlvbldvcmtpbmdIb3Vyc3skUHJvamVjdElEfXtBY3Rpb25zfXsgJEFjdGlvbkRhdGF7SUR9IH17VG90YWx9LAogICAgJzUnLAogICAgJ1ZlcmlmeSB0b3RhbCByZXBvcnRlZCBob3VycyBmb3IgdGhlIHRlc3QgYWN0aW9uICh0YXNrKSBhbmQgdGVzdCBwcm9qZWN0JywKKTsKCiMgZ2V0IHByb2plY3Qgd29ya2luZyB1bml0cwpteSBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEhpc3RvcnkoIFByb2plY3RJRCA9PiAkUHJvamVjdElEICk7CgpteSAkVG90YWxIb3VyczsKCiMgZ2V0IHN1bSBvZiBhbGwgd29ya2luZyB1bml0IGZvciB0aGUgdGVzdCBwcm9qZWN0CmZvciBteSAkUHJvamVjdCAoQFByb2plY3RIaXN0b3J5QXJyYXkpIHsKICAgICRUb3RhbEhvdXJzICs9ICRQcm9qZWN0LT57UGVyaW9kfTsKfQoKbXkgJFRlc3RQcm9qZWN0VG90YWxIb3VycyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFRvdGFsSG91cnMoCiAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKKTsKCiMgdmVyaWZ5IHRvdGFsIHdvcmtpbmcgdW5pdHMgZm9yIHRoZSB0ZXN0IHByb2plY3QKJFNlbGYtPklzKAogICAgaW50ICRUb3RhbEhvdXJzLAogICAgaW50ICRUZXN0UHJvamVjdFRvdGFsSG91cnMsCiAgICAnVmVyaWZ5IHRvdGFsIGhvdXJzIG9mIHRlc3QgcHJvamVjdCcsCik7CgojIGRlbGV0ZSB3b3JraW5nIHVuaXRzIGZvciBKYW4uIDE1dGgsIDIwMTEKbXkgJERlbGV0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgWWVhciAgID0+ICcyMDExJywKICAgIE1vbnRoICA9PiAnMScsCiAgICBEYXkgICAgPT4gJzE1JywKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgd29ya2luZyB1bml0cyB3ZXJlIHN1Y2Nlc3NmdWxseSBkZWxldGVkCiRTZWxmLT5UcnVlKAogICAgJERlbGV0ZSwKICAgICdEZWxldGUgd29ya2luZyB1bml0cyBmb3IgdGVzdCcsCik7CgojIGdldCB3b3JraW5nIHVuaXRzIGZvciBKYW4uIDE1dGgsIDIwMTEKbXkgJVdvcmtpbmdVbml0c0RhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgIFllYXIgICA9PiAnMjAxMScsCiAgICBNb250aCAgPT4gJzEnLAogICAgRGF5ICAgID0+ICcxNScsCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKKTsKCiMgdmVyaWZ5IG5vbmV4aXN0ZW5jZSBvZiB0aGUgZGVsZXRlZCB3b3JraW5nIHVuaXRzCiRTZWxmLT5JcygKICAgICRXb3JraW5nVW5pdHNEYXRhe1RvdGFsfSwKICAgICcwJywKICAgICdWZXJpZnkgbm9uZXhpc3RlbmNlIG9mIHRoZSBkZWxldGVkIHdvcmtpbmcgdW5pdHMnLAopOwoKIyBzZXQgdG8gaW52YWxpZCBhbGwgcmVnaXN0cmllcyB1c2VkIGZvciB0aGUgdGVzdHMKJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgIEFjdGlvbklEICAgICA9PiAkQWN0aW9uRGF0YXtJRH0sCiAgICBBY3Rpb24gICAgICAgPT4gJE5ld0FjdGlvbkRhdGF7QWN0aW9ufSAuICdtb2RpZmllZCcsCiAgICBBY3Rpb25TdGF0dXMgPT4gMCwKKTsKCiRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzVXBkYXRlKAogICAgSUQgICAgICAgICAgICAgICAgID0+ICRQcm9qZWN0SUQsCiAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJE5ld1Byb2plY3REYXRhe1Byb2plY3R9IC4gJ21vZGlmaWVkJywKICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnVGVzdCcsCiAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMCwKKTsKCiRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgVXNlcklEICAgICAgICA9PiAkVXNlcklELAogICAgRGVzY3JpcHRpb24gICA9PiAnVGVzdCB1c2VyJywKICAgIENyZWF0ZVByb2plY3QgPT4gMCwKICAgIFNob3dPdmVydGltZSAgPT4gMCwKICAgIEFsbG93U2tpcCAgICAgPT4gMCwKICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgIDEgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMS0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTAxLTMxJywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzUwJywKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzEwJywKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzIwJywKICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMCwKICAgICAgICB9LAogICAgICAgIDIgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMi0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTAyLTI4JywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzMwJywKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzUnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMTAnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAwLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBjbGVhbnVwIGlzIGRvbmUgYnkgUmVzdG9yZURhdGFiYXNlLgoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgVXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIERpc2FibGUgZGVmYXVsdCBWYWNhdGlvbiBkYXlzLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lVmFjYXRpb25EYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4ge30sCiAgICAgICAgKTsKCiAgICAgICAgIyBEaXNhYmxlIE1hc3NFbnRyeSBmZWF0dXJlcy4KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlcicsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBHZXQgdGVzdCB1c2VyIElELgogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgSW5zZXJ0IHRlc3QgdXNlciBpbnRvIGFjY291bnQgc2V0dGluZy4KICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckN1cnJlbnQgID0gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhDdXJyZW50ID0gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH07CiAgICAgICAgbXkgJERheUN1cnJlbnQgICA9ICREYXRlVGltZVNldHRpbmdzLT57RGF5fTsKCiAgICAgICAgIyBVcGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZy4KICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJDdXJyZW50LSRNb250aEN1cnJlbnQtJERheUN1cnJlbnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckN1cnJlbnQtJE1vbnRoQ3VycmVudC0kRGF5Q3VycmVudCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBwcm9qZWN0LgogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgYWN0aW9uLgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIExvZ2luIGFzIHRlc3QgdXNlci4KICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdFZGl0LgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0Iik7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjUmVjb3Jkc051bWJlciIpLmxlbmd0aDsnCiAgICAgICAgKTsKCiAgICAgICAgIyBBZGQgYWRkaXRpb25hbCByb3cuCiAgICAgICAgbXkgJFJlY29yZHNOdW1iZXIgICAgID0gJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHBhcnNlSW50KCQoIiNSZWNvcmRzTnVtYmVyIikudmFsKCksIDEwKTsnKTsKICAgICAgICBteSAkTmV4dFJlY29yZHNOdW1iZXIgPSAkUmVjb3Jkc051bWJlciArIDE7CgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJChcIiNNb3JlSW5wdXRGaWVsZHNcIilbMF0uc2Nyb2xsSW50b1ZpZXcodHJ1ZSk7IiwKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcmpRdWVyeUV2ZW50Qm91bmQoCiAgICAgICAgICAgIENTU1NlbGVjdG9yID0+ICIjTW9yZUlucHV0RmllbGRzIiwKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI01vcmVJbnB1dEZpZWxkcyIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjUmVjb3Jkc051bWJlcicpLnZhbCgpID09ICROZXh0UmVjb3Jkc051bWJlcjsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0luc2VydFdvcmtpbmdIb3VycyB0ci5Xb3JraW5nSG91cnMnKS5sZW5ndGggPT0gJE5leHRSZWNvcmRzTnVtYmVyOyIKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIHRpbWUgYWNjb3VudGluZyBlZGl0IGZpZWxkIElEcywgZmlyc3QgYW5kIGFkZGVkIHJvdy4KICAgICAgICBmb3IgbXkgJFJvdyAoIDEsICROZXh0UmVjb3Jkc051bWJlciApIHsKICAgICAgICAgICAgZm9yIG15ICRFZGl0RmllbGRJRCAoCiAgICAgICAgICAgICAgICBxdyhQcm9qZWN0SUQgQWN0aW9uSUQgUmVtYXJrIFN0YXJ0VGltZSBFbmRUaW1lIFBlcmlvZCkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFwkKCcjJEVkaXRGaWVsZElEJFJvdycpLmxlbmd0aDsiKSwKICAgICAgICAgICAgICAgICAgICAiRWxlbWVudCAnIyRFZGl0RmllbGRJRCRSb3cnIGlzIGZvdW5kIGluIHNjcmVlbiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciBteSAkRWRpdFJlc3RJRCAoCiAgICAgICAgICAgIHF3KE1vbnRoIERheSBZZWFyIERheURhdGVwaWNrZXJJY29uIE5hdmlnYXRpb25TZWxlY3QgSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBcJCgnIyRFZGl0UmVzdElEJykubGVuZ3RoOyIpLAogICAgICAgICAgICAgICAgIkVsZW1lbnQgJyMkRWRpdFJlc3RJRCcgaXMgZm91bmQgaW4gc2NyZWVuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgRWRpdCB0aW1lIGFjY291bnRpbmcgZm9yIHRlc3QgY3JlYXRlZCB1c2VyLgogICAgICAgICRTZWxlbml1bS0+SW5wdXRGaWVsZFZhbHVlU2V0KAogICAgICAgICAgICBFbGVtZW50ID0+ICcjUHJvamVjdElEMScsCiAgICAgICAgICAgIFZhbHVlICAgPT4gJFByb2plY3RJRCwKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPklucHV0RmllbGRWYWx1ZVNldCgKICAgICAgICAgICAgRWxlbWVudCA9PiAnI0FjdGlvbklEMScsCiAgICAgICAgICAgIFZhbHVlICAgPT4gJEFjdGlvbklELAogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1JlbWFyazEiLCAgICAnY3NzJyApLT5zZW5kX2tleXMoJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3RhcnRUaW1lMSIsICdjc3MnICktPnNlbmRfa2V5cygnMTA6MDAnKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFbmRUaW1lMSIsICAgJ2NzcycgKS0+c2VuZF9rZXlzKCAnMTY6MDAnLCAiXHQiICk7CgogICAgICAgICMgU3VibWl0IHdvcmsgYWNjb3VudGluZyBlZGl0IHRpbWUgcmVjb3JkLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBWZXJpZnkgdGhhdCBwZXJpb2QgY2FsY3VsYXRlIGNvcnJlY3QgdGltZS4KICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1BlcmlvZDEiLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJzYuMDAnLAogICAgICAgICAgICAiUGVyaW9kIHRpbWUgY29ycmVjdGx5IGNhbGN1bGF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgVmVyaWZ5IHN1Ym1pdCBtZXNzYWdlLgogICAgICAgIG15ICRTdWJtaXRNZXNzYWdlID0gJ1N1Y2Nlc3NmdWwgaW5zZXJ0ISc7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkU3VibWl0TWVzc2FnZSApID4gLTEsCiAgICAgICAgICAgICIkU3VibWl0TWVzc2FnZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBpZiBBZ2VudCBoYXZlIGFjY2VzcyB0byBOYXZiYXIuIFNlZSBidWcjMTM0NjYuCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KAogICAgICAgICAgICAiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmc7U3ViYWN0aW9uPUVkaXRVc2VyO1VzZXJJRD0kVGVzdFVzZXJJRCIKICAgICAgICApOwoKICAgICAgICAjIFN1YnRyYWN0IDEwIGRheXMgZnJvbSBjdXJyZW50IGRhdGUuCiAgICAgICAgbXkgJEludGVydmFsID0gMTA7CiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiAkSW50ZXJ2YWwgKTsKICAgICAgICBteSAkWWVhclN0YXJ0ID0gJERhdGVUaW1lT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgIEZvcm1hdCA9PiAnJVknLAogICAgICAgICk7CiAgICAgICAgbXkgJE1vbnRoU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgRm9ybWF0ID0+ICclbScsCiAgICAgICAgKTsKICAgICAgICBteSAkRGF5U3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgRm9ybWF0ID0+ICclZCcsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFN1YnRyYWN0ZWREYXRlID0gIiRZZWFyU3RhcnQtJE1vbnRoU3RhcnQtJERheVN0YXJ0IjsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNEYXRlU3RhcnQtMSIsICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGF0ZVN0YXJ0LTEiLCAnY3NzJyApLT5zZW5kX2tleXMoJFN1YnRyYWN0ZWREYXRlKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yalF1ZXJ5RXZlbnRCb3VuZCgKICAgICAgICAgICAgQ1NTU2VsZWN0b3IgPT4gIiNTdWJtaXRVc2VyRGF0YSIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJtaXRVc2VyRGF0YSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcuTWVzc2FnZUJveC5FcnJvciBhW2hyZWYqPVwiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0XCJdJykubGVuZ3RoOyIKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGlmIGVycm9yIG5vdGlmaWNhdGlvbiBpcyBzaG93biBvbiBwYWdlLgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJy5NZXNzYWdlQm94LkVycm9yIGFbaHJlZio9XCJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXRcIl0nKS50ZXh0KCkudHJpbSgpOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgIlBsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISIsCiAgICAgICAgICAgICdFcnJvciBub3RpZmljYXRpb24gZm9yIGluc2VydGluZyB3b3JraW5nIGhvdXJzIGlzIGZvdW5kJywKICAgICAgICApOwoKICAgICAgICAjIENoZWNrcyBpZiBJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBpcyBzaG93bi4KICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCcuSW5jb21wbGV0ZVdvcmtpbmdEYXlzIC5Db3VudGVyJykudGV4dCgpOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJEludGVydmFsLAogICAgICAgICAgICAiJEludGVydmFsIGluY29tcGxldGUgd29ya2luZyBkYXlzIGlzIGZvdW5kIGluIHRvb2xiYXIgY291bnRlciIsCiAgICAgICAgKTsKCiAgICAgICAgIyBUcnkgdG8gbmF2aWdhdGUgdG8gQWdlbnREYXNoYm9hcmQuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnREYXNoYm9hcmQiKTsKCiAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfY3VycmVudF91cmwoKSwgJ0FjdGlvbj1BZ2VudERhc2hib2FyZCcgKSA+IC0xLAogICAgICAgICAgICAiVXNlciBpcyBibG9rZWQgdG8gdXNlIGFwcGxpY2F0aW9uLCBpdCBpcyBuZWVkZWQgdG8gaW5zZXJ0IHdvcmtpbmcgaG91cnMiLAogICAgICAgICk7CgogICAgICAgICMgRGlzYWJsZSBNYXNzRW50cnkgZmVhdHVyZXMuCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMnLAogICAgICAgICAgICBWYWx1ZSA9PiAxNSwKICAgICAgICApOwoKICAgICAgICAjIERpc2FibGUgTWFzc0VudHJ5IGZlYXR1cmVzLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZycsCiAgICAgICAgICAgIFZhbHVlID0+IDUsCiAgICAgICAgKTsKCiAgICAgICAgIyBSZWZyZXNoIHRoZSBzY3JlZW4gdG8gbG9hZCBuZXcgbm90aWZpY2F0aW9uIGFmdGVyIGNoYW5naW5nIGNvbmZpZy4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkUmVmcmVzaCgpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnLk1lc3NhZ2VCb3guTm90aWNlIGFbaHJlZio9XCJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXRcIl0nKS5sZW5ndGg7IgogICAgICAgICk7CgogICAgICAgICMgQ2hlY2sgaWYgd2Fycm5pbmcgbm90aWZpY2F0aW9uIGlzIHNob3duIG9uIHBhZ2UuCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgnLk1lc3NhZ2VCb3guTm90aWNlIGFbaHJlZio9XCJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXRcIl0nKS50ZXh0KCkudHJpbSgpOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgIlBsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISIsCiAgICAgICAgICAgICdXYXJybmluZyBub3RpZmljYXRpb24gZm9yIGluc2VydGluZyB3b3JraW5nIGhvdXJzIGlzIGZvdW5kJywKICAgICAgICApOwoKICAgICAgICAjIFRyeSB0byBuYXZpZ2F0ZSB0byBBZ2VudERhc2hib2FyZC4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudERhc2hib2FyZCIpOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X2N1cnJlbnRfdXJsKCksICdBY3Rpb249QWdlbnREYXNoYm9hcmQnICkgPiAtMSwKICAgICAgICAgICAgIlVzZXIgaXMgbm90IGJsb2tlZCB0byB1c2UgYXBwbGljYXRpb24iLAogICAgICAgICk7CgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIEdldCBEQiBjbGVhbi11cCBkYXRhLgogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YS4KICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCiMgZ2V0IHNlbGVuaXVtIG9iamVjdApteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckN1cnJlbnQgID0gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhDdXJyZW50ID0gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH07CiAgICAgICAgbXkgJERheUN1cnJlbnQgICA9ICREYXRlVGltZVNldHRpbmdzLT57RGF5fTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5BZGQoIERheXMgPT4gMSApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzRW5kID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgbXkgJFllYXJFbmQgID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhFbmQgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e01vbnRofTsKICAgICAgICBteSAkRGF5RW5kICAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e0RheX07CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJDdXJyZW50LSRNb250aEN1cnJlbnQtJERheUN1cnJlbnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3OyIpOwoKICAgICAgICAjIGNoZWNrIHBhZ2UgbGF5b3V0CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgdmVyaWZ5IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldyB2YWx1ZXMKICAgICAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKICAgICAgICBteSBAVGVzdCAgICAgICAgID0gKAogICAgICAgICAgICAkUHJvamVjdFRpdGxlLCAkQWN0aW9uVGl0bGUsICdUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3JywgJ09uIG92ZXJ0aW1lIGxlYXZlJywgJ092ZXJ0aW1lIChIb3VycyknLAogICAgICAgICAgICAnVmFjYXRpb24gKERheXMpJywgJ1NpY2sgTGVhdmUgKERheXMpJywgQFdlZWtkYXlBcnJheQogICAgICAgICk7CgogICAgICAgIGZvciBteSAkQ2hlY2sgKEBUZXN0KSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGVjayApID4gLTEsCiAgICAgICAgICAgICAgICAiJENoZWNrIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgICAgICMgU2V0IE1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cyBTeXNDb25maWcgb24gNTAgZGF5cyBmb3IgdGVzdCBwdXJwb3NlLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4gNTAsCiAgICAgICAgKTsKCiAgICAgICAgIyBVc2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIEdldCB0ZXN0IHVzZXIgSUQuCiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBJbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nLgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAnMScsCiAgICAgICAgKTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiA0MCApOwogICAgICAgIG15ICRZZWFyU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgRm9ybWF0ID0+ICclWScsCiAgICAgICAgKTsKICAgICAgICBteSAkTW9udGhTdGFydCA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICBGb3JtYXQgPT4gJyVtJywKICAgICAgICApOwogICAgICAgIG15ICREYXlTdGFydCA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICBGb3JtYXQgPT4gJyVkJywKICAgICAgICApOwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCgKICAgICAgICAgICAgU2Vjb25kcyA9PiAxCiAgICAgICAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyQ3VycmVudCAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEN1cnJlbnQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofTsKICAgICAgICBteSAkRGF5Q3VycmVudCAgID0gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVTZXR0aW5ncyA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgICAgICREYXRlVGltZVNldHRpbmdzLT5BZGQoCiAgICAgICAgICAgIERheXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzRW5kID0gJERhdGVUaW1lU2V0dGluZ3MtPkdldCgpOwoKICAgICAgICBteSAkWWVhckVuZCAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEVuZCA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57TW9udGh9OwogICAgICAgIG15ICREYXlFbmQgICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57RGF5fTsKCiAgICAgICAgIyBVcGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZy4KICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBwcm9qZWN0LgogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgYWN0aW9uLgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIEFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIuCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgTG9naW4gYXMgdGVzdCB1c2VyLgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nIik7CgogICAgICAgICMgU2VsZWN0IG1vbnRoIGFuZCB5ZWFyIHRoYXQgYXJlIHVzZWQgZm9yIHRlc3RpbmcuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTW9udGggb3B0aW9uW3ZhbHVlPSckTW9udGhTdGFydCddIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNZZWFyIG9wdGlvblt2YWx1ZT0nJFllYXJTdGFydCddIiwgICAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjTW9udGgnKS52YWwoKSA9PSAkTW9udGhTdGFydCAmJiBcJCgnI1llYXInKS52YWwoKSA9PSAkWWVhclN0YXJ0IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hdmlnYXRpb25TZWxlY3QiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgcGFnZSBsYXlvdXQuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgVmVyaWZ5IHRoZXJlIGlzIGxpbmsgdG8gdGVzdCB1c2VyIHJlcG9ydHMuCiAgICAgICAgbXkgJFVzZXJSZXBvcnRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIkVGVzdFVzZXJMb2dpbiAkVGVzdFVzZXJMb2dpbiIsICdsaW5rX3RleHQnICk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBWZXJpZnkgdGhlcmUgaXMgbGluayB0byB0ZXN0IHVzZXIgcHJvamVjdCByZXBvcnRzLgogICAgICAgIG15ICRQcm9qZWN0UmVwb3J0RWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiJFByb2plY3RUaXRsZSIsICdsaW5rX3RleHQnICk7CiAgICAgICAgJFByb2plY3RSZXBvcnRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgJFByb2plY3RSZXBvcnRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBTZWxlY3QgdGVzdCBjcmVhdGVkIHByb2plY3QuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICRQcm9qZWN0VGl0bGUsICdsaW5rX3RleHQnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayBwYWdlIGxheW91dC4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyBWZXJpZnkgdGhlcmUgaXMgdGVzdCBjcmVhdGVkIGFjdGlvbi4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRBY3Rpb25UaXRsZSApID4gLTEsCiAgICAgICAgICAgICIkQWN0aW9uVGl0bGUgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIEdldCBEQiBjbGVhbi11cCBkYXRhLgogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YS4KICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFub3RoZXIgdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlciA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKCk7CgogICAgICAgICMgR2V0IHRlc3QgdXNlciBJRC4KICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXIsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nIik7CgogICAgICAgICMgQ2hlY2sgdGltZSBhY2NvdW50IHNldHRpbmcgcGFnZSBJRHMuCiAgICAgICAgZm9yIG15ICRTZXR0aW5nUGFnZSAoCiAgICAgICAgICAgIHF3KAogICAgICAgICAgICBOZXdVc2VySUQKICAgICAgICAgICAgQ29yZV9VSV9BdXRvZ2VuZXJhdGVkSURfMAogICAgICAgICAgICBDb3JlX1VJX0F1dG9nZW5lcmF0ZWRJRF8xCiAgICAgICAgICAgIENvcmVfVUlfQXV0b2dlbmVyYXRlZElEXzIKICAgICAgICAgICAgLkZpbHRlckJveAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRTZWxlY3RvciA9ICggJFNldHRpbmdQYWdlID1+IG0vXlthLXpBLVowLTldLyA/ICcjJyA6ICcnICkgLiAkU2V0dGluZ1BhZ2U7CiAgICAgICAgICAgIG15ICRFbGVtZW50ICA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAkU2VsZWN0b3IsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgYWRkIHByb2plY3QgYW5kIGFkZCB0YXNrLgogICAgICAgIGZvciBteSAkU2V0dGluZ0FkZCAoICdBZGQnLCAnQWRkIHRhc2snLCApIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nJFNldHRpbmdBZGQnXVtcQHR5cGU9J3N1Ym1pdCddIik7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgRm9yIGNoZWNrICduZXcgdXNlcicgaW5wdXQgYXV0b2NvbXBsZXRlLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnaW5wdXRbaWQ9Ik5ld1VzZXJJRF9TZWFyY2giXScsICdjc3MnICk7CgogICAgICAgICMgQ2xpY2sgb24gJ0FkZCBwcm9qZWN0Jy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nQWRkJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgcHJvamVjdCBwYWdlIElEcy4KICAgICAgICBmb3IgbXkgJFByb2plY3RQYWdlSUQgKHF3KFByb2plY3QgUHJvamVjdERlc2NyaXB0aW9uIFByb2plY3RTdGF0dXMpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkUHJvamVjdFBhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgQ3JlYXRlIHRlc3QgcHJvamVjdC4KICAgICAgICBteSAkUHJvamVjdFRpdGxlICAgICAgID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3REZXNjcmlwdGlvbiA9ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Byb2plY3QiLCAgICAgICAgICAgICdjc3MnICktPnNlbmRfa2V5cygkUHJvamVjdFRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNQcm9qZWN0RGVzY3JpcHRpb24iLCAnY3NzJyApLT5zZW5kX2tleXMoJFByb2plY3REZXNjcmlwdGlvbik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIFZlcmlmeSBjcmVhdGVkIHRlc3QgcHJvamVjdC4KICAgICAgICBmb3IgbXkgJFByb2plY3RWZXJpZnkgKCAkUHJvamVjdFRpdGxlLCAkUHJvamVjdERlc2NyaXB0aW9uICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkUHJvamVjdFZlcmlmeSApID4gLTEsCiAgICAgICAgICAgICAgICAiJFByb2plY3RWZXJpZnkgaXMgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBDbGljayBvbiAnQWRkIHRhc2snLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQgdGFzayddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENoZWNrIHRhc2sgcGFnZSBJRHMuCiAgICAgICAgZm9yIG15ICRUYXNrUGFnZUlEIChxdyhUYXNrIFRhc2tTdGF0dXMpKSB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJFRhc2tQYWdlSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHRhc2suCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ1Rhc2sgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjVGFzayIsICdjc3MnICktPnNlbmRfa2V5cygkQWN0aW9uVGl0bGUpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBWZXJpZnkgY3JlYXRlZCB0ZXN0IHRhc2suCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQWN0aW9uVGl0bGUgKSA+IC0xLAogICAgICAgICAgICAiJEFjdGlvblRpdGxlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIFRoaXMgY2hhbmdlIHRyaWdnZXJlZCBhIHBhZ2UgbG9hZCBvbiBhIG5ldyBwYWdlLgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI05ld1VzZXJJRCcpLnZhbCgnJFRlc3RVc2VySUQnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICdyZXR1cm4gdHlwZW9mKENvcmUpID09ICJvYmplY3QiICYmIHR5cGVvZihDb3JlLkFwcCkgPT0gIm9iamVjdCIgJiYgQ29yZS5BcHAuUGFnZUxvYWRDb21wbGV0ZTsnCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmIFwkKCcjRGVzY3JpcHRpb24nKS5sZW5ndGg7IiApOwoKICAgICAgICAjIENoZWNrIGVkaXQgdXNlciBwYWdlLgogICAgICAgIGZvciBteSAkRWRpdFVzZXJQYWdlSUQgKAogICAgICAgICAgICBxdyhEZXNjcmlwdGlvbiBTaG93T3ZlcnRpbWUgQ3JlYXRlUHJvamVjdCBBbGxvd1NraXAgQ2FsZW5kYXIgRGF0ZVN0YXJ0LTEgRGF0ZUVuZC0xIExlYXZlRGF5cy0xCiAgICAgICAgICAgIFdlZWtseUhvdXJzLTEgT3ZlcnRpbWUtMSBQZXJpb2RTdGF0dXMtMSkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkRWRpdFVzZXJQYWdlSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0xlYXZlRGF5cy0xJykudmFsKCcnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNMZWF2ZURheXMtMSIsICdjc3MnICktPnNlbmRfa2V5cygwKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNEYXRlU3RhcnQtMSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgVmVyaWZ5IGxlYXZlIGRheXMgY29ycmVjdCBmb3JtYXQuCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNMZWF2ZURheXMtMSIsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAnMC4wMCcsCiAgICAgICAgICAgICJMZWF2ZSBEYXlzIGNvcnJlY3QgZm9ybWF0IiwKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0xlYXZlRGF5cy0xJykudmFsKCcnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNMZWF2ZURheXMtMSIsICdjc3MnICktPnNlbmRfa2V5cyg0MCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGF0ZVN0YXJ0LTEiLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIFZlcmlmeSBsZWF2ZSBkYXlzIGNvcnJlY3QgZm9ybWF0LgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTGVhdmVEYXlzLTEiLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJzQwLjAwJywKICAgICAgICAgICAgIkxlYXZlIERheXMgY29ycmVjdCBmb3JtYXQiLAogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgJ0FkZCB0aW1lIHBlcmlvZCcuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J0FkZCB0aW1lIHBlcmlvZCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENoZWNrIGZvciBuZXcgYWRkZWQgdGltZSBwZXJpb2QgZmllbGRzLgogICAgICAgIGZvciBteSAkTmV3VGltZVBlcmlvZElEIChxdyhEYXRlU3RhcnQtMiBEYXRlRW5kLTIgTGVhdmVEYXlzLTIgV2Vla2x5SG91cnMtMiBPdmVydGltZS0yIFBlcmlvZFN0YXR1cy0yKSkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJE5ld1RpbWVQZXJpb2RJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgRWRpdCB1c2VyIHNldHRpbmcuCiAgICAgICAgbXkgJFVzZXJEZXNjcmlwdGlvbiA9ICdTZWxlbml1bSB0ZXN0IHVzZXIgc2V0dGluZyc7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGVzY3JpcHRpb24iLCAnY3NzJyApLT5jbGVhcigpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0Rlc2NyaXB0aW9uIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRVc2VyRGVzY3JpcHRpb24pOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTaG93T3ZlcnRpbWUiLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjU2hvd092ZXJ0aW1lOmNoZWNrZWQnKS5sZW5ndGg7IiApOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDcmVhdGVQcm9qZWN0IiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0NyZWF0ZVByb2plY3Q6Y2hlY2tlZCcpLmxlbmd0aDsiICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0FsbG93U2tpcCIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNBbGxvd1NraXA6Y2hlY2tlZCcpLmxlbmd0aDsiICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBWZXJpZnkgdGVzdCB1c2VyIHNldHRpbmcuCiAgICAgICAgbXkgJFNldHRpbmdVc2VyID0gIiRUZXN0VXNlciAkVGVzdFVzZXIgKCRUZXN0VXNlcikiOwogICAgICAgIGZvciBteSAkU2V0dGluZ1VzZXJWZXJpZnkgKCAkU2V0dGluZ1VzZXIsICRVc2VyRGVzY3JpcHRpb24gKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRTZXR0aW5nVXNlclZlcmlmeSApID4gLTEsCiAgICAgICAgICAgICAgICAiJFNldHRpbmdVc2VyVmVyaWZ5IGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIEdldCBEQiBjbGVhbi11cCBkYXRhLgogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIENsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhLgogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCiMgZ2V0IHNlbGVuaXVtIG9iamVjdApteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgZ2V0IG5lZWRlZCBvYmplY3QKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAgICAgIyBzZXQgTWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzIFN5c0NvbmZpZyBvbiA1MCBkYXlzIGZvciB0ZXN0IHB1cnBvc2UKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cycsCiAgICAgICAgICAgIFZhbHVlID0+IDUwLAogICAgICAgICk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBEaXNhYmxlIGRlZmF1bHQgVmFjYXRpb24gZGF5cy4KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVZhY2F0aW9uRGF5cycsCiAgICAgICAgICAgIFZhbHVlID0+IHt9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiA0MCApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgICAgIG15ICRZZWFyU3RhcnQgICAgICAgICAgICAgPSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0LT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoU3RhcnQgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntNb250aH07CiAgICAgICAgbXkgJERheVN0YXJ0ICAgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCgKICAgICAgICAgICAgRGF5cyAgICA9PiA0MCwKICAgICAgICAgICAgU2Vjb25kcyA9PiAxCiAgICAgICAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyQ3VycmVudCAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEN1cnJlbnQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofTsKICAgICAgICBteSAkRGF5Q3VycmVudCAgID0gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBTZWNvbmRzID0+IDEgKTsKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCggRGF5cyA9PiAxICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NFbmQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckVuZCAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEVuZCA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57TW9udGh9OwogICAgICAgIG15ICREYXlFbmQgICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57RGF5fTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhclN0YXJ0LSRNb250aFN0YXJ0LSREYXlTdGFydCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nVmlldyBvZiB0ZXN0IGNyZWF0ZWQgd29yayB1bml0IGRheQogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nVmlldztZZWFyPSRZZWFyQ3VycmVudDtNb250aD0kTW9udGhDdXJyZW50O0RheT0kRGF5Q3VycmVudDtVc2VySUQ9JFRlc3RVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBwYWdlIGxheW91dAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIGNoZWNrIHRpbWUgYWNjb3VudGluZyB2aWV3IHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRJRCAocXcoTW9udGggRGF5IFllYXIgRGF5RGF0ZXBpY2tlckljb24gTmF2aWdhdGlvblNlbGVjdCBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBmb3IgdGVzdCBwcm9qZWN0IGFuZCBhY3Rpb24KICAgICAgICBmb3IgbXkgJENoZWNrICggJFByb2plY3RUaXRsZSwgJEFjdGlvblRpdGxlICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hlY2sgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRDaGVjayBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBEQiBvYmplY3QKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBnZXQgREIgY2xlYW4tdXAgZGF0YQogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCiMgZ2V0IHNlbGVuaXVtIG9iamVjdApteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBEYXlzID0+IDQwICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NTdGFydCA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CiAgICAgICAgbXkgJFllYXJTdGFydCAgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhTdGFydCAgICAgICAgICAgID0gJERhdGVUaW1lU2V0dGluZ3NTdGFydC0+e01vbnRofTsKICAgICAgICBteSAkRGF5U3RhcnQgICAgICAgICAgICAgID0gJERhdGVUaW1lU2V0dGluZ3NTdGFydC0+e0RheX07CgogICAgICAgICREYXRlVGltZU9iamVjdC0+QWRkKAogICAgICAgICAgICBEYXlzICAgID0+IDQwLAogICAgICAgICAgICBTZWNvbmRzID0+IDEKICAgICAgICApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgbXkgJFllYXJDdXJyZW50ICA9ICREYXRlVGltZVNldHRpbmdzLT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoQ3VycmVudCA9ICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9OwogICAgICAgIG15ICREYXlDdXJyZW50ICAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX07CgogICAgICAgICREYXRlVGltZU9iamVjdC0+U3VidHJhY3QoIFNlY29uZHMgPT4gMSApOwogICAgICAgICREYXRlVGltZU9iamVjdC0+QWRkKCBEYXlzID0+IDEgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5nc0VuZCA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyRW5kICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoRW5kID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntNb250aH07CiAgICAgICAgbXkgJERheUVuZCAgID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntEYXl9OwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyU3RhcnQtJE1vbnRoU3RhcnQtJERheVN0YXJ0IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJFbmQtJE1vbnRoRW5kLSREYXlFbmQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgYWRkIHdvcmtpbmcgdW5pdHMgZm9yIHRlc3QgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgICAgICAgPT4gJFllYXJDdXJyZW50LAogICAgICAgICAgICBNb250aCAgICAgICAgPT4gJE1vbnRoQ3VycmVudCwKICAgICAgICAgICAgRGF5ICAgICAgICAgID0+ICREYXlDdXJyZW50LAogICAgICAgICAgICBMZWF2ZURheSAgICAgPT4gMSwKICAgICAgICAgICAgU2ljayAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAxLAogICAgICAgICAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTZWxlbml1bSB0ZXN0IHJlbWFyaycsCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICc1JywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgbm90aWZpY2F0aW9uIG1lc3NhZ2UKICAgICAgICBteSAkTm90aWZpY2F0aW9uTWVzc2FnZSA9ICdQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJE5vdGlmaWNhdGlvbk1lc3NhZ2UgKSA+IC0xLAogICAgICAgICAgICAiJE5vdGlmaWNhdGlvbk1lc3NhZ2UgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIHVzZSBhIGNhbGVuZGFyIHdpdGggdGhlIHNhbWUgYnVzaW5lc3MgaG91cnMgZm9yIGV2ZXJ5IGRheSBzbyB0aGF0IHRoZSBVVCBydW5zIGNvcnJlY3RseQogICAgICAgICMgb24gZXZlcnkgZGF5IG9mIHRoZSB3ZWVrIGFuZCBvdXRzaWRlIHVzdWFsIGJ1c2luZXNzIGhvdXJzLgogICAgICAgIG15ICVXZWVrOwogICAgICAgIG15IEBEYXlzID0gcXcoU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0KTsKICAgICAgICBmb3IgbXkgJERheSAoQERheXMpIHsKICAgICAgICAgICAgJFdlZWt7JERheX0gPSBbIDAgLi4gMjMgXTsKICAgICAgICB9CgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiA0MCApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgICAgIG15ICRZZWFyU3RhcnQgICAgICAgICAgICAgPSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0LT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoU3RhcnQgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntNb250aH07CiAgICAgICAgbXkgJERheVN0YXJ0ICAgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCgKICAgICAgICAgICAgRGF5cyAgICA9PiA0MCwKICAgICAgICAgICAgU2Vjb25kcyA9PiAxCiAgICAgICAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyQ3VycmVudCAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEN1cnJlbnQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofTsKICAgICAgICBteSAkRGF5Q3VycmVudCAgID0gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBTZWNvbmRzID0+IDEgKTsKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCggRGF5cyA9PiAxICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NFbmQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckVuZCAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEVuZCA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57TW9udGh9OwogICAgICAgIG15ICREYXlFbmQgICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57RGF5fTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhclN0YXJ0LSRNb250aFN0YXJ0LSREYXlTdGFydCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgdmVyaWZ5IHRoZXJlIGlzIHRvb2wgYmFyIGZvciBpbmNvbXBsZXRlIGRheXMKICAgICAgICBteSAkVG9vbEJhckluY29tcGxldGVEYXlzID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQHRpdGxlLCBcJ0luY29tcGxldGUgd29ya2luZyBkYXlzOicpXSIpOwogICAgICAgICRUb29sQmFySW5jb21wbGV0ZURheXMtPmlzX2VuYWJsZWQoKTsKICAgICAgICAkVG9vbEJhckluY29tcGxldGVEYXlzLT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgVGltZUFjY291bnRpbmcuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudCA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICBDb3JlLlVJLlRhYmxlLkluaXRUYWJsZUZpbHRlcigkKCcuRmlsdGVyQm94JyksICQoJy5EYXRhVGFibGUnKSk7CgogICAgICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5NYXNzRW50cnlJbml0KCk7CgogICAgICAgICQoJyNOZXdVc2VySUQnKS5vbignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnZm9ybScpLnN1Ym1pdCgpOwogICAgICAgIH0pOwoKICAgICAgICAkKCcjQWRkUGVyaW9kJykub2ZmKCdjbGljaycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgJEZvcm0gPSAkKHRoaXMpLmNsb3Nlc3QoJ2Zvcm0nKTsKICAgICAgICAgICAgJCgnaW5wdXRbbmFtZT0iQWRkUGVyaW9kIl0nLCAkRm9ybSkudmFsKDEpOwogICAgICAgIH0pOwoKICAgICAgICAkKCcjU3VibWl0VXNlckRhdGEnKS5vZmYoJ2NsaWNrJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciAkRm9ybSA9ICQodGhpcykuY2xvc2VzdCgnZm9ybScpOwogICAgICAgICAgICAkKCdpbnB1dFtuYW1lPSJTdWJtaXRVc2VyRGF0YSJdJywgJEZvcm0pLnZhbCgxKTsKICAgICAgICB9KTsKCiAgICAgICAgJCgnI05hdmlnYXRpb25TZWxlY3QnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICQoJyNEYXRlU2VsZWN0aW9uRm9ybScpLnN1Ym1pdCgpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgICQoJyNJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0Jykub2ZmKCdjaGFuZ2UuSW5jb21wbGV0ZVdvcmtpbmdEYXlzJykub24oJ2NoYW5nZS5JbmNvbXBsZXRlV29ya2luZ0RheXMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBEYXRlID0gJCh0aGlzKS52YWwoKS5zcGxpdCgnLScpOwogICAgICAgICAgICBpZiAoRGF0ZVswXSAmJiBEYXRlWzFdICYmIERhdGVbMl0pIHsKICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJykgKyAiQWN0aW9uPSIgKyBDb3JlLkNvbmZpZy5HZXQoJ0FjdGlvbicpICsgIjtZZWFyPSIgKyBEYXRlWzBdICsgIjtNb250aD0iICsgRGF0ZVsxXSArICI7RGF5PSIgKyBEYXRlWzJdOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5CaW5kQ29uZmlybWF0aW9uRGlhbG9nKHsKICAgICAgICAgICAgRWxlbWVudElEOiAgICAgICAgICAgICAgICAgICdEZWxldGVUaW1lQWNjb3VudGluZ0VudHJ5JywKICAgICAgICAgICAgRWxlbWVudFNlbGVjdG9yOiAgICAgICAgICAgICcjRGVsZXRlVGltZUFjY291bnRpbmdFbnRyeScsCiAgICAgICAgICAgIERpYWxvZ0NvbnRlbnRRdWVyeVN0cmluZzogICAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O0RlbGV0ZURpYWxvZz0xO1llYXI9JyArIENvcmUuQ29uZmlnLkdldCgnWWVhcicpICsgJztNb250aD0nICsgQ29yZS5Db25maWcuR2V0KCdNb250aCcpICsgJztEYXk9JyArIENvcmUuQ29uZmlnLkdldCgnRGF5JyksCiAgICAgICAgICAgIENvbmZpcm1lZEFjdGlvblF1ZXJ5U3RyaW5nOiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O1N1YmFjdGlvbj1EZWxldGU7WWVhcj0nICsgQ29yZS5Db25maWcuR2V0KCdZZWFyJykgKyAnO01vbnRoPScgKyBDb3JlLkNvbmZpZy5HZXQoJ01vbnRoJykgKyAnO0RheT0nICsgQ29yZS5Db25maWcuR2V0KCdEYXknKSwKICAgICAgICAgICAgRGlhbG9nVGl0bGU6ICAgICAgICAgICAgICAgIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCJEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5IiksCiAgICAgICAgICAgIFRyYW5zbGF0ZWRUZXh0OiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBZZXM6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdZZXMnKSwKICAgICAgICAgICAgICAgIE5vOiAgQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ05vJykKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBzaG93IHRoZSBjb25maXJtYXRpb24gZGlhbG9nIHRvIGNvbmZpcm0gdGhlIGFjdGlvbgogICAgICAgIGlmIChDb3JlLkNvbmZpZy5HZXQoJ0Jsb2NrTmFtZScpKSB7CiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKAogICAgICAgICAgICAgICAgQ29yZS5Db25maWcuR2V0KCdCbG9ja05hbWUnKSwKICAgICAgICAgICAgICAgIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCJDb25maXJtIGluc2VydCIpLAogICAgICAgICAgICAgICAgJzIwJScsCiAgICAgICAgICAgICAgICAnQ2VudGVyJywKICAgICAgICAgICAgICAgIHRydWUsCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbDogQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ1llcycpLAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzczogIlByaW1hcnkiLAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbDogQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ05vJyksCgogICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWZpbmUgdGhlIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlICdObycgYnV0dG9uIGlzIHByZXNzZWQKICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb246IGZ1bmN0aW9uKCl7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZSBZZXMgYW5kIE5vIGJ1dHRvbnMgdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdkaXYuRGlhbG9nOnZpc2libGUgZGl2LkNvbnRlbnRGb290ZXIgYnV0dG9uJykuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byB0aGUgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgc2F2ZWQgZW50cnkgYWZ0ZXIgcHJlc3NpbmcgdGhlIE5vIGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7U3ViYWN0aW9uPURlbGV0ZTtZZWFyPScgKyAgQ29yZS5Db25maWcuR2V0KCdZZWFyJykgKyAnO01vbnRoPScgKyAgQ29yZS5Db25maWcuR2V0KCdNb250aCcpICsgJztEYXk9JyArICBDb3JlLkNvbmZpZy5HZXQoJ0RheScpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJCgnLkxlYXZlRGF5cycpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIEZpZWxkVmFsdWUgPSAkKHRoaXMpLnZhbCgpOwoKICAgICAgICAgICAvLyByZXBsYWNlICwgd2l0aCAuCiAgICAgICAgICAgRmllbGRWYWx1ZSA9IEZpZWxkVmFsdWUucmVwbGFjZSgvLC9nLCAiLiIpOwoKICAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgZW50ZXJlZCB2YWx1ZSBvbmx5IGNvbnNpc3RzIG9mIGFsbG93ZWQgdmFsdWVzCiAgICAgICAgICAgLy8gaWYgbm90LCB3ZSBkbyBub3QgZXZhbCBmb3Igc2VjdXJpdHkgcmVhc29ucwogICAgICAgICAgIGlmIChGaWVsZFZhbHVlLm1hdGNoKC9eWzAtOS4rXC0gXSskLykpIHsKICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRpb24KICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgbm8tZXZhbCAqLwogICAgICAgICAgICAgICAgICAgRmllbGRWYWx1ZSA9IGV2YWwoRmllbGRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgICAvKmVzbGludC1lbmFibGUgbm8tZXZhbCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGNhdGNoIChDYWxjRXJyb3IpIHsKICAgICAgICAgICAgICAgICAgIEZpZWxkVmFsdWUgPSAwOwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAvLyBzZXQgbmV3IHZhbHVlCiAgICAgICAgICAgICAgICQodGhpcykudmFsKEZpZWxkVmFsdWUudG9GaXhlZCgyKSk7CiAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJyk7CiAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwoKfShUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgoKLyoqCiAqIEBuYW1lc3BhY2UgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgQ29uZmlybWF0aW9uRGlhbG9nLgogKi8KVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIERpYWxvZ0RhdGEKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICAgICAqIEBtZW1iZXIge0FycmF5fQogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgdmFyaWFibGUgc3RvcmVzIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIHBhc3NlZCBmcm9tIHRoZSBEVEwgYW5kIGNvbnRhaW4gYWxsIHRoZSBkYXRhIHRoYXQgdGhlIGRpYWxvZyBuZWVkcy4KICAgICAqLwogICAgdmFyIERpYWxvZ0RhdGEgPSBbXTsKCiAgICAvKioKICAgICAqIEBwcml2YXRlCiAgICAgKiBAbmFtZSBTaG93V2FpdGluZ0RpYWxvZwogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gUG9zaXRpb25Ub3AgLSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgZGlhbG9nLgogICAgICogQGRlc2NyaXB0aW9uIFNob3dzIHdhaXRpbmcgZGlhbG9nIHVudGlsIHNlYXJjaCBzY3JlZW4gaXMgcmVhZHkuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNob3dXYWl0aW5nRGlhbG9nKFBvc2l0aW9uVG9wKXsKICAgICAgICBDb3JlLlVJLkRpYWxvZy5TaG93Q29udGVudERpYWxvZygnPGRpdiBjbGFzcz0iU3BhY2luZyBDZW50ZXIiPjxzcGFuIGNsYXNzPSJBSkFYTG9hZGVyIiB0aXRsZT0iJyArIENvcmUuQ29uZmlnLkdldCgnTG9hZGluZ01zZycpICsgJyI+PC9zcGFuPjwvZGl2PicsICcnLCBQb3NpdGlvblRvcCwgJ0NlbnRlcicsIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgU2hvd0NvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gZmFsc2UuCiAgICAgKiBAcGFyYW0ge0V2ZW50T2JqZWN0fSBFdmVudCAtIGV2ZW50IG9iamVjdCBvZiB0aGUgY2xpY2tlZCBlbGVtZW50LgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gc2hvd3MgYSBjb25maXJtYXRpb24gZGlhbG9nIHdpdGggMiBidXR0b25zOiBZZXMgYW5kIE5vIG9yIGEgbWVzc2FnZSBkaWFsb2cgd2l0aCBvbmUgYnV0dG9uOiBPay4KICAgICAqLwogICAgVGFyZ2V0TlMuU2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IGZ1bmN0aW9uIChFdmVudCkgewoKICAgICAgICB2YXIgTG9jYWxEaWFsb2dEYXRhLAogICAgICAgICAgICBQb3NpdGlvblRvcCwKICAgICAgICAgICAgRGF0YSwKICAgICAgICAgICAgQnV0dG9uczsKCiAgICAgICAgLy8gZ2V0IGdsb2JhbCBzYXZlZCBEaWFsb2dEYXRhIGZvciB0aGlzIGZ1bmN0aW9uCiAgICAgICAgTG9jYWxEaWFsb2dEYXRhID0gRGlhbG9nRGF0YVskKEV2ZW50LnRhcmdldCkuYXR0cignaWQnKV07CgogICAgICAgIC8vIGRlZmluZSB0aGUgcG9zaXRpb24gb2YgdGhlIGRpYWxvZwogICAgICAgIFBvc2l0aW9uVG9wID0gJCh3aW5kb3cpLmhlaWdodCgpICogMC4zOwoKICAgICAgICAvLyBzaG93IHdhaXRpbmcgZGlhbG9nCiAgICAgICAgU2hvd1dhaXRpbmdEaWFsb2coUG9zaXRpb25Ub3ApOwoKICAgICAgICAvLyBhamF4IGNhbGwgdG8gdGhlIG1vZHVsZSB0aGF0IGV4ZWN1dGVzIHRoZSBhY3Rpb24gd2hlbiBwcmVzc2luZyB0aGUgY29uZmlybWF0aW9uIGJ1dHRvbgogICAgICAgIERhdGEgPSBMb2NhbERpYWxvZ0RhdGEuRGlhbG9nQ29udGVudFF1ZXJ5U3RyaW5nOwogICAgICAgIENvcmUuQUpBWC5GdW5jdGlvbkNhbGwoQ29yZS5Db25maWcuR2V0KCdCYXNlbGluaycpLCBEYXRhLCBmdW5jdGlvbiAoUmVzcG9uc2UpIHsKCiAgICAgICAgICAgIC8vICdDb25maXJtYXRpb24nIG9wZW5zIGEgZGlhbG9nIHdpdGggMiBidXR0b25zOiBZZXMgYW5kIE5vCiAgICAgICAgICAgIGlmIChSZXNwb25zZS5EaWFsb2dUeXBlID09PSAnQ29uZmlybWF0aW9uJykgewoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSB5ZXMgYW5kIG5vIGJ1dHRvbnMKICAgICAgICAgICAgICAgIEJ1dHRvbnMgPSBbewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMb2NhbERpYWxvZ0RhdGEuVHJhbnNsYXRlZFRleHQuWWVzLAogICAgICAgICAgICAgICAgICAgIENsYXNzOiAiUHJpbWFyeSIsCgogICAgICAgICAgICAgICAgICAgIC8vIGRlZmluZSB0aGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgJ1llcycgYnV0dG9uIGlzIHByZXNzZWQKICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjogZnVuY3Rpb24oKXsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpc2FibGUgWWVzIGFuZCBObyBidXR0b25zIHRvIHByZXZlbnQgbXVsdGlwbGUgc3VibWl0cwogICAgICAgICAgICAgICAgICAgICAgICAkKCdkaXYuRGlhbG9nOnZpc2libGUgZGl2LkNvbnRlbnRGb290ZXIgYnV0dG9uJykuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIHRoZSBtb2R1bGUgdGhhdCBkb2VzIHRoZSBjb25maXJtZWQgYWN0aW9uIGFmdGVyIHByZXNzaW5nIHRoZSBZZXMgYnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJykgKyBMb2NhbERpYWxvZ0RhdGEuQ29uZmlybWVkQWN0aW9uUXVlcnlTdHJpbmc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMb2NhbERpYWxvZ0RhdGEuVHJhbnNsYXRlZFRleHQuTm8sCiAgICAgICAgICAgICAgICAgICAgVHlwZTogIkNsb3NlIgogICAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vICdNZXNzYWdlJyBvcGVucyBhIGRpYWxvZyB3aXRoIDEgYnV0dG9uOiBPawogICAgICAgICAgICBlbHNlIGlmIChSZXNwb25zZS5EaWFsb2dUeXBlID09PSAnTWVzc2FnZScpIHsKCiAgICAgICAgICAgICAgICAvLyBkZWZpbmUgT2sgYnV0dG9uCiAgICAgICAgICAgICAgICBCdXR0b25zID0gW3sKICAgICAgICAgICAgICAgICAgICBMYWJlbDogTG9jYWxEaWFsb2dEYXRhLlRyYW5zbGF0ZWRUZXh0Lk9rLAogICAgICAgICAgICAgICAgICAgIENsYXNzOiAiUHJpbWFyeSIsCiAgICAgICAgICAgICAgICAgICAgVHlwZTogIkNsb3NlIgogICAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHNob3cgdGhlIGNvbmZpcm1hdGlvbiBkaWFsb2cgdG8gY29uZmlybSB0aGUgYWN0aW9uCiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKFJlc3BvbnNlLkhUTUwsIExvY2FsRGlhbG9nRGF0YS5EaWFsb2dUaXRsZSwgUG9zaXRpb25Ub3AsICJDZW50ZXIiLCB0cnVlLCBCdXR0b25zKTsKICAgICAgICB9LCAnanNvbicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBCaW5kQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBEYXRhIC0gRGlhbG9nRGF0YS4KICAgICAqIEBkZXNjcmlwdGlvbiAgQmluZHMgY29uZm9ybWF0aW9uIGRpYWxvZyB0byBhbiBlbGVtZW50CiAgICAgKi8KICAgIFRhcmdldE5TLkJpbmRDb25maXJtYXRpb25EaWFsb2cgPSBmdW5jdGlvbiAoRGF0YSkgewogICAgICAgIERpYWxvZ0RhdGFbRGF0YS5FbGVtZW50SURdID0gRGF0YTsKCiAgICAgICAgLy8gYmluZGluZyBhIGNsaWNrIGV2ZW50IHRvIHRoZSBkZWZpbmVkIGVsZW1lbnQKICAgICAgICAkKERpYWxvZ0RhdGFbRGF0YS5FbGVtZW50SURdLkVsZW1lbnRTZWxlY3RvcikKICAgICAgICAgICAgLm9mZignY2xpY2suVGltZUFjY291bnRpbmcuQmluZENvbmZpcm1hdGlvbkRpYWxvZycpCiAgICAgICAgICAgIC5vbignY2xpY2suVGltZUFjY291bnRpbmcuQmluZENvbmZpcm1hdGlvbkRpYWxvZycsIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5TaG93Q29uZmlybWF0aW9uRGlhbG9nKTsKICAgIH07CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZyB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgZWRpdCBzY3JlZW4uCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLy8gQWRkcyBvcHRpb24gdG8gYSBzZWxlY3Rpb24KICAgIGZ1bmN0aW9uIEFkZFNlbGVjdGlvbk9wdGlvbigkU2VsZWN0aW9uRWxlbWVudCwgT3B0aW9uVGV4dCwgT3B0aW9uVmFsdWUsIFNlbGVjdGVkT3B0aW9uKSB7CiAgICAgICAgdmFyIE9wdGlvbkhUTUwgPSBDb3JlLlRlbXBsYXRlLlJlbmRlcigKICAgICAgICAgICAgJ0FnZW50L1RpbWVBY2NvdW50aW5nL09wdGlvbicsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZhbHVlOiAgICBPcHRpb25WYWx1ZSwKICAgICAgICAgICAgICAgIFRleHQ6ICAgICBPcHRpb25UZXh0LAogICAgICAgICAgICAgICAgU2VsZWN0ZWQ6IE9wdGlvblZhbHVlID09PSBTZWxlY3RlZE9wdGlvbgogICAgICAgICAgICB9CiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVjdGlvbkVsZW1lbnQuYXBwZW5kKE9wdGlvbkhUTUwpOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gV29ya2luZ1VuaXRJRCAtIFRoZSBJRCBvZiB0aGUgd29ya2luZyB1bml0IHdlIGFyZSBpbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIEZpbGxzIG9wdGlvbnMgb2YgYWN0aW9uIHNlbGVjdGlvbiBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdAogICAgICovCiAgICBUYXJnZXROUy5GaWxsQWN0aW9uTGlzdCA9IGZ1bmN0aW9uIChXb3JraW5nVW5pdElEKSB7CiAgICAgICAgdmFyIFByb2plY3ROYW1lID0gJCgnI1Byb2plY3RJRCcgKyBXb3JraW5nVW5pdElEICsgJyBvcHRpb246c2VsZWN0ZWQnKS50ZXh0KCksCiAgICAgICAgICAgIEFjdGlvbkxpc3QgPSBDb3JlLkNvbmZpZy5HZXQoJ0FjdGlvbkxpc3QnKSwKICAgICAgICAgICAgQWN0aW9uTGlzdENvbnN0cmFpbnRzID0gQ29yZS5Db25maWcuR2V0KCdBY3Rpb25MaXN0Q29uc3RyYWludHMnKSwKICAgICAgICAgICAgJEFjdGlvblNlbGVjdGlvbiA9ICQoIiNBY3Rpb25JRCIgKyBXb3JraW5nVW5pdElEKSwKICAgICAgICAgICAgU2VsZWN0ZWRBY3Rpb25JRCA9ICRBY3Rpb25TZWxlY3Rpb24udmFsKCksCiAgICAgICAgICAgIE9wdGlvbkNvdW50ID0gMDsKCiAgICAgICAgLy8gcmVtb3ZlIHByZXZpb3VzIGFjdGlvbnMsIGxlYXZlIGZpcnN0IGVsZW1lbnQgKGVtcHR5IGVsZW1lbnQpCiAgICAgICAgJEFjdGlvblNlbGVjdGlvbi5maW5kKCdvcHRpb24nKS5maWx0ZXIoJzpub3QoOmZpcnN0KScpLnJlbW92ZSgpOwoKICAgICAgICAkLmVhY2goQWN0aW9uTGlzdCwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgQWN0aW9uSUQgPSB0aGlzWzBdLAogICAgICAgICAgICAgICAgQWN0aW9uTmFtZSA9IHRoaXNbMV07CgogICAgICAgICAgICAkLmVhY2goQWN0aW9uTGlzdENvbnN0cmFpbnRzLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgUHJvamVjdE5hbWVSZWdFeHAgPSBuZXcgUmVnRXhwKHRoaXNbMF0pLAogICAgICAgICAgICAgICAgICAgIEFjdGlvbk5hbWVSZWdFeHAgPSBuZXcgUmVnRXhwKHRoaXNbMV0pOwoKICAgICAgICAgICAgICAgIC8vIGFkZCBhY3Rpb24gdG8gc2VsZWN0aW9uCiAgICAgICAgICAgICAgICBpZiAoUHJvamVjdE5hbWVSZWdFeHAudGVzdChQcm9qZWN0TmFtZSkgJiYgQWN0aW9uTmFtZVJlZ0V4cC50ZXN0KEFjdGlvbk5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgQWRkU2VsZWN0aW9uT3B0aW9uKCRBY3Rpb25TZWxlY3Rpb24sIEFjdGlvbk5hbWUsIEFjdGlvbklELCBTZWxlY3RlZEFjdGlvbklEKTsKICAgICAgICAgICAgICAgICAgICBPcHRpb25Db3VudCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gYWxsIGFjdGlvbnMgd2lsbCBiZSBhZGRlZCBpZiBubyBhY3Rpb24gd2FzIGFkZGVkIGFib3ZlIChwb3NzaWJsZSBtaXNjb25maWd1cmF0aW9uKQogICAgICAgIGlmICghT3B0aW9uQ291bnQpIHsKICAgICAgICAgICAgLy8gaWdub3JlIGZpcnN0IGVsZW1lbnQgYmVjYXVzZSBpdCdzIHRoZSBlbXB0eSBlbGVtZW50IHdoaWNoIGlzIGFscmVhZHkgcGFydCBvZiB0aGUgbGlzdAogICAgICAgICAgICAkLmVhY2goQWN0aW9uTGlzdCwgZnVuY3Rpb24gKEluZGV4KSB7CiAgICAgICAgICAgICAgICB2YXIgQWN0aW9uSUQgPSB0aGlzWzBdLAogICAgICAgICAgICAgICAgICAgIEFjdGlvbk5hbWUgPSB0aGlzWzFdOwogICAgICAgICAgICAgICAgaWYgKEluZGV4ID4gMCkgewogICAgICAgICAgICAgICAgICAgIEFkZFNlbGVjdGlvbk9wdGlvbigkQWN0aW9uU2VsZWN0aW9uLCBBY3Rpb25OYW1lLCBBY3Rpb25JRCwgU2VsZWN0ZWRBY3Rpb25JRCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH07CgoKICAgIGZ1bmN0aW9uIEluaXRBZGRSb3coKSB7CiAgICAgICAgJCgnI01vcmVJbnB1dEZpZWxkcycpLm9mZignY2xpY2suTW9yZUlucHV0RmllbGRzJykub24oJ2NsaWNrLk1vcmVJbnB1dEZpZWxkcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyICRMYXN0Um93ID0gJCgnI0luc2VydFdvcmtpbmdIb3VycyB0Ym9keSB0ci5Xb3JraW5nSG91cnM6bGFzdCcpLAogICAgICAgICAgICAgICAgJE5ld1JvdywgTmV3Um93SFRNTCwKICAgICAgICAgICAgICAgIFJlY29yZE51bWJlciA9IHBhcnNlSW50KCQoJyNSZWNvcmRzTnVtYmVyJykudmFsKCksIDEwKSArIDE7CgogICAgICAgICAgICBDb3JlLlVJLklucHV0RmllbGRzLkRlYWN0aXZhdGUoJCgnLldvcmtpbmdIb3VycycpKTsKICAgICAgICAgICAgJE5ld1JvdyA9ICRMYXN0Um93LmNsb25lKCk7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSAkTmV3Um93Lmh0bWwoKTsKCiAgICAgICAgICAgIC8vIE5vdyB0YWtlIHRoZSBsYXN0IHJvdyBhbmQgcmVwbGFjZSBhbGwgbnVtYmVycyB3aXRoIHRoZSBuZXcgcmVjb3JkIG51bWJlcgogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9Qcm9qZWN0SURbMC05XSsvZywgJ1Byb2plY3RJRCcgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9Qcm9qZWN0SURcW1swLTldKy9nLCAnUHJvamVjdElEWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9GaWxsQWN0aW9uTGlzdFwoWzAtOV0rL2csICdGaWxsQWN0aW9uTGlzdCgnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvQWN0aW9uSURbMC05XSsvZywgJ0FjdGlvbklEJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0FjdGlvbklEXFtbMC05XSsvZywgJ0FjdGlvbklEWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9SZW1hcmtbMC05XSsvZywgJ1JlbWFyaycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9SZW1hcmtcW1swLTldKy9nLCAnUmVtYXJrWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9TdGFydFRpbWVbMC05XSsvZywgJ1N0YXJ0VGltZScgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9TdGFydFRpbWVcW1swLTldKy9nLCAnU3RhcnRUaW1lWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9FbmRUaW1lWzAtOV0rL2csICdFbmRUaW1lJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0VuZFRpbWVcW1swLTldKy9nLCAnRW5kVGltZVsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUGVyaW9kWzAtOV0rL2csICdQZXJpb2QnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUGVyaW9kXFtbMC05XSsvZywgJ1BlcmlvZFsnICsgUmVjb3JkTnVtYmVyKTsKCiAgICAgICAgICAgIC8vIE5vdyB3cml0ZSB0aGlzIEhUTUwgYmFjayB0byB0aGUganF1ZXJ5IG9iamVjdAogICAgICAgICAgICAkTmV3Um93Lmh0bWwoTmV3Um93SFRNTCk7CgogICAgICAgICAgICAvLyBJZiBsYXN0IHJvdyBjb250YWluZWQgdmFsdWVzLCB0aGVzZSBtdXN0IGJlIHJlbW92ZWQKICAgICAgICAgICAgJE5ld1JvdwogICAgICAgICAgICAgICAgLmZpbmQoJ2lucHV0OnRleHQnKS52YWwoJycpLmVuZCgpCiAgICAgICAgICAgICAgICAuZmluZCgnc2VsZWN0IG9wdGlvbicpLnByb3AoJ3NlbGVjdGVkJywgZmFsc2UpOwoKICAgICAgICAgICAgLy8gTm93IGFkZCB0aGlzIHJvdyB0byB0aGUgdGFibGUKICAgICAgICAgICAgJExhc3RSb3cuYWZ0ZXIoJE5ld1Jvdyk7CgogICAgICAgICAgICAvLyBTYXZlIG5ldyBSZWNvcmROdW1iZXIKICAgICAgICAgICAgJCgnI1JlY29yZHNOdW1iZXInKS52YWwoUmVjb3JkTnVtYmVyKTsKCiAgICAgICAgICAgIC8vIFJlLWluaXRpYXRlIHRoZSAnb2RkL2V2ZW4nIGNvbG91cnMgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgICQoJyNJbnNlcnRXb3JraW5nSG91cnMgdGJvZHkgdHInKQogICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdFdmVuJykKICAgICAgICAgICAgICAgIC5maWx0ZXIoJzpvZGQnKS5hZGRDbGFzcygnRXZlbicpOwoKICAgICAgICAgICAgLy8gTW9kZXJuaXplIGZpZWxkcwogICAgICAgICAgICBDb3JlLlVJLklucHV0RmllbGRzLkFjdGl2YXRlKCQoJy5Xb3JraW5nSG91cnMnKSk7CiAgICAgICAgfSk7CiAgICB9CgogICAgZnVuY3Rpb24gUmVjYWxjdWxhdGVUb3RhbEhvdXJzKCkgewogICAgICAgIHZhciBUb3RhbCA9IDA7CiAgICAgICAgJCgnLlBlcmlvZCcpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgVmFsdWUgPSBwYXJzZUZsb2F0KCQodGhpcykudmFsKCkpOwogICAgICAgICAgICBpZiAoIWlzTmFOKFZhbHVlKSkgewogICAgICAgICAgICAgICAgVG90YWwgKz0gVmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAkKCcuVG90YWxIb3VycycpLnRleHQoVG90YWwudG9GaXhlZCgyKSk7CiAgICB9CgogICAgZnVuY3Rpb24gSW5pdFBlcmlvZENhbGN1bGF0aW9uKCkgewogICAgICAgIC8vIGluaXQgY2FsY3VsYXRpb24gb2YgcGVyaW9kIGZpZWxkIGFmdGVyIHdvcmtpbmcgaG91cnMgd2hlcmUgYWRkZWQvc3Vic3RyYWN0ZWQvd2hhdGV2ZXIuLi4KICAgICAgICAkKCcuUGVyaW9kJykub2ZmKCdjaGFuZ2UuUGVyaW9kQ2FsY3VsYXRpb24nKS5vbignY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgIHZhciBGaWVsZFZhbHVlID0gJCh0aGlzKS52YWwoKTsKCiAgICAgICAgICAgLy8gcmVwbGFjZSAsIHdpdGggLgogICAgICAgICAgIEZpZWxkVmFsdWUgPSBGaWVsZFZhbHVlLnJlcGxhY2UoLywvZywgIi4iKTsKCiAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGVudGVyZWQgdmFsdWUgb25seSBjb25zaXN0cyBvZiBhbGxvd2VkIHZhbHVlcwogICAgICAgICAgIC8vIGlmIG5vdCwgd2UgZG8gbm90IGV2YWwgZm9yIHNlY3VyaXR5IHJlYXNvbnMKICAgICAgICAgICBpZiAoRmllbGRWYWx1ZS5tYXRjaCgvXlswLTkuK1wtIF0rJC8pKSB7CiAgICAgICAgICAgICAgIC8vIENhbGN1bGF0aW9uCiAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAvKmVzbGludC1kaXNhYmxlIG5vLWV2YWwgKi8KICAgICAgICAgICAgICAgICAgIEZpZWxkVmFsdWUgPSBldmFsKEZpZWxkVmFsdWUpOwogICAgICAgICAgICAgICAgICAgLyplc2xpbnQtZW5hYmxlIG5vLWV2YWwgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBjYXRjaCAoQ2FsY0Vycm9yKSB7CiAgICAgICAgICAgICAgICAgICBGaWVsZFZhbHVlID0gMDsKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgLy8gc2V0IG5ldyB2YWx1ZQogICAgICAgICAgICAgICAkKHRoaXMpLnZhbChGaWVsZFZhbHVlLnRvRml4ZWQoMikpOwoKICAgICAgICAgICAgICAgLy8gbm93IFN0YXJ0VGltZSBhbmQgRW5kVGltZSB3aWxsIG5vdCBtYXRjaCB0aGUgcGVyaW9kIGFueW1vcmUKICAgICAgICAgICAgICAgLy8gZGVsZXRlIHRoZXNlIGVudHJpZXMKICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5TdGFydFRpbWUsIC5FbmRUaW1lJykudmFsKCcnKTsKCiAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJyk7CiAgICAgICAgICAgfQoKICAgICAgICAgICAvLyBub3cgcmUtY2FsY3VsYXRlIHRoZSB0b3RhbCBob3VycyBzdW0KICAgICAgICAgICBSZWNhbGN1bGF0ZVRvdGFsSG91cnMoKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gaW5pdCBwZXJpb2QgY2FsY3VsYXRpb24gb24gc3RhcnR0aW1lIGFuZCBlbmR0aW1lIGZpZWxkcwogICAgICAgICQoJy5TdGFydFRpbWUsIC5FbmRUaW1lJykub2ZmKCdjaGFuZ2UuUGVyaW9kQ2FsY3VsYXRpb24nKS5vbignY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgJFN0YXJ0VGltZSwgJEVuZFRpbWUsCiAgICAgICAgICAgICAgICBTdGFydFRpbWVIb3VyLCBTdGFydFRpbWVNaW51dGUsIEVuZFRpbWVIb3VyLCBFbmRUaW1lTWludXRlLAogICAgICAgICAgICAgICAgU3RhcnREYXRlLCBFbmREYXRlLCBUb2RheSwKICAgICAgICAgICAgICAgIFBlcmlvZDsKCiAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdTdGFydFRpbWUnKSkgewogICAgICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICQodGhpcyk7CiAgICAgICAgICAgICAgICAkRW5kVGltZSA9ICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuRW5kVGltZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcuU3RhcnRUaW1lJyk7CiAgICAgICAgICAgICAgICAkRW5kVGltZSA9ICQodGhpcyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIG9ubHkgY2FsY3VsYXRlIGlmIGJvdGggZmllbGRzIGFyZSBmaWxsZWQKICAgICAgICAgICAgaWYgKCRTdGFydFRpbWUudmFsKCkgJiYgJEVuZFRpbWUudmFsKCkpIHsKICAgICAgICAgICAgICAgIC8vIGV4dHJhY3QgaG91cnMgYW5kIG1pbnV0ZXMKICAgICAgICAgICAgICAgIFN0YXJ0VGltZUhvdXIgPSAkU3RhcnRUaW1lLnZhbCgpLnNwbGl0KC86LylbMF0gfHwgMDsKICAgICAgICAgICAgICAgIFN0YXJ0VGltZU1pbnV0ZSA9ICRTdGFydFRpbWUudmFsKCkuc3BsaXQoLzovKVsxXSB8fCAwOwogICAgICAgICAgICAgICAgRW5kVGltZUhvdXIgPSAkRW5kVGltZS52YWwoKS5zcGxpdCgvOi8pWzBdIHx8IDA7CiAgICAgICAgICAgICAgICBFbmRUaW1lTWludXRlID0gJEVuZFRpbWUudmFsKCkuc3BsaXQoLzovKVsxXSB8fCAwOwoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSBkYXRlIG9iamVjdHMKICAgICAgICAgICAgICAgIFRvZGF5ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgIFN0YXJ0RGF0ZSA9IG5ldyBEYXRlKFRvZGF5LmdldFllYXIoKSwgVG9kYXkuZ2V0TW9udGgoKSwgVG9kYXkuZ2V0RGF0ZSgpLCBTdGFydFRpbWVIb3VyLCBTdGFydFRpbWVNaW51dGUsIDApOwogICAgICAgICAgICAgICAgRW5kRGF0ZSA9IG5ldyBEYXRlKFRvZGF5LmdldFllYXIoKSwgVG9kYXkuZ2V0TW9udGgoKSwgVG9kYXkuZ2V0RGF0ZSgpLCBFbmRUaW1lSG91ciwgRW5kVGltZU1pbnV0ZSwgMCk7CgogICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICBQZXJpb2QgPSBFbmREYXRlLmdldFRpbWUoKSAtIFN0YXJ0RGF0ZS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICBQZXJpb2QgPSBQZXJpb2QgLyAoMTAwMCAqIDYwICogNjApOwoKICAgICAgICAgICAgICAgIC8vIHNldCBuZXcgdmFsdWUKICAgICAgICAgICAgICAgIGlmICghaXNOYU4oUGVyaW9kKSkgewogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuUGVyaW9kJykudmFsKFBlcmlvZC50b0ZpeGVkKDIpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuUGVyaW9kJykudmFsKCcnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZWNhbGN1bGF0ZVRvdGFsSG91cnMoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhbGwgbmVlZGVkIEpTIGZvciB0aGUgRWRpdCBzY3JlZW4KICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgdmFyIFJlbWFya1JlZ0V4cENvbnRlbnQgPSBDb3JlLkNvbmZpZy5HZXQoJ1JlbWFya1JlZ0V4cENvbnRlbnQnKSwKICAgICAgICAgICAgLy8gQWRkIHNvbWUgc3BlY2lhbCB2YWxpZGF0aW9uIG1ldGhvZHMgZm9yIHRoZSBlZGl0IHNjcmVlbgogICAgICAgICAgICAvLyBEZWZpbmUgYWxsIGF2YWlsYWJsZSBlbGVtZW50cyAob25seSB0aGUgcHJlZml4ZXMpIGluIGEgcm93CiAgICAgICAgICAgIEVsZW1lbnRQcmVmaXhlcyA9IFsnUHJvamVjdElEJywgJ0FjdGlvbklEJywgJ1JlbWFyaycsICdTdGFydFRpbWUnLCAnRW5kVGltZScsICdQZXJpb2QnXSwKICAgICAgICAgICAgQ2hlY2tlZDsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSBwcm9qZWN0OiBpZiBzb21lIG90aGVyIGZpZWxkIGluIHRoaXMgcm93IGlzIGZpbGxlZCwgdGhlIHByb2plY3Qgc2VsZWN0IG11c3QgYmUgZmlsbGVkLCB0b28KICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkTWV0aG9kKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0JywgZnVuY3Rpb24gKFZhbHVlLCBFbGVtZW50KSB7CiAgICAgICAgICAgIHZhciBJRCwKICAgICAgICAgICAgICAgIFJlc3VsdCA9IHRydWU7CgogICAgICAgICAgICAvLyBHZXQgSUQKICAgICAgICAgICAgLy8gT3VyIEVsZW1lbnQgY2FuIGJlIHRoZSBzZWxlY3QgZWxlbWVudCBvciB0aGUgYXV0b2NvbXBsZXRpb24gaW5wdXQgZmllbGQKICAgICAgICAgICAgaWYgKCQoRWxlbWVudCkuaXMoJ3NlbGVjdCcpKSB7CiAgICAgICAgICAgICAgICBJRCA9ICQoRWxlbWVudCkuYXR0cignaWQnKS5yZXBsYWNlKCdQcm9qZWN0SUQnLCAnJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBJRCA9ICQoRWxlbWVudCkucHJldkFsbCgnc2VsZWN0JykuYXR0cignaWQnKS5yZXBsYWNlKCdQcm9qZWN0SUQnLCAnJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghVmFsdWUpIHsKICAgICAgICAgICAgICAgICQuZWFjaChFbGVtZW50UHJlZml4ZXMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIVJlc3VsdCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcyAhPT0gJ1Byb2plY3RJRCcgJiYgJCgnIycgKyB0aGlzICsgSUQpLnZhbCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gUmVzdWx0OwogICAgICAgIH0pOwoKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkUnVsZSgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUHJvamVjdCcsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUHJvamVjdDogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIFZhbGlkYXRlcyB0aGUgcmVtYXJrczogZGVwZW5kaW5nIG9uIHRoZSBwcm9qZWN0LCByZW1hcmtzIG11c3QgYmUgZW50ZXJlZCBvciBub3QKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkTWV0aG9kKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19SZW1hcmsnLCBmdW5jdGlvbiAoVmFsdWUsIEVsZW1lbnQpIHsKICAgICAgICAgICAgdmFyIElEID0gJChFbGVtZW50KS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1JlbWFyaycsICcnKSwKICAgICAgICAgICAgICAgIFJlbWFya1JlZ0V4cCA9IG5ldyBSZWdFeHAoIl4oIiArIFJlbWFya1JlZ0V4cENvbnRlbnQgKyAiKSQiKSwKICAgICAgICAgICAgICAgIFJlbWFya0NoZWNrID0gUmVtYXJrUmVnRXhwLnRlc3QoJCgnI1Byb2plY3RJRCcgKyBJRCkudmFsKCkpOwoKICAgICAgICAgICAgaWYgKCQoJyNQcm9qZWN0SUQnICsgSUQpLnZhbCgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gIShSZW1hcmtDaGVjayAmJiBWYWx1ZS5sZW5ndGggPCA4KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19SZW1hcmsnLCB7CiAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovCiAgICAgICAgICAgIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1JlbWFyazogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIFZhbGlkYXRlcyB0aGUgc3RhcnQgdGltZTogaWYgYSBwcm9qZWN0IGlzIGdpdmVuIGFuZCBubyB0aW1lIHBlcmlvZCBpcyBnaXZlbiwgdGhpcyBmaWVsZCBpcyByZXF1aXJlZAogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1N0YXJ0VGltZScsIGZ1bmN0aW9uIChWYWx1ZSwgRWxlbWVudCkgewogICAgICAgICAgICB2YXIgSUQgPSAkKEVsZW1lbnQpLmF0dHIoJ2lkJykucmVwbGFjZSgnU3RhcnRUaW1lJywgJycpOwoKICAgICAgICAgICAgaWYgKCFWYWx1ZSAmJiAkKCcjUHJvamVjdElEJyArIElEKS52YWwoKSAmJiAhJCgnI1BlcmlvZCcgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19TdGFydFRpbWUnLCB7CiAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovCiAgICAgICAgICAgIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1N0YXJ0VGltZTogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIFZhbGlkYXRlcyB0aGUgdGltZSBwZXJpb2Q6IGlmIGEgcHJvamVjdCBpcyBnaXZlbiBhbmQgbm8gc3RhcnQgdGltZSBpcyBnaXZlbiwgdGhpcyBmaWVsZCBpcyByZXF1aXJlZAogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1BlcmlvZCcsIGZ1bmN0aW9uIChWYWx1ZSwgRWxlbWVudCkgewogICAgICAgICAgICB2YXIgSUQgPSAkKEVsZW1lbnQpLmF0dHIoJ2lkJykucmVwbGFjZSgnUGVyaW9kJywgJycpOwoKICAgICAgICAgICAgaWYgKCFWYWx1ZSAmJiAkKCcjUHJvamVjdElEJyArIElEKS52YWwoKSAmJiAhJCgnI1N0YXJ0VGltZScgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19QZXJpb2QnLCB7CiAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovCiAgICAgICAgICAgIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1BlcmlvZDogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIGluaXRpYXRlICJtb3JlIGlucHV0IGZpZWxkcyIgZnVuY3Rpb25hbGl0eQogICAgICAgIEluaXRBZGRSb3coKTsKCiAgICAgICAgLy8gaW5pdGlhdGUgcGVyaW9kIGNhbGN1bGF0aW9uCiAgICAgICAgSW5pdFBlcmlvZENhbGN1bGF0aW9uKCk7CgogICAgICAgIC8vIFNlbGVjdCBvbmx5IG9uZSBjaGVja2JveCBpbiB0aGUgZ3JvdXAgJ0Fic2VuY2UnCiAgICAgICAgJCgiLkFic2VuY2UgaW5wdXQ6Y2hlY2tib3giKS5jbGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIENoZWNrZWQgPSAkKHRoaXMpLnByb3AoImNoZWNrZWQiKTsKICAgICAgICAgICAgJCgiLkFic2VuY2UgaW5wdXQ6Y2hlY2tib3giKS5wcm9wKCJjaGVja2VkIiwgZmFsc2UpOwogICAgICAgICAgICAkKHRoaXMpLnByb3AoImNoZWNrZWQiLCBDaGVja2VkKTsKICAgICAgICB9KTsKICAgIH07CgoKICAgIC8qKgogICAgICogQG5hbWUgTWFzc0VudHJ5SW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge09iamVjdH0gTGFuZ3VhZ2Ugb2JqZWN0IHdpdGggdGV4dCB0cmFuc2xhdGlvbnMKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBqYXZhc2NyaXB0IGZvciB0aGUgbWFzcyBlbnRyeSBmdW5jdGlvbmFsaXR5CiAgICAgKi8KICAgIFRhcmdldE5TLk1hc3NFbnRyeUluaXQgPSBmdW5jdGlvbigpIHsKICAgICAgICAkKCcjSW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsJykub2ZmKCdjbGljay5TZWxlY3RBbGxEYXlzJykub24oJ2NsaWNrLlNlbGVjdEFsbERheXMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBTdGF0ZSA9ICQodGhpcykucHJvcCgnY2hlY2tlZCcpOwogICAgICAgICAgICAkKCcuSW5jb21wbGV0ZVdvcmtpbmdEYXlzIHRib2R5IGlucHV0OmNoZWNrYm94JykucHJvcCgnY2hlY2tlZCcsIFN0YXRlKTsKICAgICAgICB9KTsKICAgICAgICAkKCcjTWFzc0VudHJ5U3VibWl0Jykub2ZmKCdjbGljay5NYXNzRW50cnlTdWJtaXQnKS5vbignY2xpY2suTWFzc0VudHJ5U3VibWl0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgJFdvcmtpbmdEYXlDaGVja2JveGVzID0gJCgnLkluY29tcGxldGVXb3JraW5nRGF5cyB0Ym9keSBpbnB1dDpjaGVja2JveDpjaGVja2VkJykuZmlsdGVyKCdbbmFtZSE9SW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsXScpOwoKICAgICAgICAgICAgaWYgKCEkV29ya2luZ0RheUNoZWNrYm94ZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBhbGVydChDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScpKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU2hvdyBvdmVybGF5CiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCQoJyNNYXNzRW50cnlDb25maXJtRGlhbG9nJyksIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdNYXNzIEVudHJ5JyksICcxNTBweCcsICdDZW50ZXInLCB0cnVlLCBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdTdWJtaXQnKSwKICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgJFNlbGVjdGVkUmFkaW8gPSAkKCcjTWFzc0VudHJ5Q29uZmlybVJhZGlvIGxpIGlucHV0OnJhZGlvOmNoZWNrZWQnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFic2VuY2VSZWFzb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0ZWREYXRlcyA9ICcnOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkU2VsZWN0ZWRSYWRpby5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGFic2VuY2UgcmVhc29uCiAgICAgICAgICAgICAgICAgICAgICAgIEFic2VuY2VSZWFzb24gPSAkU2VsZWN0ZWRSYWRpby5kYXRhKCdhYnNlbmNlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBYnNlbmNlUmVhc29uID09PSAnTGVhdmVEYXknKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9TGVhdmVEYXldJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFic2VuY2VSZWFzb24gPT09ICdTaWNrJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI01hc3NFbnRyeSBpbnB1dFtuYW1lPVNpY2tdJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFic2VuY2VSZWFzb24gPT09ICdPdmVydGltZScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNNYXNzRW50cnkgaW5wdXRbbmFtZT1PdmVydGltZV0nKS52YWwoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbGxlY3QgZGF0ZXMKICAgICAgICAgICAgICAgICAgICAgICAgJCgnLkluY29tcGxldGVXb3JraW5nRGF5cyB0Ym9keSBpbnB1dDpjaGVja2JveDpjaGVja2VkJykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgRGF0ZUl0ZW0gPSAkKHRoaXMpLmF0dHIoJ25hbWUnKS5yZXBsYWNlKC9JbmNvbXBsZXRlV29ya2luZ0RheS0vLCAiIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRGF0ZUl0ZW0gIT09ICdBbGwnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGVkRGF0ZXMgKz0gRGF0ZUl0ZW0gKyAnfCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9RGF0ZXNdJykudmFsKENvbGxlY3RlZERhdGVzKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3cgd2FpdGluZyBpY29uCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5EaWFsb2c6dmlzaWJsZScpCiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuQ29udGVudEZvb3RlcicpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbXB0eSgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbmQoKQogICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLklubmVyQ29udGVudCcpCiAgICAgICAgICAgICAgICAgICAgICAgIC53aWR0aCgkKCcuRGlhbG9nOnZpc2libGUnKS5maW5kKCcuSW5uZXJDb250ZW50Jykud2lkdGgoKSkKICAgICAgICAgICAgICAgICAgICAgICAgLmVtcHR5KCkKICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChDb3JlLlRlbXBsYXRlLlJlbmRlcignQWdlbnQvVGltZUFjY291bnRpbmcvRGlhbG9nL0FqYXhMb2FkZXInKSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWJtaXQgZm9ybQogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5Jykuc3VibWl0KCk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBDbGFzczogJ1ByaW1hcnknCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnQ2FuY2VsJyksCiAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb246IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ29yZS5VSS5EaWFsb2cuQ2xvc2VEaWFsb2coJCgnLkRpYWxvZzp2aXNpYmxlJykpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMgfHwge30pKTsK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5PdmVydmlldwogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgVGltZUFjY291bnRpbmcuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5PdmVydmlldyA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICAkKCcuTWFzdGVyQWN0aW9uJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICAgICAgdmFyICRNYXN0ZXJBY3Rpb25MaW5rID0gJCh0aGlzKS5maW5kKCcuTWFzdGVyQWN0aW9uTGluaycpOwogICAgICAgICAgICAvLyBvbmx5IGFjdCBpZiB0aGUgbGluayB3YXMgbm90IGNsaWNrZWQgZGlyZWN0bHkKICAgICAgICAgICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAkTWFzdGVyQWN0aW9uTGluay5hdHRyKCdocmVmJyk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oVGltZUFjY291bnRpbmcuQWdlbnQuT3ZlcnZpZXcgfHwge30pKTsK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5SZXBvcnRpbmcKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIFRpbWVBY2NvdW50aW5nLgogKi8KVGltZUFjY291bnRpbmcuQWdlbnQuUmVwb3J0aW5nID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgICQoJyNOYXZpZ2F0aW9uU2VsZWN0Jykub24oJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgJCgnI0RhdGVTZWxlY3Rpb25Gb3JtJykuc3VibWl0KCk7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KFRpbWVBY2NvdW50aW5nLkFnZW50LlJlcG9ydGluZyB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5WaWV3CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBUaW1lQWNjb3VudGluZy4KICovClRpbWVBY2NvdW50aW5nLkFnZW50LlZpZXcgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJCgnI05hdmlnYXRpb25TZWxlY3QnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICQoJyNEYXRlU2VsZWN0aW9uRm9ybScpLnN1Ym1pdCgpOwogICAgICAgIH0pOwogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwoKfShUaW1lQWNjb3VudGluZy5BZ2VudC5WaWV3IHx8IHt9KSk7Cg==
PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMi4zLjMvcXVuaXQuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgoKICAgIDx0aXRsZT5UaW1lQWNjb3VudGluZyBmb3IgT1RSUyAmbmRhc2g7IFVuaXRUZXN0IFJlc3VsdHM8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGgxIGlkPSJxdW5pdC1oZWFkZXIiPlRpbWVBY2NvdW50aW5nIGZvciBPVFJTICZuZGFzaDsgVW5pdFRlc3QgUmVzdWx0czwvaDE+CiAgICA8aDIgaWQ9InF1bml0LWJhbm5lciI+PC9oMj4KICAgIDxoMiBpZD0icXVuaXQtdXNlckFnZW50Ij48L2gyPgogICAgPG9sIGlkPSJxdW5pdC10ZXN0cyI+PC9vbD4KCgogICAgPCEtLSBVbml0VGVzdCBjb2RlIGdvZXMgaGVyZSAtLT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMi4zLjMvcXVuaXQuanMiPjwvc2NyaXB0PgogICAgPCEtLQogICAgICAgIE5vdyBhbHdheXMgbG9hZCBsaWJyYXJ5IGZpcnN0IGFuZCB0aGVuIHRoZSBVbml0VGVzdCBmaWxlIGZvciBpdC4KICAgICAgICBUaGUgVW5pdFRlc3QgZmlsZSBpcyByZXNwb25zaWJsZSBmb3IgcnVubmludCB0aGUgdGVzdHMuCiAgICAtLT4KCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS0zLjQuMS9qcXVlcnkuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktdWktMS4xMi4xL2pxdWVyeS11aS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS1wdWJzdWIvcHVic3ViLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvanF1ZXJ5LXZhbGlkYXRlLTEuMTYuMC9qcXVlcnkudmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktanN0cmVlLTMuMy43L2pxdWVyeS5qc3RyZWUuanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuTGFuZ3VhZ2UuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Jbml0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuSmF2YVNjcmlwdEVuaGFuY2VtZW50cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkRlYnVnLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuRGF0YS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkpTT04uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Db25maWcuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5BcHAuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLkFjY2Vzc2liaWxpdHkuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5SaWNoVGV4dEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLlRyZWVTZWxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5JbnB1dEZpZWxkcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLkRpYWxvZy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkZvcm0uRXJyb3JUb29sdGlwcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkZvcm0uVmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvcmUuVW5pdFRlc3QuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLlVuaXRUZXN0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuUnVuVW5pdFRlc3RzKCk7CiAgICA8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgpUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMgPSAoZnVuY3Rpb24gKE5hbWVzcGFjZSkgewogICAgTmFtZXNwYWNlLlJ1blVuaXRUZXN0cyA9IGZ1bmN0aW9uKCl7CgogICAgICAgIC8qCiAgICAgICAgICogQ3JlYXRlIGEgZm9ybSBjb250YWluZXIgZm9yIHRoZSB0ZXN0cwogICAgICAgICAqLwogICAgICAgIHZhciAkVGVzdEZvcm0gPSAkKCc8Zm9ybSBpZD0iVGVzdEZvcm0iPjwvZm9ybT4nKSwKICAgICAgICAgICAgJFRhYmxlOwoKICAgICAgICBRVW5pdC5tb2R1bGUoJ1RpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcycpOwogICAgICAgIFFVbml0LnRlc3QoJ2NsaWVudC1zaWRlIHRpbWUgcGVyaW9kIGNhbGN1bGF0aW9ucycsIGZ1bmN0aW9uKEFzc2VydCl7CgogICAgICAgICAgICBBc3NlcnQuZXhwZWN0KDIwKTsKCiAgICAgICAgICAgICRUZXN0Rm9ybS5hcHBlbmQoJzx0YWJsZT48dHI+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPicpOwogICAgICAgICAgICAkVGFibGUgPSAkVGVzdEZvcm0uZmluZCgndHI6ZXEoMCkgdGQnKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJTdGFydFRpbWUxIiBuYW1lPSJTdGFydFRpbWUxIiBjbGFzcz0iU3RhcnRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IkVuZFRpbWUxIiBuYW1lPSJFbmRUaW1lMSIgY2xhc3M9IkVuZFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iUGVyaW9kMSIgbmFtZT0iUGVyaW9kMSIgY2xhc3M9IlBlcmlvZCIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlID0gJFRlc3RGb3JtLmZpbmQoJ3RyOmVxKDEpIHRkJyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iU3RhcnRUaW1lMiIgbmFtZT0iU3RhcnRUaW1lMiIgY2xhc3M9IlN0YXJ0VGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJFbmRUaW1lMiIgbmFtZT0iRW5kVGltZTIiIGNsYXNzPSJFbmRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlBlcmlvZDIiIG5hbWU9IlBlcmlvZDIiIGNsYXNzPSJQZXJpb2QiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZSA9ICRUZXN0Rm9ybS5maW5kKCd0cjplcSgyKSB0ZCcpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlN0YXJ0VGltZTMiIG5hbWU9IlN0YXJ0VGltZTMiIGNsYXNzPSJTdGFydFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iRW5kVGltZTMiIG5hbWU9IkVuZFRpbWUzIiBjbGFzcz0iRW5kVGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJQZXJpb2QzIiBuYW1lPSJQZXJpb2QzIiBjbGFzcz0iUGVyaW9kIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8c3BhbiBpZD0iVG90YWxIb3VycyIgbmFtZT0iVG90YWxIb3VycyIgY2xhc3M9IlRvdGFsSG91cnMiPjwvc3Bhbj4nKTsKICAgICAgICAgICAgJCgnYm9keScpLmFwcGVuZCgkVGVzdEZvcm0pOwoKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUnVuIHRoZSB0ZXN0cwogICAgICAgICAgICAgKi8KCiAgICAgICAgICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5Jbml0KCk7CgogICAgICAgICAgICAvLyBUZXN0OiB0aW1lIGNhbGN1bGF0aW9uIG9uIHRpbWUgcGVyaW9kIGZpZWxkCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMi4wMCcsICdOb3JtYWwgbnVtYmVyIGVudHJ5Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnZm9vYmFyJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnJywgJ05vdCBhIG51bWJlciAoPSJmb29iYXIiKScpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzIgKyAzJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnNS4wMCcsICdFYXN5IGNhbGN1bGF0aW9uJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnYWxlcnQoImh1aHUiKTsnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnRXZpbCBqYXZhc2NyaXB0IGNvZGUnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyLjIzICsgMS4wOScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzMuMzInLCAnQ2FsY3VsYXRpb24gd2l0aCBub24taW50ZWdlcnMnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyLjAwMDEgKyAxLjUnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICczLjUwJywgJ0NhbGN1bGF0aW9uIHdpdGggYSBudW1iZXIgd2l0aCBtb3JlIHRoYW4gMiBkZWNpbWFscycpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzEsMiArIDEsMycpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzIuNTAnLCAnTnVtYmVycyB3aXRoICwgaW5zdGVhZCBvZiAuJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnNS44IC0gMS4yJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnNC42MCcsICdTdWJzdHJhY3Rpb24nKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcnKTsKCiAgICAgICAgICAgIC8vIFRlc3Q6IGNhbGN1bGF0ZSBwZXJpb2QgZnJvbSBlbnRlcmVkIHN0YXJ0IGFuZCBlbmQgdGltZQogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnMScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJycpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnT25seSBzdGFydCB0aW1lIGVudGVyZWQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcyJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJycsICdPbmx5IGVuZCB0aW1lIGVudGVyZWQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcxLjAwJywgJ0JvdGggdGltZXMgZW50ZXJlZCcpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzk6MDYnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMDowMCcpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcwLjkwJywgJ0Vhc3kgY2FsY3VsYXRpb24gd2l0aCB0d28gdGltZXMgb2YgdGhlIGZvcm1hdCBISDpNTScpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzk6MDAnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMTozMCcpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcyLjUwJywgJ0Vhc3kgY2FsY3VsYXRpb24gd2l0aCB0d28gdGltZXMgb2YgdGhlIGZvcm1hdCBISDpNTScpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzksNScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwLDUnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnJywgJ1N0YXJ0VGltZSBhbmQgRW5kVGltZSBmb3JtYXQgYXJlIHdyb25nJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTo1Jyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMTA6NScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcxLjAwJywgJ1N0YXJ0VGltZSBhbmQgRW5kVGltZSBmb3JtYXQgYXJlIHNsaWdodGx5IHdyb25nJyk7CgogICAgICAgICAgICAvLyBUZXN0OiBDYWxjdWxhdGlvbiBvZiB0b3RhbCBob3VycwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTo1Jyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMTA6NScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMS4wMCcsICdFYXN5IHN0YXJ0Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnZhbCgnMi41Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjVG90YWxIb3VycycpLnRleHQoKSwgJzMuNTAnLCAnU2Vjb25kIHBlcmlvZCBmaWVsZCcpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDInKS52YWwoJzEuNSArIDksNScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1RvdGFsSG91cnMnKS50ZXh0KCksICcxMi4wMCcsICdTZWNvbmQgcGVyaW9kIGZpZWxkIGdldHMgYW4gYWRkaXRpb25hbCBjYWxjdWxhdGlvbiB3aXRoIG9uZSB3cm9uZyBjb21tYScpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDMnKS52YWwoJzQuMzUnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDMnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTYuMzUnLCAnVGhpcmQgZmllbGQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxNDowMCcpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJ29wZW5lbmQnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjVG90YWxIb3VycycpLnRleHQoKSwgJzE1LjM1JywgJ0ZpcnN0IHJvdzogc3RhcnR0aW1lIGFuZCBlbmR0aW1lIGZpZWxkcyBoYXZlIHdyb25nIGlucHV0Jyk7CgoKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogQ2xlYW51cCBkaXYgY29udGFpbmVyIGFuZCBjb250ZW50cwogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJCgnI1Rlc3RGb3JtJykucmVtb3ZlKCk7CiAgICAgICAgfSk7CgogICAgfTsKCiAgICByZXR1cm4gTmFtZXNwYWNlOwp9KFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyB8fCB7fSkpOwo=
LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIFRpbWUgQWNjb3VudGluZyBEZWZhdWx0IENTUwogKi8KCkBtZWRpYSBzY3JlZW4scHJvamVjdGlvbix0dixoYW5kaGVsZCB7CgovKioKICogQHN1YnNlY3Rpb24gIGxlZnQgYW5kIHJpZ2h0IGFycm93cwogKi8KCi5BcnJvdyB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiAxMHB4OwogICAgaGVpZ2h0OiAxMnB4OwogICAgZmxvYXQ6IGxlZnQ7CiAgICBtYXJnaW4tdG9wOiAtMnB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7Cn0KCi5BcnJvdyBpIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGNvbG9yOiAjNTU1Owp9CgovKioKICogQHN1YnNlY3Rpb24gIHNwZWNpYWwgc2V0dGluZ3M6IHJlcG9ydGluZwogKi8KCmRpdi5Nb250aFNlbGVjdGlvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KCi5Nb250aFNlbGVjdGlvbiAuQXJyb3cgewogICAgbWFyZ2luLXRvcDogMXB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIEluY29tcGxldGVXb3JraW5nRGF5cyBzZWxlY3QKICovCiNJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0IG9wdGlvbltzZWxlY3RlZD1zZWxlY3RlZF0gewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgcHJvamVjdCBhbmQgYWN0aW9uIGRyb3Bkb3ducwogKi8KLlByb2plY3RTZWxlY3Rpb24gewogICAgd2lkdGg6IDMwMHB4Owp9CgouQWN0aW9uU2VsZWN0aW9uIHsKICAgIHdpZHRoOiAzMDBweDsKfQoKLlNpZGViYXJDb2x1bW4gLkRhdGVwaWNrZXJJY29uIHsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Cn0KCi5TaWRlYmFyQ29sdW1uIHRoIGlucHV0W3R5cGU9Y2hlY2tib3hdIHsKICAgIG1hcmdpbjogMHB4Owp9Cgp9IC8qIGVuZCBAbWVkaWEgKi8K
LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIFRpbWUgQWNjb3VudGluZyBBZGRpdGlvbmFsIFRhYmxlIFNldHRpbmdzCiAqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAc3Vic2VjdGlvbiAgZGF0YSB0YWJsZSBlbGVtZW50cyB3aXRob3V0IGhvdmVyCiAqLwoKLk5vSG92ZXIgdGJvZHkgdHI6aG92ZXIgdGQgewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICBib3gtc2hhZG93OiBub25lOwp9CgouTm9Ib3ZlciB0ci5FdmVuOmhvdmVyIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7Cn0KCi5Ob0hvdmVyIHRyLkdyYW5kVG90YWw6aG92ZXIgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0NGQ0ZDRjsKfQoKLlRpbWVBY2NvdW50aW5nVGFibGUgaW5wdXRbdHlwZT10ZXh0XSB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KCi5UaW1lQWNjb3VudGluZ1RhYmxlIHRkIHsKICAgIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICBzcGVjaWFsIHRhYmxlIGhlaWdodAogKi8KCi5IaWdoQ2VsbHMgdGJvZHkgdGQgewogICAgaGVpZ2h0OiAzMHB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIGZpeGVkIGRhdGEgdGFibGUgd2lkdGhzCiAqLwoKLkRhdGFUYWJsZSB0ZC5GaXhlZC5EYXkgewogICAgd2lkdGg6IDUwcHg7Cn0KCi5EYXRhVGFibGUgdGQuRml4ZWQuV2Vla2RheSB7CiAgICB3aWR0aDogODBweDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICB0YWJsZSBjb2xvdXJzIGZvciBvdmVydmlldwogKi8KCi5EYXRhVGFibGUgdHIuVmFjYXRpb24gdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0VCQ0NDQzsKfQoKLkRhdGFUYWJsZSB0ci5Ob25Xb3JraW5nRGF5IHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkUwRTA7Cn0KCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkIHsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwMDAwOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDAwMDA7CiAgICBjb2xvcjogIzFBMUExQTsKfQoKLkRhdGFUYWJsZSB0ci5BY3RpdmUgdGQ6Zmlyc3QtY2hpbGQgewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMDAwMDAwOwp9CgouRGF0YVRhYmxlIHRyLkFjdGl2ZSB0ZDpsYXN0LWNoaWxkLAouRGF0YVRhYmxlIHRyLkFjdGl2ZSB0ZC5MYXN0IHsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDAwMDA7Cn0KCi5EYXRhVGFibGUgdHIuR3JhbmRUb3RhbCB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0ZDRkNGOwp9CgovKioKICogQHN1YnNlY3Rpb24gIGRhdGEgdGFibGUgd2l0aCB0d28gaGVhZGVyIHJvd3MKICovCgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgewogICAgYmFja2dyb3VuZDogbm9uZTsKfQoKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyIHsKICAgIGJhY2tncm91bmQ6ICNlZWVlZWU7Cn0KCi5EYXRhVGFibGUgdGhlYWQuVHdvUm93cyB0cjpmaXJzdC1jaGlsZCB0aCB7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcGFkZGluZy1ib3R0b206IDJweDsKfQoKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyOmxhc3QtY2hpbGQgdGgsCi5EYXRhVGFibGUgdGhlYWQuVHdvUm93cyB0ci5MYXN0IHRoIHsKICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICBwYWRkaW5nLXRvcDogM3B4Owp9Cgp0ci5NYXN0ZXJBY3Rpb24gdGQuUm93U3BhbiB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwp9Cgp0ZC5Sb3dTcGFuewogICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjY2NjOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDsKfQoKI1RpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwgewogICAgYm9yZGVyLWNvbG9yOiAjZGRkOwogICAgYm9yZGVyLWltYWdlOiBub25lOwogICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICAgIGJvcmRlci13aWR0aDogMXB4OwogICAgcGFkZGluZzogN3B4OwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cn0KLyogZW5kIEBtZWRpYSAqLwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIHZhcjo6cGFja2FnZXNldHVwOjpUaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBMaXN0OjpVdGlsIHF3KCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAopOwoKPWhlYWQxIE5BTUUKCnZhcjo6cGFja2FnZXNldHVwOjpUaW1lQWNjb3VudGluZyAtIGNvZGUgdG8gZXhlY3V0ZSBkdXJpbmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBERVNDUklQVElPTgoKQWxsIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJENvZGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCd2YXI6OnBhY2thZ2VzZXR1cDo6VGltZUFjY291bnRpbmcnKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBGb3JjZSBhIHJlbG9hZCBvZiBaWlpBdXRvLnBtIHRvIGdldCB0aGUgZnJlc2ggY29uZmlndXJhdGlvbiB2YWx1ZXMuCiAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAlSU5DICkgewogICAgICAgIGlmICggJE1vZHVsZSA9fiBtL1paWkFBP3V0b1wucG0kLyApIHsKICAgICAgICAgICAgZGVsZXRlICRJTkN7JE1vZHVsZX07CiAgICAgICAgfQogICAgfQoKICAgICMgQ3JlYXRlIGNvbW1vbiBvYmplY3RzIHdpdGggZnJlc2ggZGVmYXVsdCBjb25maWcuCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBDb2RlSW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlSW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVJbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb2RlVW5pbnN0YWxsKCkKCnJ1biB0aGUgY29kZSB1bmluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVuaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVVbmluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIERlYWN0aXZhdGUgdGhlIGdyb3VwICd0aW1lX2FjY291bnRpbmcnIGlmIGV4aXN0cy4KICAgICRTZWxmLT5fR3JvdXBEZWFjdGl2YXRlKAogICAgICAgIE5hbWUgPT4gJ3RpbWVfYWNjb3VudGluZycsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzRfMF85MSgpCgpUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZXhlY3V0ZWQgaWYgdGhlIGluc3RhbGxlZCBtb2R1bGUgdmVyc2lvbiBpcyBzbWFsbGVyIHRoYW4gNC4wLjkxLgoKbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxKCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzRfMF85MSB7ICAgICMjIG5vIGNyaXRpYwogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoYW5nZSBjb25maWd1cmF0aW9ucyB0byBtYXRjaCB0aGUgbmV3IG1vZHVsZSBsb2NhdGlvbi4KICAgICRTZWxmLT5fTWlncmF0ZUNvbmZpZ3MoKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl81XzBfOTIoKQoKVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGV4ZWN1dGVkIGlmIHRoZSBpbnN0YWxsZWQgbW9kdWxlIHZlcnNpb24gaXMgc21hbGxlciB0aGFuIDUuMC45Mi4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl81XzBfOTIoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzkyIHsgICAgIyMgbm8gY3JpdGljCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgUmVjb3ZlciB0aGUgb2xkIHBlcm1pc3Npb25zCiAgICAkU2VsZi0+X01pZ3JhdGVQZXJtaXNzaW9ucygpOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDEgUFJJVkFURSBJTlRFUkZBQ0UKCj1oZWFkMiBfR3JvdXBEZWFjdGl2YXRlKCkKCmRlYWN0aXZhdGUgYSBncm91cAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0dyb3VwRGVhY3RpdmF0ZSgKICAgICAgICBOYW1lID0+ICd0aGUtZ3JvdXAtbmFtZScsCiAgICApOwoKPWN1dAoKc3ViIF9Hcm91cERlYWN0aXZhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte05hbWV9ICkgewogICAgICAgIEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE5hbWUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBncm91cCBvYmplY3QKICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICMgbG9va3VwIGdyb3VwIGlkCiAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJFBhcmFte05hbWV9LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRHcm91cElEOwoKICAgICMgZ2V0IHZhbGlkIGxpc3QKICAgIG15ICVWYWxpZExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMaXN0KAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKICAgIG15ICVWYWxpZExpc3RSZXZlcnNlID0gcmV2ZXJzZSAlVmFsaWRMaXN0OwoKICAgICMgZ2V0IGN1cnJlbnQgZ3JvdXAgZGF0YQogICAgbXkgJUdyb3VwRGF0YSA9ICRHcm91cE9iamVjdC0+R3JvdXBHZXQoCiAgICAgICAgSUQgICAgID0+ICRHcm91cElELAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICAjIGRlYWN0aXZhdGUgZ3JvdXAKICAgICRHcm91cE9iamVjdC0+R3JvdXBVcGRhdGUoCiAgICAgICAgJUdyb3VwRGF0YSwKICAgICAgICBWYWxpZElEID0+ICRWYWxpZExpc3RSZXZlcnNle2ludmFsaWR9LAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfTWlncmF0ZUNvbmZpZ3MoKQoKY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X01pZ3JhdGVDb25maWdzKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVDb25maWdzIHsKCiAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwogICAgbXkgJENvbmZpZ09iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBNaWdyYXRlIHRpbWUgYWNjb3VudGluZyBub3RpZmljYXRpb24gU3lzQ29uZmlnCiAgICAjICAgZ2V0IHNldHRpbmcgY29udGVudCBmb3IgdGltZSBhY2NvdW50aW5nIFN5c0NvbmZpZy4KICAgIG15ICRTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6Tm90aWZ5TW9kdWxlJyk7CgogICAgbXkgQE5ld1NldHRpbmdzOwoKICAgIGlmICggJFNldHRpbmctPnsnODg4LVRpbWVBY2NvdW50aW5nJ30tPntNb2R1bGV9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAkU2V0dGluZy0+eyc4ODgtVGltZUFjY291bnRpbmcnfS0+e01vZHVsZX0gPSAiS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5vdGlmaWNhdGlvbjo6VGltZUFjY291bnRpbmciOwoKICAgICAgICAjIHNldCBuZXcgc2V0dGluZwogICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdGcm9udGVuZDo6Tm90aWZ5TW9kdWxlIyMjODg4LVRpbWVBY2NvdW50aW5nJywKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFNldHRpbmctPnsnVGltZUFjY291bnRpbmcnfSwKICAgICAgICB9OwogICAgfQoKICAgICMgTWlncmF0ZSB0aW1lIGFjY291bnRpbmcgdG9vbCBiYXIgU3lzQ29uZmlnCiAgICAjICAgZ2V0IHNldHRpbmcgY29udGVudCBmb3IgdGltZSBhY2NvdW50aW5nIFN5c0NvbmZpZy4KICAgICRTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6VG9vbEJhck1vZHVsZScpOwoKICAgIGlmICggJFNldHRpbmctPnsnMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMnfS0+e01vZHVsZX0gKSB7CgogICAgICAgICMgdXBkYXRlIG1vZHVsZSBsb2NhdGlvbgogICAgICAgICRTZXR0aW5nLT57JzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJ30tPntNb2R1bGV9CiAgICAgICAgICAgID0gIktlcm5lbDo6T3V0cHV0OjpIVE1MOjpUb29sQmFyOjpJbmNvbXBsZXRlV29ya2luZ0RheXMiOwoKICAgICAgICAjIHNldCBuZXcgc2V0dGluZwogICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdGcm9udGVuZDo6VG9vbEJhck1vZHVsZSMjIzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJywKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFNldHRpbmctPnsnMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMnfSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiAxIGlmICFATmV3U2V0dGluZ3M7CgogICAgbXkgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyktPlNldHRpbmdzU2V0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ29tbWVudHMgPT4gJ1RpbWVBY2NvdW50aW5nIC0gcGFja2FnZSBzZXR1cCBmdW5jdGlvbjogTWlncmF0ZUNvbmZpZ3MnLAogICAgICAgIFNldHRpbmdzID0+IFxATmV3U2V0dGluZ3MKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfR2V0T1RSUzVDb25maWdCYWNrdXAoKQoKR2V0IHRoZSBjdXN0b20gY29uZmlndXJhdGlvbnMgbWFkZSBpbiB0aGUgcHJldmlvdXMgdmVyc2lvbiwgT1RSUyA1LgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0dldE9UUlM1Q29uZmlnQmFja3VwKCk7Cgo9Y3V0CgpzdWIgX0dldE9UUlM1Q29uZmlnQmFja3VwIHsKICAgIG15ICRDb25maWcgPSB7fTsKCiAgICBteSAkRmlsZUNsYXNzID0gJ0tlcm5lbDo6Q29uZmlnOjpCYWNrdXBzOjpaWlpBdXRvT1RSUzUnOwogICAgZGVsZXRlICRJTkN7JEZpbGVDbGFzc307CgogICAgaWYgKAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPlJlcXVpcmUoCiAgICAgICAgICAgICRGaWxlQ2xhc3MsCiAgICAgICAgICAgIFNpbGVudCA9PiAxLAogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEZpbGVDbGFzcy0+TG9hZCgkQ29uZmlnKTsKICAgIH0KCiAgICByZXR1cm4gJENvbmZpZzsKfQoKPWhlYWQyIF9NaWdyYXRlUGVybWlzc2lvbnMoKQoKY2hhbmdlIHBlcm1pc3Npb25zIHRvIG1hdGNoIHRoZSBvbGQgb25lcyBiZWZvcmUgdGhlIHVwZ3JhZGUuCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fTWlncmF0ZVBlcm1pc3Npb25zKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVQZXJtaXNzaW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRPbGRDb25maWcgPSAkU2VsZi0+X0dldE9UUlM1Q29uZmlnQmFja3VwKCk7CiAgICBteSAkTmV3Q29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkR2V0Q29uZmlnID0gc3ViIHsKICAgICAgICBteSAkU291cmNlICAgICAgPSBzaGlmdDsKICAgICAgICBteSAkU2V0dGluZ05hbWUgPSBzaGlmdDsKCiAgICAgICAgbXkgJENvbmZpZyA9ICRTb3VyY2U7CiAgICAgICAgbXkgQEtleXMgICA9IHNwbGl0ICcjIyMnLCAkU2V0dGluZ05hbWU7CiAgICAgICAgd2hpbGUgKCBteSAkS2V5ID0gc2hpZnQgQEtleXMgKSB7CiAgICAgICAgICAgICRDb25maWcgPSAkQ29uZmlnLT57JEtleX07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJENvbmZpZzsKICAgIH07CgogICAgbXkgQE5ld1NldHRpbmdzICAgICAgID0gKCk7CiAgICBteSBAU2V0dGluZ3NUb01pZ3JhdGUgPSAoCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0JywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBOYXZCYXIgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2sgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdFZGl0JywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3JywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBOYXZCYXIgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2sgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLicsCiAgICAgICAgICAgICAgICBHcm91cCAgICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIE5hdkJhciA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCbG9jayA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnU2V0dGluZ3MnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nJywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBOYXZCYXIgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2sgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlcG9ydGluZycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3JywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKCiAgICBTRVRUSU5HOgogICAgZm9yIG15ICRTZXR0aW5nIChAU2V0dGluZ3NUb01pZ3JhdGUpIHsKICAgICAgICBteSAkU2V0dGluZ09sZENvbmZpZyA9ICRHZXRDb25maWctPiggJE9sZENvbmZpZywgJFNldHRpbmctPntOYW1lfSwgKTsKICAgICAgICBteSAkU2V0dGluZ0RlZmF1bHRzICA9ICRTZXR0aW5nLT57RGVmYXVsdHN9OwoKICAgICAgICBteSBAR3JvdXBHcm91cFJvID0gcXcoIEdyb3VwIEdyb3VwUm8gKTsKCiAgICAgICAgewogICAgICAgICAgICBteSAkTmV3U2V0dGluZyA9ICRHZXRDb25maWctPiggJE5ld0NvbmZpZywgJFNldHRpbmctPntOYW1lfSApOwoKICAgICAgICAgICAgIyBDaGVjayBmb3IgR3JvdXAgYW5kIEdyb3VwUm8uCiAgICAgICAgICAgIGZvciBteSAkS2V5IChAR3JvdXBHcm91cFJvKSB7CiAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFNldHRpbmdPbGRDb25maWctPnskS2V5fSB8fCBkZWZpbmVkICRTZXR0aW5nRGVmYXVsdHMtPnskS2V5fSApIHsKICAgICAgICAgICAgICAgICAgICAkTmV3U2V0dGluZy0+eyRLZXl9ID0gJFNldHRpbmdPbGRDb25maWctPnskS2V5fSAvLyAkU2V0dGluZ0RlZmF1bHRzLT57JEtleX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAkU2V0dGluZy0+e05hbWV9LAogICAgICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJE5ld1NldHRpbmcsCiAgICAgICAgICAgICAgICBJc1ZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBmb3IgTmF2QmFyID0+IE5hdmlnYXRpb24uCiAgICAgICAgaWYgKCAkU2V0dGluZ09sZENvbmZpZy0+e05hdkJhcn0gfHwgJFNldHRpbmdEZWZhdWx0cy0+e05hdkJhcn0gKSB7CiAgICAgICAgICAgIG15ICggdW5kZWYsICRGcm9udGVuZCApID0gc3BsaXQgJyMjIycsICRTZXR0aW5nLT57TmFtZX07CiAgICAgICAgICAgIG15ICROZXdTZXR0aW5nID0gJEdldENvbmZpZy0+KCAkTmV3Q29uZmlnLCAiRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyMkeyBGcm9udGVuZCB9IiApOwoKICAgICAgICAgICAgZm9yIG15ICRJbmRleCAoIHNvcnQga2V5cyAleyROZXdTZXR0aW5nfSApIHsKICAgICAgICAgICAgICAgIG15ICROZXdJdGVtcyA9ICROZXdTZXR0aW5nLT57JEluZGV4fTsKICAgICAgICAgICAgICAgIGZvciBteSAkTmV3SXRlbSAoIEB7JE5ld0l0ZW1zfSApIHsKCiAgICAgICAgICAgICAgICAgICAgU09VUkNFOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkU291cmNlICggKCAkU2V0dGluZ09sZENvbmZpZy0+e05hdkJhcn0sICRTZXR0aW5nRGVmYXVsdHMtPntOYXZCYXJ9ICkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRPbGRJdGVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IExpc3Q6OlV0aWw6OmZpcnN0IHsgJF8tPntOYW1lfSBlcSAkTmV3SXRlbS0+e05hbWV9ICYmICRfLT57QmxvY2t9IGVxICROZXdJdGVtLT57QmxvY2t9IH0KICAgICAgICAgICAgICAgICAgICAgICAgQHskU291cmNlfTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBTT1VSQ0UgaWYgISRPbGRJdGVtOwoKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRLZXkgKEBHcm91cEdyb3VwUm8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkT2xkSXRlbS0+eyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXdJdGVtLT57JEtleX0gPSAkT2xkSXRlbS0+eyRLZXl9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgU09VUkNFOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwdXNoIEBOZXdTZXR0aW5ncywgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJGcm9udGVuZDo6TmF2aWdhdGlvbiMjIyR7IEZyb250ZW5kIH0jIyMkeyBJbmRleCB9IiwKICAgICAgICAgICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiAkTmV3U2V0dGluZy0+eyRJbmRleH0sCiAgICAgICAgICAgICAgICAgICAgSXNWYWxpZCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBEZXBsb3kgdGhlIG5ldyBzZXR0aW5ncy4KICAgIG15ICRTZXR0aW5nc0RlcGxveWVkID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ3NTZXQoCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBDb21tZW50cyA9PiAnVGltZUFjY291bnRpbmcgLSBwYWNrYWdlIHNldHVwIGZ1bmN0aW9uOiBfTWlncmF0ZVBlcm1pc3Npb25zJywKICAgICAgICBTZXR0aW5ncyA9PiBcQE5ld1NldHRpbmdzLAogICAgKTsKICAgIGlmICggISRTZXR0aW5nc0RlcGxveWVkICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3Igd2hpbGUgZGVwbG95aW5nIHRoZSBtaWdyYXRlZCBwZXJtaXNzaW9ucyEnLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMg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IG9iagpbL0lDQ0Jhc2VkIDIgMCBSXQplbmRvYmoKNSAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDYgMCBSCj4+CnN0cmVhbQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgcmRmOmFib3V0PSIiPgo8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9ybWF0Pgo8ZGM6bGFuZ3VhZ2U+ZW48L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4yMDIwLTAzLTE0VDAyOjI0OjU1WjwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UHJvZHVjZXI+QXBhY2hlIEZPUCBWZXJzaW9uIDIuMTwvcGRmOlByb2R1Y2VyPgo8cGRmOlBERlZlcnNpb24+MS40PC9wZGY6UERGVmVyc2lvbj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRvclRvb2w+QXBhY2hlIEZPUCBWZXJzaW9uIDIuMTwveG1wOkNyZWF0b3JUb29sPgo8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTAzLTE0VDAyOjI0OjU1WjwveG1wOk1ldGFkYXRhRGF0ZT4KPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDMtMTRUMDI6MjQ6NTVaPC94bXA6Q3JlYXRlRGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+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IDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjc5LjYyOSAxMTcuMTkgNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MCAwIFIKL0ggL0kKCj4+CmVuZG9iago1MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuMDkgNjc5LjYyOSA1NDAuMCA2ODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjY3LjYyOSAxNTMuODU4IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NjcuNjI5IDUzOS45OTggNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MyAwIFIKL0ggL0kKCj4+CmVuZG9iago1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NTUuNjI5IDI1My41MDcgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1NiAwIFIKL0ggL0kKCj4+CmVuZG9iago1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY1NS42MjkgNTM5Ljk5OCA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjU5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNjM0LjY5IG51bGxdCj4+CmVuZG9iago2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDMuNjI5IDIyNi4xMzIgNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY0My42MjkgNTM5Ljk5OCA2NTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjYyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNTQ2Ljc2MSBudWxsXQo+PgplbmRvYmoKNjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjMxLjYyOSAyNTUuMDE5IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2MzEuNjI5IDUzOS45OTggNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MiAwIFIKL0ggL0kKCj4+CmVuZG9iago2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDQ4MC42NTEgbnVsbF0KPj4KZW5kb2JqCjY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYxOS42MjkgMjQ3LjUwOCA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjE5LjYyOSA1MzkuOTk4IDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA0MDIuNTQxIG51bGxdCj4+CmVuZG9iago2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDcuNjI5IDI1Mi4xMzMgNjE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2OCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYwNy42MjkgNTM5Ljk5OCA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMzYwLjQzMSBudWxsXQo+PgplbmRvYmoKNzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTk1LjYyOSAyNjMuNjU2IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1OTUuNjI5IDUzOS45OTggNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MSAwIFIKL0ggL0kKCj4+CmVuZG9iago3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDMwNi4zMjEgbnVsbF0KPj4KZW5kb2JqCjc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4My42MjkgNDA3LjQ0OSA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTgzLjYyOSA1MzkuOTk4IDU5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAyMjguMjExIG51bGxdCj4+CmVuZG9iago3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NzEuNjI5IDMzMy42MTkgNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NyAwIFIKL0ggL0kKCj4+CmVuZG9iago3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU3MS42MjkgNTM5Ljk5OCA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjgwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMTYyLjEwMSBudWxsXQo+PgplbmRvYmoKODEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTU5LjYyOSAzOTYuODAxIDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjgwOCA1NTkuNjI5IDU0MC4xNjggNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MCAwIFIKL0ggL0kKCj4+CmVuZG9iago4MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NDcuNjI5IDE4OC43OTcgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MyAwIFIKL0ggL0kKCj4+CmVuZG9iago4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU0Ny42MjkgNTM5Ljk5OCA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTM1LjYyOSAyMDQuOTc2IDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1MzUuNjI5IDUzOS45OTggNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NiAwIFIKL0ggL0kKCj4+CmVuZG9iago4OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago5MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MjMuNjI5IDE3My40MDggNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4OSAwIFIKL0ggL0kKCj4+CmVuZG9iago5MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDUyMy42MjkgNTM5Ljk5OCA1MzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNjI2LjQgbnVsbF0KPj4KZW5kb2JqCjkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxMS42MjkgMTY0LjkxMyA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy44MDcgNTExLjYyOSA1NDAuMTY3IDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA1NTguMCBudWxsXQo+PgplbmRvYmoKOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDk5LjYyOSAyMDkuNTUyIDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0OTkuNjI5IDUzOS45OTggNTA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NSAwIFIKL0ggL0kKCj4+CmVuZG9iago5OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDQ4OS42IG51bGxdCj4+CmVuZG9iago5OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0ODcuNjI5IDIyMS43OTQgNDk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0ODcuNjI5IDUzOS45OTggNDk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTAyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDc1LjYyOSAxNDkuMzkgNDg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDc1LjYyOSA1MzkuOTk4IDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDY0NC44IG51bGxdCj4+CmVuZG9iagoxMDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDYzLjYyOSAxOTkuMDA2IDQ3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQ2My42MjkgNTM5Ljk5OCA0NzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA1NjguNCBudWxsXQo+PgplbmRvYmoKMTA4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ1MS42MjkgMTk0LjY0MSA0NjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0NTEuNjI5IDUzOS45OTggNDYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjExMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQzOS42MjkgMTYxLjc4NCA0NDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0MzkuNjI5IDUzOS45OTggNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNjY3LjY3MSBudWxsXQo+PgplbmRvYmoKMTE0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQyNy42MjkgMzYxLjkyMSA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0MjcuNjI5IDUzOS45OTggNDM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNjA1LjUzNiBudWxsXQo+PgplbmRvYmoKMTE3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQxNS42MjkgMzg4LjYwNiA0MjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA0MTUuNjI5IDUzOS45OTcgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNTQzLjQwMSBudWxsXQo+PgplbmRvYmoKMTIwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQwMy42MjkgMzkxLjAzNiA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA0MDMuNjI5IDUzOS45OTcgNDEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNDgxLjI2NiBudWxsXQo+PgplbmRvYmoKMTIzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM5MS42MjkgMzc4LjI4NyA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAzOTEuNjI5IDUzOS45OTcgNDAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNDE5LjEzMSBudWxsXQo+PgplbmRvYmoKMTI2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM3OS42MjkgMzY1LjM3OCAzODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAzNzkuNjI5IDUzOS45OTcgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMzU2Ljk5NiBudWxsXQo+PgplbmRvYmoKMTI5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM2Ny42MjkgNTA2LjAyMSAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjcgMzY3LjYyOSA1NDAuMDYgMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTMxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMjgwLjQ2MSBudWxsXQo+PgplbmRvYmoKMTMyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM1NS42MjkgNDkwLjQ3IDM2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNDMuNjI5IDE1MC43OSAzNTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjY0IDM0My42MjkgNTQwLjAgMzUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMjAzLjkyNiBudWxsXQo+PgplbmRvYmoKMTM2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMzMS42MjkgNDkyLjAgMzQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMxOS42MjkgMTUwLjc5IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjQgMzE5LjYyOSA1NDAuMCAzMjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAxMjcuMzkxIG51bGxdCj4+CmVuZG9iagoxNDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzA3LjYyOSA1MDcuMzggMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI5NS42MjkgMTIyLjYxIDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM5IDI5NS42MjkgNTM5Ljk5OSAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA3MDguMCBudWxsXQo+PgplbmRvYmoKMTQ0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI4My42MjkgNTAxLjY5IDI5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNzEuNjI5IDEyMi42MSAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOSAyNzEuNjI5IDUzOS45OTkgMjgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNjI4LjIwMiBudWxsXQo+PgplbmRvYmoKMTQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI1OS42MjkgMzcwLjYzNyAyNjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAyNTkuNjI5IDUzOS45OTcgMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNTYyLjgwNCBudWxsXQo+PgplbmRvYmoKMTUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI0Ny42MjkgNTA1LjM5NCAyNTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjY5OCAyNDcuNjI5IDU0MC4wNTggMjU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNDcxLjAwNiBudWxsXQo+PgplbmRvYmoKMTU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIzNS42MjkgNDY2LjU0NyAyNDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAyMzUuNjI5IDUzOS45OTcgMjQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMzkxLjIwOCBudWxsXQo+PgplbmRvYmoKMTU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIyMy42MjkgNDk0LjEzOCAyMzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNSAyMjMuNjI5IDUzOS45OTUgMjMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMzExLjQxIG51bGxdCj4+CmVuZG9iagoxNjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjExLjYyOSA0OTUuNjU5IDIyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM1IDIxMS42MjkgNTM5Ljk5NSAyMjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCAyMzEuNjEyIG51bGxdCj4+CmVuZG9iagoxNjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTk5LjYyOSA0ODIuOTEyIDIwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDE5OS42MjkgNTM5Ljk5NyAyMDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCAxNTEuODE0IG51bGxdCj4+CmVuZG9iagoxNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTg3LjYyOSA0NzAuOTEgMTk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTg3LjYyOSA1MzkuOTk3IDE5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTc1LjYyOSAzNjkuNzkgMTg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTc1LjYyOSA1MzkuOTk3IDE4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDY2Mi45MSBudWxsXQo+PgplbmRvYmoKMTcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE2My42MjkgNDAxLjExNiAxNzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxNjMuNjI5IDUzOS45OTcgMTczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNjAwLjIxMyBudWxsXQo+PgplbmRvYmoKMTc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE1MS42MjkgMzE5LjcyOSAxNjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxNTEuNjI5IDUzOS45OTcgMTYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNTI1LjUxNiBudWxsXQo+PgplbmRvYmoKMTc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEzOS42MjkgMjY4Ljk0IDE0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDEzOS42MjkgNTM5Ljk5NyAxNDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA0MzguODE5IG51bGxdCj4+CmVuZG9iagoxODEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTI3LjYyOSAzMjkuODA5IDEzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDEyNy42MjkgNTM5Ljk5NyAxMzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCAzNjQuMTIyIG51bGxdCj4+CmVuZG9iagoxODQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTE1LjYyOSAzMTEuMzEyIDEyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDExNS42MjkgNTM5Ljk5NyAxMjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCAzMDEuNDI1IG51bGxdCj4+CmVuZG9iagoxODcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTAzLjYyOSAzMTMuNjQzIDExMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDEwMy42MjkgNTM5Ljk5NyAxMTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCAyMzguNzI4IG51bGxdCj4+CmVuZG9iagoxOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgOTEuNjI5IDMxNC4yMSAxMDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA5MS42MjkgNTM5Ljk5OCAxMDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCAxNzYuMDMxIG51bGxdCj4+CmVuZG9iagoxOTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzkuNjI5IDMxNi41NDEgODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA3OS42MjkgNTM5Ljk5OCA4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NSAwIG9iago8PCAvTGVuZ3RoIDE5NiAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnic3X3LrixJVuz8fMX+AQJ/PyRUUj3RvTNESwwQIxAwoLnqEb9/l7lHpHvsDE6ZFdVNVwsd+tTZbjszMjLMzdfD1h+++A9n//dX+J/aw8c///7LH85/8x81fMRy/yefy0d0R8vFOW8/mkh3/Y/9A/4H//+v3BHyx38MxP53d/3v/Cd3/eXfP/7hy39+cR9/++Uf/8n+9V/s3/PHf32Zv+4C/v2Xv/v0Ztyf3fvb32H04c/wHf7hS03zNUM5fM+9948WPkI9wnxLf/1/fh8+fvh/42LG8oDvwu8/cnL4y3+cf8HvGz96/cX+F+/hD19SdvMV8JfmP0q4fnG6fvHte1bHV899/NuX73735a9/8uXD27tpDp/R7/51fUvbh0/22QX7QUgfv/v9xz/+jf31h28+vL37nn36wH9/Zz/1Bs329/E77E+yfwvz7yHO/3bd/nx7rjn/7v03//Txu/+L95A/vPv04tFepOK3lfp68WgvXsfLpm8+7DLxN7yw3V9Xz1+e5y99/abUDt/sY28lPv7O/ml99kfE73PFc+vTkQN+f31+z2/r64G3am+4UOuLfYELfn/n3n9Jx/jAnVEMtR5fRfv93XHvv7ojVlte7UGg1scj4x5FR64vRx1fnsC9/9qPhvvbY6fWt3g4PIY1c59/K8f4EsdIru/H+Ph95u5XD0fG/e2Fe/89HzXi/Tfu/fR2dCyJhVvvXTjmk9y4C/AuH+R3wbt2JI8vsz3GFMD7I+PulphIQDoqHt/gWYAtwv11kXveffDHeF5aIq8hpCPgDpdCviXj15QG7ZIA2+SKFzjLx3jUKpCWj+XoaXxJyTud3OFxp7PnHmOfom1CeIwD9xz4VI5UxhryolM/ytiOGnnRORzNCdTlc7ZFAnf53A8fBfLyJRzRCezlSz4S7nSu5NNc2lGS8I6qPxr4ukbymms6OhRATuwr2A5eFAZrtoVHhcGa7eHkynqUohBYt+07KgTWbf/GHU6Z/Fr3enjc4VC4r7XdrCNmniyCsx0cdzgF7pqDK0fpAn+Z/jCNI/BX8LaJK6IreKhvgb+C7yYDBf4KwfbxKPBXCLaRe4G/QmimdAT+CtF2ckV6hWg7uaK9QmxHVMRXSLafK+rLvkImBwX+Cqke0jsyvT/ODix/BRP8IQn8FUzxJ0WBBZP8ueLEkskHrth2Tt7iYhu53WIfE/l5mt53igILJvgDHuZeyXdvij8FhcBM8kts0YJpQpygHAuwfVwRYCZcDm+k3XIkb4Op/qAIsGCy3873eDLJazDdXxQBFp0/Kli7Ze6io7ONHM+yKTESYBu5IsCiqf/J8pV71KKp/6QIsGjqv9idtkvgblwMtp8rAiyGePSGWEgnr8HUvxcEmCmdIyoCLJr4T3iiXeAowE6+JnoEAovR9vMgEBhLRtE0v68Ce0XT/FGRX9E0f/YCe0XT/EWRXzHbNi7Ir2iS33mBvaJJfq/Ir2iSP2aBvaJpfinmFU3zn48leQ21zqgXzV6m+UfYi2Yv0/wj7kWzl0n/qMivaNLfNILAXj1qoa/Yi2kdgb3sA9KCX8m0P6JfNHsl0/7KgTaZ9M+K/Eo+zPgXy17JZy0Alkz6O0V+JZP+ZAAsmehPivxKJvqlAFiKfgbAWAJL0bZxRX4lE/1KsCmZ5g+K/Eqm+aX4VzLNXxT5ZUpKi3+lbLu4Ir8SWPsr982/hY0/bKt6+7Xf4VeDEb6xNfZrZs7l+28+cnolP/D0/GB/fnSf0yJ31E8zOePx/374/OrI9ECl2Fn06X28vdtm5+/xAT6/77cgtLctCc+UnUSp9clO37a+GBNS66sdvu39I6nGrLcf24Y0o9wkIB4g8t4idwXeVduQcAmZuwS7L0fwuIbIAqJtSGNH6iSg2OF7MFshAd02JFxDixzAmLBB7YZCXkMohyu4hkpeQ+i2IRmgZBIQw5Fwp1MlLzpm25FwDZ28aOPDmvDwkN8948M+I3aVBGTjEgNU40MO0GxDMkAu5FvK3rYlA5juIgHpyLjRlbzPyHriPudIvkBxR8d9jpm85pJsVxIozCPxWQUOs4OHbUsCifka7QgusJhH7hM32rZYEmCLcKNDJt9Si4dHrt9uHgkodgTH4+PZV+hHKgqN9XCUqNBYz3YEV2gMKdAq0FhwwY7geH7I5fmIuM/Rc28oIA3aBBIL3h8lCyQWULoRBBILSIN2nsRMBx2+CCQWgm3pUSCxEGxPdwKJBWRBq0BiIdqenngSCyalnBdILCAJ2gQSC8m2dEWHhWRbuiLEApKgihILSIIqUixk29KjQGIh25YO5q6NvGgkQXGj6RtXbEtPAonZUeio9kS36sjnDVlQRYuFanu63WkfO3kN1fZ0RYsFZEHtNnsXyItGFrQoNNZsU1e0WOi2qdsj3VhiRS5UkWLBzgHBiNvOMtwDF+0ckBQtFpEMtRvt6fW2pStSLDpbBObujrvmiFwonmjfyWu2Y0BQtFi0Y0CyJ7rZjsIB7BhQFC0WkQu1G+1RVcgBbEtXtFi0Y4A37va2r5OAfARFi0U7BqQs0Fi0c0AJAo1F5EIVLRaTbepFoLFo5wCvaDHb2I7oBBqLSIYqWizaQaAkgcZisV1dUWMRKVFFjUU7CNiBhqaxaOeAqIixiIxoV2gMGVFFjcVmu3oUaMyOAU4RYxEZ0arQmB0DYlJozI4BWVFjERnRJtBYcl6LiiU7CLgg0FhCRlRRY8mjOlmgsWQHgayoMdsNZ2SMpbGEjKiixlJAhbJAYwnV8ooaS0iJKmosRRQpCzSWYtEiYwkpUUWNJTsKOEWNpVS0yFhKqFTmaSwhNaqosVT810/2373t6h8G+XoQ3PRUQDjbh29MK42/4UcoK8hva9KrX6DNP6NN4Uf7X2RIfjix6A6pb1is7udvTfPvWI3/9t++BT0Szqp20Kvt8RLeoyQVZ1X82swBUEd4ljaQAHvKPNIuoZOAaodVA5RUKMCsIzRAKpEEoJDQAIH7kGYdoV1zCewLoI7QAPa0cQBoZ9vO7aEkrxna+SwXIwHdzqoj+8WtRxlhsvXVVRKAMkID5JBIAMoIDWD6kwOMMkLchka+wigjNAD31R5FhLjN0ZOXjCLCMstASIAJ57OakwSYcHa4C4X8qo4qQtyFRl70qCLEw+O453lWEeLh8eQ3CVWEDXehkK8wqgiL6aNMfrdHLaFAYqOWsNsrpEY+bqOWUCCxUUtoD7T3lbzoUUuokBiKCcHczZHXMIoJ7RXskE4CTDp7hcVQTGhPdGM5adQSKiQG5Ww3z9sXkALMWkKBxUYtoT3SnuSMWUookBhKCaMTSGyWEtqH2iv5lkYpoUBjo5TQnuhWHEcys5RQoLFRSmg32odOXvSoJRRobNQSgrvZPX3WEgo0NmoJo0BjEcLZCTQ2iwoFGhtFhUmgsVlUKNDYKCpsAo3NokKBxkZVYRBobFYVCjQ2qgoVMTaqCiNPY7OoUKCxUVRYFRobRYUKjaGo0As0NmoKFRpDTaGixWZNoUJjo6ZQoLFRU1gEGps1hQKNoabQDqo8jc2iQoHGRlFhEmhsFhUKNDaKChU1NosKBRqbpYUCjY3SQkWNzdJCgcZGaaGixmZpoUBjo7ZQUWOztlCgsVFbqKixUVsoqLFZWijQ2C2s8hgveQ+rmI7+vMzfwiozTPK1oMq54heEVE7k9/bn/Plb/SHqgzy6GBBAeXiz79EKO91EF+a3nQOYUjmrq0mAKRU0q+PbzgFMqaDnGQEUClCD6Tk/v+0cwJRK9iOAwq03oYKGPgRQKIAdbhLaw/Bl5wAmVEqYARQOYELlbFfhAHa4cbP/gVxvOqX6uWdzANMpuM8IoDCAYIebjPuMTZsDJFNzYW7aHKBO4xXuq43qoGG4gi2bAyTTcrMMnQSYTjm7yTiAnW1y9DOAwgFMp+A2Y8vmAKZTcJ8RQKEAdrZxqL2viXwFO9sEH+aWzQGKqTmBxIKdbXIWSCwk0ylBILGQsqk5gcRQH+SKQGKoDwpRILFgZ5vkeBILdrTJuNHYsSmA7Yk1CSQWiskUe6AbSUmoDnJN4DBUB9nnNA8eHMBUShBIzDSQabkwDh7U+mYipSgc1mxRVDjMjjbebvM4eFAAO9qEqrCYHW1M/82DBwewHd0rLNa7SbkwDx4MwBQJnLF4FkN5kMcDzT4NKA8KeKBx8KAAdrRJRWCxaEebYg/0OHhwANvSFSkWwxCt8+DBAWxPV6QYyoPswufBgwLY0SYpUiza0aaAunHw4AC2pweBxmJyR1e0GMqDfOFpDNVBUZFi0U422Qk0Fu1oUxQtFrNt6omnMRQHOUWKoTjIK1IMxUExCzQW7RSQFTEW7RRQukBjsdqerogxVAe5qNCYHQOCIsaiHQNiVWjMjgE5KTTWbVNXxFjs6WhNoTE7BzhFjKE8KASBxpKdA6IixpKdA+x6eRpL3rZ1RYwlb4ucQGMoD3KKGkN5UFDUWLKTQBLUWLKDQFbUWAq2qytqLEXb1RU1huogJ6gxFAcFRY0lOwckRY0lOwcURY2l1I6qqLGUbVNX1Fiyc4BX1Ngt7vUEeIh7Iff6Oe6FPtlVTmSfy8+WE11rfkk50YX96Rv7TK/O3HGCOwuL7ri3cElBy0mHXHq6mIf4SkfLiX2osXAA1F2iw9w2axKQYf5gazr7Cu1AwNVlz70CAiwNBmKRXZ9tf5s+CCSgoeNkdGdzAGSPK25DI9cnNJzYXTCW5ADVtjcDJJ84AJLH8H6omXwFVF1m3IXKvkK17Q13oXsOgOQx7rN9tCQgwvrUDX9hDlDQcALrTfYtddveGpqwybeE5DFudDKe5ADFtjcDhP7INo8BloRiwhLJV0DyGHc6ZfIVjFgr7nQoHGcgwmLCrbdMPj7IHffpIEQCMhwgjGQTec2l2f4msBgiLAWs3ip5zUge40Z78vGpFQaoAok1j4YTNBaQX27kjpvCYq0eye6zt68fB+juKEFgMeSO7SZ7H8hr7uXoRWAxtF/5KLAY2q8iHmiXuGtAgCVVgcUQYCn2ibbSuC83AizNCyyGAMswQ4mFvGhve3oWWAz9V9HutoelOwfIR+oCiyHAUorAYgiwNHuiWw/ctxv9V0OnsSyG/itfeRZD+1VMAoshvpK9wGIIsBRFiyHA0rLAYmi/coFnMXRfeUWKIcASi8BiCLBkRYshwFKdwGIIsDRBi6H7yk4MPIuh+yooWgzxlahoMcRXclZYzBZVRYshvoKHjWcxpFkVLYb2K5NXAovZMSApWgzxlVwFFkN8pSpaDPGVrmgxtF+5JrAY2q+CosUQX0mCFkN4JStaDOGVqmgxxFe6osXQfeUVLYbuqyBoMYRXkqLFEF8pihZDfKUqWgzxla5oMTRfeUGLofkqKFrsFi15AjxES/q7Txlmu2zRknbkn42WXGt+SbTkxI4Ud56rPq+8psas+EJtyyjk4RIeYiR+GYVwgPQyCuHWt2UUQgHgj3YZhXCAtIxCOEBdRiEMAN1dL6MQDhCXUQgHqMsohALAIc2dbkccICJsM92OOEBZRiEcoCNuM92OKAAc0q7WVA5Q0H013Y44QF9GIRQgBvRfwe2IW56XTQgHaMsmhALAIO2ybOMAefmEcICGqM1wO6LWwx/tsgnhAAnNV9PtiAPU5RNCAWCQdvmEcIC0fEI4QF0+IRQABmmXTwgHiMsnhAOU5RPCAfryCaEAMEi7fEI4QFk+IRygL58QCgCDtMsnhAPk5RPCAdryCWEAqHN5+YRwgLx8QjhAWz4hFAAWaZdPCAdIyyeEA9TlE0IB4JF2+oRw69PyCeEAdfmEUABYpBWBx9DfdfmEcOvr8gmhALBIqwKNob3r5RPCAcryCeEAffmEUABYpCliDGUuL58QDtCXTwgFgEVaEWgM7V1ZEWNo73r5hFAAWKRVgcZQ5+IUMRZhkeYVGoNFmiLG0N/18gnhAHX5hFAA+Dx0hcbg86DIsQiPNEWOocHr8gnh1sflE8IBCrqveBpDf1dX5BjKXFzjaSzB5kFRY2jvSooaQ3tXVtQY2ruqosbQ3tUVNYYyF6+osQSfB0WNob0rKWoM7V1FUWNo76qKGkN7V1fUGOpcvKLGEpweFDV2i9w8AR4iN9692+uMqaW7b87Ptni91vwy35z6Ct0gbFO3lX79ffy2txAOVHcM83l7upaHEEtB/9eM4ZAIe0RrHEEcDgDdneJ84khENkkZZxiHRNhD2uJ85ijE8Caew1cai8joAptPHYloaAOboRwOAfVdwnzuSERCI9gM5pCIdmCW3YjmcAgIcNzy5NnXgATHPQ//zUP1gKgmL+N8WjkERPgcj1RYREQ/2FQRJKKiJQwxHW49ZDjuOFQEiTAdjnGqkBEkwoQ45nIirEMiumnMOJUEh4AUxx337OMEKT6nz5EP+bArthvuaQC0eFPIbfgV5zjVBIloaAybcoJDQI53hd2GZbE940NQkAgT5FFiN1Pkph+npCARJsmrxG7Q5PaMD1HBIeBb7CV2gyoHr0NWkIiKHrGpKyjE8C4OCrsN82J7yscBiUTYtl4Udhv+xXbPxxGJQ5g4905ht+FgbE/5OCSRCNv8k8Jvw8PYK/w2TIztOW8s6Q4T46zQ23Axtsd8nJRIhGn0rvDb8DEuAr8NH2NJvKGSpjmF34aTcVX4bVgZS+pteBl7hd+GmbGk3oabcVb4bdgZS+pt+Bl3hd+GobGk3oalcVT4DVU12Un8Bms2Sb0NV+Mk8duor5f4bRTYS/w2Kuwlfhsl9hK/jRp7hd+GubGk34a7cRT4LY0ye4Xfhr1xVfht+BtL+m0YHCv6bRgcS/ptOBxL+m1YHEv6bXgcS/ptmBxL+m24HEv6LY2Ce4Xfhs+xpN+G0bGk34bTsaTfhtexpN9uUZtHxFPYJrzb94zZ4itsYxv+z4ZtrjW/JGxzYkM+V19hmrLCNbdQDtaVtygGmqENkVt5vKaHuAe6oQsaoCKHQD2KUSgCTCwA7dBjbHFlEWiIHoNwE4nw6Ig2RGFfwqMj2gCp0Qi0RGds6OybCmiKtgsviX2NgK5o3I1CvwbaonE38HxwCPRFj8GkjURENEaPAeOZRaAz2hA1su8qojXaEDmx7yqhNxr3o7DvKqE5uuAxol8D3dF4ngL7Ghnt0YaIiX08Mvqj8ZRj/+cQaJAe04PJpxxOLPZNMbry7JUXtEjjgXLsuyrokbbr6Jm98oomaXsN20RYBLqkFX5Du5Cz57y1yj6DDX3SCr819EnbS2TPftkbOqUlfmtolS6wWGAvvKNXWiK4jmZpu/DG3o2Obml7CVvNIVCuYlpG4DfUqxQEmmsmn0AUrNSq8BsqVrrdcZ/YN+XRMa3QG6xZ7K7bzl3Z17BFKSv0hqqVEhR6Q9lK7bNqnUSY2O1FoTf4s3h7yO2IQ36tULoSnUJvqF1JVaE3FK+UpNAbqleaV+gN5Su9KfQGmxYvyTcUsMSg0BsqWJIi31DBUopCbyhhaZJ8QysRlC5PbzBr8ZJ+QxVLTAK9oYole4neUM8uybc45n1L9DYmfkv0NmZ+K/Q2hn5L9DbGfiv0lsbcb4Xe0hj8rdBbGpO/FXpLY/S3Qm9pzP5W6C2N4d8KvaUx/VuhtzTGfyv0lsb8b4Xe0hgArtBbGhPAFXpLYwS4Qm9pzAAX6C2NIeAKvaUxBVyhtzTGgCv0lsYccIXe0hgELtDbPU7yhHiKk0TYvbh5CL7iJIOM3Ixj2GfzCpP40sdfz4gGLLHDFcVIn9ajWgV9lbsZywh5/Hj+fV/svv/G9rHrd7//rm/ni4TvzoqX2w8NG/wVv8Gvfr3s00t9JdzzWqJHe17Q79ciXEZ4+8hHodbZYff04T8nga4WOxKRVo8diairyY5DjGKt2WVHAtJqsyMRFfPOZ7cwh0AO6DI9IBG2B12uBySi2KKzYZhDIAd0+R6QCNuDLuMDElGOdDkfkIiOweezaZhDIAd0eR+QiIzR57NtmET0w1/uBxwCOaDL/oBE2B50+R+QiHaU0wCBAowU0OWAQCJsD7osEEhEW35UHAI5oMsEgUTYHnS6IJCAuhypOARyQEWht5EDigq9jRyQU+ht5ICqQG8jBZQUehspIK/Q25h02RR6GymgrNDbSAEFhd6QAopdobeRAioKvd2lzRPiSdqgc/yztPlhkzbVTkU/IwleS3RJ8ILe/OlGn7VbhbtD67xlgT7/iktVlEsgXZJnvJu83vR8Nw+h36UgHj6Vx9DvUhAUwja5pSA4RFoKggPUTUFQiOY2BcEh4qYgOETZFASH6JuCoBA9bgqCQ5RNQXCIvikIBoHY71IQHCJvCoJDtE1BUAgfNgXBIfKmIDhE2xQEhQh+KQgOkDYFwSHapiAoRPSbguAQaVMQHKIuBUEBktsUBIeIm4LgEHVTEBQiu01BcIi4FAQHKJuC4BB9UxAUooRNQXCIsikIDtE3BUEhatgUBIfIm4LgELBKkOit+eVwSSJgliDRW2vL45JDdL9MLkkEDBMkeut12VxSCAR/L59LEpCW0SWJqMvpkkN4t6wuSURcXpckorzMLklAX26XHCLEZXdJIsryuyQRfRlecgiUkCjqDZHfKqk3RH67pN5gLuUl9YbQb5TUG0K/SVJvCP0WSb0h9Nsk9XY/ID0hng5Iub4fkHYPbxT3XeeP8NN+AkLod5x+/MOx5QXL88hy/8evxF+vJb8g/npBf/lha7/Y/8FhCyl4dCvPQP/DJ/wgkdwM1SPQzwHs5JTcmcfkENWOA/7MY1IIZOCbO/OYHMLIM+NjRR6TQxQMbpl5TA5g5NndmcekEEjAF3/mMTmEnZyiO/OYHKLbacCfeUwKgQx8dWcek0PYyck2tJnH5BDdjgPuzGNSCGTg7ZbPPCaHyBjhcuYxOYSdnExIzzwmhUAKvtuVjzwmhzD2tN8/85gcwo5O0Z95TAphMgxDWWYek0PY0QlPeWAvAyl4e8pnHpNBjBS83fKZx+QQEaNczjwmh7CjU1bobaTgg0BvIwPfFXobGfii0NvIwEeF3pCBH9KepreRga8CvY0EfFLobSTgvUJvIwHfFHobCfis0NvIwAeF3kYGviv0NjLwRaG3kYGPCr1BhqEEhqc3yLB2mXE9Ip5kWOkP60Y//pJiHi7fQ4ScufChvPznn37OP4+UeH7yhcAD0M8B7I/v4PO1eTwAZaT8aUQxOT40WGIR3eT4OYSdQ+AJwJjqzK7PJsbPIewkosHNzI2RrhwC3/92jmEnERl1gnOoK4loRwznIHYOge8/7jjGupKIBE+zOdeVRJj4jecsdg5hT8z4PmOyK4kw9VvPaewkosLYDM8K+66qO7I/57GTiIhKwTndlUSY+s3nRHYO0RwqBcd8VxIQYW7mxpRqEmHqt5wz2UlEh73ZnFPNIXo4qjvHspOIjErBMamaBJj4TQq7wfwl4I5jVjWJMPGLO47RYiTCxG9W2A3mLzXw7DasX7rCbsP6pSjsBuuXEBV2g/VLcgq7DeuXqrAbrF9qUtgN1i/dK+w2rF+awm4wfwlZYTeYv6SgsNswf+kKuw3zl6KwG8xfelTYDe4v3insNtxfwOsYmMgh7BidcM8xMZFE2O7vFXob9i/2lDeWq+D+0rPCbnB/8XbLx9REEmHiVxJvw/3FHnNPM4kdokuU2K0h8CWxG8xf7CkfoxNJBCJfEr91RL7KHJ5IIYb5i6TeYP5S7JaPKbAkApEvhd+G+QuecnrzH+YveMoxCJZEIPSl8BvMX7I95WMULIeA+Yuk3mD+0uwpH8NgSQRCXwq/DfcXY/YxDpZEIPSl8Bsqf3NQ+G1U/naF34b9iyTfYkLoS+A3FP4GSb0N95eq8Bsqf7Mk31D5W73Ab6PwV1JvJosxLkDgNxT+hqDw2yj8lfTbMH8pEr9VhL4kfmsIfUn8BvMXSb+h8Dckid86Yl8Sv6HwV9JvKPytWeE3VP52Sb+Nyt+u8Ntwf5H0Gyp/U1T4DZW/RdJvw/1F0m8o/e2SfkPpr5f02yj9VfQbKn+TpN9Q+lsk/TZKfyX9NtxfFP2Gyl8v6TdU/mqxt2H+Iuk3VP5q0bd7YvsB4T9HVNuYQvS+bA+m2qE3vpqUvtsSxFd297bqnlRGnmjkohFaXbnht7zwU9A1IjGPPkyEhx/e5UPwsZvgvfr+KEQKJnjRaIZyHw6RTfBefX8com2uNBTCVMNypeEQabnScIC2udJQCPtuLVcaDpGWKw0HqJsrDYUw0bBcaThE2lxpOETdXGkoRHObKw2HiJsrDYcomysNh+ibKw2F6HFzpeEQZXOl4RB9c6VhEAg+LlcaDpE3VxoO0TZXGgrhw+ZKwyGyCV6F3xB+XK40FCJ4E7wKvyH8uFxpOETdXGkoRPQQvAK/hZiWKw0HqNC7Ar8h+rhcaThENL0r8BuCj8uUhkJkZ3JX4beQI+SuwG8IPi5XGg7RN1caClHC5krDIfJypeEAfXOloRA1bK40HCJvrjQcom2uNBTCFi1XGg6RNlcaDtE2VxoK0f3mSsMh0uZKwyHq5krDIBB9XK40HCJurjQcom6uNBTCu82VhkPE5UrDAcrmSsMh+uZKQyFC3FxpOETZXGk4RF+uNBQghs2VhkPkzZWGQ7TNlYZC2DHCSfItooahC/SG0GOU1Btij8uVhkOkzZWGQ9TNlYZCoIQhKfQW7RgRJPWG4ONypaEQKGGQ1BuCj8uVhkOUzZWGQqCEoUj0ZueIIKk3BB+TpN4QfFyuNBQCNQyKekPscbnScIi+udIwiIQahqzQG2KPSZJviD2+XGkoAEoYikJvCD12Sb0lO0V4Sb0lFDFI6g2hx6SoN0Qei6TeEHqsknpD6LFL6i3ZKcJL6i2hhkFSb4g9Jkm9IfZYJPWG2GOT1Btij11Sb/fY41NQ8ce3zX9EGN5+8y34aHegXaZHNYy/nX0prwDit8sIKYbP4QWXxtDAXtFB9vRqbwEJV9fYQA7hUU0zpziTgLjmBpKIUUwz5zhziIBiGoxyD+xlhDhnB3r6JcqcHdgzexmhr+GBHCKiluacSE8iyhofSCJGLc05yoxCpLAGCJKIUUtzjjLjEG2NEOQQeRTTnKPMOASKac7B9CSirSmCHKKgmOYcTU8i0sYkHGJU05yjzCgEHDiuuc4kYlTTjFFm3HrU0pwDUTkEDDiuwc4kArU054R6EoFaGondYMDRFXaD/0aR2K2PUhqF3TpKac7BqBQCUeOCGz4GNXIIlNK0OaiRA6CSRmE3BI19U9gNQeOYFXZD0DgHhd0QNC5dYTcEjVtR2C3AfyMq7IagcXAKuyFoHKvCboga56SwG6LG1Svshqhxawq7hTRqaQR2Q9g4BIXdEDaOnWc3BI1zUdgNQeMaFXZD0LifA59JAAppFHJD0DhcI585REUhjcJuCBrnc+gzCUAdjURukNvX2GcSgTqac+4ziUAdjcRufdTRnIN+OATqaCR2g/vGNfuZQiBm3CXtFjHB5Zr+TCJQR6OwG2LG6Zr/TCJGIc05yIxDoJBGYTcEjXs5J9lzCPhvSNoNQeP46gLkEKikUdgNUeOSzmn2JAIjlBV+Q9S4S+oNUWOfBX5D0DhK4g1R49QVfkPUuEjqDVHjFgV+ixjgIok3BI19VfgNQeOYFH5D0DhL6g1B49IUfkPQuEnqLWKAS5D4rWGEssRvDSOUJX7DBBdJvSFoXJ3Ebx0jlCV+wwQXSb0hahy8wm+IGkdJvSFqnLPCb4gaV0m9IWzcusJv9hGhk03gN4SNg6TfEDZOin5D1FgLvSFsXCX9hrCxFntLETOUBX5D1DhI+g1R4yTpN0SNs6TfEDXWYm+IGndJvyUYyEj67R41fkA8RY1xMn9bd4saJz+LUV18FaOiSHmEQ192SfW0RHrq+B8JKIwMdf7x5d4uZOSfRjFs4wB+5J8wcDJmFoH8Ewa45ufP4AGB/FOcp1MOMRJQ5yBaEoEEVJinUxLR1qBtDjESULiOwl7HSEDhOip7HSMDhevo7HWMDFSc0TcSEdekbRKBDFQc0TcOMBJQ5yBaEoEEVJjRNxJR1qRtEoEEVJjRNw4xElBxRN9IQFmDtklEPyIeckTfOAR6aK9B2yQiHwVPOaJvJKKtQdscAk20uOWIvpGIvAZtk4h2RNxyRN84RPNHhi0Lom8kIq1B2ySiHi1J/Nb9GrRNIuz03yR+QxdtVvgNQ2Uz7jl53QE9tNeYbRJR1phtDuHd4aLCbhgq+5qzTSLs7F8FdgtooU0Ku4UQjuoVdgtooW0Ku2GmrMsKu2GmbAgCu2Gk7GvMNomwvb8o7BZMNb3GbJMI2/udwm4YKfsas80h0EKbFHbDSNnXmG0SUdeYbQ6BFlrccv4OFtv7g8JumCvg7Ckfp1MOgR5aSb1hpGyyez5OpyTCNn9JvQX00NpTPk6nHAI9tEnit2a7v5f4DT209pg3mnTRQiuJt2CnCPvWztMpibCjv6TeIlpo7ZZ7HmB7vyTeMFYggtdxOuUQ6KDFU47TKYmwvV9Sb9Hb3m9P+Tidcgh00ErqDXMFvN3yEX0jEbb3S+oNhrbJVozoG4mw3V9SbzHa7h8VfoOjLb7pPL/B0dZL6g2OtjEp/AZL2yypt4ge2qbwW8y2/UvqDZa2pkAFfoOlrZf0Gyxto6Tfop0jchT4LdoxokryLdZ0tKrwGxxtnaTf4GhrwlLgNztFREm+RTtF5CzxW7fdP0j81uPRJP0GR1tXFH6Do22Q9Bscbe2PwG/JzhFZ0m/J2e6fFH4z7XZ0Sb/B0tZJ+g2WtkHSb7C0TZJ+S3aQyJJ+S6GJ0bcUbfuX9Bs8bbXoGzxtg6Tf4GmbJP2WEqZuKfyWEqZuCfyWshODb7C09ZJ+m5a2py3EY5j6KZzt361v/T5ZAJW5c94rciNuhqzf7Pl3h/8X4tmz4SFmmHOYNixP7+YxZljxu2GjRyLQ/eKnDQuHQO9r8dNGj0Sg+8VPGxYSge4XP0xCSQCaX8I0CeUQaH1NYbqwkAgkH8I0CSURyD7gdlT2XaH3NfthEkoCkHzw04WFRCD54KdJKIdA6yvuOGxYSMRIPpzPG4cYyQeYhHLr4V2PGw4TFhKB1EOYJqEkAqkHP02mKAQChrbXTZNQEoHUg58mUyQCqQc/TUI5hB+5h2kSSiJG7mGaTJGIkXuYJqEkYuQeBHZDzLBXhd0COl+Twm6IGUavsBtihqkp7IagYckCuyFm2ILCbogZ9q6wW0gj9yCwG2KGMSrshphhdgK7IWRYqsJuCBk2e8o9SyQBja9eITdMIvVNITdEDKPd8OExxSHqyDwI9IaIYTFaHx56JAK5B4ne0Phqd3x46JEI5B4keoN5Nx5y/ulA4ysecnjocYg+kg8KvcG82x7y4aFHIkbyQaA3jCINdg3DQ49EIPug0BtihnbR00OPQ6DyQBJviBl2EDs89EgEsg9+euhxiDCyDwK/IWaY7DlvLFkhZJgl8YaQYbVbPjz0SASSDwq/YQiWPRo8vyFiGCTxhohhksQbIobFKfyGiGGV5Bsihj0p/IYhWF6Sb4gYhqbwGyKGSZJviBiWoPAbIoa1K/yGkGGX5BuGYPmo8BtChlGSbwgZpirxGyoPJPmGmGHzEr/Bv1uSbxiC5bPEb6g8CAq/IWaYJP2GmGEpAr8hZNgk+YYhWKP0juY3TMHykn5DyDAq+g0RwyzpN0QMi6TfEDFskn7DFCwn6TdMwfKSfkPEMEr6DRHDLOk3RAyrpN8QMWySfsMULCfpN0zBCpJ+Q8gwSvrtVgH7HAp8CBmGd2/X4PeQoSmdOieIIuC5DFhn7av/4fO6T5WyaYYLETq8r8N3bY4qfdXR/jA9GCZuWby+Rc5MC/c0ZzE/vf+HWFu23cUQKT9f8WN0zpsQGbOYOYTtq3FcbWPfle2rqcY5jJlENOS24UHBvivbV5uPcxgziUjIbdsifO84RLPdBfejs69h+6qp2zmNmUSYFsY9jzSg2uaS5jBmDmHbaou4HYV9DdtWMZAYw5hJQEVm2+4GdlUGgfBcxB3HMGYSEW13SXMYM4kwLdxwNyr9Gt12lzSHMXMI21Yd7nhw5GeF8JzHHccwZhLRkdk27ZXYd2X7asYtx6x5EpGR2rb7UcmnHP3pDfccs+Y5hO2rLin8hvBc8Aq/IT4Xm8JviM/lrPAbavpqUPgN/emtK/yG+JwrCr8hQBeiwm8I0CXcc88+UMUd9iwJ9IaSvmqP+Rg2TyLK0b3CbwjQObvlY9g8iYhHyAK/IT6X7Ckfw+ZJREdficJvzXb/IvFby8hsz2HzJMJ2fyfxWw/IbM9h8yTCdv8k8Vu33d9uuY+FvHKU9NWm8Jv97Oj2lGPKKYto6CsR+A3xuSDpN8Tn7LBrp5lAftlR01ck/YaavmY3vGX2JQJ6zBR6Q3zO2y33IbEXHh0aSwR6Q3wugdhbZS882vafBXqzR+loknpDf7qtEOgN8TkvyTfE52JU6A3xuazINxT0larQGxrUmyTfEJ5zknxDeM43hd4QnouSfEN4LgeF3lDRVyT5hgb1ViR6s2OEk+QbwnPBSfRm54goyTeE57Ik31DSV71Eb70cTZJvCM+5LNAbonNBUm8Iz8Wu0Bsq+rKk3lDRV6NCb+hP74p6Q3jOSeoN4bkgqTeE55Kk3lDQlyX1hoK+qqg3tKd3Sb0hOuck9YboXJDUG6JzSVJvqOcrknpDQV+V1Bv607uk3u7RuQfEW3SuzZqIt2V7cC52hMhGqW7ZavMwF/r8c6vsG1OSPr+MSQyYzHbE7R9e8O1KMGFmOMCCSihAOVDOb2+TBdin48b7jRwA42UwWq8X8howXQbcVhv5lnq3BxbXUEgAuvJh0OJ8Iy8CXfmIKnBr24EEW2+gNQqBsTJtRLcSi8jHsKIPnka0Y7TKu+hJBMbK4Ma1xF4HxsrgXpfCviuMlZmPKosw6hzPkivsdWCszLBGrM+P7QOi2vlvfGXZe57ccSZPAoswYYF7HgP5XKC4FjbjrlT2yo07ZyNNY68cDoHjS+LYK0dx7Ry1zV45BstEhdUQv29OobVRXTtNi9knHJNlkvKmajjOhCd74aiuBXnmRL9GO+b8NpraTHefDiXshTf2TqOotki8hnkyUeK1jmlyhkiZ/Y6jrHY4/RTyO464fcsCgdip5BgV+SmQFz6qartCa6iqhcG/8K48pskptDaqartCa6Oqtii0FjBPJiq0hqrakdWkaW1U1TaF1hC2z1mhNYTtz+Jg9spRViuJtYCBMpJaQ1ktOtJ4WhtltdKbQlVtVWgNUXucyXhaQ9S+S4pt1NUOc9zMPoIYKMPe7GL7/azlZz9WVNRKig0B+zldo7JXUDFITmI2uAJKHIKCWkxN7o5G2HYvCTYE7IvDzJbI3g4U1EqCDQH7nsfDyl5HxyA5hdlGQS04HcNnSAQGyWF4ZyK/5gjYF0mwjYLa8VFV8uEbBbWSYENB7RkQIe8gCmqjJNhGQS085Wwdi8AgOYHZELBvkmAbBbVthNlIXkBBrZcEGypqp7Eay2yoqGXvA0ppq0JsCNU3SbJFOzKMCAZNbKOUVpJsKKWNimRDqH42vrHENippJcmGUP0cRsUSW6yYIKcQGyppTxXCXgcqaSXJhlD9WTzAXnnDCDmJ2FBJK0m2CA+vJBGbnR2CJNlGJW1XiA2hei3Ahlj9ML+iiW2U0iqSbVTSSpINlbRn/oDkBVTSakG2UUorSTbE6tkgG6L0XZJso4hWkmwoog2SZEMRbZIkG8L00rFv1NBKkg1Rei3GhhpaL0m2UUMrSTbU0CZJst2j9A+I8NnfFY9D/rnZYzAXHtWyt7pZH1fD/X3dFdC/Gu1HXSn++/Sefa+JjSh0nxOkH9/Oe/gxrgmrJAJ17ucEaRKBQvdzgjSHSGGNWCURKHTHREgYdnCIvkascoiMQvchsjOLyGvGKolAobshcmLfVfFrxiqJSGvGKolAoTtmegb2NapfM1ZJBArdkb2CYQeHqGvGKodosNnB/ejsu2pxzVglEbDZwRMV2HfV3ZqxSiLimrFKImCzgyfK0a/RXzNWKQAGYvV5ICEfc1Qcv2askgi47Aj8hoFYrxGrJAImOwq/YSBWLQq/YSDWa8YqiYDJjsJvKDh+zVjlEBEmOwq/YSDWa8gqiYDJjsJvGIj1GrJKItIaskoi6hG6wm8YiPUaskoiokkKhd8wEus1ZJVEoJ7gHLLKIYrt/0nhN1QcR3/OkCYR/UhN4TfMxCpZ4TfMxGrhnCFNItqBy+b5rdn2X84Z0iTCtv8o8Vuz7d+dM6Q5hJ1diyTgMBOrpTlDmgTY7u/PGdIUAgXHXtJv9rMj5nOGNImw3V/SbxiJVfqcIU0CbPOX5Bvqje3YOmdIcwiM1ZXkGwqOoyTfMBErp3OGNImwzV+Sb5iI1do5Q5pE2O4vyTdUHIeg0BsqjqMk3zASKxeF3jASq0ryDSOxuiTfUHLsqkJvKDkOinzDSKzkFXrDSKwsyTeMxKpZoTeMxOqSfkPFsesCvaHgOBSJ3jBXV5JvmIhVnERvqJaT5BsmYvWk0Bvm6krqDfXGoUn0hoI5Sb1hIFaR1BsGYtWu0BsGYnVJvaHg2EeF3lBwHCX1hoFYSVJvGIhVJPWGiVhNUm+YiNUl9YaKYy+pN5QcR0m9YSRWUtQbJmIVSb1hIlaT1Bsqjp2k3lBxrIXfUHEcFfV2D2U+IB5DmaOmzY9XOZfd52GZPhh2oKjBH+XEcf4ZM7DK7gdwrXQ/bVHOt7ilHW9LQhgYzhbvL/4enUA7LWozBwUzAPjaNn8eoCmAnbizPwmYAjQU6Z3HZwYAU9vuTv6lAAkleufhmQJUVOid7MsA0EeL2zTIlwIk+KScJ2cKUO3760/qZQDoosWdHudmCmB77SzhLCSgoEjvjAoyALTQ4k4P2qUAETV6Z0yQAhSU6J2kSwHsMYv+5FwGgP5Z3OkREKQAdsLGmkB+SCZH3EzjVQ6A3tmZCiIf6Z5RmzeDgdT6hsq8k2wJQEDfbDjZkgMkeBKfkUAK0GBJzNNYQNNsFGgsoGfWCTQGx5hcBRoLdoKtSaAx1G12L9BYMAnimkBjITqYEfM0FtAuGwQaC3Z4zV2gsWBn11oEGkPFZo8CjQX0yjqBxkKy43QVaCzkgII8nsYCOmW9QGPBTq21CTSGYs1uz/RUjhQgw4SYprFQGkrxTt3IAKrt6kWgsYAWWXukp2qkALarO4XH7Lx6reHWJxThnSdiClDhPSzQWHcowTvPwxQgwnlYoDG0xtp9Hqdhar2dnhUxFp3t6fblnmdhCmB7uiLGItpiFTEW7ZBa7IGeB2EKYHu6IsYimmLtgZ7HYAYQ7NysiDE7BsJx+DwEUwDb1RUxFu0kUEDd4whMAWxXV8RYRD+sIsYi2mGdwGLRTgJREGPRDgI5CSwW0QqriDGUZrYmsFi0g4BT1JjpYbgM0ywW7RwQu8Bi0c4BWRFjsXTU2/EshqLMroixaOcAV3kWi3YMCIoWi3YMSF5hMTsGZEWLxWZbuqLFUI3Zg8Jidg5wihaLdhAIRWAxE9BoaOVZLNlBAGFSmsWSq0dVtBgKMXsSWCzZQcArWizZQSAoWizZQSApWizZQaAIWsxk51EVLYY6zK5osYRyOEWLJVTDKVos2TkgCVosoRRO0WIJlXCKFkMFZle0WEIdnKLFEsrgBC12D1m+A94ilm1o4rdVe8DS9vB0C1iO7uYzJIlySvgpfJ6A9OSTgIahl5fW+6u+XcxoF4JFSyTXdzufjBa3TK33o1cIdocwjqYAebho9QILEQrQNhMtBuAxtOryCKQA6BO6TGYoANqELodABoAuITQWhc4C0jTQ8rCMpgB1+md1bCoMYPQIXQYzFCAe/TI/pdbXzTyLAaA/6GV9SgHiss6i1qNH6DI+pQB9M85iAKND6DKWoQDFDiiX6ykF6JtrFgNAf9DL85QC5M0ziwI0zGI/HU8ZAJqDokBifvQGXX6nFKBtflkMYHQGXXZZFCDZCeUyO6UAdTPLYgBoC8oKjY2uIIXGRlOQQGPwE1hOWRQALUGXzSkFKHZEuVycGcDoCBJoDGYCIfE0FkY7kEBjcBLITaCxMJqBeBoLoyFIoDG4CCyDLAYw2oEEGoOHQIoCjYXRDCTQGLpgahVoLIxeIIHG4B/gvUBj8A8IihYLoxFIoDG4B5Qg0Bg8f5cpPQWIGLd+mv5RgLpZ0jOA6jBtfVr+Uevj5kdPAWxXf/mZUoC+udEzgBbsiHLZ/VGAgjnr0+2PWt83J3oGYMeA9LIypQB5M6KnALapv4xMCQBMA5wgxmAZ4F82phSgbSb0DMDOAVkRY/ALKC8PUwpQNwd6BmDnAPdyMKUAafOfpwC2p7/8SxmAnQOyIsZgFVBf7qUUoGze8wzADgJOEWPwCQheYDG4BURFjMEsIGeexeDqWxUthhLb1gUWg1GAU7QYjAJCFFgMPgEvx3lqfdsM5xlA9ZvfPAVIm908BWib2zwDsHNAELQY/AGW1zwFqJvVPAPobnOapwBxM5qnAHXzmScAsAZYNvMUIG4u8xSgbCbzFKBrcTFU1C6LeQpQNod5CtA3g3kGYOeApGgxOANIkTHY9zZBi6GUVgqMwRXAK1oMpgBR0WIwBUiKFoMnQBG0GKpopbgYimi7osXgByAFxu4B6YdQc3wTAUNSfv69ewktGu9GXez333zUMP72mnX1ClCfff9XRS18aYY3zbfnGvz8x9PgFz8r689g6brwI6gdvjEVN17BnfW6eXcjGJ4C7ZzH9eOGc+d7QHXv96drgTvf35M0Xvm7h0/hHVC2/B0F6Fv+jgBAGq/8HQXIW/6OArQtf8cATBuv/B0FyFv+jgK0LX/HAEwbr/wdBUgrf0etr1v+jgGYNF75OwqQtvwdBahb/o4BmDR+5e+o9XHL31GAsuXvKEDf8ncMIMctf0cBysrfUev7VtjOAEwZl1ctFQXIW2E7BehbYTsDqMFOxwKLwT5rFbZTAFPrXmExk8arsJ0CJEz/FFista2wnQF0j9mfAov1tBW2U4C6FbYTAGjj6gQWgzZ+FbZT66sdjgUWQ6nGKmynABEzP3kWgzRele0UwNT6VUvFrDdl3LrAYijVWIXtFMD29CiwGByzVmE7Bch2OuZZDMp41bUzAPhEeYHFUKqx6topQNvq2hlA9nCb5VkM0jgrWuwujd8BT9IY9gCflt26y7LtBr9JaYyfd/ey6vLXmFz8pm+/+ehT8L8Ltb6agx8+mwcdFVZvMAfIr9Zgbn1fncEUAPmqqzGYA+TVF8wB2moLpgDIV11dwRwgraZgDtBWTzAFyH61BHOAtDqCOUBdDcEUoLjVD8wB4moH5gB1dQNTAOSrrmZgDhBfvcDc+rJagTlAX53AFKDF1QjMAcrqA+YA/dUGTK3vMKk9TQ44QF4WfBwAFrUCi6HR/2XAxwHsBNx5FkOX/8t9jwIgXxUFFkNN7ct7jwPUZb1HAZCvSgKLocH/ZbzHAewE3AQWS8hXZYHFUFRbg8BiKKp9me5RAOSrisBi6O1/We5xgLIc9zgALGkFFkNV7eW3R60fwqvYdy89frsfhZePb8JrnyNm+9NvU3j99I194GN1dmN8ir/cUj+tfNRSL8emh8/nUUu9DJs4QFt+TRQg+mXXxAHScmviAHWZNVGA5JdXEwdIy6qJA9Tl1EQBsltGTRwgLp8mDlCWTRMFKG65NHGA+DJp4taX5dHEAfqyaKIANSyHJg6Ql0ETB+gvfyZqfQvLnokD5OXOxAHadv5iAN1v5y8KkNb5i1rftvMXAUCD0jp/UYC0nb8oQN3OXwzAu+38RQHidv6iAHU7fzGA4LbzFwWI2/mLApTt/EUB+nb+YgAxbOcvClC28xcF6Nv5iwGksM5f1Pq8nb8oQNvOXwwgh+38RQHydv5iADf19Q54VF/hoZNpV19lur7/1tTXGISRz/f2s3oLDs6tGNnGpw/kIThmX65zSBgJsG+XXb5PvpCAZkRlt7K6ygHg3lxgnpPJ9fblen1XKIApRjSilZY4AJybq32ovZJvCcbNGKUZPXnNUIzeXqGA/hkAbJvPeX4kIBlP2acaOnnRUIyYKGYChwPAs7kjNxTIa4Blc7FXCL6TADu4RnuFXB4f92fF6OxjbZn8dqNspOLI08mLhl1zsldIjXwcypjWYGQbyIuGWXOzG+credF1zGowsi3kRUMygtGaI68BVs14pF0nv95wasb0Ktv8SADmNAg0BsnoFBqDS3NVaKyPGQ08jQ3N6Hkag2SMTaAxSMacBRobkjEINAbJ2LpAY5CMrgg0BskYokBjQzI6gcYgGXMVaAySsSaBxoZk9AKNQTK6JtAYJGPIAo0NyRgEGoNmzF2gMWjGWgQaQ6q0R4HGhmZ0Ao3dNeODGHzSjPGh2HDTjPYr229RM8b6epfO/VyCFAWCEVM6XX38RB4AtodhxGPymQKgQLD6anSOHYYC2B7WzrQ3B7A9LDf7uDp3DRC+AXOuCgIlFMD2sG6v4AJ50SZ8M+ZZR09etAnfily/Hd5IQDrsphmhk+/IhK+rDV365DWb8A3JXiBji6EA6UhzIGQlAbaJ2Y327HrTvRWz6HLxJMAOjwF+bo68ZrgMY+C87+Q1m+4NxV4hR/IaTPcmE12tYYehAOUo45Gv5EVn28PsRvvsyWsotocljPhz5FfJdK/39go+kRddcDC1V0iRvOiKk6lddG3kRddxMuVpDBWCdhcEGmvjZCrQWMPRVKGxhqOpQmMdR1OFxjqOpgqNdRxNBRpDhSCaBWgag/K1oylNYxC+MQg0BuFrJ1OexiB8SxFoDBWCLfI0Bt3rnEBj0L2+CjQG3RuTQGPQvdkLNAbdawdTnsZQIdiyQGPQvS4INAbd67tAY9C9sQg0Bt1rHxBPY9C91Qk0hhLBpqixu+59ErQPuje9VxKmXff+8uaZAFlaV3XekLdvrk//O800+2viF+LPKI0Mlzj+NV714XtcV933w0f/8C1zq+6bA8RV980Byqr75gB91X1TgBxedd/U+jFo080psk/fz6evcXmvyyjX1/gv4Ov71YLXX+3rHB4+2Pqeo1G/9Q0Foni3/fn3va23wwyShx2xI2Z9OzwGNFcIGWJ9R3Xo+JTI9SgOnV9Ibn090K6OVklqvf30mO0muZAA1IbiCiILQG3o+NJGDmBCKXpcQyGvwYRSQgq6NvIteRSHujl8nAOgOBTX0MhrCOw62+QQeWwIblKAfpzubYkDmEBC10hP2ZMAO8HUc+Y4B0BRqBsjx6n1CTWhIJNAXnNCTaibA8c5AIpCnfCWTB/lcI4b5wB2gJlfUe45xkiUM1PGPcgY+eyG02Agn4KColBccyUvuqAoFPehkRddURQqkBdGotQgsBdGorSm0FezI0xW6KvFI+BO50o+oc2OMNI7Qk0otuv/Zgd7A8BsdHiBJvIV4DbqFfbq/Rh7LMtemPJM7mcBRqNeIDBMQ8lNIDBMQ0HVBk1gmIbSg0BgmO3sBbbAZOcRR2cJLMBnNAkEhmEoRXpL0R04rtEEhmEoPQkEhqHO3gsEhpnOoQkEZqcGDNXgCQzDUEoUCAzDUJqivjAMpSvyC+OcT+sc9hVsP1f0VygBUzUwoIH8WOE0mngCwzCUFgQCwzCUUQHoSNGDOc5ekV8Y42zfot5KJh84GI2SKxPGadipJJFvHg6jigDD8ObZwlrJN98xbk3hLziMCgIswmDUHuXWHQuIpnYE/sIYlFmRHLnbgLHNThFgKMc7lQV5DR7T1gT+QsfmaQxLXjQ6NsdMrcR9rZEebooAQ8umS/iQKvcsj5ZNRYChZTN2gb/QspkVATZaNqPAX6gZUyQhOjadIsDQsXmayHEUMDo2FQGGjk2kC2n+QslYJW8AejWDQGDo1XSKAEOv5gxokQQ2ejUVATaaNQW1g1oxVNPwBAZvUUWAjV5NpxBYw5w1hcBgLpoVAkOzpiLAUCw2Yl8sgaFYbAS/WAIbzZqKAEO35mR5ksDQrSnFv9CtWRQBNro1FQGGrFlXBBi6Nb0gwEazpiLA0KyZFAGGZk0p/jWaNRUBZqcdch0yigJ7IWUgxb9Gj6Yiv5AykOJfI/X1la/cY86gvVeGDZ8195eRM6B7Nf+I2YP+nrX8H2UPHn7fV7MHzPo9e0Csv2UPmPV79oBZv2cPiPX+lj2gAHv2gALs2QMGcMseUIA9e0AB9uwBBdizBwwgsOv27AEF2LMHDOCWPaAAe/aAAmzZA2b9LXtAAfbsAQXYswcM4JY9oAB79oAC7NkDBnDLHlCAPXtAAfbsAQO4ZQ8owJ49oAB79oAB3LIHFGDPHlCALXtArd+zBwzglj2gAHv2gALs2QMCcGUPqKV79oAC7NkDBnDLHlCAPXtAAbbsAbP+lj2gAHv2gALs2QMGcMseUIA9e0AB9uwBA7hlDyjAnj2gAHv2gALs2QMGcMseUIA9e0AB9uwBA7hlDyjAlj2g1u/ZAwZwyx5QgD17QAH27AEDmNkDauWePaAAe/aAAdyyBxRgzx5QgC17QKy/Zw8owJ49oAB79oAB3LIHFGDPHlCAPXtAAfbsAQO4ZQ8owJ49oAB79oAB3LIHFGDPHlCAPXvAAG7ZAwqwZQ+o9Xv2gAHcsgcUYM8eUIA9e8AAzuwBtXTPHlCAPXvAAG7ZAwqwZw8owJY9oNbv2QMGcMseUIA9e0AB9uwBA7hlDyjAnj2gAHv2gADcswcUYM8eUIA9e8AAbtkDCrBnDyhA1QJg9+wBBdiyB9T6PXvAAG7ZAwoQtfjXPXvAAJA9oNbt2QMKULT41z17wABu2QMGcMsevAOesgeYw/R52cvi0f3mswdf8xr64zXPPOUQ4Mz66YPe38zbzYSXzHXwfsC+ry/r3E2tt/uOt+1qodbDSGaEV3rk1hcjWPz+/njt7+v7ka58B7MeLjJXvoNan9eJm1rf1oGbWQ8LmSs8R63P67hNrW/jtD2yHcx6O+yVK9lBrTdxe+U6qPV1nrWR6mDWe9vTX2dtDpCMYN0MFnIAE7fcSjvklSvZwQHiOmtzgDrP2sGTANvM/fyCcs+7D/GI2MxbIq8BxjG4w6Wwb6mvwzYFsENeu+QzByjrsM0B+uGvbAcFSGEdtjlAPvKV7eAAJm5xpxEspAB2ynsdtjlAPtyV7eAAbR22KYAJh9gE8kKK53XY5gD1qFe2gwLYWU96RzWtwzYHqEe4sh0UoLl12OYA8chXtoMDFBy2uaW2fXuFwXpch20OYBv4le3gAH0dthkAkjsKWyDDU69sBwdo67BNAXzAzDzhLfm8DtscwLbxJBAYUjyvwzYHSEdtAoEhxdOvbAcFiH4dtjlAWrUmHKCuwzYFSG5Vm3CAuA7bHKAcMGKgCcxOQa/DNrc+rsM2ByjrsM0B+jpsU4AS1mGbA7C/uK/DNgUwtR8V/YXMzuuwzQHaOmxTgOZfxSbcetvFr1wHB2ir2IQCoKTrynVwgLSKTThAXZYGDAAJnqbIr2ii3125Dg5g2/iV66AAKOpS5BcSPPnKdXCAsopNOEDHtLwZt6EApv2dIr+iaf9w5To4QD8UPkV+JyvyC/mdGgX2Qn7nVWxCAVDdVQX2iib9yWACUjspCASG1E5W5BdSO/XKdXCAuopNKICJfkXrRJR1FYHAkN9JivxCfqc4gcCQ35GCXsjv9KwQmIl+r8gvjPIKV66DA5QZ+KIJzKR/UeQXEjy1KwSGui5FftlzvIpNGABmeUnRLyR4XsUmHKC9ik2o9d6vYhMOkFaxCQdoWgAMa6Iiv5DfIT9/lHUpAgyZHSkAlkzzv4pNOEBdxSYUwDR/FAQYMjxZEWDI8EjxL2R4miLAkml+Kf41rdHsPdXnr8Rjhie+9518N7MdfylZnid34D95fie9teHsb/Hr+Z137NfzO8z6Pb9DrL/ld5j1e36HWb/nd4j1t/wOs37P7zDr9/wOsf6W32HW7/kdZv2e3yHW3/I7zPo9v8Os3/M7xPp7focC7PkdCjDyO8zKW36HAuz5HQqw53cYwC2/QwH2/A4F2PM7FGDP7zCAW36HAuz5HQqw53cYwC2/QwH2/A4F2PM7DOCW36EAe36HAuz5HQZwy+9QgD2/QwH2/A4D2PM71Po9v0MB9vwOA7jldyjAnt+hADO/Qy3d8zsM4JbfoQB7focC7PkdAnDL71Dr9/wOBdjzOwzglt+hAHt+hwLs+R0GcMvvUIA9v0MB9vwOA7jldyjAnt+hAHt+hwHc8jsUYM/vUIA9v8MA9vwOtX7P71CAPb9DAfb8DgO45XcoAPuL9/wOA7jldyjAnt+hAHt+hwHs+R1q/Z7foQB7focB3PI7FGDP71CAPb9DAO75HQqw53cowJ7fYQC3/A4F2PM7FGDP71CAPb/DAG75HQqw53cowJbfYdbf8jsUYM/vUIA9v8MAbvkdCjDzO9TSPb/DAG75HQqw53cowJ7fYQB7fodav+d3KMCe32EAt/wOBYha0Oue32EAt/wOBdjzOxRgz+9QgD2/wwBu+R0KsOd3KMCe3yEA9/wOBdjzOxRgy+8w62/5HQqw53coQNMCYPf8DgVIZADsnt9hALf8DgXY8zsUYM/vMIA9v0Ot3/M7FKBo8a97focB3PI7DOCW33kHhPS2j9uLvHcGfXf+eY0K7798VDgSPf5soZn7yZUeCXgJYigk7MiuP3/kyTTRbbODnj6ZJ0HartnZHABrzqGzFMCYx1+zszmAHaev2dkcwDbia3Y2BQi2EV+zszmAHaev2dkcwDbia3Y2BTAC8tfsbA5g5+lrdjYHKEe+ZmdzANuIr9nZFMAUabtmZ3OAYiR6Dp3lALYRX7OzKUC2jfianc0B7GB9zc7mALYRX7OzKQBm0F6zszmAnazP2dnc+mZHxnN2NgWoHvNi5+xsDmAb8TU7mwNUzIsds7Op9SZLW1NorNl2nBUaa3auDgqNdduOu0Jj3fbjotBYt3N1VGjMZGl3Ao0lZ/txFWgsuYJ5sTyNoZ02eYHGkreDdRNoLHk7WGeBxqBLexBoLAU7WHeBxlKwg3URaCyFhoGxPI2laNu6E2gM8rRWgcYgT3sSaCwl29a9QGMp2fm68TSWku3qWaCxlB3mxfI0Bnlau0Bjt8mMD4BHeVreR+V9dxbirOmM6ZeqU6hIe95eS/OUoCMCOHJJnET1V0XUrz488XqjKHUYPz/X47fhPHq9m+sCg30IuV3Xg/ePrMH+G8O389ogv0c26/27DKfAZG8/5cfP/x3QjaqNTjOKTxiAKZ0a7b01hBwogJ1l4CKJzYNa342p7QWyjxzAhE6w62jNJRIAv8AZ1OAA+PJfs1gfAI9f/vZe04e79nJYsC9/8OfZ7Kfra+Wv0rrzK+FeX7jry/TffqWvp+Ive/4ovC2W/nr4jN+3Zbf0F7U+bvqLAtRNfzEA7zb9RQHipr8oQNn0FwXom/5iACYUlv6iAGXTXxSgb/qLAcSw6S8KkDf9RQHapr8YgAmFpb8oQN70FwVom/5iANlv+osCpE1/MYCbUngHPJJlfyxUHlbCF1naU9N+M2T5p5l2Kw9vDvDKGhnS/viZP6n1aC/jY3++SU9qPSFvU2wRB4BXlr2CQ36OAtSjIZocIXUZQIJXll10yeRFm1r3uRo/k+8owSvLXiB08ppNrSeTEy1jx6AA8MoaEfTKAcYzmM8Q/Tvg6RnM7j1IjWcwbs+gKZ/fzCP4px4eoT+M5ShIHNv/e/zwn3ZEo3n8Vs8BbEdEUqSH/nx7n04PHnkR++6QAEwCaPYaoXCANCYBYLZ5JwGYBGCvkNkXaEc7a6c4gJ0ewM/jxMQBjERhEI8TEwXYH8YHwOPD6B8zO6Oq9bUh5iP8Vp7G/x0ztq8/f6aqu/cjKPP0cb+vh2fpzCNzgGA6P4cZlOEA8Cz182zDAUzn9zDONtx6eJb6Kc0oABgEQQicbTgAPEv9PNtwAHiWhnm2oQDGIKar59mGA8CzdBZ6kACT+Xajx9mGApim7sg/42zDAYxC8EjgbEMBdk39AHikkPAYfZsuuieFBPdbIZA/dZ/f16kDJrVYgXqPp8/5HZBXwRoHaChYo5bCnvYqWOMAaRWscYC6CtYoAOxpr4I1DpBeBWvc+roK1igA7GmvgjUOEFfBGgfYujQ5QF8FaxQgxVWwxgHKKljjAH0VrFEA+NReBWsU4EZk74BHIkuPkdQ16Q5phElk8fVYv7II7iSlEXB3k7DGV+1KE3xqWqZSBn8kknuPdiJ4+bqDD5/DOyAu+2wOUFfHBwVA9PIqOeQAcXV8cICyvIw5QF8dHxQA0cur5JADlFfHB7e+r44PCoDg5VVyyAHy6vjgAG11fFCARL5101evjg8O0FbHBwVAhbW/9h8KkFbHBweor44Paj0Go10FhxwgrY4PDlBXxwcFwGC0q+CQA8TV8cEByur4oAAYjHZ1fHCAuDo+OEBZHR8coK+ODwqACuur44MD5NXxwQH66vhgAKiwfnV8cID86vjg1rfV8UEBMB4tCuw1KqxfApoCtE1AM4Dgh4CmlqZNQFOAugloBoDJaC8BTQHiJqApQF0CmlmPwWhFIDCIzyWgKUDZBDQF6JuAZgAYjJYFAruLz3dAKA/iMz9npvY0fqpHGUXRYUq6l6z0Wyn1t2fVRpk/93HJUGSLkD+IV8aonfhbCNufwnXUfeBV0rOAvQnVP4oojWilNsaq0T9+Pk9aJbRiv7UmEtDsHGKvEMGhDMBuZkFkoyIoRAGSCes8ujxIAFqp8bGm5y/Fk2jxtoO3EiMJQCv12AgKCUArtX2s0ZMXXZwJa3sFey5JQDwavgc9kxddiglre4WQyIs21eKzvUJu5EVX9FLbx9pApRSgHAlN8IG8hIpWanuB7MlvdwtHm1KN/HabaDGitge5k9fc0FNtr5Aaec0mWiLGWDbyLnS0VNsL+EBec29HgR9MKtw1I2LW7IluNXNP9IiYzVgl9+WGaLEP1MiNfEemWYxeeBYbYbMosNgImzmBxRA2a1VgMSgXlwQWG3EzL7AYlEtsAotBueQssNiImwWBxRA3a11gMUgXVwQWG3GzKLDYiJs5gcUgXXIVWOwuXd4Bj9KlvKUa/c39z6RLPTP6v2a56yfU5/jaT3cZg1LS62efpc312y8x9faxwImjIsQZu3+63gdAhPcQQoGNBFT78syTOwewTTaYkvN2gicBpqzdVQdAAQomOZ51ABTAlHW66gAYQA2wIDrrACiAbWntqgOgAB0WRGcdAAOwXTaFsw6AWm9bWr/qAChAwzzHsw6AAXQ7QMSrDoACZMxzdKNymgO0I8Dwx3PfJHRAGhXNymkOkI7i26yc5gAVDkQjusEBvEM82tY37prRAekxsrtyDwMaIO2gbPQQyGu2TTYVewHbz0lAXI25HKAcDQ+0S+Q1jDyIwGJogMQn2krjvtxogIxeYDE0QKYmsBgaIFc1EwXIWzUTBWhbNRMDsE12VTNRgLxVM1GAtlUzMQBs45VnMYSNVzUTBWhbNRMDqH6rZqIACYFpnsXQAJmDwGLNTqldYbFme3pRWKzZnh4VFusOcWmBxbqdUqvAYr0gLC2wWLct3QsshqBxawKLof/RZYHF0P8YFC2G/kc7SPIshv7HrGgxRI2rosWGr7aixVBR7RQthorqoGixUVGtaDFUVGdFiyF2XBUtNiqqBS2GgmqnaDFUVAdFi42KakWLjYpqRYvdD2DvgMcDWH0r1PKf7Tnsp3+i89cVXH51WuJfwxlAvoq9ZtHU29XDAPRlt/lwWe/S1cVlt8kByrLb5AB92W1SAKObl90mB8jLbpMDtGW3SQFC2IovKEBedpscoG3FFwwg+mW3yQHSVnxBAbDmtNukAGi3TsI7MrpZxRcUoB5pPB6JfAW0W7+KLygATMZxGxp5zdilmXXFbcUXFCBuxRcUoGzFFxSgb8UXDKCGVXxBrS9b8QUF6FvxBQNoYSu+oAB5K76gAG0rvmAA3W/FFxQgb8UXFKBtxRcEAOGGVXxBAdJWfEEB6lZ8wQDQJPgqvqAAaSu+oAB1K75gAMEdCp8i3LCKLyhA2YovKEDfii8YQIxb8QUFKKP4glrat+ILBoAOoiYQGAINq/iCArSt+IIBINAgaB3EGVbxBQVoW/EFA4BadQKBIdBQFfmF+rRVfMEAEGhQ5BcCDat6mQLUrXqZASDSoMgvRBpedpscANbiCoF1t+w2OUBcdpscoCy7TQ7QX3abzPoRaVDkF1K9L7tNDtCX3SYFQKQhCAQ2Ig3kyrbsNilA8MtukwPkZbfJAdqy26QA0b/sNrn1adltcoC67DYpQHLLbpMDpGW3yQFgLi7wF0IMURFgCDFkRYDdQwzvgMcQQ3trofCfLZZq/mPkeGfsYHRTnM1Y7jQnwrl//Pl+/Q4o0eEZ+r29h3yzOPr2zO1+PQKBg85Kqrxf9eNBZyVVKEDdkioMoLotqUIB4pZUoQB7izgF2FvEGUDbW8QpwN4iTgH2FnEG0PcWcQqwtYhT6/cWcQIQ3d4iTgH2FnEK0LakCgPwfiVVqPVpS6pQgLolVRiA7WsrqUIB0pZUoQB1JVWY9dFtSRUKELekCgUoW1KFAdi+tpIqFCBuSRUKULakCgXoW1KFAeSwJVUoQN6SKhSgb0kVBlDCllShAHlLqlCAtiVVGIAdd1ZShQKklVSh1rctqcIAmt+SKhQgbUkVClC3pAoDsNNOrQKLwckmKSzWbU/3AovBLS40gcVgF5eywGLIq5bAsxgOO7ULLIbDTi8Ci8EtzkeBxeAWFxUtBre4pGgxnHmKosVw5mmKFsOZpytaDG5xXtFicIuLihaDW1xStBgOPUXRYjj0NEWLwdnCKVoMbnFe0GL3M8874OnMU9xb547/7KyJRsJf+8wzzFfHMXmec17d4T/8XM3ra2D2+frvkhSzTBEdK0Y7D9f3AMDQFD9d+ThAs6OEAULj1mOUKRqaSiBfwO68/fZpiswBMDRl+u9Q6zHJ9MzrkYBkB4nTf4cDYHTK6b9DATDJNE3/HW49Jqec/jscwPavdvrvUICGySmn/w4HiHaQOP13OABGp5z+OxzAzqRn4p0DYJ5pPP13OECxk8Tpv8MBbAOrp/8OA8AJMCc/vUU5QLajRJjeohzANjB7oIe3KAWwbd5lZE46d9ERfmH2/oe3KAewDQyTaOEtSgHsCGjXO71FOUCyo4TAYjgCdth4wNudAtg27/BIw9udA9ipNAk0FjHQ1PM0hiNgbgKN4QhYs0BjOAL2INCYbW52lOBpLGbbXYtAYxHzTKNAYzgBFifQGE6AtQo0hhNgTwKNRQw29QKNGcHYUUKgsVhtT88CjeEIWIJCY3YErF2hMTsC9qLQGCabRoXGMNnUKTTW7VRaFRqzM2BJAo3hDNi8QGM4A3ZFjMEy3GeBxmAZHoNAYzA3TIoawyGwCGoMZ8CmqDGYGzpFjcHc0CtqDO6GUVBjMDfMihrDEbAoagxHwKaoMZgbOkWNwdzQK2oM5oZRUWM4AmZFjeEIWBU1djsDPgAez4D+rQXSfzYMRxHXn9EZ8JM5xHgl/3hSgyO2vcsc69N1PgDgiB3xBhMHyHDERhFT9SQAjtgjvdpIACyxwxyYQQEKLLGjfSKJvOgCS2x7BXvGSEAxwrKLro28aDvcwdO7u/r4fXsARCMse4XkyYuuBYRlnIttgAJ0Y6xRsdI5gD0Dxe708G/nANkYK0z/dg7QD3iED/92CtCDMVaY/u0cIBtjxenfzgEaGGv4tzPrUcdY0RYN/3YOkI5Ww/Rv5wDtcClM/3YK4P0R7EZ7en06ItzdcuG+3Ejv5RxBluQ1B3Ra2yv4Tl4z5kZ2gcZwtnP2RLcWuCca+b0QBRpDfs+0mlGyJ68BcyOrQGOoZqxJoDFUM3Yv0NiYG9kEGkN+L2SBxpDfS0GgsTE3sgs0hnLGWgQaQzljjwKN4XTnnUBjY3BkFWgM+b2UBBpDfq94gcbG4Mgm0FhDq7VCYw2t1gqNYXBkV2iso9daoLGOVmuFxjparRUaQyNTFWgMZzuvqDHk96IXaGzMjVTUGBJ8JQs0hmrGpqixMTdSUWNI8HlFjSHBFxU1hgRfVtTYmBupqDFUNTZFjeF05xQ1NuZGKmoMCb6oqDEk+LKixsbgSEWNoaqxKWrsfrp7Bzye7sKjc81tFE37k+b3npyl8Ts/W/YRmb58jFMqegQfrvMB0FaXDQXAgR0vjR5BDpBWlw0HqKvLhgLALvfqsuEAaXXZcID66rKh1sMt9+qy4QBxddlwgLK6bCgA3HKvLhsOENFlwy0tq8uGA/TVZUMB4JN7ddlwgLy6bDhAf3XZMOuRs3t12XCAvLpsOEBbXTYUAD65V5cNB0iry4YDtNVlQwHgk3t12XCAtLpsOEBdXTYUAG65V5cNB8CuIhAYcnavLhsKkNzqsuEAcXXZcIDy6rLh1vfVZUMB4JbbBAJD0u7VZcMB+uqyoQAlHOTnX/LqsuEAbXXZUIAaVpcNB8iry4YDtFeXDbW++dVlwwHS6rLhAHV12VCA7leXDQdIq8uGA9TVZcMAkKx7ddlwANjeC/yFA11TBBiSdS4J/IVkXVAEGJJ1URFgyNZlRYDhQFcVAYYDXRMEGJJ1ThFgyNYFRYAhW5cUAYbzXFYEGM5zlbwBCdXdAoEhT+cUAYY8XVAEGPJ0SRFg8yR3To99ADye5OKjBc5tjqHx3K82qutXPcvxGTvMJB9ftfp0xQ8HKMwkd9MymgNgKLkBCvsCmEnupmM0BYBraZhruPUYSe6mYzQHwEhyPx2jOQBGkrvpGE0BYFo6t/BGAjCS3A/HaG49JpK76RhNAeBZat+Y4RjNATCR3E3HaA6AieR+OkZTAJiWhtk3QgIwkdxPx2gOgInkbjpGM4DhWjrFdSEBmEjup2M0B6h27HLTMZoCwLUUDzQcozlAgt3VdIzmAPUIzU/HaAoA21J7oodjNAeIR8ETHchLgI2IPdHD954DdLhd8SQ2XEvtox2+9xygwO2KZ7FhJlJ5FhumpUlgsWFa6gUWG14iTWCx4SWSBRYbpqWBZ7HhJdIFFhteIkVgsWFaGgUWG6alTmCx4SVSBRYbpqVJYLFhWuoVFoOXSFNYDK6lWWExuJYGhcXgJdIVFoOXSFFYDLalUWEx2JY6gcWGmUjlWWy4liaBxYZrqSLFhpdIE1hseIkoWmy4lgpabDiKKFpsOIooWmyYlipabJiWKlpsWIoIWmx4lipabHiWKlpsOIooWmw4iihabJiWKlpsOIooWux+YnsHXCe2H3/35e++/OHEediDFuyMPn/88++3f3cfcE5ob/+KMef2b+O/8f//avzDf3wEkxQzoP70T+7Tf84F7vrLv3/8w5f//OI+/vbLP/6T/eu/2L/nj//6Ml/j06/5e3v7+wXMH4vv1kPols//6ba/Ku9wg+PduY9/+/Ld77789U/2mXr38bt/3W6SadM6Syu9NxBOoKG+Tss43LrH2wRfTLRm/1nfFPzf/we0bZ3DCmVuZHN0cmVhbQplbmRvYmoKMTk2IDAgb2JqCjIzNTY3CmVuZG9iagoxOTcgMCBvYmoKWwo1MSAwIFIKNTIgMCBSCjU0IDAgUgo1NSAwIFIKNTcgMCBSCjU4IDAgUgo2MCAwIFIKNjEgMCBSCjYzIDAgUgo2NCAwIFIKNjYgMCBSCjY3IDAgUgo2OSAwIFIKNzAgMCBSCjcyIDAgUgo3MyAwIFIKNzUgMCBSCjc2IDAgUgo3OCAwIFIKNzkgMCBSCjgxIDAgUgo4MiAwIFIKODQgMCBSCjg1IDAgUgo4NyAwIFIKODggMCBSCjkwIDAgUgo5MSAwIFIKOTMgMCBSCjk0IDAgUgo5NiAwIFIKOTcgMCBSCjk5IDAgUgoxMDAgMCBSCjEwMiAwIFIKMTAzIDAgUgoxMDUgMCBSCjEwNiAwIFIKMTA4IDAgUgoxMDkgMCBSCjExMSAwIFIKMTEyIDAgUgoxMTQgMCBSCjExNSAwIFIKMTE3IDAgUgoxMTggMCBSCjEyMCAwIFIKMTIxIDAgUgoxMjMgMCBSCjEyNCAwIFIKMTI2IDAgUgoxMjcgMCBSCjEyOSAwIFIKMTMwIDAgUgoxMzIgMCBSCjEzMyAwIFIKMTM0IDAgUgoxMzYgMCBSCjEzNyAwIFIKMTM4IDAgUgoxNDAgMCBSCjE0MSAwIFIKMTQyIDAgUgoxNDQgMCBSCjE0NSAwIFIKMTQ2IDAgUgoxNDggMCBSCjE0OSAwIFIKMTUxIDAgUgoxNTIgMCBSCjE1NCAwIFIKMTU1IDAgUgoxNTcgMCBSCjE1OCAwIFIKMTYwIDAgUgoxNjEgMCBSCjE2MyAwIFIKMTY0IDAgUgoxNjYgMCBSCjE2NyAwIFIKMTY5IDAgUgoxNzAgMCBSCjE3MiAwIFIKMTczIDAgUgoxNzUgMCBSCjE3NiAwIFIKMTc4IDAgUgoxNzkgMCBSCjE4MSAwIFIKMTgyIDAgUgoxODQgMCBSCjE4NSAwIFIKMTg3IDAgUgoxODggMCBSCjE5MCAwIFIKMTkxIDAgUgoxOTMgMCBSCjE5NCAwIFIKXQplbmRvYmoKMTk4IDAgb2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0Fubm90cyAxOTcgMCBSCiAgL0NvbnRlbnRzIDE5NSAwIFIKPj4KZW5kb2JqCjE5OSAwIG9iago8PCAvTGVuZ3RoIDIwMCAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnic7VpPTyU3DL+/T5EvsNnY+S+tngQ8qNpbVaQeVntq1fawtOLUr18nsZPMvMc8WMGCVATDZBLHduxfbGeG+x0oQz8fyi1mVL/d7e65D1REZcOyC3xQ1ujkgzFAQ22mkRt1lFv5+8Fo9OprnTG3jdxbl5HGX+rX3d87o37Yff5Cvb9Tv1f/7ho7mfjL7ueVMubN6TdraAHfoIb3u+iaTAwass85q4QKo8am0scf71Ad/qmLqeRYsHCnvDOl8ZUbhV8d6g26Fx3ud86bJqE0EqiAwtgJ4wXOYoWeUX/uLm93H2/AKzDq9o8Bz6SS9tkbYzCq2zv1+RO1LuixdJEpTaTruozS/UAX0C/w+KFd5RGK2WMbL/OgjDumPzCfA8/j+XVO6cv7L+r2p6JfUOTZWT+jMOnGGUU/IH2sa/MxM98rlpGavlWO6FDWUegumK60b5rsKt+2eYh0v5z0J3p7yeulcUCmvWReZc41ty95/KLo1ddzwt7eFDgQNkLoBvdNechszDgMVp/ZWFaMd7Uvnv1UlrdXBIFPg0aMLMYtc8oFjvlOdDJmY+dimOJiT2AsPX0+7ml/CQ1YpiP5EKsmiY3kmwNExgyOauCHgMMgmCwVQcfqC0zfE5qVh/Q7bm9CNIMGjDkn6xcY9a+I0TSMUfuIJ4aJv2sytrEKYLUtvrYEhnewboEVrNOpjFHjRdHqh7NLf2kWTdfm30YseKfRJoKsgw7ZG3bqK0AWHcugfrzidg214kiLbcYZwMagHdpMyTe+A3YbsDnqXKKWjS+W+ZFNIubvIZbDKwoMtisAiLo6JyyxevFKWJ0wKil/lr2NUAKn9tXt7/n/DEIxgDa22MSFFwupfkKmm+bwAs/Vpka7YCiMjvxYoXn9StCcqtF6D48JmtagDo6OK7SSd0huQtKi0+CoeLf5SYicy8xr7juFxiBr5XGhZZrzsdI6q32k44UZCbAi8uZ1EGkt+cjP3rCxUZeEbq+GRHhUgrfB6+hDTsnbd6xuYzVFTSV/TsHalwqfhQbnxD6BvR/vYzN0WyiIJNGEoYBcDtSyIQ9DPA72zgQdkiXDZpxhj+b5YA+X3FfyP6eOzkeOVsQHLfOL7cjV6Z509HKYdAqJ1u7+d5UsXLHFjVmcvmfzeKNtJPfm8XLAWnYE7NUHBG2rPFlH8UYaJWld82FNvIDzNFBRu7BhRdaB7cmV6JHgLswuDdri/8zfnOLwkDaif7fPglU/HIq6AvJjAfGIbDGcWH4crhHRR4rCkcksG0derYwQEJrqzj3EjyNT58t4qWbEYywEPMJCcU8/fayPxhLIzPASiFe2w0wCHTOpHaY3PSXMPGN2RdpSoVkQR7CQ9401cLgpKBn2U2i0iwMJc67rY15W+Ei+zuMq1SPyawU8cDjmUFxCdF/J2gVkmFzeeBddsRfCooacldalwflk7yGRYzMpZfFbY2B9UezXOH/OaLUVHQs89sq5HhCMGflznV9tl7qINFZCQHowGno6VKaEOftxRB7R8DFBcBhuTsQn68857U+lQ48UQiO76mCmXc5GYX71pc5sApjMIicw6fMr2XPJMcXabqZJZn1Btm1U1ngdDht/KUh6oN+MEt5nbQ2dEjCkRQ2eni9KWI4Fdd9z8XGqmq4ouGrjsreF/uS3C9nz7ljHM5uVYqNLdDSiAui9YDnaooEO2ZkiJCTfU0cp6NEMINbpU2KSrST9j9k+J2tnKQk4kVc6SQIw8Zi2+noLVblmbL8u49Qx15nFpuongSkU9efVdj+fhAOidsQCfLDz9rLwfNsL+DMfitP9sHpJjdVbbmzDxeeXwvMb3l0H5zStimRDervZTnxzfbv+1hwc6kALW3yWNyrTOSYd9dZv6yc+yiMGXetCPNVlVo9P+VK/YrP+l4I2/ERtwWuTw/rRTM2n/S9Bn1602/hq77QNxVfGKgCaVIuycUw8nHQROtDehrftkPLzH7G49MQKZW5kc3RyZWFtCmVuZG9iagoyMDAgMCBvYmoKMTQ4MAplbmRvYmoKMjAxIDAgb2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0NvbnRlbnRzIDE5OSAwIFIKPj4KZW5kb2JqCjIwMiAwIG9iago8PCAvTGVuZ3RoIDIwMyAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnic7VlLbyQnEL7Pr+APbC/FowHJGmnsnomSWxRLOaz2lCjJYZ3Ip/z9UFBF8+jpWVtWtCtZ1rhpKIp6fhT08wGEjH8f8OGCEr89HZ6pD4RTQs9tF9hZaDl5O0sJcSjPlPyIHfjA/x/kpKz4kmbUbcnP3CW58Zf49fD3QYofDp8+x97fY78V/x4yO574y+HnThj5zclXS6hBfYMSPh+cyWuqeYJgQwjCK6HcpLJIH398UmL5JymTyBXGwpOwRmLjCzWQXxoqjfhEGZ4Pxsq8AjY8iFkxY8OMmzhzKfSk+PNw/3j4eAErQIrHP9bw9MJPNlgppXLi8Ul8uovNh6PQVsQW4ICJP4jjIb/DKb+Djk8Xn9Hg6p76ltyH7wC5L9E44gU0hu0zjfuVT+IhczvN5/UXGjutMmlV0TridaZ3meckHuH4WTz+hNrPIsZNrb0Uyk8adPQUeFYfLpG5IcUCLf6QhUzCnkkwFg4FR7oT0WH7ko2RfmioqLSK9NpXtLENUQn1kMdRMTSOUhUdr4FGnUl5v86XiXd0l0R3JZOgmeai8obDrZxCMCH4oFllFC35IJBNHam70LvN5tDkw2SeJNpRxAi8y4Jq+oFigdJcnUch0oJLtJ6Ut6vHykrsTfJaJbdTUW60kbMlUk9kmku11pmeQJzpXfnKnECrc8zdiKtrcS3notPScT9RxsisawokyHSKHfvaiKZsZI8xrzTOWearNa5llCXNdjMkqMlhhsw+NBliv+sMeSC3qDwbV8F3rRn60nqK1qhl3s0tADtpTK55Nt9VcoF2UfA4x1T7wG52HeNEGaY5iXI1zxqqknFN724GNJRDFg585JphZY9ZXr/idvY1FHY1MfLLO2FDsYMTvVQjYgychjmpt7ifpb1iQbKRQiu6MQhMGIKgAZKuDEiK74IHzGECRA9voHCUlAtvhB6oDFAea856m+nhvBo08aes1q7qR16EPglB9jM8wOTS9gnutRmOBVaszO7qHIc6kKiN2pW8N8S3ouMx7QoXSRSnYywmE+K9IW4gasKypsMGjijQo3lO5JAqNtPinE1OTsDJsW6O1QB6tzWVZjLfZWbhxXuB6Qau5lmZ6fqOBoi57mX0aJnLLVFaIOddXQ6cFwruerLWcgXNm4aCy1EYUxiSzxDAkwkbUtZjqeyw5ZUSmW/kKr2MUaPsGDXdOeFWxbN3bpBcTd3w5MoRbEkMqtxSIVJXbjdMTV6GVtqGA52icE7SUK7yJE0pSdc94yhCln7/TGPsZBEvnHUN6J7+H9BVJs9JuuO7Jp5h7Utz7yveJ/kVRxc1ezxYR6m1egffMY2CHMwzhikuoNhIjI5hIhoWqQRymzIctpVhC2Awjx55ud93c5Yq1FnRSuF67m1UaaiZI4xjJeDZ3Gvp1FfJ9awCNFVfnd6druB6eZPVWabQUpsYQiawjUsJuWE3uXT26m3fegulUEOYaKmGMBmD4nXBkF6aAPiqLeGSOeEEzZjdq123t8YHs1Q0ukJ7WN3WI25zKoatQJLtvcENN++htFYwhQQsZm5Q+vx2KM01DjBtnTAV333U1cbkO0JQ76g7oq6e58E8uHQ8+5SowBQ1XDo1ZUE1kNaY+05YQ3iYUeKis3qBBbNdwi4USr4O95q8r+5MVTzvHp2ZsDmBmw2JMOWHnaKs3yAP10KYHYriQfcibxuP7KFcBau1iOk6wV2ZOXReNUuzlRGBqvFoPGtr54eoKW4svq7gpyoQ0yvB0dbeEXvjosZT6t0ULg5Tkct3T9dAt+aLZR1XdjegLtAtu9Ut1F3eDuo0Xwp5OnA+kBPLPWIMKaPyHcke2hlF9+MW3tFuRDtj1GCe9oyqmnsxl6+QOG+TxktLOhwlVSkjOeP7W7OKZKN7m+FGAcPuZJPAzoT9WwdVTFw+Za18/KhctQdAa46mhmG93UCWlmc0rtbaKn2JcQ1pr9QQUZvLxLzEGCDWDAHCRmHQYthVXI9xtFBVmSGFIEmv8FPHr3Irv/qScjTt1j4gqw3jbXKn5OHDlcg3stxHJ0sz1HY7W48p/Sawl1mcr+fH/kPwHNN2jnDXfDOXIgKz90Nv+vC98cVcqXkyqIba6pLd60s+o3ds+u/9efiF0oKdZJj7V1k1X/ahv0xH6XY+qZtJzxgvUguAOMkm55at5LzpImVgwt3xm3YI/v0HB1fVFwplbmRzdHJlYW0KZW5kb2JqCjIwMyAwIG9iagoxNjQxCmVuZG9iagoyMDQgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDE0IDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQ29udGVudHMgMjAyIDAgUgo+PgplbmRvYmoKMjA1IDAgb2JqCjw8IC9MZW5ndGggMjA2IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzdWkuPHDUQvs+v6D+wTvltS9FKk8wughtiJQ5RTiDgkAXtib+Py+3yu3t6lggWkkxmxi67yvX+PP1y4guEv3f4Zr1Yfno+vaQxvlixSNMOcW0WCcxpA8DD1LoS6C0M4Bv+fwdM6OVLXFF/Bnpfh4A+/Lb8ePr9BMs3p0+fw+jPYVwvf57W7WjhD6fvO2HgzclXSyi5eIMSvpysWnkKw7jX3vvFiUVYJlaR3n37LJbLH/EwkVygLzwvWgF++JI+4H5xKn8I7yjDy0lpWDngB8cXI2hjRRs3fmaj68Hy6+nD0+ndIzdL+Pf0S+2eXDKreZDVhZnn5dN7ACHDywHAh/Ae9Ann8ArfuQjffXg9hs9m/SwDDecrLTwi3f3n5ek7ZKYXDg0zt0jLrOK4QhIz2hT3iBvx+0WLBcUIX8CurKW4X7jFURzhOKpr2nE1fqN9RXrhGn5pqM4rBVxW6jITORe6S+Jo0sxDoLfrumoNKkmvykHKKFCiBpVWXtI40TWyRBmQj7pfgm3f9+fEHUR6taOkk7jnpdcGShapzHBGl156XdOtu6yStiMkZdScGmym06hYXaGyv/Kj/Xmli+pkd4HWRbXgpC/b8mTUKMC5I5bomsFXJGSvkEWHZU+V3ckVs6GZsvpg/cwHcdy+OHjwZgGpnRyv7HRObBX69w7L6Ma6uBGZqLBovAXX53i47Hve11fcxOqGj1bvz+oEU5HBx1VTFJRZnZmAJ95thKQz4ay89EvOVSqoUkchSKtjZH3oJuPheGVw3hOYWpq4l+xJqqBpJpRMDnJZV5FeVL9DVFTDJKagXjuRiZ0JuRPqjZi8F3FT9qyUyxgyU/5rFAzuYUMFUuC9lZzcozWugBIo09g0mvljvgG+XzIpP3myz5p5QrhKHzV11j+JV1WcwhMmW068iCKK5B/2kYnwAqUgDVK9PjdkPlT4el3nbO9SwKaaF/V2i2EGn3B68AnU+Rqc+66HX9R5O1qgy8h71PzxflE5RSAtNiJSZ8+k7sfnrie0WKrpekQY4Zzx0Eymk2BsR8XHvmq7X8KVUjElBXZnuT2DjyRCDgqOwjNDqs45SLdz0Yi6WHwtKI1/8G7FRvLL3GRFc2nn6iDJ+1GuI7/u1tQZqB6rE1BDCxsnrdLdtdJ+XDsD9TTr3yZ35/poc2VGmx8+z5G8fC0gZ0GSM1s+UZKKp7HUu0UGac1ooSpvUF5tQkf06MQEKIXoRONU6h3OkOEHQhVM4ZDgCkGVyPYhhWzKSIJOYtMa7LuIHqU770EX7lxIScZ7BWIbu0SLpg4JYVI8pUwIxHZaSG1dPA8vWqaxrEHS9mgv8tTeHsmTaZeo78ZXJVnRUdx2vParRs47cKWL3WpeoVSa/dQpuGJBgd4b+4r0KQLgVNIF95G76bMEa2PKLgRiedMFgGXjdUe+7gI1B3LVOs1mxUKVRnhqC9U6t7aIhXue32wnYbeLbM9OLpSTNL37oVYL7Zl0Yd7bbKMYiz2pgDltMIgVba9S8ilswhK4GcaV1XH+ocRVjjsyji4KFQJ282lU7kQtjjOJnitNrvx8Sy0TWqlKQl2vQJBvaKqsb1FLM4jCFLXkUluTgMxa280JGYPkhdtAJ5P0YCEL25qqazdz503kos84zV4wOfg2Z/Ls5MUiNfUxYfVbU1hT5w+1679ehpz6TdbCwBmKWOOJ6w585DZxKC9H59uv+aMHS66ZsBYX5ezJH+YePKOVsugImJ1pKA23BasMX+lSyrYJeNRXYwc4WmiaR5qqlL2/yZG6Wvbo7oGq4Zo5OVw+OuQrzBlIo2UwyLyZwQtJvPRJJaMFNr0Rpq1wr5wYLxPXwBvw3o0orqteO5cegLZPpdzb9Sgx1U06TxyP10YTj1aeCRFaa+5VxpV8QopiT2jnObm2SFUyHtZcQ3W4pNSUgx6glJSdILQBO5pwTCN1fUE/FXlCi4k32bVNPhV2VEzPvJyG216QLudad6j8vdqN6yMMyAXrnJqmrtXeepe6EyOdnkuOJ7LUxNFu4MYDNw596ARd/iLpD+UH2tq2P1RQMeiPOSpprxBIJ0f3OSDWrATXzHtVFEXW11a5l80pdVx3rCxtwAMFjmkt8V5PvgIfKMmZM6FMClWupt1Gtq1+eqF7qBtgUrqr67PoEWuUS+1+feMrk3Z3quum6rXSCpJ+F5QrzZlWQTjFdd0X/B1QHgpHYLT+mpEu1aTdw+PKBmBolXfW+v8aHqfKF08pJju/FfStvA/hFfAzKPeK8NJChPCyWPcqGwV7mJzxSAUNIh5iJF88JVVE09l0J1yZsVFi81Pp0TibVGCtFHNceOeEu4Zvp7T/T3yrjWE2+IYV3F7DtzPaLXxrqdBVXS6NbaPbvGruXoRliWwbytqNSp8ZHAKyRD3DsXZSya9yPQBiG547GPY1/LcBrK17nQ6/1qaEG056E0rVeDEb5oO7+msodUZbUGov1Ji4D1ybD0h0Y9e+Cu90SLNysQfdYBOzVXvn3rZyzn8WjBkOzOiYc901MDaj/RfAmJGCaW+8U+3TUlORJ7RHwNidM1s/vNPEjYCs2ZEPu22xmcGyPHkEmJWdrkCzQrgDzkaB7cYR56fpIFqzoo2uevIKKCvbz5S0B8xM6BR695gF+tuCYQ9P/SOGRglmQvfXPI0Ji3fMuWE0PlI5eRZTiKCx+MjYbAi6r7c8oNlt0z9Juk7fKC3XDLzpv0L18bZHSPNylK48rDl01JxxZ334g08UhEVoH9H85CJhaiahAmCT5m0bBf/+BXMN2YwKZW5kc3RyZWFtCmVuZG9iagoyMDYgMCBvYmoKMjA4NAplbmRvYmoKMjA3IDAgb2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0NvbnRlbnRzIDIwNSAwIFIKPj4KZW5kb2JqCjIwOCAwIG9iago8PCAvTGVuZ3RoIDIwOSAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCniczRvLjiS37d5fUT+wZb0fgDFA91ZPkNyCDJCD4ZODJAdvgj359y2pRIqSWN01szC8u+jtaomiKL5J1X69yEWkv5/yl49q+eXL5Wsdk4tXi3b9kLRu0WIN1gkh09S+UsBXGshf+d9PYlV2+bWsoM8CvvchAQ//Xf55+d9FLH+5/PRzGv1XGrfLb5cdHSz8x+XvAzHiu6OPUqil+g4p/HrxZt9TuVVGG2NcglqUX9VO0g9//aKW7f/lMAVcZV34slgj8sOv9SHjK1P4kL4zDV8vxop9h/wQ5OIUIDaAuNMzX1RPLP+53N4uP7xKt0izvP27qadKI2oVWsX8Z3n7svz0oxBapD8mfa7pE15+Xt7+llfbRYpxtTartCbG4AOslkEIlTFs6Tl9SZs+SSzCp3H43MQ+aV6WdIa0SmQoX1fIfXUeK3Sk31LvmPoVAiD9vkqr+r1x+AtVdodG6ty+L2BSsWEudPh9725sa/jK74g8yvzseCQWq9eCQAqPLHrdNy6b3dOz2T+FiMoafavIEzulOhZCWLxZrRdJfmkSNlA7cuRm/tiXRfrMC/XazpXPkCVCz1dWZnlc22o6BrySIIGMa9s/+NuR54q/jG3M+oHvKBvC9yKzUNlhK9scI8cqC8KfaFet89EU6mhh8giZDI4D/fyS7ehHqkyFEboyTL0kz1NGB5KlAYafIly21WX+Xg8eCPNtFUjdwWQBqvp7m3HKCsMwRUq3ipj1zCjUmgOucLCwLepOILIFe7oTckG93REjJ+vr2Td4E9TL0WfIxoIjmy7zYMOh0mua1yg44Uy+2bs8gR/54ZB6wCraTkiprRw58j5BjB4P1IMRqXYpACZHkFMOEOn9QKQMrDaNnXljrRqRcNyicUAGuIJBzEcaZ/3qZNpSGY1aJA/IY2C1fiBV15P0hHdVD/MXRCTWD4WmoZ1pbk3/CrNcTwXqCnwzzPBh1T5rRbMojm2ZFzNo9knaggHtpvWSsgK1BtC43vvTyRNhgIAXjnKDPfPIJKLJqCOzGj1gIOwu+ganasZGloGz6yMRpSqQDY2YwkhGoDms0rSjsJiL6XZOSxO6xYiT0TyacVQtKmbSLathU26MEkQxKsEx5fPR3xVBq/2UXEpU1RA9jNEN505yXXdt+81KMrgKzo4h66v5YoZX4IHBpn3TMdzb7xyPO8dne1NS5iwsRodJmDK8vTGgzfUkccm4RmplqN8wgWmmIQLfmNXlJGEwPAQ4jPsUyA8D6IIg0HSTwKmNQ+UGbwITRdaamubDg+kg+mSeqjoCvdbNKA9N0xn+sEcMn/MMemjOV6GoIuOn6H7SMgqi9KggXDQBijqXNESbb7HRwcPACsyaZI1SkNUUSd172zvMwCHSuYa17gXiHeIhZDjS9klErvTywTmbNHoNOa10phkll9pknjOw5wvNJFRFbQrdFjU8xeqYeocJFFj5ubkl1HvV+3c6ehgucU2nuQqj/mA6/SlBDEWBqvfCVEBRu0A8T3jwyDX3mLNxT96kw7ybOCNlaycpP89XjtTLu9XZkmBiMae4bCxvzMCeTodVZUaorK5MhRhZKoy7aAXacQavol9NYqYU3iDJBxk8B5tLpqqjfflBJRHkalgx40TflKnWNbsbzHsoRjlhO9qmeBASJLrJZ1Vtj+lKAIDDV5LsISBoJZwpcMffmpNgj8ifpqtA6AouOOGkb/kVDdvzETkmNWJm9UjxaVIPrh5/b/2M/h/8PsH17dUs30HTWia3kNXbYYdLVRrBnRTc2UF8rntdRW2d7fvrDbNDU90TzDTHbvZR7Xc8IlacGepzvxLcF9+S01avOqcI2v1ZPbnTndVJUtfmuqEGoHkH7Fp8mhFdJUy15sO5TacLU79ae79aFWKU/iP96hgnRw+d177Kg9QNojwYT9e+po1P0iBiG19DuvVN5RlRocOmgxRDFBZD/D2tgnOgMkrM3uWge8jCvmKWOpQKI6tkteHcMlcQgafURWDPcS7VaTk2C+dBzWhMKgR9UhRyNXLUIuVgv/fOcclUt8bKg76dcXKN2ZdF7561FTlYRZLbQrYXcxXqbGtdSW6wC7owgfpebWLOXGbwo51VINUC7nxvyBu7z5B21Aema8d6ACdM41RBzq1shd6gXRgg6MnRus7QXrLa6yNePRAprcSMZlTE61mdIIHbRKvJ4NDRrVgoHXflCWB3WBicDovQsu3NXwhQLJ4h7BD1Ax1AENF2myZbPnX2II963gRU1/vHMzKcWStHimo1iMWN7jEVorpDF1NjVCPYSTVEmKuwyRqVXj3LG5w4YTB7GTkshAZrS5owcLmBX3XfvutA9+/wcq4IoUNzDt2ECgw0LcxR9bu2BACyFf9T1sElCCT8fXCl9dhIZutKtyg7gPJFNiW6bM3oSip/R135pmqcySse1UHHLqvhLXBe9GnfQccNgvN0n0rSuUlp5mBtZVhdFNHHZ1dsDOSJK90zNyFiiGxiekXjaZFZVRnLC8AzGe6zspNvsz/ZfSxxh8btH36Ra3Wq3W1KJoP3z24HOdicWEpbStrsiTABJnJ8dLX5jD8ld0wJvDGYaenGEXgFB6+IDrqR3LmdWFW+9Q3WPLulYWEh0a09mBROJF5tiL6RinOD34Pxx1Vwg2Or4djD5OsjCO647+DjEV9gaKF+ys7wEG4QHhJ9pnl25uzoR8HfVEWHdjauHxJYup5rg9N9ackDAQTpFzNfyuXtrX4yvdf9w6WY1qtJN+hNRg3gJE1BE4Ya8cPdk+PLv9lJTGXfA6M7Udc+MTSut5aZlbIyk2p06RwtckuKf9s5pIB3taBUNX0sNlJ7cKVNHZpcpv7ZB7ts9fQpgzCCrt55lGQp9ou8jTDiviOV9Dcgv1UmqaMNH7SPxOKkX0NQMVon514G2Bzos3LTpYdrKU4/SyuLYcbS0Wd+aYfie3QUMzQFemqw7QPNqG7vo3e3cP62f7J9lhsz0VEOHbqJjjZSVlQMucfQYyg/rwL9a6WZXhWcpGW8nho5PvsUp+Ik+Wd+8pO1fQ49mWYHNLYDcOJWmTEwpQGMl204MSb1MHHkoZ9SrEfi+H0h0H6saqLky5H0sYc5UaThpVpMHCm5NDR2E7ddr9TIiXKbuYHhMYph5OwSxvyXtM6RN66NjaZaStETWdjjO+mzGdj9bXxv3Bm1uuQAu1fsxRJDOuk0Wt6TZ16wVyoHluxQuCEx/HzPW/cDmvG/B+zT76RW2lVEN/4U5PF9/y8Al2fq2hv4U1CRqww+v3yfYrNMi2zxwF1P/caKSSW9s9p930LJf38Hf1oBXQplbmRzdHJlYW0KZW5kb2JqCjIwOSAwIG9iagoyNDc4CmVuZG9iagoyMTAgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDE0IDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQ29udGVudHMgMjA4IDAgUgo+PgplbmRvYmoKMjExIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxMCAwIFIgL1hZWiA3Mi4wIDE0NC4zODQgbnVsbF0KPj4KZW5kb2JqCjIxMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY3OS42MjkgMzQ4Ljg0OCA2ODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIxMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA2NzkuNjI5IDUzOS45OTggNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjE0IDAgb2JqCjw8IC9MZW5ndGggMjE1IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzNV82OGzcMvs9T6AWW4a8kAsEC2WxatLeiBnoIckrR5JBtsae+fskZ27FnjVS6LYyxqB+KpEh9FJ8XKhi/u2yac/n8tDwfx6g0LlKvh8hqEYRuFZFiauPEUxMD2eT/HQJb+bZyXNJ4archPBFfyx/L3wuWn5ePn2L0zxi38u+ybXdi/H35bacMvjr9LjUU4leo4fPSdJPJFcjN3Uvnwg14U+nNL09cHv9ZjVmXc8bCUzHFJL4didxvnToT0aYOz4sabhKS6FQqnzbW08ZXcdbW0MPyZXk4LG9+olootOmYZ3T463uU9kIaZ8cxwVoOT+Xj26Si+z6WUrTvkie+GGPeaHoI2oKOFlvQefTZ78lz/6kcfk2ZVgh3wqSBt9yttrMwia4fN8uW7stdZaDy9igxd37cvmSllNb2C9/fF+tJrYqEssI/WC4Px4UftsWrpZcLMPYTu9zvapr4vlDd5t8d11zN61Hw442JF5qsZ5gq1v9Vczvc84lyc+ja3Mn11uGi7xm6AFL4yaQNMkRI9+a980333WBwEMtIaDTG4AwWoUlGgza4QfUwuqMNMnToNSSQjhktyIASElTGjBa0uOthdOtjRgt2kBYSMJPCCAMRmIYEpTGjJS52o3BcwzrI0KD3hAj1MQYmwPA0iQ/awAocIeu1yyBDAwk3U8DNGENkAqshQWjQaBFoEkZXGzRaKoTTvPugRooQUREX3AdtVgGOK92tj10H0QoajnbnwehWBwtH0+h6Y2gWAqwOBrcZeCYbx0GbzQF9AsYkEJLrBIxJNVCZgDGpHSpOwJg0gtYmYEyagusEjEnrQDQDY50i58/AWFdQm4Gx3qDyDIw5QnhhAsZcwOsMjHkDkgkYi7wKAcfjMKYooG0CxhQrVJ2AMcVI6zQBY0oM3idgTCnSuo3DmFJkdZ6AMWUG9QkYU46sXidgTDmyuozDmEokdZyAMRUDahMwFtcMZOY1phpJfeY1pqpQZ15jqpHUZ15jGtjNP4KxfK8+bEwfDvuyoypDjZt9VaFhyfdXfzG6llk36jOOKkrzncy3hnDXnSnadtvsq8ttelJbskhddd/FC3KurDyzp3bfC7gXxVS8EjKYA9xLPA3Rs0zgs5vWesZvuokz6KS+bqfk7z8EBnqICmVuZHN0cmVhbQplbmRvYmoKMjE1IDAgb2JqCjg2MQplbmRvYmoKMjE2IDAgb2JqClsKMjEyIDAgUgoyMTMgMCBSCl0KZW5kb2JqCjIxNyAwIG9iago8PAogIC9SZXNvdXJjZXMgMTQgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDE1IDAgUgogIC9Bbm5vdHMgMjE2IDAgUgogIC9Db250ZW50cyAyMTQgMCBSCj4+CmVuZG9iagoyMTggMCBvYmoKPDwgL0xlbmd0aCAyMTkgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nM1WS2/bMAy++1fwD8QlqTdQBGjgdthuwwLsUPS0Yduh2ZDT/v6olx1LzorcCsMRzecnkhJzHghQnl1cXGD4dhrOhUfgGJRds8hYUDh6YxFJRNkS6yKMuMTfHY5s4DVZXNJY18zCSvyCr8PvAeHD8Pwi3O/CN/B3yO6q4ZfhcwMG3x2+S4SK+B0iPA9O55hsRwomhACegd3IGdLdxxPD9CdtJqlz7IUTGI2ReC1E9JdEMyFrxHAetMEcIRKewHJ1rKvjVZ+51HoIP4fDcbh7IgOEcPyxtKcHP5pgEJEdHE/wfC+UpBDD/gWOnxZFAdNrkt6DMiAU2j2QS9Qkb1TT8pLI7egjn6jwp/zGT4rFco3eg7zFXvF1PQ5F7zHrJv+XfordimcKz/T8Dq+q/D1Ilu97q0WS/D5kDGrq/aCLe5lz1Uanuourkaa835avI0bxSzbM25hyOHZZfKmunrbTcs397Mtnf53clq3XuCWNGvvmYTk1QcuRUDT3Wcjua+V21m3jWQSmdhnLVqQ5sopfwtPUmFBY8pGSbJYSvR2wloZUKzB5+2s3JQ67VvuNnp4VN5s6tN54QUsdhlKraBjpGK5D3lnFTmHOcWO1U/NjToxu9x4VEsB6krc8ZmbfB4rzLULMtQ/W2S/wy4labpJSb1e+p8xb6tD7Scnz3bmqaMsN93hsL02rebRyVa7mC0Lwo/cdNw2JjenCMgN0BMpbLGw+bxk5jZt2NmbxjWjJjBhs+4kX5G1DcTaP6P4zfmgk7+RSEG0iMVqPFzxIqQ6bZWJNo5F/Ue+6KPH5B7kQ+MYKZW5kc3RyZWFtCmVuZG9iagoyMTkgMCBvYmoKNjA5CmVuZG9iagoyMjAgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDE0IDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQ29udGVudHMgMjE4IDAgUgo+PgplbmRvYmoKMjIxIDAgb2JqCjw8IC9MZW5ndGggMjIyIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzNmsluHDcQhu/9FHwB01XFHRAGkDQzQXILIiAHwycHsQ9WAp3y+qki2T0bQ0RIVBBGI24/yeJHNpcevixogD8fxEmFzJfn5aXHoUlkXLyMwhCNA5tDBEBOajlhdThCHPn/ASwF873mOPfD6rYoWD3fzK/LHwuYH5ZPnzn2N44P5q+lFbdm/GX5+coYeHf2nVvokN6hhS9L8q1OihZLKKWYTIaSpWbSxx+fyez/rI2pcpKx8GyCB/F87x4pryZtHnbFhpfFB2g1iCejibQW7NeCL8ZZqkMPzNfl4Wn5eMRo+O/p9/Phic6mgGxr5pRn8+kOgBx/MwA8sMs84Z6/HEbicGFX/LH5SdIeORyaBpDjfI9Dybv7bJ5+ksqDQbioPBuXrE+SK/q18q0S6AVIgeksvG9x4q86rhjvT1pITS/fqoNmrBhX4w4cljJCd0UQm1PTw2VZknfT7VudoqlhvzPcA3c9JnaXYzHVWH+qH7s93LwrFbpT63C1OPRcEigN4Rm3UCyncqe5FZunKxGOVO7Yeke+rtnXIO1PPehDa2g1w3VjU+/d3HWHDnV/1UDqsFLvqNRHUupNkbylQWh5bpqW+SH2wi2lWdsGsn9qnE8748vWSyfuvb+k16XRzp+4ryMCexo87uRhursdJ5LqH/pDcmxhpB1PRqt6hYincfFvUAqmY8tNt5gQyIZqh5+OgZHuv4KSZm6PRn+karhjEY30eoX3+D/iqLlvUZDnGZaHeYE8RTHQaaBYHwgNFD7YXLjU4KZPz0inhiLooIjJhhSlHfMHZKDTQLHNH49t7pA5RANLLrytkfRYplgGOm0sb4yCEGzxsmI5P0Mx0qmgiK1gDRSObOTd7ozCpURltujbOA0AwVsHSXbBcUphoFNZTkuL10CRguUlspTkcIpioFMZFdDWEQ0UJdmYPE9INF1DRjotFKCDwmGxLsRSfJyiGOk0ULgCWpss59HWNuQwXTdGOpVRwQU70kERySaiUrDMUQx0WiiUdhMue+tlyQ55uoKMdCooYjuUCQqScFbBwk21kHPJhaZYRjo1LDrzhqdkU+JEh9PD2UinsscAPRS+WB8876LCHMVAp4ViXVidNPOogyWhRakP/PRwNtJpY3lrFIVs5pMX+unCMpCpHM22F7+o8zYjoLeBm0LZ0fSV70CnAwS0zifBRYs58bqe5igGOpUVBWE7tssrZXpoYaWpNYRkM++/S8A5noFOG8+qr82LOnhSsSHwgS2HOZ6BTgsPFhUUEdCSi8D78umbn5FODcW9DgoiWwR7dHMUA53K9HpQO9JF7y33OG/E0xzFQKcyKvpvw3V6Te0s81ZYDk/XP6hHTzZiuLx7AKZkm/NNbL1AMLh5QBSt/HYJNIqCq+BrriNcFXN9b6Ilv9JaDBZKvA7Cmfd1Fya27GLd6WrCze0AlNVbfq2LBpEzSb/RdgqQuwl4GHYTebS8+L/vTpHP3xNpJDoKZW5kc3RyZWFtCmVuZG9iagoyMjIgMCBvYmoKMTEwOQplbmRvYmoKMjIzIDAgb2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0NvbnRlbnRzIDIyMSAwIFIKPj4KZW5kb2JqCjIyNCAwIG9iago8PCAvTGVuZ3RoIDIyNSAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnic7VrNbiM3DL7PU+gFVitS/0BhwImTor0VNdDDYk9btD1sWuTU1y+pn5mxrdHGteN1AiNwpNF8kqiPlEhp9DyAUPT3gRMfUXx5Gp5LGQiPQrvdIrBOaCWDdUoBvco1VU2ogBP+/0FJtOJrqjHPq5rmIlUzf4nfhr8HJX4cPn2m0t+p3Ip/h9xcrfjr8MueMOrq5JtLqAGvUMLnwZvcJzoJ0cYYRUCBXmIW6eNPTyg2/6TBJDiyLTwJaxRnvpYMt5dejRlKWYbnwViVe+BMAOGwNmxqwzt25pPpKfHncLcdPj6CFaDE9o/JPIMI0karlEIvtk/i0w9KGVx9FtufJxC0UPqRnkz+aXpDCTFPqV8JEwUhFFcwKwGen8DlEvRUyG+ovvK5HChVD+XZZxxjDLcfKb2nPjhvcx5wRcpOrXKnOteAsS8V8g9sbjf1vSno2h+1i6n23mgD25GxSOoD6HHSgF2aFKAR4P1FSLEoNTCWTLpDSgN2MinrLDRssuBYyOBuTBriRNA4qDOQAfe5Ty7jdx1yvJHgQozBd8lpwN4sOfw+VulyPhHFLa1XIkJqaZmy6GQW1ugeZQ3Ym6XskeQzVb5ESyHviGkI4GUIXB9Mj7cW7q0Sh1gk2xxHlY7SG1qgHXZnZQv3VqnSJB9CbePFkxEcSGohRg5We1Q1cKdSxStJ8nObLF7N8zt9l30c08m+MeGJJnBjw8wTIxLDvhjJjOlkPBs1udWSnwm0eWXzXU8DHs3YZn1kkz7UR9AUW5CniK67OrZwN338D7++oAdUlsIZrqO7q20Ld9PD2UKIJe3Q1go806FsVzsN3E07Z41WljRkolRaM62uq6EG7qah82lIj+2aMT5gGursC99eCb2SIZLnB+xuilu4myZPDHCXdBKRAlfy/tiP2lq4m05OjKQXdKLBUITsYjT9yK2Fu7RO+DgN7DR05UoaJqVAWVa4r6rH1zx6004aZzie7QZcLdx3NGkoTHJTurJnSlVduiqs7Jj+bDuA9ythQ22Na2tUhxsJTu/yROnxaIPUSHva0A+NWrg2jyuqYVQa7TkINXVyxzImLLZj8pgTfvMd1o5zGXkloA5kPpGS4soaklpvaYYc6b5mcOYPJhYOlU/rPXVNu8J+1NXCLSrfUu6m/COUz7M1raa+rWCjzAH7PKpkJH6SUVeS+NvA4zgKW8ZYDxPMzjHP3EheZjQGnUx9gekaTQt36srLShsXtapQfRGHY4yneJWXbeh+AGvhXnPYcztOw4HJqlIdV/SvJ599CbpclN7yFA6hS1cDt0RX/lx0OPvrkOdT/DUm6ehSuY6bO+KkPlsc8a63xzr/Std5hh3yFUE6xjgbu3w1cNfIl14X0ygBzs4StLM4wbqav8qfKeO0KKPOI0Lu6W6RPAtaGk8ihG4o3YBdK3Wp3UrKi7fv1UirdLp8Aa5bdzbPJQq1pSiCFq5ouvbXwl0libS0+lzDq8WNyjEEWU9e2JOw/U+3Ldy1EbQ0RB+lMiYGjN2jmxbunEOspxw4C7qS63qYefuloOyi3wIOKCS0jEQA2P5X1xbu3VN4xDH+IbGI0jsVg9PdNb6Fe/fEHnkCf0iuMRRURNKQ7R4CtHDvndxvH7lmnh62+3fqnEFiy+5eP1QiBr5vsV+a7hA2Lh8i7aL4IpfCVpHaezzmRuJeM/tXJ/PrI6UFK1V0+49qlj3uzuRYnaXr3E4EdrmRv24LAKrE+ppuICqKHBGaakID0mp33Urhv/8AdJq4QwplbmRzdHJlYW0KZW5kb2JqCjIyNSAwIG9iagoxMzIwCmVuZG9iagoyMjYgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDE0IDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQ29udGVudHMgMjI0IDAgUgo+PgplbmRvYmoKMjI3IDAgb2JqCjw8IC9MZW5ndGggMjI4IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJztWMlu2zAQvesr5geiDEdcgUCAEztFeytqoIcgpxZtD3ELn/r75XDRZspRACdwjdiWORzOxscRt30lAP33igvjCL7tqn3iCTAEjR6zhNLQYG2VRhS+KWpiLjyDC/6/wpoUPAWNIY25jCzMxC/4Wv2uED5UD4+e+93zFfytorms+KX6PAkGzy6+YYSNoDOMcF8ZGX2SroVTzjmwBGRqiiFdf9wRrP+EzgRx4lzYgZLIxFMi2F5o6ghfcgz7SiqMHpiwAjRlwzIbHuWZCamH8LO63VbX90KBQNj+6NPTgq2VU4hIBrY7eLhBlNQ+wvZTLyRKUs29r8n4NL7FFx55//MP2shgkpi/jnypIo0qya0jjyjyyKQ2HXVx48smygi2N2jPuiW+oNYnA9xEK2whtMoWhGFuiM8/QiUfWQ+Tb2+vMS14dJONoL9qwQUOOpafoGQ5/5STftgbcQzLgtibg2ljnXUIezroqwRMAgSzPuuYAVDJdrB3AsBnQFUUU08QHQO1IHZOoDJAQruAUMKXTTUZUxnFmiZhk7Bi04S92xwa3bWgbLbG2g2N0aRVtEy3qSNldI1chG5BbBZdN+4SuRR2QkWsx3yuh07YfgQa19OnSq3SPMH86OsAGKcXAVMQuxhgZP+Od3NAZz34K8wGnHdB0sSsDXxzFGoh7CKsS3KXAra4SzHkuajs774FKYM/NfDXD8q6f9nnwJa4DOyC3MWAbVPMae5kurzIz4Goly1KJbmLAXGUi4TYLUUlK3NA2mXrT0nuUoB8bqM5Ax3hshWqJPdW0JV2Uv/hTLrCfr+XLKa93LBzLNoBw/s2czhmtGylK8m9j9krjdnc+6WWLZQludccKy5Hm/3Mnzsfp/HkLVzwvUnHidSebZ96ugsHkBm/3YGk830Iv1m2xJbk3uHPCa+CCm/F7eAQ+QzybtmaXJJbjDymumU0u76ZAYYC+xPvJmqcND2DduzVZju9N9OSai3U+IoRwdna2gNuuCcsXDAS6VoyAlRi4aT6klvHiZnp9WhsfmG0QtXo9LSKA/Jl96KdOkd35AZS1MIa5z/aH/C8Eo9bf8uIt75WHiaSolaNPu9B4e8/5oO/FAplbmRzdHJlYW0KZW5kb2JqCjIyOCAwIG9iago4MjkKZW5kb2JqCjIyOSAwIG9iago8PAogIC9SZXNvdXJjZXMgMTQgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDE1IDAgUgogIC9Db250ZW50cyAyMjcgMCBSCj4+CmVuZG9iagoyMzAgMCBvYmoKPDwgL0xlbmd0aCAyMzEgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nOVazW7cNhC+71PwBaLwTyIJGAbW3nXR3ooa6KHIqW3Sg93CvfT1OyRnyCEp7XqN2AkSOBtRJDX8OH/8SOlpp4SEv3fx4oIWvz/unrBOCaeFWdoqNS/CyMnPi5QKmvKTki5QES/x/3dy0rN4SE/wsqRrrpJU+Ev8uvt7J8UPu98+QO0fUD+L/3ZZHD34y+7nDoz86vBxhEbprxDh087ZPKZeJhXmEILwWmg36Qzp/Y+PWhz+SZNJ3XX0hUcxWxkLD1iI8lJTKcA1Ynja2VnmEWLBK7FoEmxJcONnLrmeFJ92N/e793dqEfDv/iN3T2UmNyvA6qHlUfx2JaU28PNSyhu4gj7lHn5wrzTcBymNgvKSy/JwDSK0uMIuKndX6vqDuP8pjjkLJZsxvTBucsHCkMrRmCQ7Pp+ExDEAh5rhd4D7I7Q7uM65LY3tat+Ed86/iC0JOuA9Lx9QdtcvyUPZcSJxPGlhbi5NDUqg6ismn+SQbFfHIPlyS37sa5kMWbFE3aaxXZ5vvE3P3wAWm/Ucim7Bnrqz5+ymWRmwZ7BFt/uz9koqNNnkSlHbKRt6CT4ONgxLqDYE2XB7hdNX18Itk0lj9abo2lrT1zYtUV2Ax+hijqiY4gxt7+Ik5Bw9kiWj06TgOStoDdHw7EwI9B2OYNpRe/yKz9tns8ciuavqdFFd4TwaC2ObPcpmGon1jUzSgs+y0hjkxqHra6tmnqWRzq7kM8xRgh4cJSFh9ikBj4GdvAcDngK2DUF56EN0M5gbmyV/YrrgKaELclUx5JkhRgryhVmLS6FEsIKlWN3VZxWTkyzYJ4+5RkCSNcxpzQ9P5wil1BSiqZUtSV8da5IwN+gZtzU7vCjRK2OnOcQZa30iS7wLjudWUn1nctax80as3s6dTbeq3XMCtxYgc2i7kRuTBFsxdN0UWO6d8mlMXQOhhBxLCQTtWH1EHgbUbfC14+0JzpYa/dDIVrGIw4wD9jZbSeyDUoecAH43+EUyCU52NVV1VlWySx4rK+6z2AQGFTGQIpMSyGCALc1Xe1IyKqxEoVcca5tCfNLVZxM+k38khxKLZkmDhzhX6+LHcAMDu+wPZf2MU1UQ23rOZROH9PneoH0hcrObmu01lfqUHMgDgMtops7qV3y7tG04dxlzXpHn2vuU7YuDc+M3DhZWZqRy2mioo6kBwfsVo/hRTp9YONKIRbFgOzX7ZkxON934nFqJN2BrQ7x1i9PWlFPbPk+zUgM0HC1sRKRoEStO0MdAs8RSRAamBIpGJCIpiTmGjCKSRyhF0KC0E7Mao0dLPUbP3bWwlvvq6rpOYXyCpSIUKQv/SF5P3u/Z1M4mmxG6ftY6W1hbF4+F/aEJtauL5lkGuBLDz2H90bCUoiu3adtbl2M83484KJJKmiy5qHG5FRSFJoT1Gb9sX2J6XTRO+wy9buxTWq7I+m8uH6O3mHH1PbcfvmRlMpiAjve7px0MZ2FVEo/CLlR+yGW/TD5vVB/EeIs90+HLFGTw4lMRZhcpjJ+iG0st/v1TfGxPPqALdKynPnZR6ZgGnoMmmQTXEp7wTMYCUx6PeeIxEIrIJ0LtcZmNi24dTtGREzt0MoGgRhAAPODdS4AwYSfgeDfhIcD2WdhrasUNINL4X0A1+eQrgEu1exO92Cm4BTwa+DitiQaTI3HJpa4uJXiPsvLMmIgi4rhKxYR5K+vWNMq6w/RCGymDZeJwdyiX+KLGJEYrYyxbfDZg+r/FZ40shDz1o/SGG7a0oTvWJEz9U9ttlqdwrokQ+vyL+IocWpFj4tmPicTBsuPm4L1z37IKM2FATDOq6YA4jnhI+hnV6u2kQK3B+qpWdep38rBVzlOIBzCzKtm+KIn2nLSA02RfTkWMdsNwK1TEqMmubg2ovifOWH8eOZOxtr1g8vvthen60FoXF3gz8w106bF5UlHw3shynNXU0/n1yhwLqad7tv42hzyHlfEu0Q+1Ew1rt0oLPkHMoNeOYihiEMjRFyAhD74gK9FolIPbBeuAcYeiyvZ8DydmI8mwjLTQGZrLcRV1UNwY2/jLg57AlA0Ec8a1cznqp2+vxewJY2Sjei/L2S5nnkHxE3skRGZWxHQyK2IVmRpZFaa8PUhcqLttunf8iLVFkrS4Kb7bCW6dJMXefIV+G67Uj7pGmaAjAo9YYBoL3r0EDxO2jSoqeclK/nKUqQWxTpleXzVblMlAbwOUCeLg+6NMcS2nE9U9k3vxeo8bJuIU4/7MODcy07eE5/FlIJpOE9S5voJ4MyyzrOs00q2+zzaeUbWwJRkY6+eGTHIOl0B9BRz0FieZbVRFcCPL/E6CWd8yrJEw4DWp1dX6gvvm5Wa4wDutXCbn0mvZNvAJLqpOHxHmEaHd4HAExTK1MqKY3hZiECWWwr1FZ5lpL2NGaGoZU//JPUn8ndqXWBOXHkDlzLnjVv6GjOgb8WeJ9Q7zFqd5L9vBxLV9ANbvYOTwPud1UdLuRI6n3/1p3bMODuXZU71XPBG0ThOfzQSYVSAB9mpKOHUmwN0t794RYNYWCTDQqXXqa51qmNbbUN9+1DXqq+SEX6OBH74MRRZxAobXk876/IJctwGxznVfQRdb5NY6/42eB5bY674OXKyeFkjNzYeUEDJ+8n6oTRpc+YxS62WyEZJeq5Ld7SXfVnZi+o9Ac/OFaNU8ybD0t5IVL/v6szwe0dXvLIflTk3Ku7jPWoRS8NCcFoTiZvFDS7tqJm3VNJvl6zZK/PsfvBzflwplbmRzdHJlYW0KZW5kb2JqCjIzMSAwIG9iagoyMDYzCmVuZG9iagoyMzIgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDE0IDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQ29udGVudHMgMjMwIDAgUgo+PgplbmRvYmoKMjMzIDAgb2JqCjw8IC9MZW5ndGggMjM0IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzVGstu5DbsPl/hH1gv9bQFFAEmOzNFeysaoIdiTy3aHjYtcurvV6JImbJljZM+kCI7K1miKIovkbRfTmqA+PchNVPQw0/PpxcaU8OkB+PrIeX8YGCcnQdQcSqvBG7iQGrS/x9g1G74gitkH7jNQ8Cd34YfTr+fYPj69OPnOPpzHHfDn6eMjhd+f/puRQy8O/okhUbpd0jhy2myeU/tRxVcCGGY9aCnUWeSPn7zrIfLH3gYBNdJF54HZyF1vlAn4cOp0oltouHlZB3kHVJnVoPXjNgy4krPJlQ9GH49PT6dPt6UH+K/p1+keiozTk5FWuc48zz8+BWANvE3A8BjbCM/4Rx/8Vnp+BwAjI19n/sSFuIz3DKsjjCQfreHz8PTt7S5rjafBxPGeZri3sbx5mrOyFWg9pzHQMWNr7lVV5qnFjQ936h/xibD0ri6ZPg0nvr6lvqFODcoWBHnFUlRFeKszgsKlGqC5U2IUS7vBy6PIXMmep7yGYHogtBj1uxGPc1xI2N6zEoHO8SsM/WvgllnIvqywGAf8faYpcCPLqRzJbr3udWCy+x6iBB6NEMcMOdFTolHQPzDZwmoTOYpnh3yc2ImthIQPKnjRJOODufyuFmTgJyiSaUIuyNxVZgvhKVaTdaSFE+vUaNpJDOC3KrHZaxG/Wa+4AQf1+cToNLRInmaNPd3tm7IWM0bGZt0YJWlw3zVjw+Dshr3C2QdbDndk5I7chlGP5KY0tSU3RLCd60pbjz66HqC9nPXnGDHnJKpuMWcSp/NjM1JCXNiP5TauWtO3ozRLSbpdK1pC3aUg33TOWox9wxF2kfLLNrWkHh4R3rzPEYdiL7Q92+OPWe4kh7eMCS95AAL7DVzDIkNQpLnnvQ0hNGEdDvC3BNfC44tz8ARi89Q99xghjrqAwnnHQdIOIX3o3UN15dnWpLmvsD4hvO/1d21doRPsefwJC5jST9FvELY6xI5VNLUaitNkghfyvhMXEXtn0lScQ+TOEvar8ky0s+w9ejCY5YxzyjyU+L87H9wdzpF2VGswzVh5RsIv6a16Rk9LmR+Ij7pvHumqq0b7RwjTOu7cYu6HjNVPKg0W3JCWjhXdrppzLiuqXo/plsghaFdU23AHb6sDrrSoiwUHrIYX+tCMW6/wOsv1VebUVfuIaZjsw7BedWV+/mY3FE/+IK9LQrO8SqejHXgrouOKWRMyyDMUaA9ubfgSnAUNftYXMaAh8NQuWCrEhJAhp882Aw/ebKpLX5xigvqDTEHXePeGW6tieIMJYkNr6hJNRKpx8mdNPvLmL6whyfJmDXbkiZpvvZmkkZLJ7Td6ITGgLRcdfVmLDQd42IcnPIGcGlMbKFZYYQJVgDMLkR3WdnoBr0XeskTJYCgS6EEE9MaA2p29PxTPmbrDKjjD4NWrCklG5N0lBzYNnDwUUHq2JoWczumKZYVvSJBrweOakvhelzgZgZBQlq6YvxGV1AuHFqJMAt9ucmWidaZDvIpczMzvOYrr8E0ha9wEXbnHGstTajuE7RW1h0heZwLBHeFEgZWMAIPTAsteB6X7If9BVOWGGmVwEQOE1M4dUCkJvezSLuVJQ+jnmM45l03veNU7e7tw9USUWGpKiQi6sBbqH/7zGr0cf0cpm5tqQX3z6bIBPuOk8bmfWXuyd+CG/1sQ2Sc35M/B9ZN2dtF3iXyENFKJXuKRJdEsSd7q6cxSSDA1K2UteDeXlj8f8r5fiHAOjXC7GJg7uyunO1BObONB2Hj6xJOEHK+duU86dFC9ECqG2A2wP4rKb823jdiHXoQWpek3cpV+PbW08H9hKbckXrwMaf0MR9zu7mFUQekvircGXGjFqlfF+u+n1c4NY0z2Kqs2BJ7C+7feW3grIp5WLpUbdi9CfdesOzxan0LMn/k+4N0I9our7yJsZGrinhNXjXgStEmjOpQoYjg3qbz9fq27tcwpSjGY5UtvIKeyiZWa1c8OBrCMvxeQUlAcIRYFZbE/KbAtMwthaYa37bgJOaJjjuFp62GTG6jIXux5Lq8tqQHxz2npA2EtpTCGpCFlgyXI3jkckPX7thwCDGaTYZmd6OZ3fd+axtWiw2zj+SaCttt9ZK0+97Pa4gRqq+qe823pA041l9rRn/EhhnurTYs1+/ZsIRhGy5jKxs+TE/DhsvaFQ+UbVRW5DxbpBOW4YU2StxXqHPNA2dEfunFGDbwK08heYP7U9aBe1OO2MqLvdEbfajyVOJTGK1kEz3e0xQGe1wIUSwQSoPKJbqAs6fLtZ+Sc0+02FXAfDkrupwZr4aWcfcOc9RtM5WaaLmIjUSthsBscqNnKOk1C5/Jd1lv5FAQYmyYkjU12UJ7VhhQ+fFFb0Pw1m4EX4od7C7ZzfLuVDJA/shAqFMyqNy8r0sG16f1hzI+vQ2O/q36pgiGMMfQaTOKHwY1vijSOkal6GlbQ7B6fM1nRis06++h8vQrqVVuhODXjyC6r/sQqixP1C2fHG3uDDWqOb1JidAq5m4BQ8ol98FqdFNMOgayzvj3LZT09xcCiOQaCmVuZHN0cmVhbQplbmRvYmoKMjM0IDAgb2JqCjE5MDUKZW5kb2JqCjIzNSAwIG9iago8PAogIC9SZXNvdXJjZXMgMTQgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDE1IDAgUgogIC9Db250ZW50cyAyMzMgMCBSCj4+CmVuZG9iagoyMzYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCAxMTMuMzM0IG51bGxdCj4+CmVuZG9iagoyMzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzA5LjAwNSAzMTYuMTUzIDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIzOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDcwOS4wMDUgNTM5Ljk5NyA3MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgNzA4LjAgbnVsbF0KPj4KZW5kb2JqCjI0MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2OTcuMDA1IDMyMS41NjEgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjk3LjAwNSA1MzkuOTk4IDcwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCA2NDQuODg5IG51bGxdCj4+CmVuZG9iagoyNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjg1LjAwNSAzMzAuMTE3IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY4NS4wMDUgNTM5Ljk5OCA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgNTgxLjc3OCBudWxsXQo+PgplbmRvYmoKMjQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMzI3Ljg5NiA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NzMuMDA1IDUzOS45OTggNjgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwMSAwIFIgL1hZWiA3Mi4wIDUxOC42NjcgbnVsbF0KPj4KZW5kb2JqCjI0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NjEuMDA1IDMxOS44ODggNjcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNjYxLjAwNSA1MzkuOTk3IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCA0NTUuNTU2IG51bGxdCj4+CmVuZG9iagoyNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQ5LjAwNSAzMDUuMTU2IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY0OS4wMDUgNTM5Ljk5OCA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgMzkyLjQ0NSBudWxsXQo+PgplbmRvYmoKMjU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYzNy4wMDUgMzM4LjUyNCA2NDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA2MzcuMDA1IDUzOS45OTcgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwMSAwIFIgL1hZWiA3Mi4wIDMyOS4zMzQgbnVsbF0KPj4KZW5kb2JqCjI1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MjUuMDA1IDMyOC4zOTQgNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjI1LjAwNSA1MzkuOTk4IDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCAyNTQuMjIzIG51bGxdCj4+CmVuZG9iagoyNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjEzLjAwNSA0ODAuNzcgNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjEzLjAwNSA1MzkuOTk4IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCAxNzYuNzEyIG51bGxdCj4+CmVuZG9iagoyNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjAxLjAwNSAzNzUuNzg2IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYwMS4wMDUgNTM5Ljk5OCA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgMTEzLjYwMSBudWxsXQo+PgplbmRvYmoKMjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4OS4wMDUgMzI3LjMzOCA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1ODkuMDA1IDUzOS45OTggNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNCAwIFIgL1hZWiA3Mi4wIDcwOC4wIG51bGxdCj4+CmVuZG9iagoyNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTc3LjAwNSAzNjQuOTY5IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU3Ny4wMDUgNTM5Ljk5OCA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA0IDAgUiAvWFlaIDcyLjAgNjQzLjYgbnVsbF0KPj4KZW5kb2JqCjI3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NjUuMDA1IDQzOC40NDggNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTY1LjAwNSA1MzkuOTk3IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDQgMCBSIC9YWVogNzIuMCA1NjcuMiBudWxsXQo+PgplbmRvYmoKMjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1My4wMDUgMzMwLjQ2NiA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1NTMuMDA1IDUzOS45OTcgNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNCAwIFIgL1hZWiA3Mi4wIDQ5MC44IG51bGxdCj4+CmVuZG9iagoyNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTQxLjAwNSAzMjIuNjI3IDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDU0MS4wMDUgNTM5Ljk5NyA1NTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA0IDAgUiAvWFlaIDcyLjAgNDE0LjQgbnVsbF0KPj4KZW5kb2JqCjI4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MjkuMDA1IDI3NS41ODQgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjgzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTI5LjAwNSA1MzkuOTk3IDUzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjgxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDQgMCBSIC9YWVogNzIuMCAzMzguMCBudWxsXQo+PgplbmRvYmoKMjg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxNy4wMDUgMjU2LjczOCA1MjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1MTcuMDA1IDUzOS45OTcgNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1MDUuMDA1IDEyNS4yNzYgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNTA1LjAwNSA1MzkuOTk4IDUxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDcgMCBSIC9YWVogNzIuMCA1NzAuMTYyIG51bGxdCj4+CmVuZG9iagoyOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDkzLjAwNSAyMjYuODQgNTAyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjkyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzcgNDkzLjAwNSA1MzkuOTk3IDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDcgMCBSIC9YWVogNzIuMCAyODQuNzM0IG51bGxdCj4+CmVuZG9iagoyOTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDgxLjAwNSAyMTQuMzk3IDQ5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc3IDQ4MS4wMDUgNTM5Ljk5NyA0OTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjEwIDAgUiAvWFlaIDcyLjAgNjgyLjQ0IG51bGxdCj4+CmVuZG9iagoyOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDY5LjAwNSAxNzUuMzIgNDc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNDY5LjAwNSA1MzkuOTk4IDQ3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTAgMCBSIC9YWVogNzIuMCAzOTguNDI0IG51bGxdCj4+CmVuZG9iagozMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDU3LjAwNSAyNjIuNjkyIDQ2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc3IDQ1Ny4wMDUgNTM5Ljk5NyA0NjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIzIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjMwMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ0NS4wMDUgMTMyLjkwOCA0NTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA0NDUuMDA1IDUzOS45OTggNDU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0MzMuMDA1IDExOS4wNiA0NDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA0MzMuMDA1IDUzOS45OTggNDQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMiAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagozMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDIxLjAwNSAxNzEuOTIgNDMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzEwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNDIxLjAwNSA1MzkuOTk4IDQzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzIgMCBSIC9YWVogNzIuMCA2MjQuNCBudWxsXQo+PgplbmRvYmoKMzEyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQwOS4wMDUgMTY3LjgzMyA0MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxMSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA0MDkuMDA1IDUzOS45OTggNDE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzE0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzNSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozMTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCAzOTcuMDA1IDE1MC4zMzMgNDA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzE2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy40NDggMzk3LjAwNSA1NDAuMTY4IDQwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNyAwIG9iago8PCAvTGVuZ3RoIDMxOCAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCniczZ3Nri3HcaXn9ynOC6iU/z+AcQGTFI3umWECHgga2bA9EN3gyK/fsTKrKrPuKXavBVCgIFC8PLe+s3fu2hUZGT8rfvniP5z97w/4V+3h499+/vLL+TP/UcNHLM8f+Vw+ojtaLs55+6tJuutf9gP8C///B3eE/PHXQex/dte/54/c9Yf/+vjXL//9xX3805c//8V++u/28/zxP1/mr7vAf/nyz9+8Gfd39/72dxh9+Dt8h798qWm+ZiiH77n3/tHCR6hHmG/pj//r5/Dxw/8ZixmXB3wXfv7IyeEPfz3/gN83/ur+g/0b7+GXLym7+Qr4Q/MfJVy/OF2/+PE9q+Or5z7+88t3P335448+f3j38dN/rK9nDB/tyD0750L9+Onnjz//g31+39l/2efouv3jv378ofkjfuAvwlf7kMef8DfR/s9In75++Iqfujb/8fh9f7J/45f8cF6NG1Odi3n+E/5x0g7X1Hl9qPP6aH/n/fn36bz2/Lvxit+fvw//3b/+5eOn/72WFFI9fA726bf2srjP12d3xGDXN5e56+ORul1fwtuH93J9OUqx61Mk308/WrTPttoNZq4v8bALeneVez/Fvp3Vfn/y3HpLP2IKvVVXqOtrOPL4bqTOXZ+P0qJ9nTr3/muzxxyff4vU9S0cLtjvd4Fbb8v29Nrvj55bb2tHLLbekrn1dn/kaJ9n595OT0d1EXeYW26vR6v263NLzPX2wRwu4XGxi6jr0xHs9nr28nrEZr8+F+rbHL2Z1xxhe6jlRh+PiqfXd265vhyt2+/PkXv/wR3Ont7WAvX0xhCPgKfXV269tlcku70+e+79h37kylurGMNRk/1+n7j1xnx0z1urGPvhGm+tzJLYtspbq5jykQJvrWLCRby1itkftfDWKuZ09Mhbq5jb4R1vrWLxR6i8tYolHSnx1iqWehTPW6tY3VEbba1ijUfPvLWK1TbrIFirZl5ZF6xVs8268Naq2V4dBWvVbK92grXq4ehVsFbd9uokWKtue7XnrVVy4UiNt1bJ2V6deWuVnO3Vgm+VvD/sq0xbKzMKhxd8q+RtrxZ8qxRsrxZ8qxTSUQTfKtnhoAm+VYq2WQu+VYrp8IJvlaLt1oJvlZLt1oJvlVI8iuBbpWS7teBb2bHocLxvlcyVD4Jvlcw4l1js7ae3r08onzbrD3Mfck8dK34cr8bJxc3jVe2H/3s6XoVw/rnOv3evx6xsbn6x35JKelvlC5CPau6dC/bscUA7+lhcbxxQzNOv3j4x8h2VfITkere3RQLtMBNl76mSr1DNfjR7hVgyCZi3nz0+enLNtoH2YJ8Qog0UYId51+0VzBMjAXP4i71CiZEE6mF7ll1UCwd0dxT7UH305KK7Of3VXsHeFgmUoydbdM/cou3ZO+xGm5uRuEVHZ6ak2Svkxi06OnP8s32srVYS6EcJeH7IJXjz/Lu9QPbctzvaZopP1Aju2x29GS57or3v5JpDOOAs9dTINQfz/u2JthMGeX07Cp5oH8g124bavGDFou2o5s3Yjp25JzpGOwBkwYrZ3nLEwFuxmOwE0AUrFpMdAYpgxWw/OVoUrBgOSWNbYq1YzHYMqIIVi8UdMQlWLJZ42F3grVgsdhRoghUzv+CwZ423YjgruSBYsVgRV1asmHkWsShWrNmmHhUr1mxTd4oVa3YiqIIVsxOT+SCCFeu2qXvFinU7EzTBiiVnm3oWrFhytqkH3oolZ6eCLlgxHJuc4oslb3t6FKxY8ranK75YwkWCL5aCbemKL5aCbemKL2YuyeEUXyxF29IVXyxF29IVXyzFbhcJViwl29MVXywl29MVXywl29MVXyzZOSAovliyc0BSfLF56mrz0PsChB8+H7timKczb2ZmP3b9aT92men63Y9d+fxZmz/DH3H6un9/Pl/v81HEm4Nqv9m+Q2+rfQHskW/FHvlIXm9PfMZbZ4FqXrz9n092tucAe+S7naarqyRgj3yxV3CZu76ZE38d1zkgmn9qay4tkYA98dU+1F7Zt2ROfMIXxpNrtv2veXuFYkaIA+yJt/vceyYX3e2JtxvtQ+cWHZ158cFeITdu0dHZE9/hJgRuDdGZG1/sFYLnvtzRNsAW7RVyeX32X886dpvNb8nct9vMoXmo9gq+k4sO5sYne4XUuMchhmQeqi26BXLRwfz4ZjfOV3LRs0DCHJdCLtoOO8N8NUeuIZofj0fade7rHZP58UUwYzGZHx95M2a3wBxUwYxF2wDNmeXNWMzmxifBjMVczEPlzVjM5sU3wYzFYhdlwYyZR2QOqmDGYjEvvgtmLFZz44tgxqLtziEKZizWZh6qYsaaufFVMWPN3PikmLFWzUVVzFg3P74pZqzbpp4VM9ZtVw+CGTOfxC4SzFhytqsXwYwlZ7t6FMyY+Y7mogpmLHlz5KtgxuzRNxdVMGPJ27aueGMpmCMveGMp2K6ueGMp2K6ueGPJLgqKN5ai7eqCN5ZiW8kTCki2qSveWErp6Io3lpJt6oo3lrJt6oo3lnI6kuKNPQ47L8DbYceW/emwY+cOHGTWYacc5fc87Lgf71fI82rf55+v7FP47iTe8kAN5ZQ4Yb6s9T0PVMo8YXIANps842QcgM2mzDgZBSARVPOMk3EANpsy4mTc9dhr8oyTUQDyQC3POBkHjL1mxsk4AHtNnnEyCuhjrxlxMu56bDV5xsk4AFtNmXEyBhhpIJdnnIwDsNWMA3sjgbHVjDgZdz12mjzjZBTgx04z42QcgK0mzzgZB2CrKTNORgEBW02ecTIOwFZTZpyMA7DX5BknowDkgVyecTIOGHvNjJNxAPYawYqNPJAXrNhIBDXBio1EUBas2EgEBcGK4WyEFbNWbOSBimDFRh4oClZs5IGcYMVGHqgKVmzkgRJvxUYayAtWbKSBmmLFkAbKihVDGigoVqzlo3TBiiELVBQrhjRQVKwY0kBOsWJIA1XBio00UBKs2EgDecGKjTxQE6zYyANlwYqNPFAQrBjyQFHxxUYeSPHFRiJI8cVGIkjxxUYiSPHFRiJI8MVGHkjxxUYeSPHFRh5I8cVGHkjxxZAHcoIvNtJAii820kCKL/Y4Gb0AbyejXF5PRu67/WRk5vr3PBn5ts5CV7Xd/g5ezkO2C7fzg3hZ4QuQzCxU+3qVQgLVzEKdZaAUgG24t1kHygG2DZc6C0E5oJhZaLMSlAO6mYU6SkGp67EN1zZrQTmgmFWos3SdA7qZhTpr1ykA27DdaE9fn80q1Fm9zgHNrEJzo3ydArAN9zrr1znAtuHSZgE7B9jJ2hyWUcHOAOhfKuO5rNyi0cBU7UaPGnYOsKN1qrOInQI8crNtVrFzAHKzdZaxcwCSs23WsVNAGMnZWcjOAUjOtlnJzgEjOTtL2SkgIjsrmLEYkZ1ts5idA5CdFcwYmplKEswYupmaF8wY2pl6E8wY0lE+82YsZiRnBTMW80jO8mYMHU2lCGYMLU0t8mYM2Sj7ZvNmDNkoXwUzFitys4IZixW5WcGMoa+pNMWMNeRmFTPWkJtVzFhDblYxYx25WcWMdeRmFTPWkZxVzFgfyVnejCEb5ZJgxpCNCl4wY8khOyuYseSRnRXMGJqcquKNocupKd4YslFO8caQjgqKN5bCyM7SZgyNTlnxxtDpVBVvDK1OXfHGkI5ygjeGbFRQvLGUEC8XzBi6nbLijaHfqSre2KPh6QV4O3OV9nrm8vuZC+Gi37X0bu9w+uH83a+5J3Mh/BUifVnZC9BRHIVXiRxgLkQ6Q6Tc9Rm1UfY3dg85wKzBFSKlAHMhHEJnhXwB8yD8FSHlgIbSqBFboK63b2G+IqQckGz3PWMLHFBt9z0jpBRgHoS7IqQckFAZNSKk3PXVNt8zQkoB5kDkK0LKAWYMrggpBxTbfM8IKQWYA+GuCCkHRNt8zwgpBxTbfM8IKQd023zPCCkDoNixXhFSDsgrW80BfWWrKcAciDtbzQF5Zas5oK1sNQUEf2eruevTylZzQFvZagowB+LOVnNAWtlqDqjHla2mrk9uZas5IK5sNQfUla2mAHMg7mw1B8Q7W81dX1a2mgP6ylZTQAkrW80BZWWrOaCvbDUF1LCy1RyQV7aaA9rKVlNA8ytbzQF5Zas5oK1sNQV0v7LVHJBWtpoD6spWMwBqHbvgiiGhd2erOaCubDUFQA3JCVYMpY5F8cVQ6tgEXwz5PKf4YsjnecUXQz4vKr4YSh2z4ouh1LEIvhgqHZviiyGf5xRfDPm8oPhiyOdFxRdDqWNWfDGUOlbFF0OpY1N8sUdC7wV4O1zCyX07XD76usz8/q6Hy++/fuR2lzriN4R5NUoc43frFUf67/XYWfCVjvZZttc1vxwX8JVG9jAkEsB3OtnHYqc8DsB3Opp9tLVRQMN3ejSNehLAd9peIXRy0Q3faVu0bZ4c0PGdto+1h0IC+E7jnpZOAuanZnuFzL0AslfBbnTvjlszsle2E9o1iVszsle52CvY4ZADbM+p5qy6Vrk1Q4KvO3sFz32TkLwyw2hPho8cYHuOeQnIm3BfbiSvksfDlcg1256T7T771Mg1255T7T73yj0MkOEzT8ee9kCuOZbDdXuB5Mk1254T7IF2NZO3AYEnPNAukWtA5Akmy1w3EmhHrYIVgxhfT4IVQ/LKe8GKIXkVmmDFkLyynY23YhDkK0GwYlDkq12wYpDk60WwYshe+ShYMWSvohOsmF2UqmLFmrmpSbFiiD15xYq1fvSmWLFufmoWrBhCT0GxYr0fqQtWDOJ8pQhWDOp8LQpWDLkrPM6sFUPqylfBiiF1FZNgxZC6yl6wYlDoK02wYpDos+MXb8WQunKKL4bclVd8MeSuouKLIXeVFV8MOn1V8cUg1NcUXwzJK6f4YkheBcUXQ/IqKr7YU63vM/B2vugvuhFw9f1+vii//fniUjQfjVDtPFuM33aeFH6YvwdWfGhCxKkTcV33/9eLQBPx5Te+rPLlCBKW38gBefmNHNBuv5G6Hj3El9/IAXn5jRzQlt9IAeghvvxGDki338hdX5ffSAFoIb78Rg5Iy2/kgLr8RgZAE9XtN3JAXH4jB5TlN1IAWogvv5ED4vIbOaAsv5ED+vIbKQAtxJffyAF5+Y0c0JffSAEx3H4jd31efiMHtOU3UgB6iL1gxdBEdfuNHNBuv5G6Hi3EQbBiENO7/UYOqMtvpIDilt/IAen2G7nr6/IbKaC65TdyQFx+IweU5TdyQF9+IwW0uPxGDijLb+SAvvxGCsBFUbFiPS+/kQPa8hsZAIec22/kgLz8Rg5oy2+kAA99P96KoYmqBsGKoYmqKb4YDjlO8cVwyAmKLwYh8iT4Yuihyoovhh6qqvhiaKLqii+GM45TfDGccYLgi0GMPCm+GHqosuKLoYmqKr7YI4XyArwdcbx7l4vAkI37jON/8/I89/1XjKMCZXyYgud5Me78M2Y63aeiH7/ah3hlUsJ5vnk0SZ2v4uL9nh6/PV6NVW0yKKe4/kERYOjnu0AOp83fd2Vqvlnn9Yrnb/zUxvWWx4EpgcRQ62Y/3z74V2Ny7gGJJTBhBDnlmEkiYMYIBmTZN58kEsSqcQ27DoiT+aF78v6VezUpFR8ukuMkgWEj9howESRhjsgYn9DYlScMHMFHZZaUJOIBTZlxEUmU4/TX2DsIkbKh6pnZlZtpQTsPvikksduWN+LVuPj3jks4vLdxgX/6W5uXMXKpnOKZZ8DkLdWK5OxpHty86jIBF/U2/WAfOPf+rl/PpHcl09vH8kL0VcrEEXYqvWuZSKKsYiaS6KuaiSPsYHqXM5FEXvVMJNFWQRNH2Nn0rmgiibxKmkiirZomjrDz6V3URBJpVTWRRL3LmjjAjqh3XRNJpFXYRBJ1VTZxhJ1S79Imkoh3bRMJ1FXcxBF2UL2rm0girvImkiirvokk+l3gxAEtrAonkiirxIkk+qpx4gjzaO8iJ5LIq8qJJNoqc6II6H7cdU4kkZcsB0m0pcvBEeZp3sIcJJGWMgdJ1CXNwRHBLW0OkkhLnIMk6q3OwQHmaN7yHCQRlz4HSZQl0EESfSl0cIQ5mpdEBwmUpdFBEn2JdHCE+ZnFKebt6We+EK9+ZnjvMnuMLTa7+Zsre7hLrfBHN5Jz47BY1yFy/OYflj/60ED8gVQ7jGe39NsqX9JomFF39hmSBKbUnY2GJIE5dWenIUegQerqmCYJzKo7W6ZJAtPqzp5pjkAa+GqaJglMrDu7pkkCM+vOtmmOQJ/U1TdNEhhcdzZOk0SxvfTsnCaJbnvp2TpNEaNX6uqdJom8pGxIotteenZPcwTapa72aZLIS82GJNqSs+EIdExdHdQkkW5BGxJoS9GGI9A0dTVRk0RamjYkUW9RGw5A7UpW7NtonAqKfcMR6da14QiUrxTFvo3eqajYt9E95RT7NtqnqmLfRv9UUuzbaKDyin0bHVRNsW+jhSor9m30UAXFvqGJ6la44Qh0URXJvqGNKkr2DX1UTrJvaKSqkn1DJ1WS7Btaqbxi30YvVVPs2+imyoJ9G91UQbFvaKe6tW5IIi6xG5Iot9oNB6CjSvLfRkuV5L+NnirJfxtNVZL/NrqqJP9t9FVJ/ttorJL8N3RWecl/G61Vkv82eqsk/200V0n+2+iukvy357nqhXg9V6X3BqvHvGL7xf1vea66zk5XWnDE7vv59zhr4feW7brzNd6KIjmFecxMKm0mat8+glfn2CO5iEwtRYypSa7NghOSQHVUnxUnJIHyqDZLTjgCg5PGZxvIlUOrbuQzUXRCEqiQarPqhCMwOyn0WXZCEiiSarPuhCRQJdVn4QlHYHxSbLPyhCRQJ9Vn6QlJoFKqjdoTDsAApdRm8QlJoFTKPlxUn5AEaqXaLD8hCRRL9Vl/whGYohTaKEAhAVRL9VmBQhIol2qzBIUjUAONp3wkmDkCBVN9FqGQBCqm2qhC4QCUQac+y1BIAiVTinmDb2zfdMW8oRI6S+YNpdBBMm8NdVOSeUM1dJHMG8qho2TeUA/tFPM2ZipVxbyNoUpJMW9jqpJXzBucY9cU8zbmKmXFvI3BSkEwbxisNNM5rHkbk5WKYt7GbKWomLcxXMkp5m1MV6qCeRvTlZJi3sZ8Ja+YNyja1aaYtzFhKSvmbYxYCoJ5g2ts3pVg3saMJcl7e7rGL0T404trnH+lN2jXHrDb/DdNOfytXePxoeT5O2at3VUuM67+/utHieO/6vy7uZrxjrd3/hoBSneU6eWDfN3lyh1l4gjbeu8oE0c0+zZfpzCKaAFT1c5TGEfY3ntHmTiiYa7aGWWiiL5/nTnCTpN3lIkj6tHvKBNDIE/u7ygTR6Qj3lEmjrC9944yUYTtcuWKMnFAPNodZeII23rvKBNFBHf4O8rEEXFlCTmgbFlCjuhblpAiYP3uKBNHlC1LyBF9yxJSRApblpAj8pYl5Ii2ZQkpwra5lSXkiLxlCSlib4B9I163ufJS6em/nSb4N9BvZUu4IST7LAwfr3tWa0Jq55u/xbb4/dw+R3Xop1gOJB7uCseX5b8Qaatw5Ii6VThSBFQe7gpHjkhbhSNH1K3CkSKg9HBXOHJE3CocOaJsFY4c0VeFIwVA7OGucOSIslU4ckTfKhwZAiHCVeHIEXlVOHJA3yocKQKaD3eFI0fkrcKRI9pW4UgRkH24Khw5IG0VjhzRtgpHikD6/K5w5Ii0VThyRN0qHCkC+XOvmDdECFeFI0fUrcKRIpA/D4p5Q4RwVThyRNkqHDmibxWOFIH8uVPMG/Lnq8KRI/qqcKQApM+9Yt5weFoVjhzRtgpHikD6PEjmzQ5Pd4UjB7StwpEikD2PknlD9txJ5s3OTrUq5m1kz5Ng3kby3CvmDUen0BTzNrLnWTFvI3seFPOGs1PtinlDhLBL3ttIn0ve20ifS94bDk9J8t5G+lzy3kb6XPLeECLskvc20ueS9zbS55L3hsNTUrw3nJ2K5L2N7LnkvT3PTm9norezU32pXsZZ5zFv0Ozm73V2cj+evJ//fcsJlfWzUalc1+uM13yvVB5PN7pbX1f+AuDhNqC6yhJ4uKu9l0wCBc/2dds4As+2rbcgWsMR49m2ZVf2XSGYiZ7Q6NmF1/Fsm42C5eQIPNtldNySBIKZ2T7c0NmVQ6EVd9xcBZbAs20r74FdB4KZxV4jePZrhWBmtNfI5f0RfCHMtXf26bYcOQI6rb7iqejkyodQa7LXSLCcHGGuvcfzFMiVQ8aoNLuDvpIrR8doy/YaqbArh1or0gbNsetANBOPuevktx16rdEec5ciu3KEM+05b5VdBgRbR5CIJhDNtFvuk2cXjmhmUuzbEG31gn2DaGtsin2DamvOin0bsq1BsW9oGG1dsW8QbnVFsW9DuTUq9m1ItzrFvkHXKFfFvg3x1qTYt6He6hX7BvlW1xT7Bv1W22wV+4a4XpDsW4t2kWTfmm3/RbJviOtFyb4hsOck+9bLEapk3yDkmhT7NpRcvWLf0DJam2Df0DHas2LfhphrUOwb1FyD5L9BmyQp/tuQc5X8t6HnKvlvaBjtkv82FF0l/21Iukr+G6RJkuS/QZqkSP7bUHWV/De0jHbJf4Ouq5f8tyHsKvlvz8PZ26Hr7XDWXkqgUYK1H85Qy/Wba7s+01HnuEF3VlqQciLBQaEeImMwbC9LeSGWRD0HeGjUQ2UMdo0jNpF6kthU6jkiQKYeSmOVfY2w6dSTBITq0c3r2M8qbkr1JAGpevusWmLfVdy06jkiQawe9wOWjSM2tXqS2OTqOSJDr96IlNnXyJtgPUksxXoOKJtkPUlsmvUksYnWk8SmWs8RdcnWk8CmW08Sm3A9R7RNuZ4kNul6klja9RzQN/F6ktjU60lik6+nCAQWbh1SktgE7EliU7DnCL9J2JPEpmFPEpuIPUeETcWeJDYZe5LYdOw5Im5C9iSxKdmTRLklSUmgL01SjkhhiZKSRFmqpCTRlywpR+Rw65KSQF7CpCTRljIpR6ABzivmDW0htzYpSbRbnJQDql/qpCSBrIZi3hBXqJL3hrhCj5J5a7b3S94b2kJClcxbt81f8t4QVyheMm8d+n+SeevQ/1PMG9pCvOS9oS0kSN4bZsSkopg3BBaK5L0hsNAU7w1xhS55b2gL8ZL3hraQKHlvmBSTJO8NgYWieG+IKzTJe0NcoUveG9pCvOS9oS0kSt4bxsVkxXtDWKFI3hvCCk3y3p5hhbdwwUtYIbiX9hE8wntbCORTf/O+kIcC8a2ujB9ckylnh8jXjz47OL5dr291adC8reMz0aHnhm6GWlgiLREakoCeGz4DzwG46NagIQnouRlRU2KJskRoSAJ6bmhmqOy78tBzQzvK+7fqNfxya9CQBPTcGr4/7MIh5npp0JBEPmod8tKNJdrSoOEIiLnilpfAflYxLw0akjBrjlseMvuuIOaKVpHc2dcww3lr0JBEhVQB5NrZlUPN9eoOIomEkgi7H4V8yhF+uTVoOAJqrld3EEnEpUFDEmVp0HAE5FzP7iASiEuDhiTK0qAhib40aDgCcq5ndxAJlKVBQxJ9adBwBNRcr+4gkshLg4Yk2tKgoQjEX24NGpLIS4OGJNrSoOEIqLle3UEkkZYGDUnUpUHDEcEtDRqSsN0/KfYN8ZdwaQhyRHRHbIp9Q/wlXxqCJGHbf1DsGwIwrSv2DVX3rij2DQGYIPlvCMAkJ9g3xF+y5L4hAFOTYt8QgOmS/4aie9cE+4b4S5DcN8RfUlDsGwIwuSv2DQGYKvlvCMD0KNm3Zru/5L8hABOqZN/sHJEk/w0BmLu7myTi6u4mibK6uykCVfd3dzdJxNXdTRJldXeTRF/d3Rzhw+ruJom8urtJoq/ubo6wk0SU/DdEYJLkvyECUxT/DQGYJvlviMB0yX9D1b2X/DdEYKLivyEAkyX/DQGYIvlviMA0yX9D1b2T/LdHBOY1svJtBKaNsoVPlz1mWaWzW/kOmNQZSHH5m1+WUQp29um8/dpP7zejEmxMIMocUFAINortIwmMOjBUHnkSQB0YXiGQa6goA8MaErkGqEmhD6+WQAJt9VdTQBvfAkTBOgmk1V3NASgBwxo6+ZY6KsCwhsoCabZW+0auoY/6L/sLR67BY64u+rFaIL9M3sXRWd1LYoFyN1ZzgB/VXw4fFEvE1VhNEpCywCrol4CSBVZBfsPt72ZbtaNfIpTZV90auwpoSF191RyB6bp4tEMjbYGPefVVkwSELBSL5jFh92qsJgkIWRiRE/uuUluN1RyBKbtXYzVJ2BaKe57pb0muq7GaIzBotymGDZ1nd2M1SdgBOiimzWPY7tVYTRJ2gMY9T4F9V7WsxmqS6KuxmiMwcBf3PDn2NVq5G6tJwDZ8L5k3TOVsknnDzN2smLfeVl81RQQM3cUdj458UwFTd2HXS6Jfo63Gao7wtu07xb4FTN6VHLbgbeOXPLYQ/OqsJgk7QDfFvgVM382KfTMHd3VWk0RE86Vg3wIm8Ep+W0gO3ZeCfTNzsDqrScIO0JLrFlJfndUckW3/94p9CzmvzmqS6KuzmiPs8HB3VpNEvjurSaCtzmqOqH51VpNERvPlFI4gCTtAV8nA2Qkinro4JGC7/6WLQxJ2gJb8N4z5aZcuDknY7i/5b8FOEf7UxaEAOygfUXLfIpLnly4OSdjmL7lvkClqkvuGxlZ36eKQhG3+kvuGUajx0sXhCDtIZMl9wyjUeunikEQ7muS+obPVXbo4JGHbv+S+jVGokvuGUai5KuYNo1Cr4r6NSaheMW/obHWS+4ZRqCEr5g2jUJPkv2EUau6CecMk1FoU8waVoi65b2MUqlPMG0ahavE2jEJNSTFvyJ1L3hskXu+5zSSR19xmkuhrbjNH2DHinttMElmMumEU6q1qSBFjFKrkvUGn6FY1JIm2VA05Aslzr5g3jEJNkveGUahF8t6g8dok7w06RVLwDY2tXvLeMApVC76NUaiS9waN1yJ5b9B4bYr3NiahSt4b+lq16BvkV1da9I34DiKpnzbncRx8u3blJ+zbN0o3UTP9FNx2eyHn41q0Hzx/EvK8bkwhffwNpw70Et06+03T+xo+R548pp0gkeBZIh0z8V8aS2Dkp/1FYV/CdqUM2deEXBpHYOKnQ28Au3AMmp2Re/ZdNWeOPUokK7vwFjHuxG4HUpscUY5TL+NXvoRv0S0Uo/cYOkl0TPzEwiu78o6Jn7gfjV15x8RPfIsduXKEtwLuOS4iiYx5J1g6uXKEt6ZjnwtJ2LZUcc9zjSyRDu1NeUz8hNn4NbvzFt1CO4HLiX0NTFrCLY+FXXjAxE/cjsYuPGLkJ3ttxKATe5Q8+YCHWA/Ma+EtG+JaZ4qU/JojrpWCYtkQ15JsCMJatSqWDWGts6mTXTiGLDm4B5G9HbkfoSqWDWGtNK9hV16yOfWKZUNcC5PU3PBzKKL6Y+bBEvs1r5j1qVg2xLXmJlDZh69h1qdk2RpmfcJfKOwdxJQlJ1k2dIWgxMx1dh0dUuWKZeuY9alYNgS2zrlopNVBYGumrlnLhsBWC6iTz+QjGL1jL8SMT7smJvbteyiUK2YN8aw8lB0r+/bRDSI5bIhnNcVhg1Cb832MGCQJNINIDhvCWfPUw5o1hLOy5LAhnHU+qew6EiTKFbMGpbYh10mbNcSzglPMGuJZUXLYEM8yd0Iwa4hnVclhQ0DrnFzF3sECiXLFrCGghUIy3qwhoBUVhw3xrCw5bAhonY2vrF1otutLDhuE2mb7D23W7OQQ2BthZ4YUJMuGPhDJYUMoawYWWcuGUFaXHDZItHnFYUMka8rlspYNkawkOWyIZBXJYUMkq0oOGyJZXXLYoNHmJYcNoawgOWwIZSXJYUMoq0gOG0JZVXLYEMrqksOGWJaXHDbEsqLksM1Y1ql5+GvxqddYVvysteafsax+eDqWdV67xbLOn7zEsq5rw9cPb5/MP8xfOGbWhW8jBpAgv+RI397y5xgDJniX6W6RBCZ4X3KkJJFQ0IRYeWMJHOdPuT6OKDjOQ/7Svd+s1xBcgqNZE/0aOM6fcn0cUXGcx/2o7MptI+2XHClJ2PZ+Pmkk0RxKmqYcKUlElDShfLawBA71pxwpSeBUD/lE9qPqONRD/zKwL9ELmqenGilJdDRP47kkF44QXLrkSEki32ryJNCWmjxH2HbaccdzIJ/y4POSkyeJtuTkOSLgTI/nib0+LTF5kqjonBasGwJwt5g8SSSUMwnWDWG4W0yeI5JDOZNg3RCGK0WxbgjD3WLyHJHdMfYi2rphcMItJk8SZYnJk0RfYvIcgd6US0yeJPISkyeJvsTkOQLtKZeYPEnkJSZPEu0Wk+eA5peYPEmkJSZPEm2JyXNE97eYPAmkJSZPEnWJyVMEwnC3mDxJxCUmTxJ1iclzhHdLTJ4k4hKTJ4myxORJoi8xeY4IYYnJk0RZYvIk0ZeYPEfEsMTkScJO+F2xbwjIVcl7Q0DuFpMnibzE5EmibQcrish+icmTRFpi8iRRbzF5DihuicmTRFpi8iRRl5g8R9gx4hKTJ4G4dZNyRFli8iTRl5g8RyCTL/lviMfdYvIk0ZeYPEfYMeIWkyeJvMTkSaItMXmKwOCEW0yeJPISkyeJhoomwb4hLFck/w1huSb5b1A4dJL/htEJXvLfEJaLkv+GsFyW/DeE5YrkvyEs1yT/DRKHTvHfMDkhSP4bonJR8t8QlcuS//aMyr0RvxaVS5+lCp/yg3Y4m/O6b6FBjCEYowgefz8+k8dPHiKD6du4gINhmlVJr+/icyQBaqII5Vc8CBQBNdE7K8sR0BLHQlBvwhHs24eKaLmKTTgib1lZjoA9uopNKAIqondWliPSyspyACTE3VlsQhFQEb2zshwBCXGnvCuoiN5ZWYqAjOhdRscRccvKcgTM0VVGRxEFEuLuLKPjiLhlZTkCEuLuLKPjiL5lZSnCDuvtrljjiLJlZTnCjiN3GR1FtLCyshyQt6wsR0BD3J1ldBTR/ZaV5QhoiEtmrbeRlWWuDc7OIV6xbMGlLSvLEXYOyYpls4diy8pyRFpZWQ6Aerhi2UJwW1aWI6AeLr0rO6avrCxH2EEkKZYNlZMrK8sR5QhNsWwhQj1csWwhhS0ryxFQD1csGy5aWVmKyLbxS0YEHcErK8sRkA93Z70JRUAuKSlvqkA+XLFswY7p/S6jo4gK+XDFsoVqG/9dRscRtvGTlzYIh7uz3IQj4tb5wBG249+FdBTR3db5wBFxdT5wgG34dyEdR/St84Ehop3P211IxxFl63zgCNvw57NKriPakSFKLlu0I0O+C+k4wnb8u5COIux83iSXDbWT7i6k44i2dT5QhJ0d4l1IxxFp63zgCOjMK4Yt2gFd8iNRO+kklw29wCEqhs2evq3zgSPikati2CJGpLM3AsPRg2LZUDXpJJcNbcDhLqTjiL51PlAEpqMrzlGs+ahFsWwRw9Ellw1Vk6vzgSPy1vnAEW3rfKAIDEeXXLbY09b5wBF163xgCNROesllQxvw6nzgiLp1PlAEhqMnxbIlDEeXXLbky9b5QBEYjq64bOgCjpLLluzskCSXzZ5XMcaWMBxdctlSpH913zofKAJD0SWHLWEouuSwJbtIi7E9G4bfCBROfvcSzi3vE2W2aTJzgsxzriw+MlyA/7tnvzyJ+P1XqAhe/b9jDO03lwS7JLf7CszhCu4xfubxC797/ibvP4Ug0Ew7N6nXhb0ELdBM68/UFUNAJ9YhDD1Kjzgimkvpz9QVR5QjVn+WHnFEN5cynKVHFOHRTBvO1BVHoJk2nKVHHIFmWtyPzr6rgGba6VOyBMpv/Zm64giU3/qzsJIiIspv/Zm64giU3/pZWMkBqL4NZ2ElRSRU34Yzc8URqL4NZ2ElR6D6du4HJJFRfetnYSUHoPjWn5krjkDxbZiZeQpAwBs3fGTmOQK1t+HMzHMEam/9mZnnCNTehjMzTxEVxbf+zMxzBIpvJfOGgLfd8ZmZp4iG4lvJvDUU39rK+acDEW885CMzTxGIeBfJvHVU3/ozM88RqL5VzBvmvyQz7DMzzxGov1XMG+rTmj3lMzNPEYh7N8W8Yf6Lh2EfyWOOQP2tPzPzFIHAd1fsG+bvFnvOG2usUJ7WomLeMP4Fg9tnZp4jUH6r2DeMf4lJsG+Y/pK9Yt8wfrc0xb6hOq1lxb5h+osLin3D+BffFfuG8S9Rct8w/iVHxb5h/m6V3DeUp7Wq2DfMf3FJsW+Y/xIk9w3zX2JT7Bvmv2TJfcMA3hok+4bwt+S+Yf6LeUmKfeuov5XsW0f9rWTfEP+ukn3rqL9V7Bvq07oX7BvGvzjJfcP4l5AV+4bxL0ny3zD+JSv+G6rTquS/oTqtS/4bpr94yX/D9Jcg+W8Y/5Ik/w3jX4rkv6E6rUr+G8rTuuS/Yf6Ll/w3zH8Jkv/2LE97I97iGW34yJ/CGWkPZ2Dy/AhjfB5imz9d8+Me5vjmxeyMMKbTOljHl5f9tCZoAtzTzRgAkgDXbFrq+riNpqWAsk2mpQCzWVBXioFcAuQAMPHIky8AMQCMNeuZXAK0ABAqq5V8BQgC3ENpKSBvM2kpoG0jaRnAQw7gHmnGEXkbScsRZq6QEQyOXIaHHsAppcUSZq6QlWiRXQf0AHC/S2bXAT2AeyQtR6RtJC1H1G0kLUVAD+AeacYREY2VnTUe3k4FayAtR/RtIC1FQA0gXwO3OaJsE2k5otuxTjBqds7cBtJyBEpyFbPmc98m0lJECeiqPAduc4SdVdI5cJsD2jaQliLsUFCaYtt8TdtAWo5Aba5k3TAUskvWraE2V7JudihYA2kpwg4F1V0DtznCjir1GrjNEXUbSMsQyC4Er1g3ZBfWQFqOQG2uYt2QXVgDaSnCTgWt89YNw+XXOFqO6Ns4WooItvM7xboht5Aljw25haq4bEgtdMlnw2x5JzltyC2sebQUkTx6KgXrhtxC7oJ1Q2phjaOliGw7v+S5YbS8l1w35BZWGpUiitvG0XJE3MbRckTZxtFyRN/G0VKEHR7WOFqOKNs4Wo7o2zhaimhhG0fLEXkbR8sRbRtHSxF2hljjaDkib+NoOaJt42gZAsmFexwtB6RtHC1H1G0cLUV4v42j5Yi0xtFyQN3G0VJEcNs4Wo6I2zhajqjbOFqKsDOE+THnuG2OQJWuYt+QW8hBsW9ILhTJe0NyoRXFvmG0vJO8NyQXglPsG5ILsSr2DcmFLHlvSC5Ur9g3JBea5L1huLzLin1DciFI3huSC7Er9g3JhSz5b0guVMl/Q3LB7p5g31oSA27ILZhjoti37sSYG3ILuSn2raNKV7Jvvc+oG23fMFp+xN1o+4bcQpD8N+QWUlTsG3ILWugNuYUq+W9ILmixN4yW95L/huRCkPw3JBeS5L8huVAk/w3JhSr5b0gudMl/w2x5LfaG5EKU/DckF7TY27NY8o1ApeHL8Pf2Wbxy1qsjSDoSB23JRva7WPIskvxUrwgtL+Aej9DL7/70xnOc3agdJyAKKAeSH7bSSAL9yOXqsWeAEmYvqi/vn89nIG+tqBTQt05UBrAbin2LujRvfagU0LY2VAaAeBfucfAskOyUi3uGGWIU0A6UkfeWyDVAuQv3uBTyLfW0taBSQN06UBkA0+VXBypHxK0DlSPqgYoJFypLQLgLz7aDLeKIOHWBu2PX4YvZbbQBsN9ZqNOuDlSKgHDX3c7AEWXrQOWIvnWgUgSEu+rVW88ReXWgckDbOlApArpdY1JVYl8Dul13OwNHNDvhKhYN+r/svYZgV1FM2nP2FkU8Zm9xxD57iyO22VsU8Ji9xRH77C2O2GdvUcRj9hZH7LO3OGKfvcUR++wtinjM3uKIffYWR+yztxjiOXuLI/bZWxyxz96iiMfsLY7YZm9xwD57iyIes7c4Yp+9xRH77C2KOGdvcdfus7c4Yp+9RRGP2Vscsc/e4oht9hYH7LO3KOIxe4sj9tlbHLHP3qKIx+wtjthnb3HEPnuLIh6ztzhin73FEfvsLYp4zN7iiH32Fkfss7co4jF7iyO22VscsM/eYojn7C2O2GdvccQ+e4siMHuLu3CfvcUR++wtjthnb1HEY/YWR2yztzhgn71FEY/ZWxyxz97iiH32FkU8Zm9xxD57iyP22VsU8Zi9xRH77C2O2GdvUcRj9hZH7LO3OGKfvUURj9lbHLHN3uKAffYWR+yztyjiMXuLI/bZWxzR6eDac/YWR2QxvPacvcUQz9lbHLHN3uKAffYWRTxmb3HEPnuLI6oYY3vO3uKIffYWR+yztyjiMXuLI/bZWxyxz97iiC7G2J6ztziiiDG2Z6bjjfgO37lPO/PU83q5dlP5zUf/fyQ7nheNAV3nBK151afgbNgOd28v/jmcW7bDHUf0KS80YvEUgeamOxjPEWhuuqLxHNGGvtAMx1MEuptuY8ERaBe4TBhHtO10RxGju+mKW3FE2k53HIHupituRRHobrolITkibac7jkC7gDvjVhQBca/bWHAETNjlcXBE2U53HAETdsWtKKLEdbrjgLKd7jgC/QLujFtRRN01vDli1/DmCPbNtF3DmyN2DW+O2DW8KaLvGt4csWl4c8Cu4c0QEAVepzuO2DW8OWLX8KYIv2t4c8Su4c0Ru4Y3RYRdw5sjdg1vjtg1vDli1/CmiLhreHPEruHNEbuGN0WkTcObA3YNb47YNbwpIu8a3hyxa3hzxNTwpq4tfjvdcUTaTnccUbfTHUXUXcObIzYNbw6o2+mOItqu4c0RcTvdccSu4c0RfTvdUUTfNbw5omynO47o2+mOISALXCSHzQzadrrjiF3DmyJ82E53HLFreHPEruFNEWHT8OaAXcObI3YNb4qIu4Y3R+wa3hwxNLypS9Ou4c0Ru4Y3R+wa3hSRdw1vjtg0vDlg1/DmiF3DmyLKruHNEbuGN0fsGt4UUXcNb47YNbw5Ytfwpoi2a3hzxK7hzRG7hjdF9F3DmyPSVkHBEbuGN0PYrTgkPxKiwE5y2SAKvDS8KcLvGt4csWt4c8TU8Oau3TW8KSJEMcgGPeAguWzQA06SywY9YOnYl+Ku4c0RTYyxQRfYSy4bdIG1GBt0gVcFBUU8AsC/EtR9CwDD4/n2Wv8MANdtaBvkenFHfvj2b9la+N5sC50xmNfXfonmBkjxTbERksi2hYYpNkIS7YgIAIdf+UReorne9tDhjXaWSNDim+34JFFtDw2z4YEjzO1zyHCGwq4DiZxRh17ZdUA0BZXMrbPriO7IuOdoyCeJaHtonB1dJFGONrYSTwLm/blpjipLREjxzYZ8kihHxC1HRxdJdEjxzYZ8jsjhqLjllb3jUE3BHUdDF0n0w+HkhYZ8jjDvL+COo6GLJDKU+KbcCEnYRXjK0dDFEdVDiW/KjZBEOjpuORq6SKJBim/KjXCEeX8hxyk3QhLJNtI4G7pIwk5FXbJvkE0pkn3rEVp8in0z7887xb4N2RTcc3LdEE1JuONoVyWJchTYdbSrkkQ/alOsG0RTelasG2RTfBCs21BN6Yp1G6opRbFuUE0pUbFuUE1pTrFuQzalCtYNqik+KdYNqinRK9ZtqKY0xbpBNaVkxbpBNqUFxboN2ZSuWLchm1IU6wbZlAi7jnZVjoCkI245fwchm1IV6wbZlGZP+WhX5Yhqm7/kvQ3ZFLvno12VJGzzl7w3yKZke8pHOz5HQDalS/YNsilFsm/Ndn97zBttdLtt/pLzNlRTzKyPdnySaJiDIdg3qKZUu+WeBxLGYAjmDRc52HW043OEnSICnnK045NEOqLkvQ3ZFHvKRzs+RwTb+yXvDbIptuh5+iQJiKQq9g2yKcEs+2jHJwnopCr2bcimNMW+QTalZsW+QTalS97bkE3pin0bsimS9wbZlBQV+wbZlCJ5b0M2pSr2DbIpXfLfIJviJf9tyKY0wb5BNSVJ7htUU2xXFuzbUE2R/LehmlIU+9ZQ/yTZt4b6J8m+QTWlSvYNo50k/w2yKc1L9g2yKZL/BtkUnxX7BtmUKPlvQzalK/ZtyKZI/htkU5rkvyGU7CT/bcimSP4bZFOi5L9BNkWLvg3ZFMl/g2yKFn1DLNlJ/tuQTZH8tyGbIvlvkE3Jiv/2CCW/Em+h5Dbchm8vDT88Isn2TFxVwqNaoLo1AM5A9+PXD1+vMXG+fvsSfh4+Ruj45cU+rQR10HfkmAKqHT2uwDEDmH1rd9yYAtJ28KCAaueOK6rCAJDYWOcOjojj3DGjxhxR7NxxRY05otu544oaU4SP49zRzWtnibIdPDii28HjjKtQgBm3de7giIz5e2dchSPadvCgiBgwf++Mq3CEPeNX1JgD2nbuoAizbfmOGnNE2s4dHFHt3HHFVSgi++3cwREJ8/fOuApH1O3cQRGIktxRY46Idu64osYcUbZzB0UgStIV6waljXXu4IiCCXyKfat9O3dQRAuYwDeixtz1eTt1cETfTh0UgSDJHTXmiLwdOzii2bFDsG6ozF6nDo5IGL8nWDfIbKxjB0V4j/F7gnWDzEaqgnVDYfY6dVCEXdS8Yt1QmL1OHRxRMX1PsG6Q2VinDo6ImL4nWDcUZq9TB0d0jN8TrBvENlCPzls3iG2sUwdH9C3nTxE5bKcOjshbzp8j2nbqoIgStlMHR+Tt1MERbTt1UET169TBAWlL+XNExfi9M6pCEXaCcJL3hlbKcEWNOaBuKX+KsDNEvqPGHGF7/x015oiy5fwZAmIb7o4ac0Tccv4cAdXKK6rCEX3L+VMExl/fUWOOyFvOnyOgXHlFVSgC46/vqDFH5C3nzxE4uV9RFYrA+GvJe0N9dr+jxhzRtpw/RWD+dVXsG2Q3kuS/oUy7SP4byrRrE+wbqrS75L5BdcMHxb5BdSNI/htUN1IR7BuqtIvkvqFKuznFvqFKu1fFvkF1w0v+G1Q3opfsG+ZfS/4bqrRLluxba1vWnyIw/7pL9g3zryX/DdobK+vPENDeWFl/jkhb1p8j6pb1pwg7SGjBN4hvrKw/R1Qx+gbxjSz5byjWLpL/hmLtJvlvEN9wiv8G7Q0t+AbtjSj5b9De0KJvKNauiv+GWm0t+JYw/1ry3xBgv0cJvRIIsJdJ/emnL//85ZcThub1R8FQb3tK/u3n7eduFFa3Tz+FzKH9bPw3/v8P4wd/HU2/s1Xx7Ufum/+cF7jrD//18a9f/vuL+/inL3/+i/303+3n+eN/vszX+ObX/Iu9/X0B86/Fd2sumevl2/902x+Vd7jheHfu4z+/fPfTlz/+aJ+pdx8//cdm+Y44ttPWP2A7cJucfZPO2zQmxo5/Xm8VysRyLH/fNwb/+78FuVPsCmVuZHN0cmVhbQplbmRvYmoKMzE4IDAgb2JqCjE0NDUzCmVuZG9iagozMTkgMCBvYmoKWwoyMzcgMCBSCjIzOCAwIFIKMjQwIDAgUgoyNDEgMCBSCjI0MyAwIFIKMjQ0IDAgUgoyNDYgMCBSCjI0NyAwIFIKMjQ5IDAgUgoyNTAgMCBSCjI1MiAwIFIKMjUzIDAgUgoyNTUgMCBSCjI1NiAwIFIKMjU4IDAgUgoyNTkgMCBSCjI2MSAwIFIKMjYyIDAgUgoyNjQgMCBSCjI2NSAwIFIKMjY3IDAgUgoyNjggMCBSCjI3MCAwIFIKMjcxIDAgUgoyNzMgMCBSCjI3NCAwIFIKMjc2IDAgUgoyNzcgMCBSCjI3OSAwIFIKMjgwIDAgUgoyODIgMCBSCjI4MyAwIFIKMjg1IDAgUgoyODYgMCBSCjI4OCAwIFIKMjg5IDAgUgoyOTEgMCBSCjI5MiAwIFIKMjk0IDAgUgoyOTUgMCBSCjI5NyAwIFIKMjk4IDAgUgozMDAgMCBSCjMwMSAwIFIKMzAzIDAgUgozMDQgMCBSCjMwNiAwIFIKMzA3IDAgUgozMDkgMCBSCjMxMCAwIFIKMzEyIDAgUgozMTMgMCBSCjMxNSAwIFIKMzE2IDAgUgpdCmVuZG9iagozMjAgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDE0IDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQW5ub3RzIDMxOSAwIFIKICAvQ29udGVudHMgMzE3IDAgUgo+PgplbmRvYmoKMzIxIDAgb2JqCjw8IC9MZW5ndGggMzIyIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzdWM1uHDcMvs9T6AWiiJQ0GgGGgXV2t2hvRQ30EOTUou0hbuFTX7/6o0RpteO1k4PRGJvRUCRF8qMojp4XECr8fYgP51H89rQ8FxoIh0KvPQnsKrSSm12VgjCVJRU9AiE+4v8flEQrviYJPlb0zCRFg7/Er8vfixI/LJ+/BOrvgW7Fv0tWR4K/LD8Pxqh3Zx+3UAO+QwufF2fymrhK8NZ7LzYU6CRmkz7++ITi+E9yJrFjzIUnYY2Kg69lEPWlqToIz2jD82KsyivEwQZiRVJsSHGXZy6lnhJ/Lg+Py8czrCJE7vGPlp6bACU1GBWipsXjk/h8F0Zb+MU4+vxEFaeV0qf8hFOZOwRaFMX8nvgwz5NM5T3mZ+SnMZzvv4jHn6JhNtgxGKZRem+833w1zGAWqFwwZUuLR3sPZRjWUy784tOWdyjvJs8lfwMNXeONLGDbnGZy6JucxjxPc1EmjV3Wl3Tesp7N80mXr7GZgGY36RJo7hpmcL4Ns0insS4+JHrBDM9Z122YbSB1BGNdzR5mE7b/P2agnATQIVMNXEXttIMaFKQODLVDk0m8BakUwW68hxqgly7tIXB7sM34svp7sWnpxN1L+DW+t+HYy8/x7HkyrozW4fsKezqcB9kxBjpW01IDzb0IRfqueOPn0QDyGLIUrYwPA1+0Yu1peMg6Ez3KnYr8MaORLC7WJ16GCmIZu+L9cYK6gUvUKUrFjw9Wfbsx8OmK0ip0ZLkRGV2PRxUgQBrh0308C++yLJ7vQ6+Q6Hbmw5btjurVQ95YCHmM+qWlEvjR+61Arhmktnnbe3hseFMWt8lDcflYbCItndG0F2bSQxKm0E2AtvoCaG5YKjI1AYtmm3+6lG8ouEevU3BfLovOSxvPMmevH2aHG8vioY2xHIDER6Uw8tPBpmGvLKLC2MYFyzTulcUZX00LsE5utxTGxglUbigPKZYr26xDiRzWOpdGi2bXwl12JBW6fS1xfUqrVMooc01WULddk/gGr996IPQarh0JPRcdCoxaj4UJvmAu8f1ubQFqL33MfzAraU9NF8t/bdXtrQHtgdJs007VJeqpLTip1pDb3T2worTRd8D9PTDho2yolfGFXKgl9Y2ZwOWv5QHnoSyotKE1uNmeSWswHg81Bqa3jer5GAOgvTY5Rzs+N1Z3VT++mBWbelMt4JHJJ/MEeWcukE96hnPvoooxr8FJnezXzLYdu4g/+ekY4mwu+VmQ6eg2jgXtMlVwG9qKzipgB/OxecPxrrxIrQXFIHEbWjPV9K0hRdHYXVuVXNgyHyGYdHHPTqrrrzo9u3lSuUqncbUSbusl1hTnsitah8EtKV0V+8hKuVd2T4oTwzp5xnYjdR+JXr1I2iafiC1TytOq2kHsY7lXpzWg1PHzzer9On1rr+JVvSwB1qsgfWxHno2N/e5liTb5GsTCbp2e8dVTG7X0vIVNUBAkrDBWRvqcoep30UsQ47gZm4boIeYI4GgHmrbBmqoLa19qMarkWzsMruBqg8GZan9RicPRcrtNk7NlJxTsy0VHDGKmP+Rn3GIIk4ww65WM+F7VjO02HmlWdXMlazlUz4yir6sB/f4/lkpSbaIo8krA5Sm61SbI6UknLF38pKrAbfCF99R00hdOvUjSIV622mZYTrGVqoesn1bAokKrAEvksvtPj+MV72pQrqEkdLfhSvhNbtsFNV1pT+7CEVdp0q3gjKSG19dckA9qxpv8PP1Ka8FK5dfxVbHh667wq3i0rl2WX5RZkLA5H/6F4wGCkE1A1k0TrweOU5jQgIzHxrsGJf79B4T9Q/kKZW5kc3RyZWFtCmVuZG9iagozMjIgMCBvYmoKMTM1OAplbmRvYmoKMzIzIDAgb2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0NvbnRlbnRzIDMyMSAwIFIKPj4KZW5kb2JqCjMyNCAwIG9iago8PAogIC9UeXBlIC9Gb250RGVzY3JpcHRvcgogIC9Gb250TmFtZSAvRUFBQUFBK0RlamFWdVNhbnMtQm9sZAogIC9Gb250QkJveCBbLTEwNjkgLTQxNSAxOTc1IDExNzRdCiAgL0ZsYWdzIDMzCiAgL0NhcEhlaWdodCA3MjkKICAvQXNjZW50IDExNzQKICAvRGVzY2VudCAtNDE1CiAgL0l0YWxpY0FuZ2xlIDAKICAvU3RlbVYgMAogIC9NaXNzaW5nV2lkdGggNTAwCiAgL0ZvbnRGaWxlMiAzMjUgMCBSCiAgL0NJRFNldCAzMjYgMCBSCj4+CmVuZG9iagozMjUgMCBvYmoKPDwKICAvTGVuZ3RoMSAyOTk2MAogIC9MZW5ndGggMzI3IDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nO29C3wU1RUwfu/cmdnZ2XeSzfsxCSwhEpIQCAiIbCAhBEISQ0Cemk2yIcEkG7MbEAGBWh+oFKyCgFgeUkRMMQL1gYiosfVFwQpan2iFatuI1o9aDcnwnXtnNtnwsFbt4///fRln5s6de88973Pu2aFFGCFkRssRQe6SqZnZX0669wGEMi6H3ulVCwLKlU8NkaD9GkJceU3TvIbZ3HVfIEQU6GudV7+oxv63t6YjxMP7tPpar6f6m5+/+FuYvwbeD6+FDuujhjZ4fgme+9c2BG4oqUqwwnMHPHfV+6o8iD9dC/BgPkYNnhuaxJ+KgxHK/BTeK42eBm9z4v0nEcoCHMbkNPn8gXMr0CyEGtz0fVOzt2mJZ9sn8FyBkOEhXIOH4hp0AP0ZoI1B21AnSUIcHDXQS++tuBx1wPtKGLmCvwWXw72B3444eL+MPwwwOTwUVaLroeXit+MDaD86BbNX4FXCRGEWHY3oH4X1lfAC/kIYyY1EM/gGfgy/h1/B74ERLXwNvwK1wXUk9zq/iV/MH+EXoxkUM1xET4oH2ogn4X5oI7cR5+EYnMcdRs8BzjV4LN6IRwuvCq+i4+g4LoWRrWghJ+Pf4i9xJp6B98Csr9BXOAmecrgcfBp/AhivR6+TGYKMNqLVOAyeDqDDgPcp9CXy8wAVrRaOc4OE4+gF9BF6C/oRmo85uCaQwcJxOL5AO9F84MxHmBOOixGGZL6G+xp14Ju5HdzXuB/m4AjDScDNa8hhvoL/Lb8S3gJ3MEeGkiQyDq5z6AjhON4IWHwk1uBFMI4ei2GdDu4F7kmg8SB6H+iC1bk53GJuI3of78b7AWOEbsG7+QpDJR+HNoob+RnoNOUNep07DPwoZfy4E90pDkFf8SL6ghThCn4n5RhyCc9hhJMNk8QwtA5PMtwMlCAyAi1GEfD2ZYyE57QDRkliAlrHp5JfAO4ctzTIN7wIHeZGkkq0iR334CfRPehJ5EcAggx4wiAKPOEwSlfsbZyrsLrNfdUM5aWZyYPTz3tU7AalDZW2WRYpT547VzqDjxNmtgnxbcQltfGufh9d6uVHg9Mnl85QnsQD8/N0sPkVedA5dQY06RN0Q39+HntHV20TXPBfYUWbUlWr3GG/o9+oO+zeUYOR9lekn0tAo3g4wRa5/nDuA87cC7YKtsODPQrwXoR3ItiXAfokeDZOREgehpDpLnAKMNdih7MVTrBHK3DU2o6Q7QY4uxCyz4DzAEIOmOeA/jDgfHgTnOAfImC+E3yE80k44TkK3kXnwXkIoZiJ+rkFoVhYKw7O+DMIJcbDCfCS6uH8A0LJpQj1Axz6fQiuA/B2wTjX1wgNAFxToT8V1k2FeQPBf6RlwVlBLV1dx9cI28GbGVDSAcTjAcAIEQ94HEvCSo5Hme3HOoYg+7GOYx1Z4Y5khyvZkVzDoy4/ies6pa4zWL/+sllMo1zEyIcPcB9zJwBW2BPcI2gXjxFvP9YO08/AZJjo4wLdd3En1Pc1nwC4iyPByiQUhTLcTnTIuAofipS4SBkJg+0ZKNJIou1dHV0djpHwNwRldgCcPaUxGM/FjqHZw3OGDeiHkxU+KjLMGcEZRD4Nc2Pu6Pjm68+6/47XgbOasrCupqbuBrUNjvn8nq7r/3Lig09xP0/Aq3790MPqP7wBD8VjxrmPhVSwOxPgMdgdLm4NQ1vNr4StjzaOsxWRcc7RGhZAx8kzHfbTWY+PCB8bUxBOAI0U0RkRqaECLt5hR8nsyj23cOnShS1LlrTgZJyvPq2eUD9Qn8IFZPEjW7c+Qk+M1JfUDjhewpfjCDgu13gIuPA5gEsMGuGORa/hY7z1NcsxeauD3xr1imN9rGGcBUWMjrV3tWcHEVLPnLb//XTWvmvjlsVxlDUZuF8QrxEOK+6nIZYdyecU3lOy7qGH1pXf5y7/1dXq6+ouPB1nzniEH6O+l5316AMPPJo9RH03KQmPwE44RiRpOG0B/oh8BeA02h1nIwib3404GrXejveGiRwKt1kcBZwF2QEpEFC2I4yK6mT2mZNMbln7KuKWU7xAe0BKgFZUIqYcA2VKzgHsUgZswbWc1RFZkNG0HNeoG6/6dcPzr+J9XGvTbPWzjNsWxvUb0LqBSzu7ZVvl3NMUn11gf/uARy5U506Lc4YZeQNSREO07V3laD/ySuLe+HADiggzSxZxYoQlbGJSnCXBPsDeNbnNVj7jKZSA3JfP7LqCinSkhuwVV5w8c8VJQH0kHFEjs7DblpSalVqa2pS6PHVN6qOphrn4SkA60glIX4mp3qWIBmizBu1MdrL3/P68p5uee0Vdj/GE4hofp653l81rgsfacY/MC+whO2obTn/cPZ2baImPXXjdzs3d73AT91/38APdb/MV26+taNLsguqjzFOPHIfGu5OR8w/Y+Jp0TNhsxm9Fbw57xbw+Ps7JSU4LyuMsttHxjO/tjBSqECeZRpwGzmcmjE2gGuFMZiwPUQYFCRoRgtz1tGXTXdd/tnSZukw9qj6KJ+MULOEx6pqFFbU/sXNDa266aXye2pE1BOfgKIhZo9Tn76lZ2tKo6Qb4OiEMcI1COe5oCwRP+d2wo85X7HutGHSiwGGx2OzUfLLPdFBGn+zVipjlMUxbk3OAjamazvZyUghT11vszomgE+pGXHPV443Pv8zt6p7uw/ff3RjbL/VXGxjPmEZQPOLAV28XfoHCIdWJtQqSjWx14L3SViRLJiNn5MEzh1nLIzQlmNxmL589uc1BL2Hls0EnrFQnrmjvuqK9PYy5mvaOM1dQhaDKED0WjQ2nKQyx2W2OUq6UlDoruApinIso/nBERI6GRsqAHEc/x1AHNxRfr66+cs6T6uFjj+3ZI/xCff4cUl3FI86hx47hdyGyXhmUM/8i8E4GTX7AfZlRRDFJJvT7qCPiZutRh/Ja0qvxm/uB0ZtRvygSbTFaTGOSiCViNKhyRztYGkWP2dqZLnADfzr91emRYVSjs9xFmaljlDHJY1OnKFOS5ypzkxuVxuSblJuSm1LvUu5KfkB5IPlXyq+Sn1GeSXZmJ2YljU90J01NLE2qSqxIuiVxedI9iWuStiVuSdqT2JZknxvi58ZgV9Bqc4b1Tx4aNAWQmcJz25qun32V9w5cp943cd+K3W9jG05549af+X8zzf9pABIwC/66aFLelLsb0m7rXrGjZu6r2158Mn5aSUYGdsQnfM54AvrEhYkRLB6lua3i+2gv/yAnYFAtu2TvApnoccBtLDVWGJuMy408+JZkJobkVuo/6MlXnN0iRqjvMd2QQUfnQ5wxoKEAkTuEVvH4chKJLhck+7HJbTLog5VpgUC1gHn6TGBvFt7jNvbCloUK1QE2YheOq++fLeb3MHwBtpjKYMtIdbtRgigYEkRRkBMkWRAFI21zCTzBcEoJhCdyglHmeeKSebRb4leJnGyUDAIPCZNRJCb7sT1JEFfao5hbOnmsA6QJeY3BLn1msAufGbT/aKu3Z2YKdi+PljPl6XKNvAwtw8ukZcaAfIe8WX4WjiNwnJDtYVK8Mcnski4zKuZCfoJQIE00ziAz+enC1WItqYMkYJ5YYQ6gxfhGvkVYLAWMK/lbhVullcYN/DphrbTR+Lj0lPFV9CJ+kXvV8Lx02Pg2ehO/yb1tOC69Y8ykppBMkjE7CD+he8e16lIuDb/KpalLu3fiDa9hu/qFcLxzEOfiyjQ/N0edIFj5RSgeDUST3QPiIbQ4X4s8FrM5LGGr+ajxFcveflvD3kFHyQAzsljdTmWcODotqPtU7092UH9iV/9+GrQefErJZRWXgU9xUf1EOcMQ+JGonGTq71IGpDq0sENCQ/aOSXtaDqtnsPlwy55JuFZ9RD1Q1151zb7Zbds7fEtu8DctWXKwcg4e33kW586p2tHlUL9UP1aScdTwnI3bibh93cbN29eu267nMojlMvHoNnd2XCwXH5MQGRUZnRAVFemKiZTD0W6juNu8KkqODI8m9vgYEfEWA4mMshsNkSaSQH3ksXZwjlE0BFHpn4GcaySliymAJnZ4NTNlT3Q8pEDupLjouJjY2Li42PjhzuGR+c78yOnO6ZGliV6nN7Ii0TYXMyIH4RgO1FfhnRGiIRFHhScTcLbciUV1dYu2qcu4IpyKw1evKVnqfl2teXzE9deQsbPm1cxQV6hfdb8qHP/Nm/ceHBy2bIU6A/ubypg9zQe/VQl+KxW953ZbzJzVNDwxKVEQDZJR4OXhSUmJLtmUmMQ7Wf4S8ZrzWPRmB7/ZBa5sYKJsSoozoKlxZdYIQ2nKlIFUnsc6TlIBjhwZzGj+TjOasCiddCslW78B9ZKJUn+N0WiUjSaT2WQx2oR+seZYS6w12pYuZRgz5AxThjnDkqaMlEYbR8ujTaPMoyyTjZPkSaZJ5omWheaFlv3SfuN+eb9pv3m/xWUVrQarZDVaZYtphGVs2rVpmmsPJlJJmI90RvAhWjRsQCbOgERgOA36Uf43r62pmuwZi8MPql+rnb7Pll73UaBufmHD2M8Pnemqegfyqy+ysobmDMowGftteWTvvn79sH3YsFEjszItUuK2X+5pTdRjKekAvjog94t0WI2iAZFDpnutrxj3GmTRgiR7GI1f4TSJkc4dunxmO/OGYANd7Q7m+PH5YTSKdGTOzbxjLfWK+XuXhl02kGRGOh/7ZXcXX/Fko5cIdF3QXQPNw83od+6hZLhBMnDDMSfRG+GAyXi4LBtdsoEjSCLoOZNglGCDJ8jiEF4egogFRHisQ1fajux2R1SIyko9ngokZyNUcjVGzibZjEmc05AkJRmd8iBuLDeRK+GKDEXy1dxMw0y5lvMZfPJabo20xvgw12Zok2N5zBNkjcQxxG69DLvIKJxDSrCbFEjTpZnGUmstnke80nxjhfUW6Q7jfVI0SDA82Yip74YduSP5AP4LbAmm4z+r96o7z6g71XuE410fkaTOQXxe17vEdfYA80mQe1kh/tjBji93x0VtRUetjq3CUWm99RX8IImARIJzx44zjU7Qsl0WjpgXOgkpeEliRaKW1OhRkiZbIAaibVaYMpEd4GjWg+M5on6F5SOBvdv8ixb5mxctIge4Gd90bKuagwsxgaNwbtfLO7ds2UnPYK6lx8bEJ9CDHIacm7ezaMXCoVAhNAnLBT0cslAoRnzToeVHr8PckfhmmOt4Au3kMOTtPXPp8NcpUvhmdakWL1lME9HN7lSSwEN0SsCcQG+IE2F3mAADXKANz0GEo5rAI4P92L7VKAlxeujqyL6EDmB3OuLsnMK1cbwBSyQKR5NoPkpIkhSpABXgiWQiny9MEq/GM8hqyREUIk6W8c34Lnwnvrn7LTVHOH52D1/cOUiLI8tAZv2E07B/6w+WkxSOWiPF1njzOstae2vKpvj1LrMxNoa4wmNjopL6u+he7qT9dDvzNTRxOv0m5MqhOznd8A3UgpAzQt/TwQaKO+WFvxqvFy+4dmdp6yH7uI2zT+EY9Tdg9e+rz+EWnD/vee6jm/U/7rDaMXjQsweGDFHPvP2FegKvxHW4GT+kAM6VgHOm8AXbc/ZzhxtbbaTVucm2PhpFmqPEyLCI8/ac2E7Vx2GnKOLgNhOuZHfdkiXz5y9ZPB+vUA+p76hvq4ewG1z6AOzmOnD0qVPqp+qpTz/F0eoqtQHfg/04gO9RG6hOfAJ5EQ9yltFAt5Ps5rndwioDhCkpWowlKFrAkI60d7RrWpJ9hpUAkh0CqwE4kr/A5eqDeDZuxOVnO7BMXpyIxYlnc9SvkO5T+I8AtglluSP4Q+JBmnZJh2QsGCHoIWLW4l27ls1BPve43VJqabKQ3oSLHgd4W3czN697A7f97Ls08VL/AucuWkEgdA1hJYu5DqSgUrcrDD1lOyg+FbvK+FS0iAwkLNFsM0bH8bBiojnSaTdExpBktrDmsBwsXR4ZxAESZyNKsadkppSmgBUFw6cjPNjAiRjCQBrWoykJm33NNbOP/zHQEmj5Izdxye3qe+qb3Su4cbB/jqoh95QWT7lKbe/2V1Z5POoiLqb/86v+cEw4fuBIwwamt6fgUgz7aprrxrut3E7IdXeKAuZ4FN4n1w1y5BTNrOnJV6hL1R1grIzX24DXJ0CXotGd7jRE7TUKQ+IBBusSopF1jc3UGraJR49y0U4BWaVIJ46zkhj7e5PbLDSUEBZKuo7RjZljZI+sHSP7hl/NegdwUZdFXhZFwBdHCdFRUVHRKSglKiU6B+VE5USPQ5OECVETom0sHaSet3e3zLYINAfhirm7z77AJRdOWNUy680bf6LeiM047aZXcJx6Csfhj8bdlFe3fEoRnjhocMcbN77xGKNxJeQcp4HGgajIPQg5W8ON6+THLK2isi7psfjW8LZ+m8T1aZHhMeC5YyIH2CNJUkSSYkyEdPFkOw1PQUnbabTUUwxq9kyifQL7IJwzNOiue7Em++97QG1V9/s/ub7++LwNDz704MZtd//sjpvmHrym+cN6CDDJdxBX6nNrP/jE5cJpw0fMr6qp+3r23OnXXJaGYxXl2UM3P6TlvKCzQ0FnOWSBvb2Cky3EgpIJsbgQMRl2C5isMmKzjGJFiTdHWO1dx65op/tQGuePgUYE9wO87k+NNOuGPWc/piHcl+osvMONW48fV+/tns+v715NdneVqX9Wv8B2PInur8DvXAMxxKTFNxESbRva6lxveyXuweijMWRcmDvabLTE2llCqu3aaZpN95c98c0VGs6YlwRnBFvCVCcgQRCNZ/7FixdP2tdyBMvqV0da9k2iCcgnNJI9vHnzw9zxyrnqE2o3HE/MrdwmRmh6nApGvQoewtFV7ni7gM3SVhFvRg9axb0yF25ABqNgseTbTBGa6gZ3bSa2d+/o3bufzO4Cl5kdxjbvwnLDcombi52AbgLWDAk26TR1I6t+U3QFzlZ/p27cs+e1N8WIv47IKz6HuraQCoyKn3iU4lQD/JoDekdrX7FmuxFFQr4TE7mb2HcbN5H1seGDzUgc1Lce125/UfMsWfsy466N03ckwSASxaIL54wIoyUZYc78Py1V71SL8D7csvRP86876v9dR8fv/EevKxtxOd6KvbgGb718hPpqYZ769aefqF/nFfbxrwKKcpu0LW0kQUQERDSR6U7jAF6huc6zxeA0MYRoJMjgc0x4kXuCnGBCJmOCZET0JkPCKUoJBoPIJ9DAnsARkd4g78IIMgCMXLBFRTyPT8gG1sKCAZvMwT20TS+nTG6L6JVL+7H2nszw4nnhxXKEdxCxGe0kyaiQTONQcoVxPCkylpE5xkpSb/STG40ryHIwlNXG+9AasobcJ24ybjZuIY8a2wg9njXS4xA5RI4YjxiPkqPkhPGE8UPyIfnc+LnxH+gL8g/xnDGbcGbeLBE5nIvn46VwOcnSnxvED5L6y8O40fxoaZicZcnjJvOTpTzZZ7kVLedW8yvF1dJy+T60ltvIbxA3Suvkh8Q27ln+WalNPsQd4Y9AjHsLHeVO8H8QT0hH5U/Qh9zn/Kfi59KH8jfoK3EUeEaw2ThMsxoTJDa/Vevx4lOf4sVw36ne0vWNegs3huun7sNF3Se6n8OV6i9YXUSdLlwDewOal452J/Tmpa9Y1+MPyN4EyEndLDsNsVz7yZPnp6aunr2BbrPhIYkPF0bNNMRst4MZ+8Gct3XvE+XtIUZLRlA7Zpkp1xOHZbDcIe5I826DaTdaZQy3QIJnH8ybJIj3EVrYDVbyWTKxBzkxDffUwfLJ4MF6qvoHuGU4AQ9Rj6gfq+oyvOJ40403NgnHu//y1+7uTv6gem1DdXV9b/0RfMb59ccHL15/7Pjn9UfHP6k/brgnWH8UI7p3agVIzR5ht4yMaJDb0ZPvCJglO7KW7DC6WapjKjU1mfqkOj2JjrosmOZ030Z/nzn3sVij54nZ7nBxdxjabd5Ef5sYbBtBBjsHnZcnuk0oJircHpMZMzZGoIU7zdGE5QzjQn+gIDVtzz/f9tjzzz+Ga/F6FXJ/dYM6D2/g31a7Ov6qdmH+rx2Yx1FqtbpWXadW4014Pr4Ob2K0Uh8SAz5ERG+cvz8gffYHJ/rsDzZ/t/3BEvprsZ3tEbI4Nzedq+GWc2u4LbBj0I5DcByF40N2fAFHjIBgN0Rk3onCcTyJ5Qeg/ngQSeOHo2F4JBnJZ0kT0ARcSAr5CukG8TZ8O7lNuF1ch9bhDWQDv1bYKO4kj+OnSP/e/UYSOF5Io/A8tUBdyFd0dRLx7BYtTk2E/XIC0G/GP3FPEhNgvywAE2C/LA8zycAN4zDghQkYzsnDjDIhHOWLGYYDX8wuWQC/CrwxSWaTbJS0X0tNBmQJ+lETdaFm5kIRdaGvBf3nv+BA/+SUFTmHyxGy5ALZDce1cr28TGYMFOAAX3VIeF0+KgMLhc/lqEguAva2YYJdtAOYMGOEHGkagMEdCmniZdIgY3+Ty5xphSQPg2sURomjDCOky81jrQVcIZnAT6TVRPNMMp2fLs02lptmmq+11nAVfKVQIVYYKqRqucLUwjXxfqFJbDI0SQG5yQRCEH8qrTTearrTvNp6r3S/eY11B/cw2cE/LPxSeti4w7TLDCIRH5eeMv8Gt5NX+JfF49zb5C3+HeGU9Gfjn0x/Mc9m4opj7pR504l4zoFn8CA458BGaNEzB9RFILouwnfzXNfZLYTrUkF+90BMHww2lYoecl+GXHxEtEOrV+EXeOcL0bsd/G7Xpt5aVVyMNcIQkzLQ/h6tVLX3rVSdsp/q2Uhkucub0vDIhJGJI5NGKpMSJyVNUmbIcxPmJF6TdI0yK3l+vC/Bl+hLqlV8SmNywBQwByxLkpYoS5LXme4z35+4MWmTsjF5h2mHeYdlV8KuxF1Ju5RdyQPn4j6lKD1j7Z/qiORDS1H9k7N5/tXFf6m946czW7Z/83v1XfWNn6l/XL0am5bcdOvs29d+eAQr2LoY88IOtX3E5UWlV4yPTs5+7cA//jY8B+cXTSkvnlCUmJz1+z0nvnAxPf8F8IkDn5aAxrhTeEPC2thWg32dY21Eq2GPhXsUrbKsTyQpCEdFyknInmh/DzLtdvtpnTV/oim2ehLYEq6HHIVtpkNzbZpiv02e6V6QPjMLtldZ6q/Vd5Z9s/jGdz13bd1619QD9eALT31itqifn/lSPT0kG2dOmLCyZcHtgwbrPlf4ivncJe4Ew3D61cVwSGFctFD1nCSI2MAN4Q1DNP/LYo9mRyNDcmie1aUMGM11D5NFZIoRL8cFeJI4Hc8US03zcK1YYdqPHxetMVys4UpuqKGQK+HchmncLEMNV2cwzaVOnNV7WIlpN5eEG9Sy7o9YdQnxqHMQj7qQ5jdWQow4zeoq+e4oIQb8Ax8D3sElACsJuAGCwU++p5k7hImQsi/gaGC1M5OBxAoDSA6ZQARY2En1fiXv7d6vruRSu4cIx98+y/P7Ya0YdYIQBj7Khoe7x9sSkA08ktlCrHRXeL7LtsEocE02l1Xm7AKSN0vvELTXbrOajBL130Ye2YPOKSS/Y86JuXP7SQivDvrj0yUdFOwgJeaZtve6dzdXynm5AHcrOPh7mYvfF+Lij+kuPprHRiIIEEoMghSJnYJTdBr6C/3F/gbqjy4nw8XhhpHWkbZ8lI8nkUl8vpAvzuO84q3crcKt4u2W2633ceuEdeIGywbrTm4X2cU/bH3Y9mt8gDzJtxnb5GdNT1mesr7EvWp51fqy7U3uFDeyJwxYsbYdHItjIB4MxgjXqGkFz9x/pGn21CjIo7sl7uuzw59e+9dRk5OYjMcgJN1Da6m44bzYMFyLDcNpbBhOY8PwS8aG5y4aG4zlVASzf5wA8RqRnSCECMEu2GUXBAtFHsWN5UYJY4WhchYcbnZcw10jeOQnucfkNjhiBU4WjJLRKJhEcyQXTaL4GMEpRRhjTbHmVG4gSeUHCi7pMggVw7nhJJvPFrLELEOWlG0cBvSPtWrBIt84yUQLBLO4WWQaP00oE8sMZdIs4zTTXLMP+bCPayS1fK3BK9Uar5MbTXVmn3khWSjdYFxgusF8u+EWaaX5CW4/eZx/UnhMOmieHBQXC9xwGYOvB2eAsB9ODjeqW9Q89W/qGTUPtkEv8GPoCXbpO3s3tUuCloKfC2M5Vj+UiQrcA6PNqa1IbE1EbYNbwzYlrs+KdhrNpH+s7bJY5wBjbFwqibUNSO6fZe862UGrwPbTYSNDfn6nlYW+FUWX5qCDv8FQB670hy1oeHAAOELu5fpAoP665mZ1ye134FhwhzYce+ft6++HSPYBZIRv3f9l1ZxZlZWz5lRxmxY0Nra0NPpalqXtWvbMb148uGxX2mXPrPng448/WPMMnjazomLmzGsr6L5hPq1nC6dRtFYbNcS0ypD1rOVbwWe32jdFrnfFuwyx4VEoJdbCaqPtXV0nNULag0WSEZq/HhH8WU0vPqYMwCF1gMNzdpa1HnLkbZx1Sv0Ej8QG3B+71TvU/XWH8DJvTY0XzmQcMWjQsweys7Hpnb/hFHUBpJ0/U2cmcadvvvknP/3pT26+Wf9dcDr7XdCk7XX0GkU0pPUxe+M+sK1PYBUKNxkXFlKFD+51QsoUoRIID6nG098Ek7n9zYsWNcPeZlFPKV77DXA9WRisuncP6inGF8yp2vHNV73fPCyCPYeM7nJHSGCyZC960CgKmBclWpQ3aem+Q7PKk2CU7ooYEgO2EiOONkAWaphF5oozDNcafGSesIws4BeIiw23k1v424Q7DZvJWnBW9xueIrGRXKQwSsrjCoRJ0nRurjSPq+C8wkKuiVsgLJFu424X7pR+zt0n3C85WRxyaCbAiv+QsW/pfp8rVovVyfSHgK7H8P2wd9uG31AHa7GTGwN+iqD0J9BzHIZdCh/ycUTQtWg/EODH7YJbKBUI27AcwCvoJoVW3zl0J6T6acJBFAfJ/WT3ENhz/Dw+yhBuM/080WkkaLXDkpSYEB8XGx0VGR7mgJhiMYNj074QjBUjFPsx3XudzD52BXVh2jULk+TwoSTZmczOfuHszElmJy15kdUVWPK878FO9fF8HK+2VbxfoX5dcaJC/TOeOEE9hcsqcKn69QQsCQfpDlJddlw9/Za6Ai+j51s47Dhe0b1Lhc0bd+6AOoH9rmJCNsh0YkwcMmwWrO+jvcI75gftgiRasMUMIZCVZNtZ7scqYqdpidRtLHVUOJocyx3aDy8Rol5A1L9H+MPhx66sKdK/Sdj30Wd/nXObiOiHCSADsM0XQAYONNQd5TBJHI+EQ9b1RrQqTIqUR1KZhPXs7miEBU163B3eFL45XNs7asrtSNa3dSCYRSvvWATEPq/uV59Wn4cUZMVTmzc/RZZ1rVBfUF/Bw/GYkLzJhK50h3OHpIM8WiWLsFMVjLinNM+Kz1ecuYJ+auG0ERtvE2yizWCTSi0VlibLZot8XqUer+Aup3zufolqR/dvuZGdg7hFsImlNnOuA9Y8wWr1a90Dz09AJCTR+Cex35REzsCPEiLRKIMxGPUsNODZmFYa9E80wr7br0wuCEdZLNGogLRClpEAWX4sceHLSA4eRbLkEtkn02BEdMtxROBf4nI4dnT/ltHRwUV0bem+k2vRbB+dG8d1MLsJf4JDq3gOYZKp6cSZ17LwUNyPs37Q/bf3hePfNKA+f5hfyx1AAqv/boDHRO1O3kI1XBiooUkiROQ5jv8EZZz7Pfr7Obl/BfuwsrQmvxopSDl3ToxQI/BGQwP+uAJYiiQ9r6Sfmt/YNctYc63tir+jJK375TXhicH7P5q7dtsOG70wVtJnsKuhQQW225P/0fxNtu2w3t/7N5Y/DLi9DDiWIZ+4HR0QlqEZ/EE0Q9iDtkjT0S6hgbVbyRsoTqhBM7iDqFVoQbI4BMnCfjRHTEMH+BfQfPIlajV8BfOhj44hMnqdjbkbLYOzEs5PhIXogBiDDpCh6BQ8b4NzJZxzYE4rWYxShROoRoD3QhpKon3C+9CGtSl+bC7gKoxASYZqNFF4Ad0Dc38h7oExFM4IFCO9gcZAeymc8ykeQhnM7YR5+9Cd3MFzB8Rl0KbjXz3XwXXoXBpLitEgdAMyg6ezIzflnvAZlwx3Ht7G4it7eLYeZ/fw1YQ/1tsc4vE3epsgUEi9DQk1N1VvC8jM3aS3RWTjHtHbEnJwJ/S2iX55rrctYQ8MvE1vW9Gw0av1th2ZRr+ntx2IH/0lrIh5IyCUxVanbYwi8at6mwOj+1xvE6RgVW/zSOGG6G0BRXPVeltEidydeltCKdzTetuERnF/09sW1ygyWW9bUe1ol962o8jR7XrbgaTRn6LxyIea0CLUjOrQPFSLAqDhA1EVSoN7NsqCYyi0KmGEgsbBmADyw9mMvMiDGlA69BaiRhifAa1cVA+Hgsp6YPnZkxfuXpizAK7VMFL+DqsO71m1HFZaAGvNhzmNMJri4YE5/9qKedCaD/OmoxYYUQVjPQyal83wMIoUgNII1yYYUwlw62CcAvN9sLqHvZMRGu9rWtRcN682oAysSlOys7KGKpWLlHF1AX+g2etpSFcKG6sylNz6eqWMjvIrZV6/t3mBtzpDvmDqcDq13LOgYb6vcZ4yzlN7iYl53vme6S1KVa2ncZ7Xr3iavUpdo9LUUllfV6VU+xo8dY2AWV8SpzIC/dCtTZ7qaYSHcUBMPZCExvnqqy81RekdFjJZ+d5TpjNZ+IGDPsbfbJDIUDjQdG+zv87XqGRnDB3aF3IQ7uDz4VKwgy+GSQ0DrilAQFfPIC41vkbgZwDEg5iSBEDEo2CLkQlwNRgLAEYGzPXBvRnE7mXwmpmCZABcL8xBtYFA06jMzGoAuqAlw+9raa7y1via53kzGr3wekIIBkGFCir1haZD31El9TJF9wKNPrQQxlK1/nGUlUIqgDeLYEwtm1kH75oYXQFmGJRrzWwGNSUKdcF5nDyfjl5jbOljjJeiRobjYrRrKuGBVijXLnQLMmjA9z/k7+RqfnwHd3F599JcB29k1gqwHqqFDYzX10GfDyTwz3ChlJUyeA0MWq9x1TGcatk7r07XPLZKoy71dF3umrS01TQd0/Q9neHlY9JvZPObdAPWVvAB1ICuY3W6FngYDI3Tsg4zwLA4X5+q2Diqhxr0IAQ6WsNd02Uvs39N91JCtCSFSY7OrWZ3P8OrCuZ4dPpkZgVVoKENDEqAvQnypwZa9bolDezBsXcF6tMo/gHQX0376Yq9PKE9TcxqqmGFKjY7iE01oyDAdK0S3gbYW20N+VtWSNetuQowa2FQNJ4sZDpQy7xSQOdMA+sLpShIQ3MfrdSwbWE8TA+RDm03MHlqspZDPIgfZqdfgo70HjozmQdRGGTNHjTYdTpX+0r/26kOck7DtqlHowMMr16t66VoIeNHw3daIWgNNcyrN+oUekNWrGZXukY6u1NOzIcRVQyeNiYovxoWiTTPFpRQFVu7mmFcp2M6illnuY6dByD6mGfolUGoL+rlwIWeoBHGB3Rr8PcZG7SVXo6F+oDQeQqj2cMwl5lv7qtrGje0WOL5Fnn6WBRUdNk3sHuv//gusgiwSEQjq0enKKMPp75tLuXJIj22aKtTntcwHKt1Tapnetrc06NhSnlaHSLzUK0LRlAPi4h1zGfUsye5h6JqhimVV2MIN+b1iavaSkEf6mHao+lucI3z+eP/pzQFsZR1Cno1zMNk9N0x6LvO+fy4GG7purzr2by6S3hzuUc6zczPephf6YUb7PH3aGTQXs6PHl7dz3kZFcGVFjKqqtn8lIvEw5Qeus+fIcO7YLRNCdEyzWaKzosvlczefSG4tuh2ENSTBfC27iIc88KWNKDHGDq6CQ4tenmYR/X2zAiVu4ZzsEe+qKXUMg+vsLtfx9HLNOlSehL0dRfz3dUsEjQyuYfy62JclUM4FyrD72urfj1/V3RKgtYWtCSaOdT35B7N+oy+EJuYRl8H13m6xLR4SLVK7vGq/05PdWmqKnUbCejxsKaHUxNRPlunBBXDE12nBJ7K0dWQR5axd4XQp0AeVwZvpsNTHvTmMbnksjf0fQqzxquhTSGWoGkMlgajDK4U9kzoobAV9kyfJsP4YoBF5+ajGWyNfIA2FTArgTaFPQV6i+Cer4+jM8ZDzzR4pu0CRLNQbb1imFXObIfOo7homJZDf++qfbEqZCsGMZsCT2UAf6L+NhdgFzJ4FP90lh/RdrGOp8a5Mgad8ohCpjDHA0ZF7In2ToN7KYybyviZy2jWsC1mNEyA9xot+QwDTRIaRuPhXgpr0xEFgFc54wJdqVwfmc7kSOnJY/PpqpPZKA2zEl3KtN0LJUPnpYYH5f/0npWnMvqL4FAY/eXQU85kkwvwg3CDulPAIFC8ZcaNaYy+XMaHErbCODaOcpHys6hH48pCpDKe8YvKjWKex1bKZRyZelFKgtBCpXMx7ZB7Vihg9OUzThWx0VOBj/kwvrCnR9PHQkbreJ3XGkxN7zWdKArh7nhGI5XsVbBqvq5TuYx3famgcrqa4d9LhSaBXP06PoRnvdIv1qUbxKecrVx+Ea5czWwxn43KZbKe2mMjE5j9TtExn9ajYb0+YJqunyU9mPXlb9COguO+i+/QYAXX7ivBPKZPRTqGU3u4oY2QvwWu5rvyIa5VsX1OoMdv943coVljbzYamnemh/ja0ExA88IFbGzDeeN6e7Xdkhazevc6obnbxXbYwd2xlssHs97e7EPz3dqeKDTrrWb5uZYD+nuyEh/LA309mclC9rY3pjfptRNfn30eXdnDYn96z1rBWNQLS8srPSxboKv5L8LNS0co+YKdYROL99oqC1k7oGcmlL4WfSztv/G83XCw/nOhDJSLyiBIy8Uyh1D+NzN5N+l7qTrGYZpPZuhwm1FwX9bLE8oBre7WcJ7Ue7WPQhuFzq8qUB7MC8G8mvFaRloNj64pM38VrHH996tOP3aB+3+pHiT3qQedn3n9++pB8kXrQcp/uB4kf6d6UN9MvioEp95aR3Dkd6ugXqzCIv/X6krKBXUl+f/VlULqSr0Vhv9v1pXkPhH2v1dXki+yW/tfqCvJF60r9VL0n6kryd9SL/jP1JVk9K/WlXp/dfox60q99ta3rnSp6Hvp6pK2P9cyif+16pKM+laXLl7d+M9Ul+Rv4a4SwsH/7SqTzHTswmzmP19lkv+Hq0zyeVWm3r3uf7LKJP/TKpPyH6syyf9ClUn5t1WZZMaD6QB1EsNW43YuvP/P1Y7ki8r8v1U7ki+oHSn/tdqRfMnaUW8N6N9fO5L/hdrRt8H999aOgp710hHlwoqP/D0qPqFVmh+z4iP/oIrPhXu271fxkUMqPt9Wd/gxKjSBC+C7UW+lQWbr0KcMhCawD7Tod230y7iej+mUgX6vV6n01vsWpmUo3+EruAyloH5RU61fqWto8jUHvNVKTbOvQclt9i7QPwILrsG+umvRvroLXUaWe1ef7m32KBpqPZ/uyYO/9U++8CO/7/x9oHLeynV+2aMEmj3V3gZP83WKr+Z8KLJc6m1uqPOzb+jq/Eqtt9kLa81r9jQC6elAO5AF04BjzfO86UrAp3gaFylN3mY/TPBVBoBjdcACj1IFSMswMlDrDfKpqsrX0ATD6YBALUAHLnsb/cC9FMaSlDQAVq14/H5fVZ0H1pOrfVUtDd7GgCdA8ampqwchDaQQ2QRlqq8msBDYn5LGMGn2NjX7qluqvAxMdR0QVlfZEvBSHOQ+E9JBzFX1LdUUk4V1gVpfSwCQaajTF6IrNGusBLAtfhhPyUlXGryUapkpiL82PWSNdLpmpq9Z8XtBDjC6DlDVyT9vaYocgG2ijA7IGuvYQgtrQbEumEDFUNPS3AgLetnEap/i96Ur/pbK+d6qAO2h9NX46kHZKEFVvsbqOkqHf5QslwM4T6VvgZdRoGkRQ6BHCRp9ARCDX+ulUmnq1QDtneKv9dTXy5VenWuABliJpw+dvkbQi2alwdfsvSjZSmBRk7fGAwtlaEj1fdvgWQTWAtOr62rqqKJ56gOgetAAoJ7qaka5xjpqoJ5mwKul3tMs04Wqvf66eY0MjXmarcIkqqGeKgDipzOC+PjPX4mClGEBxjBP/cUB6HOCePRCA/Qa6xcpdSFqLlNymr30f6+djaUNP2UklUvQPLygc95mNmmhr7nar6T02GEKXTv4Qk6hZpvCWAaSKdLtpdILlkShtoAMKE8W+Op6EPPeEACLUTxNTWBensp6L32h0Q6QaUPuFUqtJ6DUevwA0dvYhydU63q1u1ppaazWEe5FVWbIaRR+m1T9vnpq1UxsVEgepZ56D7CV4MAmT9V1nnlAGNhho0+mqvqvKVWfpcBhAYre+hqK1MR8ZUJJcbkytWRC+dW5ZflK4VSltKxkemFefp6SkjsVnlPSlasLyyeWTCtXYERZbnH5TKVkgpJbPFOZXFicl67kzygty586VS4pUwqnlBYV5kNfYfH4oml5hcUFyjiYV1xSrhQVTiksB6DlJWyqDqowfyoFNiW/bPxEeMwdV1hUWD4zXZ5QWF4MMAG5MiVXKc0tKy8cP60ot0wpnVZWWjI1H2DkAdjiwuIJZbBK/pR8IAIAjS8pnVlWWDCxPB0mlUNnulxelpuXPyW3bHK6AsBKgOQyhQ3JACwBhpI/nU6eOjG3qEgZV1g+tbwsP3cKHUu5U1BcMiVfnlAyrTgvt7ywpFgZlw+k5I4rytdwA1LGF+UWTklX8nKn5BZQcoKL0GEaOb3skOmEgvzi/LLconRlamn++ELaAD4WluWPL2cjgffAiSKG7viS4qn5V02DDhgXXCJdvnpiPlsCCMiF/8YzzBj5xUAuhVNeUlbeg8rVhVPz05XcssKpVCITykoAXSrPkglMA6YBP6nwinV8qYxo34XaAaPobJ3AvPzcIgA4laIBHXKfsaBd+TdUeZsCVLd149ZcI3Ojmu9MZ1qrOQFQ4YJGMFytjzUhLIFlsaijebfegE3Dcbrmepn7AO2GSKS53uoFXvCAfupKfM2yjzqThXV+ZukQAht8WsxT/J56WAxmUStio8BXeuphmr8HzT4GJQeDYVNzHUxZ2FwXAGeieFqgt7nuRj0MN+thilGg9FJAV+l1Dhr+zV5/E0SpugXe+kUZMLaZxjKGSV1jja+5QSedsa8qMCqYKgSUeQx4tS8g+5rnZSiyzDKuH5w6fdd/H/Hj5EGylgcp3ycPknvzIOV75kHyhXmQ7uSrGCR/MGZcJEHtTVjkH5IrKcFcSf7fyJVkTQ7/tlxJ1gz2B+VK8o+YK8m9uZLyPXMluU9e8D1yJflSuZLy3XMlOSRXCjXfPukSxHNwEj9WuiTr6ZLyg9IluQ+6bN/4Y6dMcqNP+cEpk/yjpkyynjIp3z9lks9PmZTvkzLJF02ZlH8lZZLLc6dPmVRC0c6d+L2yI7mX8h+SHcnB7Ej5IdmRHJodKd8rO5Ivmh0pPyQ7osrax1B6Eh/5komP8i8kPvK3Jz7Kd0h8ZJb49M0d/nlCEwiOd7OkQc6AW8YP+TeDmaxudx2cmax2Vs1+1ctgv682QV/fXwu//V8YZi6su64usw6c1Q0ZTbVNmbrH/F7/8JP9S2T2d+4m+v9LduFf7k+55XgAUhHBLuSAa3+cDAwQcH/UCU/9UCRcU/S+FDaOtglW2Psk9DRcE2FFghPY23gUA9c4lAjXWNYTw67R7BrFrpHs6sQRyApQneyJtgkOZ+0wdrVhK1oK723sibYJtmAzugv6LKzPgg4hHpuxCc2EPvqGYPr/FcdjE5bRAOijbwhc3dBHewg2spkSuxqQmV3pDHHPfRlCbjgWGV0Cu/JsFGEUcawHsytyn1tKzl1JVJV0nU0XulRyNp10quSbrwuEb5aSrwvIPzrJVyr5u0rOqOT/PE2+VMnfVPKFSj5PJKdV8lmHLHymkg6ZdLj5v/5FFv6aTf4ikz93kk/vjhQ+VcknneRPneQUPJxSyUmVfKySP6rkI5V8qJITKvmgk7z/XrTwfjV5L5q8uyVReLeavPO2S3ink7ztIn943SX8oZO89WaE8FYkefO4XXgzghy3k2NvmIRjCnnDRH4PI37fSV4H+K+7yNF7zcLRfuTI7yKEIwPI7w6HCb+LIIfDyGvw+rUE8moEeeXlp4VXVPLyS3OFl58mLy/nX3Kf+61LeGkuecnN/9ZFfqOSF6tJ+xq70K6SF+LJ8yp5TiWHnh0lHOokz/4qTnh2FDn4TKxwMJs8c8AhPBNLDjxtEw44yNP7zcLTNrLfTJ6CxZ5SyZMqecJJHg8jv1bJPpXsVcmeKPJYDGmLJI8CnEc7yW647e4kv4Lxv4ojrXBrXUoeUcmuAeRhlexUyUMq2aGSX8pku0oe3GYVHlTJNivZ5ua3AqO2dpItMGVLItkMt82d5BdA/C/iyQMq2XT/08Imldy/ca5w/9Pk/uX8xtUuYeNcstHNb1DJetCO9Sq5L4Osg4nrEt3nyFqYulYh95rJPdB1z2Tyc7j9XCV3Ax/ujiRr7GS1i/xMJatUcpdK7lTJHSpZqZLbb3MJt6vkNhe5VSW3qOSn2eTmdeQnKlmhkuUxZJlMblLJUpUsUcniTnJjJ1mkkoULdggLVbJgB2kJxAktnSQQR/ydpHkpuV4lTb50wZdOGjtJQyep7yTXqWS+SupUUltlFmqzyTyV1GQTb7UseFVSLZNqN19VKQtVZlIpE0+FU/CsIxXYIVQ4ybUyuUYlc1UyB57nqGT2rDhhtkpmwdOsODJTJTM6ydUqmQ7P7nPTVTJNJeWJZGoEKbsqRijrJFfBi6tiSGlJjFDaSUqKHUJJDCl2kCmJpGhyhFDkJJMnOYTJEWRSoVWY5CCFVjKxkxRMiBAKnGRCBMnvJHnjrUKejYy3knG5LmFcJ8kFmLku4h5rE9wqGXulVRhrI1dayZgrLMKYSHKFhYyuJqNUMjKCXK6SEeFkeE6sMNxFcoZFCDmxJOcQP0y2CMMiyLDl/NBsszA0ggx189lmMiRrhzBEJVkAP2sHyTSTjHAyOH2UMLiTpDtdQvooMqiaXFZN0lQy0ElSoxxCaiIZoBBXIunfDxgwqH8i6ecgKcgipHSSZBtJdvNKBEmSSWIiSYiPERJcJN4WLsTHkPgnwWfczcdZSGzMZCF2KYmBRWMmk2iVRDlIJKwW2Umc0Od0kYhqEu4gYSpxwLNDJfZqYrPaBVs4sR3irXZiXc5b4I2lk5iziQlIM0US03JethDZzRtVIqnEoBJRkAVRJYJMBDfPdxJSTTiYxangvSwCdhBkIfhJXH3LKjzo/x9/6L+NwL/xLwH9X2+kPGcKZW5kc3RyZWFtCmVuZG9iagozMjcgMCBvYmoKMTQ0MzAKZW5kb2JqCjMyNiAwIG9iago8PCAvTGVuZ3RoIDMyOCAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnicm8Tw/w//ze8v+P///6EAADkYCHoKZW5kc3RyZWFtCmVuZG9iagozMjggMCBvYmoKMjIKZW5kb2JqCjMyOSAwIG9iago8PAogIC9UeXBlIC9Gb250CiAgL1N1YnR5cGUgL1R5cGUwCiAgL0Jhc2VGb250IC9FQUFBQUErRGVqYVZ1U2Fucy1Cb2xkCiAgL0VuY29kaW5nIC9JZGVudGl0eS1ICiAgL1RvVW5pY29kZSAzMzAgMCBSCiAgL0Rlc2NlbmRhbnRGb250cyBbMzMxIDAgUl0KPj4KZW5kb2JqCjMzMSAwIG9iago8PCAvVHlwZSAvRm9udAovQmFzZUZvbnQgL0VBQUFBQStEZWphVnVTYW5zLUJvbGQgCi9DSURUb0dJRE1hcCAvSWRlbnRpdHkgCi9TdWJ0eXBlIC9DSURGb250VHlwZTIKL0NJRFN5c3RlbUluZm8gPDwgL1JlZ2lzdHJ5IChBZG9iZSkgL09yZGVyaW5nIChVQ1MpIC9TdXBwbGVtZW50IDAgPj4KL0ZvbnREZXNjcmlwdG9yIDMyNCAwIFIKL0RXIDAKL1cgWyAwIFs2MDAgMzQ4IDQxNSA4MzAgNjg3IDU5MiA3MTEgMTA0MSA2NzggNzExIDQ3OCA2NzQgMzQyIDY4MiA3NzMgNzE1IDc3MCA1OTUgNDkzIDk5NSA3MTUgMzQyIDM3OSA3NzMgNjk1IDY5NSA2OTUgNjgzIDc2MiAzOTkgNjk1IDY5NSA2OTUgNzE1IDQzNSA3MzMgNjM3IDY0NSA3MTUgNzMyIDcxMSAzNDggNjgzIDg1MCA2NTEgOTIzIDcyMCA2OTUgODM2IDY5NSA2NTEgMTEwMyA2OTUgNjk1IDcxNSA2NjUgMzcyIDgzNyAzNDIgODEyIDgzNiA3MjQgMzY1IF0gXQo+PgplbmRvYmoKMzMwIDAgb2JqCjw8IC9MZW5ndGggMzMyIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJxdlMuOm0AQRff+il7OLEbQD2BGGlmKHEXyIg/FyQdAd+MgjQFhvPDfB/qUiRQkPw5V3XVvNUV2OH4+9t2ssh/T4E9xVm3Xhyleh9vko2riuet32qjQ+VkofftLPe6yZfHpfp3j5di3g7JkhdsomUplP5c/13m6q6dPYWjiswqxXe9/n0Kcuv6snn4fTtvd020cP+Il9rPK073Yh/SbHb7W47f6ElWW9nk5hiWpm+8vy/J/Gb/uY1QmsUaDH0K8jrWPU92f4+49X669ev+yXPt19//ihWNZ0/o/9bSlt8u1T6QXynOTQwYKkE3kHOQSlbKugCxUJqoKqCImu7xCEnuDIlSzTio0xDTkoTcoJCokM6JMMlsyq0Q6J9NA+KvQqfFXSUz8oVOLPypo8ech/BlUa/wVJYQ/K4QHh1uNByf18GDrRAZlJTGDspJdjChDtUGZQ4tBWfUKSec5PyPKhKTzkknna4nReSf1RDVna+huIdXprsWRpbuOTlg8WDpvpbucmMVDITHRyYlZeUIaCJ1O1qHTUN2is6RnFp2FaJHu4s/KEyK74GERvw6FPP3bLGyzoymmqWLpjY6PmVC4Sm3wj9FIPuibdY/eKHxQjO3XYVxfKtuk+9s0LUOe3ilpute57vq4vZzGYVxXpc9f/jUo4gplbmRzdHJlYW0KZW5kb2JqCjMzMiAwIG9iago0OTkKZW5kb2JqCjMzMyAwIG9iago8PAogIC9UeXBlIC9Gb250RGVzY3JpcHRvcgogIC9Gb250TmFtZSAvRUFBQUFCK0RlamFWdVNhbnMKICAvRm9udEJCb3ggWy0xMDIwIC00MTUgMTY4MCAxMTY2XQogIC9GbGFncyAzMwogIC9DYXBIZWlnaHQgNzI5CiAgL0FzY2VudCAxMTY2CiAgL0Rlc2NlbnQgLTQxNQogIC9JdGFsaWNBbmdsZSAwCiAgL1N0ZW1WIDAKICAvTWlzc2luZ1dpZHRoIDUwMAogIC9Gb250RmlsZTIgMzM0IDAgUgogIC9DSURTZXQgMzM1IDAgUgo+PgplbmRvYmoKMzM0IDAgb2JqCjw8CiAgL0xlbmd0aDEgMzE3NTIKICAvTGVuZ3RoIDMzNiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJztfQl4FFX27711q6qrq5d0d9KB7JWNEAhJTAgQQOkEEghLiCFEQNE06Q4JJumYTtgZtoGA4ABCgiJCVEAEREQGA+IeRERmE5xhdP6OiqJ/ERkfMzqQFO/cW91ZWBxHneV930tb3beq7nL2+zunik+EEUJGtAgR5Bg/ISXt79G1/RAaWAlXi0tn1imoIiIT2m8jhNWymulV9/WfOQMhDs7R7umVc8p+3/yXcQjxBxBKayl3O13fbDp6Dsa3wv0B5XDB2CJuhfM2OI8rr6qbXfm7xAyEBikw36BKT6kT6b65iBCZDedDq5yza/gXxPsQypwE/ZVqZ5U76t5xMD4T7t8q1Xi8dVcXoykIzVxE79fUumuG6P4CzZnNCAnlOAO1oBPweRXtQpvxDjgrg5v3wZVmbj9ahurhyuv4BF7J9YNrO9BF9A70bEAnyC4e4dEoHa4idEbg0CVchA7AHJk4CGfqRB7x+fwBvpBv4c/xJ9FA3suf5Et4L04njwvFwg44MslRzoaOoyjUgj9AXnSYfE7SyRF+BG9GH5CTZBf6BFbhYf4TaA3ahuYBLUHYgxZy87hCuHJMOIk2wccD90/iLfgdoO4wXopOo4cIz41CW/Bp4OsE+htaSoq4hSCzdK4M6D8Gc52E8ZuQl0fCaSwjlesL14B6WGsa+44g/YTT7HMRLYSVi9A2sUUM0sXCKlRiO/Dr+Ly4HjWjd8hd5D7yHl7Gx/I7+VFojSYBUoLWwNyb6BixDM8B3ulnHp2dm8WX4F3oc75ENw3mPko5gjUPcIXAURk6Ascs0QI8DcHLyEqglN6NQCd1o/kUGA8z6BYA1wh5SAaaAa15aC/aj/qRJrQGZmL8igOFv8HIzfyHwPMa/AD3N3SSjECJqIy/ALJGQQg1IfS8ThR4wmGUpFj2cfF5rn2O2ycpb06O7pd0zali0Sn7UME+0xyl5erVgkl8mDB5nxC+j8RL+/j42A9vdvPDfkljCiYp+9pzRvhmzSkZAdcmTIImPYPLcD1nBLtHF90nxMN/eSX7lNJy5X7L/bGD77e4B4OLaX8jfEcNHOAHuATk2V/zL/It+NVaOFrAtsG/xDg4wA/ESyAx+NUdQUgyIqQHX9W/j5AMPmAAaRodcMAYE/iIGe4HpCJkLULIVgDHPoQCR4G84Jod1rWfRSgYxvV4CKGe4HMhcD3kDwiFuuCA62GD4IAx4XA9Anw4CuZVViMUDXTGwNjYcnBrCQ6gNR7WjYexvXrCAbwk/Aah3kBDbxiXCL+JQGMfmLMP9OkLcyZBDEgCPpKA135AZz9oJwNNycBz8imEUmBcah0cEEtuAR7TLHAMhWMP4lCZ2sSXCdsgaulQqMPIX0HiFSwJCzkepbSeOn8Lspw6f+p8aqA12hofbY0u41Gbl4S1faI26czffl0rJiKMXPgDbiG3FOawHkSbOR4j3vL+22xoamC0PdrFhbV/wi3dBuoAv0b8A8JpJKFANNjREzdaUKN+sc0iS7CiEGIaZkXhej7I0nY+re28tUfmLSjlEiXAYQiwR9mH2e+xP2MX8FRsTU8bkNG/V2x8dBpvD+L7YmssXq8+sGnTA+og/OYVjNWrV9S3hJT2Xz/YsPzBHR+/96eP2ncCrYfBHkaDv1lRqiNINOiQ1UAazC36IzpZlJCUa7O0tZ5Pg1XPXjrfeuptqy0z9UBB4NZADtZMxrExot0aa02334bT04J7kNFReUmbnzx0aPDhZYHJ4eSAzXripfb9fMneslJBQJTf+65+zC+E9YJQGKpxxCE71i+XVgj2p7BwyIhf6HnI1mJcHR5m5yS7hMZwtoCccOAd1oaVQYJAxVnLBfhcukBJcSQOi6iJaI74TcTFCGEYGoaHccPsw8KEJF2KlKJPkj3Igz2cx+4J00+9Dyi2R0cCoQMG2s04VkFWC0pPQzrGho5f2LbfePL5Gcemlf7mXvWSegwntn2EdS3c9hWbDpm5u6e8dKx//719kvAgLONAPFz9U+vGA3u3gGuhFGDsWzEINDjZES5YsFF6SsQNaKNZPCJzgTqk0wuSKcAwFrQ4Zp9cNOkQMiDHoMlj9plZ++orgyYPbW0b2tpqy6T6PQuatlxIg5NUfNBhL7A32wmQDkRGYLAekHdsRnpG/wHp3Lf7SsfhFPW3h/bt2/uiGPRwQXnpmrYU8ts1+S/sBlnPA1n3A1nLKB4dcSSERBl66M3oqR7iIbNVWR51OPxQbIt1dQ8j6kF6mvSSIYpIQTm9QNxvnzqflmZlxLSevdR26bzlDZC5NdOaSWVenRqRGpkalaqkRqfGDEtwRDgiHVEOxRHtiCmIKIgsiCpQCqILYgoSahKWRTRENkQ1KA3Ry2LWJjQnXEyI9A/1D/IPKIksiSpRSqJrImuiapSa6EWRi6IWKYuie04FvYGZBQWD4m7FA4F5UF5MLyqAaGrxoLsMZn7cSx/sWex5+FBLy7AjK/acaL+CuSc3lhwscr805f9c5NLL5k3znjmQOLZ98a4y56uPv/iKbeGq5ORdCQltVIdgl+QcyCoEDXOEoeV4BW9eblohH7Lyh3qAkEJ1NhMaFZQTamk7m3ZeM0SLeumC5a8XqCuGWcIWha0Naw6jrmjX/IIRzCwthlpadFowOZf/aMFzb7zxXMGj+eO2T21X38X9sDjxcT5jT9++H588+XHfvrvi4vBt2IxteHAsonS9B197kUpjyfNoKYdDUE8eNASaOZ86MN0e+94776gq9IM4IkZBHDGilx39iVUn6Tgr5iT6Qzi9rMdWWdZnyzqOSAQ9IxkEvQQbmiCL4fxtcjjiTTCpP8AMBY+HVirsPjqL8KXOIvkO4cvJMftrzBhPdRQTXYAUoOdkOxekC5R7cb10iq6XrMj9dRlyBTefm6ebIy/iluiWyGu5YB4bSCAOI7E4iSRIvfX98VBSLE3Wu6UZ+pnSHP1i/ABpxI+QoKloamC0HlMjx7EQw46DhBbghbjfUXXhCXVhq3C6TSLfXu4rRLUhHl3+kMkIvvkpwLuMHA57NmnmuWZhsQ4166UoMZygKGywnBqzL4A6G6aOd75VE2Aai6TA5eQYfCCABPDc1IHRViEjPt0Kfqbi0erD2P0WHt22bRfvHdUy6vLpXWw9GrNjYT09SnTYxEaea0SL+aclAesISFKmsfpUK10AbORC6v4AAwiMxn0r897jZEp7DVfQvu8t4fQuddSu9oF0Tvjivha2QAwZ5AgxC1IAeQpZ8RGpQTZIetgKJIvNnAsBhAWKNOaa5y8xRUGY2P+MHdM9gM4fFDyExopeGTRKWPEsPE9dNsb74ounH29oELaor61pb16Zv2nr77iSNfg2xGLyXogTk8D2AyEqD3GEEz0iZiw2mK2rZXwkqMUIsSHIkM9JKNdOY3Gmth+cTbvUet5qAzs54LG/YocNIdCabmVWnwENn5vivS3z5zc+3dIy/Nn6V9/Ev8aHuR3tzq1bX9rGzbvSvKes9CLZ6ZfpDJCpANu9kQkUh5PBiBdhRaqss7Dl6VN1BbpFZBHPw1pMR8ff4n7fdo9wmmqGAxSL8ByIw3Tv7uswiy/xz6IjnIAlHuVKIDqN7ja6eVr0Dn2BvkRfoxfYXHQPi321Bf74kivNYtDnlCYPxIRjIJcEdM4x1GTkzIYJUZGgDZ08ISoqMls2REbxdogVK/mg5faVPWmsiIdY0TtSNkSF6VBhmGTWSUExOb3pHnrq/FnYsTIzM/3B4680eNj8bmb+EjxOx77Bx1AC9bGqcDncEG5Mho0syZBkHKIfIg8xDDEaFKTgOK633NvQJzAlKMXeJ7h3ZO+oRCUxOi5hubzcsNy43GSjlspxoiwaiJGYiJkEEAsJIaEkjITzEfqElMRhifckLkxclLg2sTnxYmJPcL37OmNXFI7E9iARNJiQwfZMCLUpsOPTsAuRbFX+zikrV07bMKx1+zd/mPJ6ZdkbziWr3bsdux/686/KDvDD9vbuXVTkyIs293l45eaDsbEvZWRMvn1MQXxAXOOSLXsiqd3hq5dB55+DznVoNGhLU7oDXMghSJZTZ9vOMqyTlorZpvkiQCQHKAVACWyY1oGDJjsCkT4KWbCFi9JRfdbot+r1U4m2RUaL/FftF060XwAnu3xa6Is0rKOLAH3GoCmOXqJN3zMAiRE6u7EhQiEtYUdCLIB+AiRJLLBKAQXhPaXQ3FiGu9ogMNpYYBx6VvM5qjZHYGpcQVxN3Nq4Zvi8HPdB3NU4PXgh24soKmJ7U7eGDyfxiTmvLHnmpUO19Wt2HKqd9cCOQ4eG7ZszdzdZOX/mXz9qv4vb8tjml7a1N3BbHn/k5SfaGwA/TZ82X/NVC81HQWYcRLvXHFkQIxAv8JxVEHgI8URGVg4RIuusAi/Si3orkSV6IxsRXSMmi/UQ+SHvpNmMXpAhMrZqMf/sqfO2zpAvfNnxowV+/0YAxqkYqXFmB+AALoBuAmgSmgl5xmqk12GJE4meD8YhXDGexBUYp+Nybjaeyc0ntfws3WypAa/gFhkf4h4mTXwPsDgI9Tgdx5JoEssdUS9w8eq8T7jM361ov2fFacHcHkL2Xu6LF6qLO7BjPejPgHqAxQSKh2zokLHFtrqn3hZwO7HZc3oyqOhzMNiYY4eFzEPzxIW6hdJC/UJ5oWGecaFpoXlhwELLQus8W3PIxRBrF3QBJp6QRvdqbcfmvBv27G5cv2fP+ovYpl64+Bf1K2wlH5w7fvzcZ28e+3yz+qZ6Xv0SgGIm4MEgPAj5bIx3sVg6wBHSGUlbjEdk2I5RPsVZuQzOU0JB7B1BtMT+axpE8Y0MxkWD6J5Dh7Kfq3/1DW4bNZGtW6iJgGm4XV9R2ajF/BQmm94gm9gQY4Tetjww+FAAOdQrtiXhiP5QwIuhEb1CILMbKdpsSk4iDUrgXmkM5J2ndFjU0xRVZ6YeLOmzqE9zHwLUaKQw8fSwcNEd4eBWTMM7Z7XYKPDPSCePb2/csH37hsbtLap62bnn9tu3FP7yQOb++b9qa/vV/P2ZLdytb77//pvH3n//C/Uj9fOIyOeS+rz48p2l0/BgTDCPB08r3UV17L36sXBGuMh0HAs6brShRuM6quOQgHQSYrf0ZEClQ8c4xgfj4TuBQfpo9k0S3lfbMXn/fZr5vA+LzFZXqG+oR9UGPEcYq7aon6ifqi14FA7FYXjUNvVOdYu6Vb0Tb8PT4LOd6fJW0OVCvgSJ6IojgViZn2FOoD+EE5GIrQC6sjmCXhZEgaIpHuko0mAQH2kQP6hozD570Z30AsX5mrOdT7sJuMKOX4ziZnDzIH1czi3i1nHbOIkupAenskOuFEpC+V6oF04kibwiZaAMPJgM5lOlXJSL80genyuMEh1SMSrGk8lkvkAqQ2W4glTw04VysUSqR3V4HpnH1wtzxWVoGV5JVvIrheViE2rCG7lN5CH+IWGjuFN4UtwnvSJ9IF2VbqN4LF1PXfTW1/Hd+O7X1bsu8yVtRWTPlWYmo2IQQQbIyIi/cOQJE0UBsCY/UdaTibJB5iZizmCQRQpHBZCfD44aoTeIzpgtCxwRQXwGyWiQ9ZJWZIEc1KRJccw+a9GdY/bZ6Fcg/TJogqSShU3BCB1M9LKlU75va8EMzPrG+LXj1x/NsOOqwAVzwUKMnCHncXlCruyQ7+TuFCbKBXI1Vy2UyXNAG3OEhUID9zD3kLBBPsIdEX7FHSO/FiIETk9E3iDIkkEPP0Y7F0KC+VAhTArTBxnsxngUj2O5BBLNxwsxYowuXkrQx8nRhlhjJhnAD5AyjanmXG4UyeUdfLbgEB06hzRCP0IeYXCYHWaqx2KugL9dKBQLdQXSBH2RPNFQilzYzc0gbsBLM8QZumq90zDd6DHXo3o8h1tAZvMLQL8Lxbm6hRBw5+gX6ufJMw0LjA3cCmGNeSPaiDdw68lm/hHhIfEh3cOSI6XJuNW8A+3A27htZDe/W3hKfEq3W9pmfMb8S+5Z8iL/gtCif9ncyr1O3ubfEuYwmwjD9D8ca8CxxS2ffnLm009a1PfO/OXrM2AdTWQGPa40k6a2GWAjTeBHo8Gnw9EmyEJDw0jPcNieEN2esi2PWTeYmoPW8agZNjeZw3J4DwsRI2iqbAcFB1MFBzEFE+ZAp86/8oq2G9MQeul8ly2LYSfsSJvIFwvFurn8XGFmWEOIjkd8CB/KhwnhdWimWB/qDasLX4KWhywJXRK2JHwn2hlmBZbiATdkDEADb8Ndk0oeMJBORHgl92rbWC9+IN057snl97wze+6pSZ/hoJw7Q9RLu3btmoXXDa7amDerKXv427ekffbaXdtrItQvOnKFVbBfG1Cyw+7LFaRG/mlZwHqWLhi1dIHlC76EIcrUNWGgMJfsaw/ljrVnct+23Uazhtxd7R/v6tgTpwDmtYB0IXMIPYTMQYcEabW5BW8kPSBv4EZabYacCLYzsmCvhfrWCxDlIxdFNkcSVj3y4XWOBdNg7N8PQRDk8ZaWwc/OP3EVXT0x/9n2Y08++ODOnQ8++CQ5yN399/M7XU48AkvwGeFU7SfOnTsBB/C9Gejygs57oxpHMrIHysv1UcuVwGa7qVm/XgxvVtbHrhNX259IDA4PRCQoJLyXYgknQVF6MZGqPrjIr3U90zqo/RLNTil6BgbOnrd8eoHVgVgZCDv0rkhnlFNxRfNoKkOufHRX5NoXZ3Tw06lYMmzdE+pv1M/uPjaj6M2ql44d2r73YOOWJx6a8FKt9/jkT7HxFyQ+qnXtn76Oj3/9lrSmNT9v3DGrxjsvrtcBRfnt/vm7ffU7oQj0Gwjyf9aRAdiKQLwjPIF4x5NskUd2wtsb9UGNpsUGXhCJVY/Cg82CHBLCW4cFyeFGPoKBzFbKnpXlBylDaWJqy6SfziDms+/9jkgGv+YGYgEJWADApWN7QxAXDAqnESee60USxF66XlIvvRI5AA/gcnEuVy7UQ+SfFbhCXKGjnh81lYmqR2AsSca0XmiNVoJBKh2lRPJA1rzbTp55efSq2e+/hd/EqG1p+0r1wcbGB7kjwWt/ppbjhU3T2lcKp9/9wwOHufHtFxqWLl1GZXIYsMg2wCLUJm9zhPltssW8Gr9IjkSAPY5klpnLOE/TENtZv1k69Jpd/jkS0rz4DhAEmzpH88kugAR7Dx0a/Oy8t9HVq2/Pe5YbBJb5JD12tu8V5V0up3pE/RY+R5z4C79hMp9xgU9uYxjahBY7IrCJmAAzmwAhG3TNAsXI2CijcFHijWbL+3TbYRsNGKORGuMpLe2mueQp2Gn8OuKPg46O0wDUx4D6oFFoMqpAs9D9SBeM+8Ke3ZcMwPl4vHG8qRiX4Xo8lyzDJg0Ck3SaflINZBBR5bCaoZ4+fbz9biG+7WNysi19p9qMS15n8aQB/Opx8KsE9DNfTspF+pJSrjMpxcj+WNCGno1WvhFtiF/XmZPGhIWY++lCgmJ6W95vBRzVNScFp7rwtwuWN6zdc1KLPykNSATDOxiVmJI4PpFMvTZV7O5wWqoYR7HrKO/b92x/btaOuR/9Xv2Tem7GV4vmna99+kjDpnkfvYV7/LXij8K2owMHLJpZ6o4K6Xvm4Jk/p6b8Jid3xc+q50f17PfK7jfO9qJ8bwG+XaCzCHS3I5YP1VmXWyJCm3VBzZaVJq4ZLTat1m2L7BGOZYipskWMtLThrlHEQhXnqwFZKH6AgALGxgzvEgsmaqsWS1jcZQZnD0LdeKKx408kpL05aVLSZRynnlK/uvv18imv3Pv0W289fftjRTQwPxgQoF7437+of1WUE7ekHty8+WBcL2Zza4D+JoZr49AkR1ygiEzLjag5WGwOD95uaTaujFkXvjreGKMPD4kMDCfRUWHxtPJx6fxZTTdtZzvDnSPoBDqBT3InyUn+hHBCBM73R3JTu2cymn444mdFq3dHpwVz21Zs3boCDqwf+8jYN98JGLL/3g+xoF78SG1XL+ACHDb2ETLk8OOPvfDCY48f5ua0xPVSv1a/umOq+tUXn6r/ix/AcyhC1nJ4Fv/SWS1sjiNSB/AYc1bYMbN1HC0zCiLWceH8AJ2vLgaJdKYPoGX63eZLeoB5RdEymSN1ADdIN4obqavgynSLOB1gXxFwrwj4VrwDTxLduEKcIy7D94uNeJO41WBhFUO6gUWzcqGFa2pVL7bPaBVOX4niP7zcl//wShTQuRN8nubNIip19BSsHOEYoM8WwHaIQDMQJOosbW+3agR2wRUaMKfGNOlFpGM1CB3S+WsQtkkcFkmokCmMEqaTfWifqGMU2XEsjt5JXmn/6B2stoOEii8vplUIKrPOOlXM82gjhyWU21HTdZgsgkMoEEqEGuEiiI8Vp15taRGD/n6exVawo20w1qDt9+SQMUB/qKd9dUBL2MYQZLON7GkUpdAukdW337/Rbb/vGkS7BNcECELp5BN/HG3/RWd0HXzoEJfii6JcYZfY6toJ1PjyXvYMpH/3vHfjjfPe8/68d3+JVrvsmvVa/0HWKwa1b6Fpr2//3ceen1kpwqIPz3CjReIsMn16lkYfntkY9rFqcY4WZWHNQLZmuuYT8VrKCOFt/SWcgaPUD9UTajbeivfjJrVcLVCdQsqVWbgnxLQk3GOHulFdpP5MbdJyRNjraI4YgFc5huskTm9FAbLVICMUYLYGoACT1WhC9MdsgoTIaIV0KNtk0FuQQWggL5oNRyxmk1HWQxYkBfABBos/85FY2DL4k0j/c6LWVlait5xNoxxZuwGEa7Ic4cseaXQ3uigiQRL1xBQs9zBZTLGmDFOePF7ON03RT5FnyA2mRab1JpuMgAjIYAxmQ0APbOcsvEXoIQcZgoyh5tCABBSH4ziFV4REqbc+Xo4zxBkTTH3MfQIU60DIQjO4VD5VGCQPMAwwDjJlmjMDUq1ZyIEdnIM4eIcvs8nW58gjTXnmvACHtQjdjm/nJpICvkAoFifqiqU79HdAdjPRONk8OaDAWobLuHK5wlwRUGKdJ802zw5Yie7XLzMsM640rTSvDHhY32hoNG4ybwrYZthm3G3eHbDP+mvrB9arVjf4n2DGGuQbhjFNX7n1+Rvmr68cW5QerQ7REtnyN+duGrW8iM9v20AqNb8cgZBuB32GgudBLhuq5bKhkMuG0lw29Hvlss/cIJf9p5PS/Yg9Y/la5ESBA80g2Sb3FuJkRb6Nu03oL6fKY7lxQjZkqpO5Gdy9wnS5RKY1g/mQpS6Sm7hGIUKH9JxEEC8CSEQQhXkJSTo90vOybETmUGLn7VKI0WJW+GhBERWdIsVCZhpvUMyKeSg3mGTw6UKqNECfaRhGc1SUi0dzDj4HYlM2BPdsySE5IE8dZ6R56iSuWJpsLDCXcdOJk58mlIgluhLJpXfJLsMsNBPP42aTWXydMEeco5sl1UizjQuNC83LuQaygl8pLNPfb4C8lN9qfsZ8p7/ewEoOehw74m08GGd+TL9OqitV9aj6mgqR3cZfoMflvoLl8kXQHUGrIC6uYvtrLEpBwx3xPWF3TRCbI/s129ZFrk54IrWnMa5PuD0uPEAfbg+LJOEB0WGprAYG0ZE93fTlFuyMPnvtspnG+9EMTQcZ2omNicvoPyCwS57ErVq7ffvatTu2q9uXrENX/+cDdd3iB59Qv/nmG/WbbaPWLV2yfv2Speu4o5saGjY9srxhU7Gyf9Fzv/nNc4v2KzFvrDnz2Wdn1ryBnXVLltTBwTDDYuCpAXjqyTBDrC4qBC9HIc3ydr4ZrQyOarasC14drwsPjw6MRDEx4SYGGYABf3XsU/qMQUMMwa0hr4W+EvZK+CsRr0W2Rul22Y7YPrcBips6kOEbWyB7TpnRH/liIiBtP2MghQ/Hbh4DSGHw/so/q1ew5SNMsFV9Vv1k7GZ8mw9NRAFOwCZsK74LB3zxKQ5WvepyWlGL5Db6sQT1sSGwT8yBeGnAwx25AoUKPGRLOvoj8IAeiJUDt7FCT9mqlzH9McjgcnorOFy2rOMxWPLL4BVai5NEoz9kBvhqQaxsBAFT7BI8Ra120Gr1u+LNPPH6itxDMs/Lobxd7iXfyt8iT+Tv0E2Sy+SZeC4/U1cnP8AvkR/mt/IbdQ/Ka+Ud+Cn+GX677gm5WQ6XCS9ADDGAtwl2faghkfQS4vV9DIoJzJkMFPrrqH+lmvJIrpCjH21wmCbTyh03mdwBMXEyxMRi/WRDgcljmo0Xmh7BG3S78TbdPtOvTR+YrppSaO7AUSdh/sK71HvxrjPqYfXwGfycWnsGJ+JEvqT9g/ZXcYs6ihvNBav34TXUrmgOsaZLjbXZhpq1Gmt4ADiGPeyaOjr21XltgBK6FchXbX70Ufjv0UevYL36zZUr6jdYLxSoJ9W34TgJLpyO++P0ZmYKDaqXQce5+AHUrV7NckQ/jmkJWB32YsiRCIZiRgKe6VK58OeIb1yTI3YtVuAuRYweGQCdcIq/XsF5O6sYg1taOtBM+94uJQzXrr//raOOvxnwjIyOOBIlqyAKOqsoCr4qMK1cSRDwyRG0US8KmBcliuIMWi3HqtnY2R5dIK7fthjUtbAnKPfwnCwFcwlcotBXKuYgekpebpawhFsp/EJazzUJG6UnOJte0Iucgci63iSB7y30FfvqHMZyUmJcSZZB9HxAXKPbRDbqdpEnhYO6o7p3dd+Qi+Qb/iIfOvU+Gkyt1Djoo/TDh7j4L9r3cvdebD92SAxqq8Aft19q38PFtv9Jw/F4Pex9BCU/j57hMAB2nhZiLB21bA2fYocp1QdQ1whbBZHh0+NvvSWcvsyesdH6fQLYVgga4Ag1PWbeKzda8WNoL9/YYx19jSLEhFKDLKFUUD4Du8TSztQDAWFRYZzv9QlfrtLlRR1IXISEsnNLriL1IrZgtORc2Ywvf64+rc7Fy/GE5V8K007fc7d6TP2DekY9dvc974waBfhtOi7HW0eyWErfgXudj2XPhsMdZnEpvwMt5SDZ51HPjmfDFBvSlypoNn7xnXfoqxV8rMrGb0FI7CG8BOOjUInjljADatDxEXrAmFxDj8AAuzUqMjwstAdsEIHgJoDp6FM27aXBULmnqEBqoYWeU0OHtg2l361pYNWpDqsBGziD0WAK4kOtobagKAlkEE2iDTg6MJ0+zGRHbCA7MqLZwfdQ/1SE40eU47iK5ul4kPpYIb5NfaS8ebr63vTHytWjuKRIfQlXlJFl6n7SoDrxVtW5Sd3/sDoNb6HHwzh/E95K9eV/niii5x0JPLVziMBEs3QC9zkrxOBswuNnEH1oiAQB6/zPDG/6GGN/gUQNfBoifchIfqQwhSwgS4lORDpO4mk+F8SF8qFCH9QL9+IS+UQhXlSkQQjiBTeUHyoMFEehHJzD5fF5wkgRYqJYxlXwFcJcwBIzuTn8HKFeXCQ9hDaKiRADozW0wI1uf+MdfAb/8XftxwAh9OA/B4MkrP563pcfKIALYkNQo6xvtEGWID8dZTVIXGBIlIDM4cFCSHiyHoXb+GjtZbtTrN6Y2VGXhVQlIEZ7zUKLNh2N+OiuwCAar8cjnnj00SfUI7jvhnXrNqgGjj93edH8xu3qxSvtn3HH2//UsGr1Mq5Mvc1Te1/NjleeXfl4kHLioTf/iLir76nFLDc0oAA0whFu4HTI/JJR1yC8iI4Yn7VIFkEcb8KSEeVamNWezbR14hb28M5hsFgd1gJribXGqr3cECT66p/aSw5P/DL3loqx7E2H1e++stn5sNj7cxbz9oPvJoKsrMjhCJY4qwEJjebVerTYJoXLgyAkZNk6QwLdUH0P4tJ82VUqPhgVuCZwayBhq/rfBNEeye0/sff11/aeUD9QP1U/UT8QTrfVg4tdJKva7lLfV9/FfXCcv54whNXLkxxBUiP3NI8Wy6KOhAuD9NhfLm9j3jqUviiXur+AVcsh/6dFbCt9weYt7n/eeqs9BmJS+2bOdbkvrZzT9w3awBbOMVvY4Oh97fM8wMcUyEv0ed4zIqeDrCUcOXR69iaC7bvNHcnU3IcKXBAHmRCXCsg5l4PcR3BIt3O3C7dLbu7n3HrOEoxDSZRMH98NxIOIQ4b4RGaTGnmrTAuBhNkx8MCfwVvwI2faL54ADjZxZW1ft2dyx7QcZctVG34dqQDqQxxGsgUtFcE3Q1BP+p7MKfqOaRsLYRAsLr6zbXGhukd9BTsgfq0HkLwP4jIBLOl29I2L1Iu8HBHIo6DlgSssEJwhGkaEmvQCL0diU3goHw6xEfUKDYynFVAjVXkgw1DUMRhaBmPTnsNc+Bt9Ee4kXOpBTWCOfq48VyFT48HYAmMBJA/D3Z+pUF8JgI1aZ8Z23HDixNGXB02Zkpm+tHL8c867X53e8sGoKZNSEiRRVFW8bpN7SfHkjLtvmVydO/xI5qDXto5dWVyckhFiH9qfyWOf+jU3T7QhExroCBAhJphNOkRsIgqUWe02kFIud6n+yXQvO5umFaKotLDI2YNsPWJ7cRn9bQO5ecuXLF3W3NS4YaNo+1S97dw5dcgnX+A3/vwBbj0P622D9TxsvShHgI6up8PIYOMDJQTrDb3UOW9gerDNHsTpYgfYMvpz22DKxqbmZUuXirbz6tAP/qwO/uITfPTcOfwa4+Mo2YU9bP8d6JDxz9FiHgmctgXbitjjT6CdY04H019iG7G/TrRWaIaNmFoO9uwCkznN0UITZL74t4ARosGXbM/rjxGjeBcCsKy9w5yK2Ys82is+OP3pn83fvWfBgj3c5fm7d89fsGcP3fOAJu5zRpMOZTsCBPxzcEaJF0RKmnQD0treZ8QNpS/tOAJSO96xata/rNcxAqM1Irk4H51+WtEksM/3IC/Qo0cdoZJWnwPYny09hY6QpwSJYMRjUfaX440awtf0ynTM0H5rmq9+d/66Ap4jmz7n7cWN5PJ0gkEKMPQkYVJfSTEMIJlSqoHWKnJYrWK4dAeZLN1jKMElXBkp4UuEadJCwyLDM4YwX2WPPinE0feRGe1juQNtC7gD7W6+ZGfbe+t3knjKC7qaze1ncuvnCEKhtCYaShDJ5raCWjmESUorM5LraIScl5N2tX8Lwvl7lfas4gwuEd4jj/twiwlt5sTNvASIE8VS2NKa1vFGOlBFP2cE7rJKD/L4zosd7ysKM9j7kV85et8cy6Jn/FAW4mx3KJt2UygLioHQ92AQh3lOD2i2t9BbGsgNEPpLI7lckOVEbjo3E1DtUvr0WdrAPSKd4+wioag2jIToBBmQbU9CcW0f3QB+gDBAzNClGrMIqzXQqpFxGuigXJiumyXUGFeRVcIvAPGuMW4ij4qP6g6SX+qOkqO635N3dZ+Rz/nPhP8VvyHfCn8Xkyj6vY/CX/o6KWa7whbMt4eRUPVv7el0b1jJzWof1fYx9+v2W7TYegbdLbwHuFBE4x19xc1IpI/xNvOAgzaDDsXNggi5aTZ91QMJ/E78pE7k4kAPOroRa/r0i0n60l/Y1go6gRkQ6jIw0w0vkosH1ZQdaspBXKVhSxrTGTbVo3hHILcU6bbwS9EOyHsFHAIAVWZbPQvvZ+m74RBbGEhlUf4dGucBpraf0WK9hsFpLSQCZToUJIThRhLWKNkes+61N5rXSasjORRu7c+n9wwxWCJpVf5sW2sHFldP0eCeGm8FoGkVeT/65nt0xeX86+pBzlavftqsPq7W41X47gexzlPTtkq9oH6JA7Ht3p2n8bod7QsnTMQP4ypcjR8elfv7e0rUX6m/VX+n/ire/36Nb68vc4gmXkQyhKfW91tbbzmwCC2UuanIITCrpBaYOmZfdsEkRxAzXb1VNsjMfmHPBpiis5zv+M8RBLd0SNLzOiToeRFzMhFxAPxN9pWWaM6MF5/BXlx/RlXAx9S71Ml/5Oy+kJTe9i03r30ZiaCY4bwawQepe0A3Ab9ETwEe5i30WT0NoBAF+KArf1D3rFmjvc/YpJaxHMoA0TLQwCFdo7APLTYKkpjpgy7d8qmz2nM39kyE5VUmh6nAVGJaY9pqYnmVxY/bjr918uNxw5ZXQ5K1Xv360q6m11D3P8yb8VrABPRZzMNwGqn9kt+jMs4GJmYQCZF4DnAoSr76O9R+VY4rSaQDC8pyXMiBlKtXxSA1CG/SVeGPS4CVD65q81L7LJq7K2X/J/cEDP0ripLY5eNrAwf4f795t22vqVY/EU4l3wj2ratSQYCmj7559/Ltplrf9c6/fP4k0LYKpv8Yufh30HEyGh3mz6P7uN+iFCBzHl8G7VXoPfEcOi70QB/ym6BPLBoo2CCZrEfHuUz0Kt8XefiPr17WnUCHhTnIwn+C7oP7h4UgdJ84Fnn5I+hWcRUqhvFNghnmgevQ3iysYe3D0HbBbwP8boFjjdDG1tpJ52b3YS4xER2n8+g+RyPg3io4FsP5EPhtoPPxj6PD3F0wrgl5uf3oongA5gJahAWUxqvvCe+h/SIPc3x8tQ342cIPQ+tJFNoHxzYuHR3lW3A62Qu/6WgSjEcw/owwDB2nv3C+RUxHXmEeupVHV89zd11tYpLMJ0WoLypHRvZG6MNU8rydC4Zf+u8AQ/FtHfJ+CKd16MSAP/a1OdhM/+5rE2SAkVqbh/ZgX1tARq7E1wbXhKiktSGTArq0tgFFEL/OTbZHe0/xtc2o/5BpvrYFGYY842tbET/kKKyIeT0MS2Wr0zZGwfiEr80BEP/K1yZwXfW1eRTMxfjaAurJ5fraIgriqnxtCcVwv/C1DWgw1+prm+IHk0hf24zKB3/ra1tQ8JCNvrYVSUNeQMORB9WgOagWVaDpIOE6yBp7o1KUCL9pKBU+6dCaBj0UlA196pAXjlrkRk5UhZLgah6qhv7J0MpClfBRUGHHXF525oZfN4yZCd8u6Cl/j1UHdKxaBCvNhLXov2isht6UDieM+edWHAGtGTCuGNVDj1Lo62SzudkIJ+NIgVmq4bsG+kyDeSugnwLjPbC6k92TERruqZlTWzG9vE7pXZqopKWmpivT5ijZFXXeulq3sypJyasuTVayKiuVQtrLqxS6ve7amW5Xsnzd0AF0aJFzZtUMT/V0JdtZfpOBI9wznMX1Smm5s3q626s4a91KRbVSUz+tsqJUcXmqnBXVMrqGxQmMQS9c1gZPcFbDSTYw40H3QsPjuff7Dfk+fYqZtL0gIw+TYBrIPB0+qNhd663wVCtpyenp3ae6ZqIbrVXGZtN0WuezOP+6ZZ5qEFEdSBwxvdeB1gajFPi4fHPMhDmSYawHfmtBk242Xy3TeTLM64YxqLyurmZwSooLJp1Zn+z11NeWuss8tdPdydVuuJ3bhQK/jfjt9HpvoPeo3bmZ7brBgjxoFvSllvrT2B+daSTcmQN9ytnICrhXw/iqY7ZOpVbLRlDvoLPOvEaS1/LR6V/13fzrZtzQ53M34l2zASe0ukrtek+XUb8f8ZG/V/T46WPWjfXdyXMF3JFZq45doVZYxWR9L1zzgAb+ES2UswI2XxWbrdObKhhN5eye28fXdLZKtU/rST69a9rSVtNsTLP3JEaXh2m/mo2v8XmstoIHZq3z2ViFzwqcbA5N0rJvzjpGxbX2VMr6UTvUZvfPQHtrtGu27GYOr9leTBcriWGao2Nd7NfL6CqFMU4ffzLzglKw0Co2Sx2745dPGbQqfZ7Uu4PGzhVo1KL014H9atZPV+yUCb1Sw7zGBSuUstF+alyMgzpma9Pgbh27q60hf8cKST5vLgXK6tksmkxmMRsoZ1GpzieZKnatK0d+Hmq7WaVGbT2TYVIX7dB2FdOnpmu5SwTxwuikm/CR1MFnCosgCptZ8wdt7gqfVLtr/7u59ktOo7amw6LrGF2dVtfJ0Swmj6rvtYLfG8pYVK/2cejusqKLfdM1ktgvlcQM6FHK5tP6+PVH7bjSF9n8Gipla7sYxRU+Sgcz7yzyUeeEGT0sMnTqoGss6pTA9ZGgGvrX+bzB262v31c6JdY1BnQdpzCenYxymcXm7ramSUPbS5zfoU8P2wUVn+6r2G9n/Pg+uqhjOxHdWZ0+jpK7Seq7xlKZzPHtLdrqVOZljEaXz5IqmZ3WdlzRKKUydXXReVer8++gTrYjVrCYUcnO5A6OXIxSqq/qLtKY3m1f1Vbyx1Ansx7Ndv1rXCsf7z/kyU+l7OOg08KcTEffn4Lu61wrjxvRluTTdyUbV3GTaC53aKeWxVkniyud8/qveDss0u8v1+4ebl+cczMu/CvNYly52PiYG+yHMR18XztChnv+3Tami5VpPjP2mv1lGvN3Txda631+4LeTmXC34gYSc6PZTM7VPk+ugY+2ezlZRHV3jOiqd41m/xX5hp5SziK8wn69PhrdzJJuZif+WHej2O1iO0E103tXed1IqnIXyXXV4Q/1VS+Lmv69utPb/J5EkUNlB/ao9Y3oPmMNs+h74Xu6T2PafkitSu6Iqv/KSHVzrqb5fKTOtx+WdUhqFMph64xH+XBG1xkPZ0XoDsCRhexeHlxTAMcVwp1iOBsBV0cwvWSxO/R+DPPGO6BNZxyPJrK5tDkK4ZvOPRmu0LkVdk7PxkD/fJiLjs1Bk9gaOTDbBKBsPLTp3OPg6lj4zfH1oyOGw5WJcE7bIxFFodp6+TCqiPkOHUdp0Sgtguudq3anKo+t6KdsHJwVwvyjfHezYO48Nh+lP4nhI9rO99GpSa6QzU5lRGemcw4HisayM3p1IvwWQL8JTJ5ZjGeN2nzGQy7c13jJYRRomtAoGg6/BbA27TES6CpiUqArFfl6JjE9Un5GsPF01TGsl0bZeJ+WabtzlmSfLDU6qPyLO1aewPgfCx+F8V8EV4qYbrJgfv+8ftsZyWagdMtMGhMZf1lMDuPZCtmsH5UilefYDosr7KKV4UxeVG+U8hFspSwmkQk35MQ/W1ft3Mg65I4VRjL+cpikxrLeE0COOdA/r+OKZo95jNfhPllrc2p2r9nE2C7SHc54pJq9HVbN8dlUFpNddy6onu5g9HdyoWkgy/c9vIvMOrWf79Oun54itnLRDaRyB/PFHNYri+l6QoeP5DL/HeejfGKHhXXGgIk++xzfQVl3+fr9yN/v+8QObS7/2t01OILZ01gfhRM6pKH1kL9jXi125cC+VsrynLqOuN195+6KGjvRaFfcmdQl1nZFAloUHsn6Vl3Tr/Oqli1pe1ZnrtMVu90ow/ZnxxqW96PeTvShxW4tJ+qKel0Mn2sY0NuBSjwMB3o6kMksdrdzT6/x1U483fI8urKT7f1JHWv596LOuTRc6WRoga7mvYE0b75DyddlhjVsv9dWmcXadT5kQvmr9/Wl1+dekw376z/X60C5oQ78vNwIOXSVfy3Td40vl6pgEqZ4Mtk3by3y52WdMqES0OpuVddovdP66GyD0bVVBSqD6V0odzFZy0ir4dE1ZRav/DWu/3zV6aeuWf831YPkbvWga5HXv64eJN+wHqT8m+tB8veqB3VH8qVdaOqsdfh7fr8K6o0qLPJ/rK6kXFdXkv9/XalLXamzwvD/Zl1J7rbD/ufqSvINsrX/hrqSfMO6UidH/566kvwd9YJ/T11JRv9sXanzqdNPWVfq9LfudaWb7b43ry5p+bmGJP7bqksy6l5dunF1499TXZK/Q7pKFwn+d1eZZGZj16OZf3+VSf4vrjLJ11SZOnPdf2eVSf6HVSbl31Zlkv+JKpPyL6syyUwGxTDraEatJu0suP/vqx3JN9T5f6p2JF9XO1L+Y7Uj+aa1o84a0L++diT/E7Wj75r3X1s78kfWm+8o11d85B9Q8elapfkpKz7yj6r4XJ+z/bCKj9yl4vNddYefokJTd938DtRZaZDZOvQsGaFc9oIWfVWNvuzW8X6c0tvrdivT3JWeWYnJyvd4sS1ZGVk5p6bcq1RU1Xhq69wupazWU6Vk1bpn+l4C86/BXqSr116k67qMLHeuXuyudSoaaR1v48n9vvNPvv69ve/9yp9yzcoVXtmp1NU6Xe4qZ+29iqfs2llkucBdW1XhZS/NVXiVcnetG9aaXuusBtaTgHdgC4aBxGqnu5OUOo/irJ6j1LhrvTDAM60OJFYBInAqpUC0DD3ryt1+OZWWeqpqoDvtUFcOs4OU3dVekF4ME0lMIkzmUpxer6e0wgnryS5PaX2Vu7rOWUfpKauoBCX1pjOyAcoET1ndLBB/TCKjpNZdU+tx1Ze62TSuCmCsYlp9nZvSIHcbkARqLq2sd1FKZlXUlXvq64CYqgrfQnSFWk2UMG29F/pTdpKUKjflWmYG4i1P6rJGEl0zxVOreN2gB+hdAaT62L9maUocTFtDBV0na6JjC80qB8O6bgBVQ1l9bTUs6GYDXR7F60lSvPXTZrhL6+gVyl+ZpxKMjTJU6ql2VVA+vINluQimc07zzHQzDjQrYgR0GEG1pw7U4NWuUq3UdFqAdk/xljsrK+Vpbp/UgAzwEmc3Pj3VYBe1SpWn1n1DtpW6OTXuMicslKwR1f1ulXMOeAsMd1WUVVBDc1bWgelBAyZ1ulyMc0101EGdtUBXfaWzVqYLudzeiunVjIzpmq/CIGqhzlKYxEtH+OnxXrsSnVKGBZjAnJU3nsA3xk9H52xAXnXlHKWii5nLlJ1aN/1f3rC+tOGlgqR68buHG2zOXcsGzfLUurxKTIcfxtC1/TfkGOq2MUxkoJmxPn+Z5gZPorPWgw6oTGZ6KjoIc8+uA49RnDU14F7OaZVuekPjHWamDblTKeXOOqXc6YUZ3dXdZEKtrtO6XUp9tctHcCepMiNO4/C7tOr1VFKvZmqjSnIqlTR6gK/4O9Y4S+91TgfGwA+rPTI11X/OqLotBQELSHRXllGiRuUouePzi5QJ43OL7sgqzFHyJigFheOL80bkjFBisibAeUySckde0ajxE4sU6FGYlV80WRmfq2TlT1bG5OWPSFJyJhUU5kyYII8vVPLGFYzNy4FrefnDx04ckZc/UsmGcfnji5SxeePyimDSovFsqG+qvJwJdLJxOYXDR8FpVnbe2LyiyUlybl5RPswJxBUqWUpBVmFR3vCJY7MKlYKJhQXjJ+TAHCNg2vy8/NxCWCVnXA4wARMNH18wuTBv5KiiJBhUBBeT5KLCrBE547IKxyQpMNl4YLlQYV2SgUqYQ8kppoMnjMoaO1bJziuaUFSYkzWO9qXSGZk/flyOnDt+Yv6IrKK88flKdg6wkpU9NkejDVgZPjYrb1ySMiJrXNZIyo5/EdpNY6dTHDIdMDInP6cwa2ySMqEgZ3gebYAc8wpzhhexniB7kMRYRu7w8fkTcm6fCBegn3+JJPmOUTlsCWAgC/4bzihj7OcDu3SeovGFRR2k3JE3ISdJySrMm0A1kls4Hsil+hyfyyxgIsiTKi/fRy/VEb12vXVALzrax+CInKyxMOEESgZckLv1BevKmV3qrqmjtu1zbi00sjCqxc4kZrVaEAATHlkNjqtdY03YlsCz2K6jRbfODZtux0la6GXhA6wbdiIt9LpmuiECemko8dTKHhpMZlV4mafDFljl0fY8xeushMVgFPUi1gtipbMShnk7yOzmULJ/M6yprYAhs2or6iCYKM56uFpbMde3Ddf6tinGgdLJAV2lMzho9Ne6vTWwS1XMdFfOSYa+tXQvY5RUVJd5aqt8rDPxldYN9kOFOmU6m9zlqZM9tdOTFVlmiOtHQ6fv+08efhocJGs4SPkhOEjuxEHKD8RB8vU4yBfkS9lMXv+ecQOA2glY5B+DlRQ/VpL/O7CSrOnhX4aVZM1hfxRWkn9CrCR3YiXlB2IluRsu+AFYSb4ZVlK+P1aSu2Clru7bDS7Bfg5B4qeCS7IPLik/Ci7J3chleeNPDZnkao/yoyGT/JNCJtkHmZQfDpnkayGT8kMgk3xDyKT8M5BJLsoqHjd6PCU7a9QPQkdyJ+c/Bh3JfnSk/Bh0JHdFR8oPQkfyDdGR8mPQETXWbo7SAXzkmwIf5Z8APvJ3Ax/lewAfmQGf7tjhHwOaOn9/BwMNcjL8JP+YfzOYwup298KRwmpnLvZUL5k9X62Ba92fFn73vzBMmVVxb0VKBQSr2ck15TUpvoj5g/4tJ9H+AfTVn9H/r+v1fy3cIsfVKyq5HET+Hk++TSPfNJG/mclfVXJJJf8nnnxtJn9pIhfjyVf3ZwlfqeRCE/myiZy/TL64TP5XJZ8PJp9lk3Mq+TSNfHJ2gvBJEzkLHc9OIB9/lCJ8fJl8lEI+VMmfVfJBGvmfIPKnJvK+St6zkT8uIGdeIH9QybvQ/d0F5PSpkcLpBeTUSPLO78KEd1TyuzDyW5X8RiW/VsmvVHKyibx9IlJ4WyUnIslbaeS4St5YZhXeCCdHg0mrSl5XyWsqeVUlr6jkZZW8pJIXVXJEJS+o5LCVHFoeLxxSScvzLwgtKnn+4FTh+RfI84v4g7+MFw5OdVwlBx38L+PJAZU810T2q+RZlexTyTMq2esiT5vJnt3xwh4X2b3LJuyOJ7ts5Ckg+qnLZKdKnlTJDpVst5FtKnnicbPwRBp53Ewec5Fm6NLcRLaqZMujRmGLSh41ks2PhAibXeSRTRbhkRCyyUIelslDKtnYZBI2qqTJRBphUGMT2bDeLGzoTdabyYOXybq1LwjrVLJ2zVRh7Qtk7SJ+zS/ihTVTyRoH/4t48oBKVq9KFlarZFUyuR/YvD+LrFxhEFYGkRUG0gAXGlxkOUhqeTxZZiU/V8nSJVZhqUqWWMlilSxSyUKVOK7+bMEC4WcqWbCAzHeReUV2YV48mauSOSqZbSazjGSmTOpVUneZeC+T2svkvsukRiUelVSrpDKa3KuSGdZsYcYEUqGS8gVkOpyUqcStEpdKSlUyTSXOwaTkMrnbSKaq5E6VTFHJ5EmyMPkymSSTO4JDhDvSSLFKJsLKE7NJkZ1MwBZhQk9SGERuHx0o3K6SAgMZr5L8cRYhXyXjLGSsSsbAnTEqGZ1nEUYHkrwIk5BnIaNMZKRKcptIThMZoZLhXD9h+GWS/QLJGkMcKhmmkttutQm3BZFbhwYIt9rI0CEmYajjagAZYiKDVZKpkkEDg4RBl8nAARZhYBAZkGEQBlhIhoH0jyTpJpJ2i0FIU8ktBpKaYhBSTSTFQJL76YVkC+mnJ0lppG+feKGvi/RJtAl94kmijfROiBd6Z5GEeNIr3iD0CiDxBhKnkliVxASQaOAz2kYUF4m6TCKBhUgXiTCRcJBguErCLpPQbBICJyEq6ekiPUBSPVQSDIOCQ4hdJUEqCVSJDTrYVGIFXq3ZxLKABLiIWSUmY7BgUokRehuDiUElsoXoVSJBN0kluiAiuggPN3mwADuBq0QlHJxz/Qi2EKQS3IJdyx7Aff9f+EP/aQK+8y/i/wJ6Fm+HCmVuZHN0cmVhbQplbmRvYmoKMzM2IDAgb2JqCjE1OTU3CmVuZG9iagozMzUgMCBvYmoKPDwgL0xlbmd0aCAzMzcgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nJtm+f/f+//ff+j///+HYRRQHTQAAFODClMKZW5kc3RyZWFtCmVuZG9iagozMzcgMCBvYmoKMjcKZW5kb2JqCjMzOCAwIG9iago8PAogIC9UeXBlIC9Gb250CiAgL1N1YnR5cGUgL1R5cGUwCiAgL0Jhc2VGb250IC9FQUFBQUIrRGVqYVZ1U2FucwogIC9FbmNvZGluZyAvSWRlbnRpdHktSAogIC9Ub1VuaWNvZGUgMzM5IDAgUgogIC9EZXNjZW5kYW50Rm9udHMgWzM0MCAwIFJdCj4+CmVuZG9iagozNDAgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL0Jhc2VGb250IC9FQUFBQUIrRGVqYVZ1U2FucyAKL0NJRFRvR0lETWFwIC9JZGVudGl0eSAKL1N1YnR5cGUgL0NJREZvbnRUeXBlMgovQ0lEU3lzdGVtSW5mbyA8PCAvUmVnaXN0cnkgKEFkb2JlKSAvT3JkZXJpbmcgKFVDUykgL1N1cHBsZW1lbnQgMCA+PgovRm9udERlc2NyaXB0b3IgMzMzIDAgUgovRFcgMAovVyBbIDAgWzYwMCAzMTcgMzYwIDYwMyA0MTEgNjE1IDM1MiA2MTIgNTQ5IDMxNyA4NjIgNjM2IDU3NSAzOTIgNjMzIDU1NyAyNzcgNTIwIDYxMCA5NzQgNjg0IDYxMSA2MzMgNjM0IDc4NyA1OTEgODE3IDYzNiA2MzEgNjM0IDYzNiA2OTQgNjM0IDYzNiA2MzQgNjM2IDYzNiA3NDggNjM2IDI3NyA2MzQgNjMzIDc3MCA1OTEgOTg4IDYzNiA2MzYgNTkxIDYzNiA2MzQgNTc5IDI5NCA2OTggMzM2IDgzNyA2ODQgNjg2IDI3NyA3MzEgNzUxIDYxMCAzMTcgNTMwIDM5MCAzOTAgMjc0IDU4OSA0NTkgNTI0IDMzNiA4MzcgNjU1IDgzNyAzMzYgNzc0IDY4NSA1MDAgMjk0IF0gXQo+PgplbmRvYmoKMzM5IDAgb2JqCjw8IC9MZW5ndGggMzQxIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJxdlFuPmzAQhd/5FX7cPqzAF2BXWkWqUlXKQy9q2h8A2KRIDSBCHvLva/xNWalIuRzsmTnnjD358fTpNA6ryr8vU3cOq+qH0S/hNt2XLqg2XIYx00b5oVsFpe/u2sxZHoPPj9sarqexn5Rll7/PslOp/Ef8c1uXh3r66Kc2fFA+9Nv7b4sPyzBe1NOv43l/e77P859wDeOqivQujD795scvzfy1uQaVpzzPJx83DevjOYa/7/j5mIMyCWs4dJMPt7npwtKMl5C9FfE5qLfP8Tls2f9bryrC2r773Sz79j4+h4R0REVhCpABeZBNqJQ1l1BtQHVClQa9gCzolSwB1CTkJGebkJW4jrUK1IO6hHRBzlcQPGsqaHiWDgTPigoano4KumQNtboCwUyLhhqEBic7hSdqtfAsQZ44qR7YKczQUBJn0FDjoEGDJc6IBuIMPB3MDDwtzIzwxBcjXksFvK5eQOK1VEBDjYMGDaXkhGdNnIWnhacVr3HQwrNqQXjtyGnFazRYNNgGhAYja2go6bQVr9FgRYPEoaHEa4sGJzxFg1SnDwZfrPSB/jk516h1mwazWZ5BV9GADLOSWqo7NBjJIn3gZDk0OJxwaLB0zKHBypr0QaqjoUSDEw1SAQ0xYLu8ckv3O/t+x6FVyPnFm4LYAuG1HEeIaBjU+G1EMVIt4cb/u6aKlmTYl/hwIOJZgxZEtvGyjcl9dnX3ZYljK03JNK+2STWMYR+38zRvUenzF5HjU8IKZW5kc3RyZWFtCmVuZG9iagozNDEgMCBvYmoKNTY2CmVuZG9iagozNDIgMCBvYmoKPDwKICAvVHlwZSAvRm9udERlc2NyaXB0b3IKICAvRm9udE5hbWUgL0VBQUFBQytEZWphVnVTYW5zTW9ubwogIC9Gb250QkJveCBbLTU1NyAtMzc0IDcxNyAxMDQxXQogIC9GbGFncyAzNQogIC9DYXBIZWlnaHQgNzI5CiAgL0FzY2VudCAxMDQxCiAgL0Rlc2NlbnQgLTM3NAogIC9JdGFsaWNBbmdsZSAwCiAgL1N0ZW1WIDAKICAvTWlzc2luZ1dpZHRoIDUwMAogIC9Gb250RmlsZTIgMzQzIDAgUgogIC9DSURTZXQgMzQ0IDAgUgo+PgplbmRvYmoKMzQzIDAgb2JqCjw8CiAgL0xlbmd0aDEgMTg4ODgKICAvTGVuZ3RoIDM0NSAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJzdewt4FNXZ8DlzZmav2exu7gkkk8QNICEJiVwSwGwuGwjkZhKuymXJbshCko27GyBSCpQiIMFowUTQFkotKrVClWIUG5BLK6IfoqCt1o9SsRYbsV8LaCEZ/vecmc1NtH3a/3++5/l3MzPnnDnnvd/OWUAYIWREaxFB9vKq9MzWHs8LCCX8AUZn1SwPSJc7NEZov4kQl1HbtKThXm7ZBWj3wNhzS+pbalf/OvwHCPH1CMUF6txO1993nsxASJoI78fXwYC2k8uCfhP076hrCKz8NCM+FPrboX+03lvjRNw9AJs8A/0TDc6VTcJ7/AiEEquhLzU6G9yLPv5sE/QDcEU0ef2BW+vQvQjlt9L3TT53U85vjmqg/xxCmjjUiU6zax9+FJ61MKcTbeTWIK7v24mOw3uOzevEp/Fm/Aq096IeuK9Hf8N68hs8AVpdsHYOnwijbehJtrKNfIqayavoXXQKfQitT3E2gbX4XZSILwC0zf1YSBf0jsN9Fekic3ACbkBP4ecB4irA6UVrOHhylQD5Lf4sjL6FNsJ3G3oKeaFNKVsP9H+EDqIt6Cp6nLuM5kH7FXQS6JGRScGBz6PrAGkfN4WrhXknAdpOtBOvR+eRn0dYDzMvCue50QD1IHCA0GL0pHBeeJzKA57nhb/CG4SGi51iuCYZuKBy24tfxWO5MvQurF+Fqsl95H7yId7AJ/MryGXUxiGyCC1FZ4TzYjhq0ySjNrEWt/CL2HcV5Y9bwS/C+9BlgLmYfAX9RKDsScYxQge5SqFMKAOea2HsSXZvU+6iGb1FboDcH+VkPI0vIrnwZhVfgh5He2DlCJAMQl4yDrB70Sphq/JF++A7RthK2gE+kwbO4qagJ7lavAWovQ7S9JJCNAFwDBeuoA34INCNNKuRXziPUDh6SSMKPOEwSpXMBzhbseuA/Z450utzE8ekDulKZo10AFUcCGmROm/dqpjDxwlzDwjDDhCb9gBvS774TS8vjkmdUTFH6sRRjkIVrGNRIQxWzYEm7cEwjDsK2TuK9YBgg7/iRQekmjrpIfNDyTkPmd05Y5DyKVGv7yOEwacw+CkH/sHBk4yEqxN8UYLrEbhOICRMhusAQqIdLvBR8SvgH3xHex9c3QjpoK+HOXqYYwArMd6BUAisD/kzQiZYYwI8pqsIhcJY6G8RsiyCC3BYU+GCZ1ghyNEMF8SDiDlwwZwogBEN86PBx2MgFsSAb8dWQHyoA7utk9v5OuEpiDYalPAq4jEoBIk4/BDWCus5HqWfONc9FpnPdZ/rzgizJFpsiZbEOh71+Elczydyu8b01d984igqCYxqb+XzE0CTBEXbDRht4nE8h+IJz1YDkKsnMnQ4GWMbsXb1fC6c/0eDuI2uO3/rY14Eex2Bmu32ECNnMkQlxGt1nEYfFZ8Qnz88PlpviE/gI9AWfJQP3xJxNLrVwrfauiw7Rg7XGxLiNKg8TjQVa8TwJMdIwNLd033JYs2GDyC9dLXbLF+7Yr52xRqVDaMZoGqN2fS5JSpbw+5zk3BEGk5OEiPCIxNwPI4IF5OTUkaMi8dZmePH3ZXOpeFxd43Pyowkb5Xvrlq96r6Xpm/e2v1O1aGlS16tfuDBa1rHrh988Ma8vXz2wbS0e6pmTE82xT65eu/h5OSuceNq5q4dy5kStq358f5EJqPjYAdxYPVhKNUerTMRRLDYaukyPqHHnIimh+hEQ1G4+Wp3Zg9ILH1y99VuIDE7A1uSLXelUCKhkWW5G2iL5ONeXnr/ui2dnWOf8f/sWe5Q73TuUMfDL/2sd6MY3vvUopqLYIZoFch2Dsg2Ag1DDnsKiiRYv0W3VYw8BHhD8GsxrWFdITuGE26YWRcpouJhVvO04YC/p/sEFaEiwEvmK/C9esWabQFSIhJBUiCbCREmnCwhixllZVo1TIQafk7Px0een3O0wXP8Xvmm/AGW/vrel538o5s2PGfmFswTX3p9YvZLo0fjbByGjdgu//fJPc8eeBLkshvkohcTUAhKsYfpENEfMp4khwQi8kg0lOhMYEM9b1J60oE0C5VIeOQkHAGaGmdJHJfIrbl37vuXf/pL+Xf4Am7/znefPHeM/OMRgDsHbeVb+BVIRIl2qygQDgn88/jnGpEbyaMRGnPP5G7K5NXuqOyMsHE4Ao/DkGZuXiCV5LVD8oK98oKX8BSQ42tUjqA3A8gxwx4bbdSR1lBda8SO0K64J2KQ1To12iiKsUVUdpmK8rqp6V1htCqqY1LDVHdWi5mjRhYByiTtmzY8+NBDD27Y1Ptx6hO1b/z58mnXjrTOTi79vQ8+PH/u9x9wKyvnyKfkL+S/yCdnV22lIZNDUBPwhdDUgcTS7DHaQ8h4Qv8EOiZyh3hSYsCiUIJm6DUgt8mXuoFJSk/mpR4gKAODC0eAzCyJOCsiGSP8Pm7oacQN8kWc0NnJL+pJb2sj+VzB5T57BfsZaq/Hbm+vl25rrxH/xF75Rc8wcx0aQzgWQxA3OIbgLJxMWrp6rhyhIQRksRl0Mw1oNKAolGwPE1utqNXYZd0RrbOGFhJrxN3RzKDVYAACCOpi3F0pI1RdcBazlatrfeSR1q2PPLL18pfXP7t8/Tq58MF75z/88Px7HzwpvyP/Ub4ov4vHYBok0iit60E2WuFHIJux9miToA0lh5AFH9Me0msNOoidotlqCgcFnOiZfCJTsd2rk090ZzKToDqwDLJhC6TJPfKCBc1nLp7ZJ5/Ho4Ufycfaend/Z/G2vae5RW34boTxUsC5Hni1oHLgVGMgyEI6TF26Yxq9KCKt1XwOEAAm4PTcmxbqr3abGZmx2SIhCUuWDATyM2dY7MiOC8x2SwWqwBXmCot1PlaCYL++ovj1kx4ofu7Qyy+nHVlfuHw8aUm787dv9r7LL/pwxZqkO1jMx2Ak3Cd4LOjLfAjt4fBwRFVFWQU8lmR8uacHj5XPMN1uAT2NhTonBiw2NuZF9EJkBwl50fiCuUPXTnbEhmUa0VgxI9bc052pKouq6/qVDFsw0CQCVSxYU3XREMSPLd1zL+jlOM7Fw+/dUzp936yTJ06cnPNs8bhRo3A7bsKNeMeoUWem2OW35bfk/5Lftk9B1H+65Fl8NcjRDP6cZR8moPDYVlN4q7bLtAMfJ8eGW6yGqVGgQm6AR5svXepzaVufnFRfHuTjK0BmO1ynP/3zG7U78F83Kv69cWvvKVHfVjVb/rX8Gbjzqdn4muriiNFkA90+B7bPIT163J6HbBjxAs/ZBF4Dl2gTBF5nI3otXNimJ3pkgwKQ6PMR0XTgA2STTtBpNSIroHRCut5g/j1ENeaVPd3BxKf9XGMWPtcofwNa2s/nJr2gIRjPt8fqUShUe22IJ9jA8cTI6zSi9kG8mdPOR/MxSWQOmEiSubrzeJ/8i2v41NnG3mv1Z4XkXp48f2M03iCvCuYeK8QosxIz+2S8w9SFnyBMulNBzmq+ycwcHDMhzSWPM/XpOhIHXRbETOZ1dlIBX/7sDfdOOXTThg1btmzYsImc5Qr+0b21ajYGt8IWPGG2bHjvg9+fO//hB9T+GkC+XtB5EvqJfUS0NVTHa9DwOFETYWyVSFfcsRizBllCtaVimaU0tGxYdGmsI9l8dcYBY/WMA5bqe+e8jGJvHZ04t2dyD81BViZaiHiTqUcDyRD4MuxTM/gMIUPM0GRoM3QZ+gxDbmRuVG50bkxubG5c7rDc4bnxa8lafq2wVlyrWatdq1urX2toi2yLaotui2mLbYtrG9Y2vC0+Gc9niSIyBg8IpEMjKvdUkmf6Ru8z44oqJj2TPb04++mnE2tyS9zkyjTHWflC7wpu3ef+VZ/0ruHW/bWJPvlFiybnFoFuFL+FnR2t++LsIdwe9By/RxTwcB5pIWSxGALux5zYojpyTw8/Qj4rZzN3Bv2eBHk2g71qIQKOtkfjDjPq0G2ymvVaCH5CZshEC4rXZYVTf+6haQFAXqV1JKhWUaQtMZOPCOdHQ7bAbZ+1/vDJrXIJPngDc/Ktm5+9IaT3ntm+YcO2vR9/+NEfe59RcG4Am0pmsX4UarTfqdegWMkYHapBh6I1rdbELdKR4a130NgfgqP5GJNeNBZKvBhx951gYyeokVlYID5x6WoPtTRqa5ZsKysM7cMzEjKkjMSMpN1oN97N7dbvNuyJ3B21O3p3zO5Y03zc598Txk1QbTMFSsNJeJxS/IxTwmY85rqm/PgnD9Q//jx++eVJL6792Zs3//4lfnDbgqP31h6es+XklBSJy7q/yd307iujSnrX7XUtfG3P4WPDH2wZf1fniBGVlZnblHr6OPBqA15jULo91rgl5KgZbYk5GtlKzK26LhowrUYkFsVCTgzGS7N8lVa6twmYQcp52/QfVso98ofYhvl7dpYVb5v/81cOP7fo8bxsKMsm4nD4Trwz9bW8nD+8febipLspHbAv4V9gtc9Je442SqcVREETJYqCLopw2iiNlnBClChwhOOjCOHytdAkx9ATelEL2zlRh0WxEDmMoAHwFCUidV+KUgOSEnw08Md/HuxBKNJqaCiqFDmtNpKLFqK147i7hPHaIq6Wa+aWC1B+abUxEEOihRgxVhOtHUlGCCM1k8gkqB6yNRO000mxZq44V7OMeHiP6NG0kJVCi9iiGQYhLCzLgrPoTkRjSe7uwh//QZ6KIYcs3twlhveswmfleb1FXP46OZfGMHkab1XtbZp9RIwxPm6Ejli3hEXqWuMjW0MJWFt86PGRx+4cEYNE41TRak2cdqeyCaERDXLGCcXQzOev0Ip6aD0YFs71bzemcAMCXtS4LDJv47qND7dtWrOx88qnJXurFu8ueGxT6uMNJz777ER9e3onl33m/ffPnPndB/JHPXLPsLhDaal7DmhXL7gP52AN1uKcWfMeVWzpFOhQBF81IJs9TM91oE1avgP8fQKJ16AJOiMkbXBS5vWZkO8ywmh5opaJp8gU+Tc4u+c4zpZ/I5zfd3PNvn38OgVuOsDdA3A1aJjdJFK4PM4h8ShH0NKSvZv5vAou2ZKYzvvlMafl0QDlxnlhdL+dx/ELhtSYO/T4mJHWl9Oh0GQ1pkLfpUy1xgyDuKTkhL5UkXK8c1nT9x56+eWxz97/3DP4GVpk0hKTa7m55xmn66JSs7jwBdLArYfYZzmEdnM8pjXLCbbLheI4IhG7OF3vl9z6p9R4UwI1SzS6A02xJ2sSYjr0CR1m/c94vAU9zHdEtpt32JLiUUpIkkYchsMSbBDuunsu9RcwnyhRJgOrhQurGSJA6xKnOOjAcpRcyH249OivM/Y1/vbzqx/JPX8DKw2fvl3+aN327ese3LRJOPiKbYR8Qf7UtUz+8u9/k6/jZvwofgBvTeitf+Wpp175xc+fPwA8kj66WU2M9fZY8lOdtSPe2BHdHr/jjoj4ODERxSWFxicm3EEJPgcmGqyPz13JsL+XjtJxOpdO0vl0IV1M16Rr03Xp+nRDLsrFuVwuyeVzhVwxV5OrzdXl6nMN5agcl3Pl+nLDQrQQL+QW6hcadqFdeBe3i+zidwm7xF2aXdpdul36XYb9aD/ez+0n+/n9wn5xv2a/dr9uv36/4Qg6go9wR8gR/ohwRDyiOaI9ojuiP2Io+iZiVFRkIb9QWCgu1CzULtRRxN8E6I75kFbZXl7Z5IeprkZLuIEbAfxx6fiJFeXZE2ds2Lply9aHt2x5+Itr17744upV7sqEiooJE8tKuCehoDwlvyG/jTPweDwBZ+yWV8rr5O/JK/Em/F28Bm9itn0d/KMI/EMP+9pw0sFzHcImDaRJbbIYT0AzBjC6E8p2MZMlR1uiRRhny6K+h004R34eV7yBx/e8vo9vLumcfuP8PiUPbga4lSz3WtBIe4QIiRd1hIooVKchmcaxmnhzhtXco+yV1a0HwJbGW8wpicmWMJYcRkGJdBDdeuPULbTIhWfhQvlVeZ98du9NPA3PuHlzhZAub5fXAkuP0eM5jFyAs4FfBHtpt30UxF6oTaMwJ9AHAR8VcRRCYj5H0DGB7rSxwBcjh4btrZnfDo74aikKsX4EFKzz7SYNgpBFtDwvcDaOA1WFQZCGUtN1BDtw0RHZ9znsTavJczd3Ay3bwL6nAFnD0Sh7VCixIh7rOqJ3mPGm+NB4y1guHmXEM/6pVSsRQw0YUSzSTrgb07ARLmpY3BiRhredNoZKLbNmr0wMNb6RXZS/b6lnX4Ejh5tCHu8xNsyPmTR58qSY++rJ9Z66T17LnZSTM+nuk4ou2kAuZ4GWMKhzl9onQhFO9KKN8ESw8TzJF3kUQfiIDl14R8gmAy9YInUi0RMLGmYi+phM3jI2XB9vzBjO6qQTlFJLNrvRREltwppNv/3CCx5bxeOosGSShmn9ZGGllNhXWnFflTVWnv7dC6Wral47jXdfx+KPe9/+6NGHOx7hXgv37pXrcMuP5/duFs7/9zvbD3Nze69878F1m0GudbAvWgc6tqLddkdIlCkEsrrewOmMNLNboqzIao4KNSP6sJhDTCGhUSZTSL45LASZdK2a4xbTsTCLOTQE6jKNVWstNjnCaOHFsr6ih+xBrPTbAb3omZyS/ida2U6ENy83c1qL1hpjjAlJMaWETrQUW4qtc0P0dCciajjQ3mg8juqTZnTIl2lTa5LSHrpve8M9902Vy4/jEjz1OK5rPiJ/lVNWtnPBCb6sZzupV/IOrV/LWE4cZY8UqW9CVuzgf6HHgm6sBpJYllHRyQnqP2wz2pcX6XWSLO+t5h7u9XFHelZARpOL9vV+rPpnM9jnfcH4aw/TdYSSjoj20B3RKNM4Xsy0jovus07lTCIYeyAahQ1ok80bd+7YuHHHzo3vftnbe/3LHkhMl3ExjpX/JL8kd8p/wjG4WH5AXgsxZxPeiNfKaxlviNok6NGILXaHgSpRpydUlXpwWx34rAh1m0YAJ9ZqNdR/jTA1Chnz9VC8aYmIjhm0RoNep1VO5A0alP6mUrpdnUzVyVT4NQ2egrZ6CadAjaF66tmtBh1vSEAJeDgXS4bxMcIwXZw+1pBgTEEpeBSXIowSR2mStanGbG68kC1ma7K0k40ObbGuyDDdOEs7RzfbMNdYy3lILe8RlurchuXcA8JK7Xd0PsOYUH0Ml0ASAGiCPkE/mhst3M3dLUzWT9PP1S/lPEKdfhW3hrTwa/gHhO/o1+ijIa5YsuIw/cPJBpx86PjuH+45fki+ceDFFw5AgFnB5fd2kc03d3O1vTtR37nFdNDlCPR9+xR2Pm2LVw+obQkJ8fnsdBpHvBj+dHSHBb+InuY7bO2WHSPjlcPplLhs09hwTXZSxkjQ+Ykhh9PKEUdQourBdNDFX9By1A+oN2ENRzQcpnY/5LiaH3hcnZKO6Xn1HfS8+up9Ly9o29vw2NJ3jspf9XjOLfO/VbdjX/Oj9W+/ikMuzOoS9rw1afKG+2vqkqPHvvPL838YM+b94sLNq5qWSzHpXbtf/58RwHs22NHj4CMiKrGPwjYwJGQTEaEPdjrBTiXykYAPEpEnGAlcupChAT6ZsXR/U8y3UenjLK4OLzwrz7gmzzi7Txh9Y7SSZ7aoOVOHGuzDNJjDnKgR84F/dBC2HiAICz9WY0EZ+mCCYzuKzGwVF3+KXiC8KEyFlxLFRWvAyjQTNbM5F7dU08w9oNFHi2B6YhEuFmfjJbhOpEcbYYn00AFuyVswwl8dv4Vk7XHh/M0s/q0bo/m3bmap56Ej2Pn9XfZYwYyN2kMibkVPmMRjei5Mg3SCGBJqGHzqdymTnrtmWmnlHwGaG47VanhcIv1lgR9xtqYUr5PXdNJDv2dfFMN33LOkpq0nnZxtK+ukP1NCPbcX8N6v5nuJVqIxqEOv67Buwh36XyRYDDEJYVpOQKb4SCFz2FgdirdmJCob73OsWs7uC2HZ/ftvMmAjTksiDTOnURjf/8WB9h8988VffrB+3XZ5On7lk6/Wr9/2tHxd/odcxJ3q/WjV1h9s5mrlu5tW3+/a++tfbv5ReOSZ3afPBOMO0GlEF+2FUAbo9DperyMQd0CNBgPkRRp2bErYsSlhxzYg7Bz8prDT881hRwk3GiX6gN6jdVTvC2hYSNDTqnG0nhasE/XzuHmCIcqQwt1JbPydwkjtaJ3NkGIcx+WQcXyOMEmbo7vLMN5YjarxPG4Omc3PEu4V79VUamfr5hjmG5do64wtZDnfoltuSAZ7CcYRQuPIybZ97z7XdvLCkdNvHAGbKSRJPb/nu26MJit6NqOBH8yfxY8gASEhS9gB3XjlSd5HtZwVUodBhL0tz3H8n1DKrXfQP25yCI2kCytqHS5kR9KtW2K4HI53ahrwx4sQvnDhggKX5p3qB1Iurm1fGDr5GkrQsuFTj4SNDT5vPtSLhS7tTOhqg1mC3jUN8nCqt5sP3QoXutTx/k8GfxbV0V/G6S/FcJ2H6zhcq+DaDdccuF6D6wV1nM7ZDNd64HQpXJehvQWuLrhs6roGdfwkXBvUdd3qu1NwpStj2KW+p9d1FS4d2wZXm0oXhdGs0kfxZKtPCnMv+0WfcpQBtjYaLYNIxiEz2kElIMzGFtAED28jsamP74XoaJ9szDhfbXNQYs5X2wTGv6+2eWi/pLYFsOY/qm0RmbgQtQ1ey9nVtgEN5x5W2yG6bRHn1LYJ3ZXwDkDGvA56XQwLbWN6bq+2OaTFVWqbwPhitc1D+zG1LaBo/LraFtEw/IXa1qIkbpjaNqAcrlJth4SlcM+pbROqS6hDBciLmlAL8iEPWoLqUAAizkhUg0bBMxNlwDcLWothhoTyYU4A+eHyITdyogaUCqPFqBHmp0ErD9XDV0KVfbD8rOeGpxvWLIe7C2bqUSG0lgKEWagZZtTAXCdAWcJmStCm8CWA0gj3JpizGOB6YJ4E672A18ne6REq8Da1+DxL6gLSyJpRUmZGRpa0uEXK9wT8AZ/b2ZAqFTfWpEl59fVSJZ3llyrdfrdvuduVpi90L3XOapZq6pyNS9x+yelzS55Gqal5cb2nRnJ5G5yeRkAwmNIqRielsRToaKT/MkIFU+Vs9Eul3kYYyYdhLxgfyvd6l/1bEP6NJbOYhP0gFy+TWibIOQu+aJbb5/d4G6XMtKyswZCDcIdApUBvR0Ytm6boNKDqP0hIrbcRZBsAiSOm9wBoLQfBVh70pcBYDjDSYK0Xnj7QpJvB8zGdpwFcN6xBdYFAU056uguALm9O83ubfTXuWq9viTut0Q2viwZQELSRoK1+3TbpO2p3bma/brAgL1oBc6ml/t+xP2rJ+ttiVrThhNZAmr/ua3o05j/4Uuz/G/57e2n38+xRpSix905mAw1MqstgzAua/2e0UM4qGLwGBq3frhXYdeydW+VrCcPSyKzSxeDUsrfuPmyKhhVrS2V0eRmFjWx9k+o7CgYvQA2oGvYwq1B4qVElHYQZYFQM9gsnzKphFtKkQg9CoLMV2hVLcjPXUyw4aYCVJDHN0bUu9vQzumpgjVPlT7HBGrDKBgYlwN4E5VMLrXrVjkf20diPgYYTSn8AfEGxc4qxXyZ0pAnuXsDSzOjsp8bFOAgwW1sMbwPsbRDHN2NIVX2pBihrZlAUmaxgNlDHYkJAlUwDGxvIURC+b5BVKtQ2MxmmDtAObTcwfQZ13e+/flid+g18pPbxmc7iksQgK/6gwPaoUh2s/W/nOig5hdqmPosODLG6fo5WMHk0/EsYgt5Qy2Jqo8qhewBGF7tTHKnsSSWxFGbUMHjKnIF2XK9GyaCGahhuF6PYo1Kaw7yzWl3lBIheFhn6dTAwFvVL4OuRgCadgOoN/kFzg77SL7GBMWDgOonx7FQ1tbgvbgdtTZGGEsmd36JPL8tBkqr7Bvbsjx//ii4CwHkTy2tOlaO0QZL6trVUJi199Dcw7/MwXw5GNEp7QI16yohCKZWpa4DOB1pdMH9RLIq8mgGKk60LcuRilFJ9NQ6QxhKYR7mpU8d8A2Kok1mPYrtBHEPl4/+nPA2Mca5BFuZkOrodBd9OyWB8Q+VyOxpTVb3Xs3Web4nqPjUCuRl9DYPgBkf8fZYZ9JuhWcStxjv3IA2sYFy52Pqk2+TFpD6+h66g84NZN2mAtSm+UzIkzyxmfu8dQGuz6g9BTSyHt57bSMyNVjI5N6oe3QRfJYs5WWR1960YqH+F5m/3mDoW6SX29Ks0uplFfbO9KNzdLobTt81s1mAJ306q0gDJDdThv+uzfhY9gzm73+uCHkUriPq+GsSnrhgMsYlZ9DK4L1E1puTFRibbofXH/4uI9c1cLVZ9JKDmxdo+SU1DDoanHJVBj+Iph141mg31ZCV7VwxjEtRzlfBmFvQKYbSQ6SWPvaHvk5g3zoY2hViOZjJYCoxKuFPYc2GEwpZYn/ZmwPwygEXXOtAchsMB0KrYzEoGuxRGS+DpUOfRFQUwMhP6tD0V0WpUwVcGq6qZ79B1lBaF0moY78c6mKpihjFIWSn0KgH+NPVtHsAuZvAo/alMUrRd1kdnkUppHpMRhUxhFgBFJaxHR2fCswLmVTF55jGeFWrLGA9F8F7hxcEoUDShUFQAzwrATWdMBbqqGRUUU7U6M5VxSPkpZOsp1hlsVKGsXNUybfdDSVNlqdBB5T+rD3MV478EvhLjvxpGqplu8gB+EG7QdqYyCKV9djST8ZfH5FDOMOSzd1SKVJ4lfTMrB2ilgMmL6o1SXsgw5TGJVN2WkyC0wdq5nXUEMUxl/DmYpErY7CqQowPmF/eNKPZYzHgtUGWrwFTsXrGJkgHSLWA8Us3eA1gdqk3lMdkN5kLxEEp/PxeKBvLUe8EAmfVrv0zVbkGfrsuZlX1dKrOZLzrYrDym66o+KRQx/y1VKZ85wMKCepyp2md5H2WD5Rv0o+C8fyV2KLCCuAdrsJDZU4lKYVWfNP45XCV2OSCv1bD9TqAvbg/O3AOrx/6qdGD9mTog1g6sBJQoPJXNbRgyr39Uic9Kzurf8wys4W6XuYK7ZKWm769+g9WHEruVvdHA6tfF6nSlFvT3VSVK/vD2VSYr2Nv+nK7sBhvYjIH7PT/Dq3DWrK4YCkupL52sWqDY/LeR5rdlqKE7xCaW7xUsK1g7oFYmlL9mdS4df2DIrtg3ZFf1z3QQ5OWfyd/H9N2k7qk8TMK0nkxT4fpQcH/WLxMqAeX0q2GI1vutj0LLQUPrUCqDJQMod6kaV07SKE49QkXsMI6eZ9Iz0b6zUGmk3+2WFrvrvStGpUn/wulnml7fv3iW2+eUFMh9Z676Md/60ev//dNZaQhmD5AoBXxOl7vB6VsmeWuHQtHrK9y+Bo+fnXXC7Dq3zw24lvicjQG3K1Wq9QHzsAwY9i1xp0oBr+RsbJGa3D4/LPAuDgDDnsYlgKUGiKYzA3Vu9VzTWVPjbWiC6XRCoA6gg5DcjX4QcBITSdIoAOaSnH6/t8bjBHwgwZrmBndjwBmg9NR66kHGIylEtkCq8tYGVoDMk0YxSnzuJp/X1VzjZmBcHmDMs7g54GY0DFqQClqqqW92UUpWeAJ13uYAENPgURHR+T5FlAC22Q/zKTupUoObcc30669LHYAjleJM9/okvxv0ALM9QKrK/hDUlDgA20QFHVBFxxCtqPM2fH0BVUNts68RELrZQpdX8ntTJX/z4qXumgAdUWRcDyZJGarxNro8lA9/jl5fDa+ci73L3YwDxYoYAX1G0OgNgBr8yijVSlO/BSjvJH+dE5ha7FalBmSAkTsH8eltBLvwSQ1en/u2bEuBliZ3rRMQpSlEDX7b4Gyh8Bu8Lk+thxqasz4ApgcNAOp0uRjniuiofzl9QFdzvdPHELncfs+SRkbGkvqWpjo/XUQt1FkDQPx0RZAe/1BMisW5FIE56wcAGAJEXRekpR8ikNhY3yJ5Bpk6sORz0//7y+bShp8Kk+om6CJusDu3wsAKr8/ll5L6fDGJ4g6+kJKo6yYxsYF2SlSfWewGb6JQm0EPlInlXk8fYe6VAfAaydnUBC7mXFzvpi8U/gHyEMXUOQNSndMPEN2Ng+UC6Pot3CU1N7pUgpMGx5UkhcNv06zfW089m6mOKsop1dMIAv4SnNjkrFnmXAKMgS82evvix79uWINQQdACEt31tZSoaQ6pqLysWqoqL6qenVfpkIqrpIrK8lnFhY5CKSmvCvpJqdLs4upp5TOrJZhRmVdWPVcqL5LyyuZKM4rLClMlx5yKSkdVlVReKRWXVpQUO2CsuKygZGZhcdlUKR/WlZVXSyXFpcXVALS6nC1VQRU7qiiwUkdlwTTo5uUXlxRXz02VioqryyjMIgCaJ1XkVVYXF8wsyauUKmZWVpRXOQBGIYAtKy4rqgQsjlIHMAGACsor5lYWT51WnQqLqmEwVaquzCt0lOZVzkilFJYDy5USm5IGVAIMyTGLLq6alldSIuUXV1dVVzrySulcKp2pZeWlVEYzywrzqovLy6R8B7CSl1/iUGgDVgpK8opLU6XCvNK8qY6qfiR0mspOvzjogqmOMkdlXkmqVFXhKCimDZBjcaWjoJrNBNmDJEoYuQXlZVWOe2bCAMwLogCFTHMwFMBAHvwVMMoY+2XALoVTXV5Z3UfK7OIqR6qUV1lcRUkoqiwHcqk+YQXlcSbIkyqvTKWX6oiOfd06YBZdrTJY6MgrAYBVlIyvzQXrcqyscTcFqG2rzq2ERxZKlfiZyqxWCQJgwlMbwXGVMdYEewbPYplHiXD9zkVTcqoafmn4AOuGbKSEX9dyN0RBPw0l4B9eGkxWePzM0yENNnjVvOd31gMyWNU3C+Klsx6W+fvIHOxQwYTY5PPAkhU+TwCCieRshlGf5wE1FfvUVDWUA4plKP0+t78JMpVnubu+JQ3m+mg+Y5R4Gmu9vgaVdSa+mkBOMIYGpCUMuAsY9/qWpEn6/+RX0XRWBS+DK51Vji52HpfGzkabYGzwOd+3/4aavsKzzJPugXC4Mq2prildjcnqv3Ngn1vfRfP6/r3IgM/L3Foc8cL2+ULeMByB2hGB+1r2f8hlaIexuxVZ4W5hbTO7h6KdcDexdsgLf5kq5NlwCFoNPSOywd2AMuGuZ/B0bJYWmeCuYW2RzRFYm2fjhI1wbATb58pElknvatIjk5syuZFJ/nGYfLWafHm9VfhSJl8e5a9fmytcbyXX1/LXrqYI1+aSa3b+agr5+9/Shb/fIH9LJ/8jk7/K5ItMciWcfN5OuoHEbpl0d946a7/F/2Uq+eyyS/isnVx2kT/L5NM/xQmfyuRPceQTmVxaRj6WyR8Pk4t/iBEu3iB/iCEX2sl/y+Qjmfz+wwjh9zL5MIJ80E5+99sI4Xcy+e1Wg/DbCPL+avJeDjkPnfM55JxM3n1HL7wrk3f05KxM3pbJmYcswplh5L8iyVsyebOdnN5iE07L5A2ZnFpNXpfJb2Tya5mc3BkinJDJcZkck8lrMjkK8I6GkyNG0vWrw0KXTH716nzhV4fJr9byrx62Ca/OJ6/a+cM28opMXm4nnW15wksyOQSPQzfILwHWQZm86CIvuMgvTOSAleyXyfOyvZf8XCbPyeRnVrJPJs8+YxKezSTPmMjTey3C0yPJXgv56VNjhJ+uJk+NIT+RyR6Z/Fgmu3fFCLtdZNePzMKuGPIjM/mhnjwpkycAyRMy2RlCdjyeJuyQyeNppAPwd7ST9scOC+0yeQxs67HD5LG1/PZHbML2+WS7nd8mkx/I5FHoP3qYPGIjbSCMtjzyMHD7cDjZaiCtMNDqIltAaFts5CEL2SyTTTLZKJMHN1iEB2WywUK+L5P1MvmeJV/4XhVZJ5O1K8ma764W1sjku6vJ6njyHZmsMpEHZLJCJstl0hwwCs2hpLkTI/sHfMBIAkd5v5X47bxPJvfLpEkm3sYqwdtOGhtGCo1VpGEkqZfJskyyVCaeTFJ3gyw5TGpl4paJSyY1i+OFGpksRmZhcTxxymSRTBbKZME8g7DAROa7yH2vk3uhc284mWcgYNFzwslsmcySycy4GGFmJqmWSZVMKmVyz2pSIZPycFImk1I8RiiVSclhMmMkmV4cLUyfQIoLrEJxNJnmiBamyWQq9Ka6SBH0ig4TRzQphIHCCaQg3yIUWElBJ2e36/j8vFAh30LyOzkEvTy7ScgLJXmd+Cj07LlGwW4i9k68Fnq5Rp2QayS5ndhud/F3y2QKkDDlBpksk0kjSY5MskHA2S4ycWysMHEGmSCT8WPChfEyGTeD3JURK9w1g2TBI0smmTAxUyZj4fXYWJIRS9KhlR5N0nSRQtphMiY1TBgTTsZ0chRtqtkipIaRVEpuOz/6TpswWiZ3wsw7bWQUlyOMkslImYyQSUoosUXmCzYHuSOUJMskKTRUSJJJojRGSFxNpDEkYQaJB8zxMhkuk2Eg22EyiQOtxMWQWJnEyCRaJlEAIaqIREaMESLzSUS4WYgYQ8LNJAzmhYUTK6y3ysQCnFvyiRkwmC3ErMgu1GQUQkNJqCI7U4heMBmJSZFdCMguRE9CQHYHeaOOGKltTeANMtEDJ3qZ6CKJ1kw0MhEBtCgTIZwQYI7cIBwMcDkEAwF4DEFmgjuxa8NWPPr/nw/63ybgP/wMR/8Hk5kx+wplbmRzdHJlYW0KZW5kb2JqCjM0NSAwIG9iagoxMDkxMgplbmRvYmoKMzQ0IDAgb2JqCjw8IC9MZW5ndGggMzQ2IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJybwPDDxb+j/CH/7+8vACZCBuUKZW5kc3RyZWFtCmVuZG9iagozNDYgMCBvYmoKMjAKZW5kb2JqCjM0NyAwIG9iago8PAogIC9UeXBlIC9Gb250CiAgL1N1YnR5cGUgL1R5cGUwCiAgL0Jhc2VGb250IC9FQUFBQUMrRGVqYVZ1U2Fuc01vbm8KICAvRW5jb2RpbmcgL0lkZW50aXR5LUgKICAvVG9Vbmljb2RlIDM0OCAwIFIKICAvRGVzY2VuZGFudEZvbnRzIFszNDkgMCBSXQo+PgplbmRvYmoKMzQ5IDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9CYXNlRm9udCAvRUFBQUFDK0RlamFWdVNhbnNNb25vIAovQ0lEVG9HSURNYXAgL0lkZW50aXR5IAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9DSURTeXN0ZW1JbmZvIDw8IC9SZWdpc3RyeSAoQWRvYmUpIC9PcmRlcmluZyAoVUNTKSAvU3VwcGxlbWVudCAwID4+Ci9Gb250RGVzY3JpcHRvciAzNDIgMCBSCi9EVyAwCi9XIFsgMCBbNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgXSBdCj4+CmVuZG9iagozNDggMCBvYmoKPDwgL0xlbmd0aCAzNTAgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nF2T22rjMBCG7/MUumwviq2xZLdQAiXLQi72QLP7ALY0Tg0bWSjORd5+Zf1TL6whh8+aGemTNNXh+OUYpkVVP9PsTryocQo+8XW+Jcdq4PMUdpqUn9wiVL7dpY+7Kief7teFL8cwzqpBlL9FiVSqes9/rku6q4c3Pw/8qDyP6/sfyXOawlk9/D6ctrenW4x/+MJhUXV5x8GX3+rwrY/f+wurqtR5OvocNC33p5z+L+LXPbKiwhprcLPna+wdpz6cefda52evXr/mZ79W/2/ctEgbRvfRpy18zM++kM5U11SDqJB1oKZQ14BMofYZZEEW1IIkryvUMOgZYwR6Ab2AepBEDliLrMxhTMhjLQbEIKk5Ig9VdF3IYNUafh38NPyMBsGvRU0tfh4Ev6YHwc9KFfi1UkX8ZD7xG0Di14HgZ+Cu4WdldvHDfmr4kawFfk1biMQBeSRnJGNwsKhCcLDYJYJDh9kJDkYi4WCw1wSHDqsmOFj4ERyszAcHg50nOLQyBgcjs8PBduWSym3Un3dzu8uEwyOcWlNLNMbX27126dY67pZS7prSpKVd1kaZAm/dHue4ZpXPXwnLBisKZW5kc3RyZWFtCmVuZG9iagozNTAgMCBvYmoKNDQ0CmVuZG9iagoxNSAwIG9iago8PCAvVHlwZSAvUGFnZXMKL0NvdW50IDIzCi9LaWRzIFsxMyAwIFIgMTk4IDAgUiAzMjAgMCBSIDIxNyAwIFIgMjUgMCBSIDI4IDAgUiAzMSAwIFIgMzQgMCBSIDQwIDAgUiA0MyAwIFIgNDYgMCBSIDQ5IDAgUiAyMDEgMCBSIDIwNCAwIFIgMjA3IDAgUiAyMTAgMCBSIDIyMCAwIFIgMjIzIDAgUiAyMjYgMCBSIDIyOSAwIFIgMjMyIDAgUiAyMzUgMCBSIDMyMyAwIFIgXSA+PgplbmRvYmoKMzUxIDAgb2JqCjw8CiAgL1R5cGUgL0NhdGFsb2cKICAvUGFnZXMgMTUgMCBSCiAgL0xhbmcgKGVuKQogIC9NZXRhZGF0YSA1IDAgUgogIC9QYWdlTGFiZWxzIDM1MiAwIFIKPj4KZW5kb2JqCjE0IDAgb2JqCjw8CiAgL0ZvbnQgPDwKICAvRjE2IDMyOSAwIFIKICAvRjE1IDMzOCAwIFIKICAvRjE5IDM0NyAwIFIKPj4KICAvUHJvY1NldCBbL1BERiAvSW1hZ2VCIC9JbWFnZUMgL1RleHRdCiAgL1hPYmplY3QgPDwKICAvSW0xIDcgMCBSCiAgL0ltMiA5IDAgUgogIC9JbTMgMTYgMCBSCiAgL0ltNCAxOCAwIFIKPj4KICAvQ29sb3JTcGFjZSA8PCAvRGVmYXVsdFJHQiA0IDAgUiA+Pgo+PgplbmRvYmoKMzUyIDAgb2JqCjw8IC9OdW1zIFswIDw8IC9TIC9EID4+IDEgPDwgL1MgL3IgL1N0IDIgPj4gMiA8PCAvUyAvciAvU3QgMyA+PiAzIDw8IC9TIC9yIC9TdCA0ID4+IDQgPDwgL1MgL3IgL1N0IDUgPj4gNSA8PCAvUyAvRCA+PiAxMiA8PCAvUyAvRCAvU3QgOCA+PiAxNiA8PCAvUyAvRCAvU3QgMTIgPj4gMjIgPDwgL1MgL0QgL1N0IDE4ID4+XSA+PgplbmRvYmoKeHJlZgowIDM1MwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDEzOSAwMDAwMCBuIAowMDAwMDAyNjc3IDAwMDAwIG4gCjAwMDAwMDI2OTcgMDAwMDAgbiAKMDAwMDAwMjczMCAwMDAwMCBuIAowMDAwMDAzNjYyIDAwMDAwIG4gCjAwMDAwMDM2ODEgMDAwMDAgbiAKMDAwMDA1MjIwNiAwMDAwMCBuIAowMDAwMDUyMjI3IDAwMDAwIG4gCjAwMDAxMDU0ODcgMDAwMDAgbiAKMDAwMDEwNTUwOSAwMDAwMCBuIAowMDAwMTA2MDExIDAwMDAwIG4gCjAwMDAxMDYwMzEgMDAwMDAgbiAKMDAwMDI2ODg3MCAwMDAwMCBuIAowMDAwMjY4NTMyIDAwMDAwIG4gCjAwMDAxMDYyMjUgMDAwMDAgbiAKMDAwMDExMjM5NiAwMDAwMCBuIAowMDAwMTEyNDE3IDAwMDAwIG4gCjAwMDAxMTk1OTcgMDAwMDAgbiAKMDAwMDExOTYxOCAwMDAwMCBuIAowMDAwMTE5NzAzIDAwMDAwIG4gCjAwMDAxMTk4NDEgMDAwMDAgbiAKMDAwMDEyMDc3NCAwMDAwMCBuIAowMDAwMTIwNzk0IDAwMDAwIG4gCjAwMDAxMjA4MjEgMDAwMDAgbiAKMDAwMDEyMTAzMiAwMDAwMCBuIAowMDAwMTI0MDM3IDAwMDAwIG4gCjAwMDAxMjQwNTggMDAwMDAgbiAKMDAwMDEyNDI1MiAwMDAwMCBuIAowMDAwMTI0OTIzIDAwMDAwIG4gCjAwMDAxMjQ5NDMgMDAwMDAgbiAKMDAwMDEyNTEzNyAwMDAwMCBuIAowMDAwMTI1OTg4IDAwMDAwIG4gCjAwMDAxMjYwMDggMDAwMDAgbiAKMDAwMDEyNjIwMiAwMDAwMCBuIAowMDAwMTI2Mjk3IDAwMDAwIG4gCjAwMDAxMjY0MzMgMDAwMDAgbiAKMDAwMDEyNzgzOCAwMDAwMCBuIAowMDAwMTI3ODU5IDAwMDAwIG4gCjAwMDAxMjc4ODYgMDAwMDAgbiAKMDAwMDEyODA5NyAwMDAwMCBuIAowMDAwMTI5MzU3IDAwMDAwIG4gCjAwMDAxMjkzNzggMDAwMDAgbiAKMDAwMDEyOTU3MiAwMDAwMCBuIAowMDAwMTMwOTU1IDAwMDAwIG4gCjAwMDAxMzA5NzYgMDAwMDAgbiAKMDAwMDEzMTE3MCAwMDAwMCBuIAowMDAwMTMyOTM1IDAwMDAwIG4gCjAwMDAxMzI5NTYgMDAwMDAgbiAKMDAwMDEzMzE1MCAwMDAwMCBuIAowMDAwMTMzMjI4IDAwMDAwIG4gCjAwMDAxMzMzNjQgMDAwMDAgbiAKMDAwMDEzMzUwMSAwMDAwMCBuIAowMDAwMTMzNTc5IDAwMDAwIG4gCjAwMDAxMzM3MTYgMDAwMDAgbiAKMDAwMDEzMzg1NiAwMDAwMCBuIAowMDAwMTMzOTM0IDAwMDAwIG4gCjAwMDAxMzQwNzIgMDAwMDAgbiAKMDAwMDEzNDIxMiAwMDAwMCBuIAowMDAwMTM0MjkxIDAwMDAwIG4gCjAwMDAxMzQ0MjkgMDAwMDAgbiAKMDAwMDEzNDU2OSAwMDAwMCBuIAowMDAwMTM0NjQ5IDAwMDAwIG4gCjAwMDAxMzQ3ODcgMDAwMDAgbiAKMDAwMDEzNDkyNyAwMDAwMCBuIAowMDAwMTM1MDA3IDAwMDAwIG4gCjAwMDAxMzUxNDUgMDAwMDAgbiAKMDAwMDEzNTI4NSAwMDAwMCBuIAowMDAwMTM1MzY1IDAwMDAwIG4gCjAwMDAxMzU1MDMgMDAwMDAgbiAKMDAwMDEzNTY0MyAwMDAwMCBuIAowMDAwMTM1NzIzIDAwMDAwIG4gCjAwMDAxMzU4NjEgMDAwMDAgbiAKMDAwMDEzNjAwMSAwMDAwMCBuIAowMDAwMTM2MDgxIDAwMDAwIG4gCjAwMDAxMzYyMTkgMDAwMDAgbiAKMDAwMDEzNjM1OSAwMDAwMCBuIAowMDAwMTM2NDM5IDAwMDAwIG4gCjAwMDAxMzY1NzcgMDAwMDAgbiAKMDAwMDEzNjcxNyAwMDAwMCBuIAowMDAwMTM2Nzk3IDAwMDAwIG4gCjAwMDAxMzY5MzUgMDAwMDAgbiAKMDAwMDEzNzA3NSAwMDAwMCBuIAowMDAwMTM3MTUzIDAwMDAwIG4gCjAwMDAxMzcyOTEgMDAwMDAgbiAKMDAwMDEzNzQzMSAwMDAwMCBuIAowMDAwMTM3NTA5IDAwMDAwIG4gCjAwMDAxMzc2NDYgMDAwMDAgbiAKMDAwMDEzNzc4NiAwMDAwMCBuIAowMDAwMTM3ODY0IDAwMDAwIG4gCjAwMDAxMzgwMDIgMDAwMDAgbiAKMDAwMDEzODE0MiAwMDAwMCBuIAowMDAwMTM4MjIwIDAwMDAwIG4gCjAwMDAxMzgzNTggMDAwMDAgbiAKMDAwMDEzODQ5OCAwMDAwMCBuIAowMDAwMTM4NTc2IDAwMDAwIG4gCjAwMDAxMzg3MTQgMDAwMDAgbiAKMDAwMDEzODg1NCAwMDAwMCBuIAowMDAwMTM4OTMyIDAwMDAwIG4gCjAwMDAxMzkwNzAgMDAwMDAgbiAKMDAwMDEzOTIxMSAwMDAwMCBuIAowMDAwMTM5MjkwIDAwMDAwIG4gCjAwMDAxMzk0MjggMDAwMDAgbiAKMDAwMDEzOTU3MCAwMDAwMCBuIAowMDAwMTM5NjQ5IDAwMDAwIG4gCjAwMDAxMzk3ODkgMDAwMDAgbiAKMDAwMDEzOTkzMSAwMDAwMCBuIAowMDAwMTQwMDEwIDAwMDAwIG4gCjAwMDAxNDAxNTAgMDAwMDAgbiAKMDAwMDE0MDI5MiAwMDAwMCBuIAowMDAwMTQwMzcxIDAwMDAwIG4gCjAwMDAxNDA1MTAgMDAwMDAgbiAKMDAwMDE0MDY1MiAwMDAwMCBuIAowMDAwMTQwNzMzIDAwMDAwIG4gCjAwMDAxNDA4NzMgMDAwMDAgbiAKMDAwMDE0MTAxNSAwMDAwMCBuIAowMDAwMTQxMDk2IDAwMDAwIG4gCjAwMDAxNDEyMzYgMDAwMDAgbiAKMDAwMDE0MTM3OCAwMDAwMCBuIAowMDAwMTQxNDU5IDAwMDAwIG4gCjAwMDAxNDE1OTkgMDAwMDAgbiAKMDAwMDE0MTc0MSAwMDAwMCBuIAowMDAwMTQxODIyIDAwMDAwIG4gCjAwMDAxNDE5NjIgMDAwMDAgbiAKMDAwMDE0MjEwNCAwMDAwMCBuIAowMDAwMTQyMTg1IDAwMDAwIG4gCjAwMDAxNDIzMjUgMDAwMDAgbiAKMDAwMDE0MjQ2NyAwMDAwMCBuIAowMDAwMTQyNTQ4IDAwMDAwIG4gCjAwMDAxNDI2ODggMDAwMDAgbiAKMDAwMDE0MjgyNyAwMDAwMCBuIAowMDAwMTQyOTA4IDAwMDAwIG4gCjAwMDAxNDMwNDcgMDAwMDAgbiAKMDAwMDE0MzE4NiAwMDAwMCBuIAowMDAwMTQzMzI1IDAwMDAwIG4gCjAwMDAxNDM0MDYgMDAwMDAgbiAKMDAwMDE0MzU0NCAwMDAwMCBuIAowMDAwMTQzNjgzIDAwMDAwIG4gCjAwMDAxNDM4MjIgMDAwMDAgbiAKMDAwMDE0MzkwMyAwMDAwMCBuIAowMDAwMTQ0MDQyIDAwMDAwIG4gCjAwMDAxNDQxODEgMDAwMDAgbiAKMDAwMDE0NDMyMyAwMDAwMCBuIAowMDAwMTQ0NDAyIDAwMDAwIG4gCjAwMDAxNDQ1NDEgMDAwMDAgbiAKMDAwMDE0NDY4MCAwMDAwMCBuIAowMDAwMTQ0ODIyIDAwMDAwIG4gCjAwMDAxNDQ5MDMgMDAwMDAgbiAKMDAwMDE0NTA0MyAwMDAwMCBuIAowMDAwMTQ1MTg1IDAwMDAwIG4gCjAwMDAxNDUyNjYgMDAwMDAgbiAKMDAwMDE0NTQwNiAwMDAwMCBuIAowMDAwMTQ1NTQ4IDAwMDAwIG4gCjAwMDAxNDU2MjkgMDAwMDAgbiAKMDAwMDE0NTc2OSAwMDAwMCBuIAowMDAwMTQ1OTExIDAwMDAwIG4gCjAwMDAxNDU5OTIgMDAwMDAgbiAKMDAwMDE0NjEzMiAwMDAwMCBuIAowMDAwMTQ2Mjc0IDAwMDAwIG4gCjAwMDAxNDYzNTQgMDAwMDAgbiAKMDAwMDE0NjQ5NCAwMDAwMCBuIAowMDAwMTQ2NjM2IDAwMDAwIG4gCjAwMDAxNDY3MTcgMDAwMDAgbiAKMDAwMDE0Njg1NyAwMDAwMCBuIAowMDAwMTQ2OTk5IDAwMDAwIG4gCjAwMDAxNDcwODAgMDAwMDAgbiAKMDAwMDE0NzIxOSAwMDAwMCBuIAowMDAwMTQ3MzYxIDAwMDAwIG4gCjAwMDAxNDc0NDAgMDAwMDAgbiAKMDAwMDE0NzU3OSAwMDAwMCBuIAowMDAwMTQ3NzIxIDAwMDAwIG4gCjAwMDAxNDc4MDEgMDAwMDAgbiAKMDAwMDE0Nzk0MSAwMDAwMCBuIAowMDAwMTQ4MDgzIDAwMDAwIG4gCjAwMDAxNDgxNjQgMDAwMDAgbiAKMDAwMDE0ODMwNCAwMDAwMCBuIAowMDAwMTQ4NDQ2IDAwMDAwIG4gCjAwMDAxNDg1MjcgMDAwMDAgbiAKMDAwMDE0ODY2NiAwMDAwMCBuIAowMDAwMTQ4ODA4IDAwMDAwIG4gCjAwMDAxNDg4ODkgMDAwMDAgbiAKMDAwMDE0OTAyOSAwMDAwMCBuIAowMDAwMTQ5MTcxIDAwMDAwIG4gCjAwMDAxNDkyNTIgMDAwMDAgbiAKMDAwMDE0OTM5MiAwMDAwMCBuIAowMDAwMTQ5NTM0IDAwMDAwIG4gCjAwMDAxNDk2MTUgMDAwMDAgbiAKMDAwMDE0OTc1NSAwMDAwMCBuIAowMDAwMTQ5ODk3IDAwMDAwIG4gCjAwMDAxNDk5NzggMDAwMDAgbiAKMDAwMDE1MDExNiAwMDAwMCBuIAowMDAwMTUwMjU3IDAwMDAwIG4gCjAwMDAxNTAzMzggMDAwMDAgbiAKMDAwMDE1MDQ3NiAwMDAwMCBuIAowMDAwMTUwNjE2IDAwMDAwIG4gCjAwMDAxNzQyNjEgMDAwMDAgbiAKMDAwMDE3NDI4NCAwMDAwMCBuIAowMDAwMTc1MDU2IDAwMDAwIG4gCjAwMDAxNzUyNzAgMDAwMDAgbiAKMDAwMDE3NjgyOCAwMDAwMCBuIAowMDAwMTc2ODUwIDAwMDAwIG4gCjAwMDAxNzcwNDYgMDAwMDAgbiAKMDAwMDE3ODc2NSAwMDAwMCBuIAowMDAwMTc4Nzg3IDAwMDAwIG4gCjAwMDAxNzg5ODMgMDAwMDAgbiAKMDAwMDE4MTE0NSAwMDAwMCBuIAowMDAwMTgxMTY3IDAwMDAwIG4gCjAwMDAxODEzNjMgMDAwMDAgbiAKMDAwMDE4MzkxOSAwMDAwMCBuIAowMDAwMTgzOTQxIDAwMDAwIG4gCjAwMDAxODQxMzcgMDAwMDAgbiAKMDAwMDE4NDIxOSAwMDAwMCBuIAowMDAwMTg0MzU4IDAwMDAwIG4gCjAwMDAxODQ1MDAgMDAwMDAgbiAKMDAwMDE4NTQzOSAwMDAwMCBuIAowMDAwMTg1NDYwIDAwMDAwIG4gCjAwMDAxODU0OTcgMDAwMDAgbiAKMDAwMDE4NTcxMSAwMDAwMCBuIAowMDAwMTg2Mzk4IDAwMDAwIG4gCjAwMDAxODY0MTkgMDAwMDAgbiAKMDAwMDE4NjYxNSAwMDAwMCBuIAowMDAwMTg3ODAyIDAwMDAwIG4gCjAwMDAxODc4MjQgMDAwMDAgbiAKMDAwMDE4ODAyMCAwMDAwMCBuIAowMDAwMTg5NDE4IDAwMDAwIG4gCjAwMDAxODk0NDAgMDAwMDAgbiAKMDAwMDE4OTYzNiAwMDAwMCBuIAowMDAwMTkwNTQzIDAwMDAwIG4gCjAwMDAxOTA1NjQgMDAwMDAgbiAKMDAwMDE5MDc2MCAwMDAwMCBuIAowMDAwMTkyOTAxIDAwMDAwIG4gCjAwMDAxOTI5MjMgMDAwMDAgbiAKMDAwMDE5MzExOSAwMDAwMCBuIAowMDAwMTk1MTAyIDAwMDAwIG4gCjAwMDAxOTUxMjQgMDAwMDAgbiAKMDAwMDE5NTMyMCAwMDAwMCBuIAowMDAwMTk1NDAxIDAwMDAwIG4gCjAwMDAxOTU1NDEgMDAwMDAgbiAKMDAwMDE5NTY4MyAwMDAwMCBuIAowMDAwMTk1NzYzIDAwMDAwIG4gCjAwMDAxOTU5MDMgMDAwMDAgbiAKMDAwMDE5NjA0NSAwMDAwMCBuIAowMDAwMTk2MTI3IDAwMDAwIG4gCjAwMDAxOTYyNjcgMDAwMDAgbiAKMDAwMDE5NjQwOSAwMDAwMCBuIAowMDAwMTk2NDkxIDAwMDAwIG4gCjAwMDAxOTY2MzEgMDAwMDAgbiAKMDAwMDE5Njc3MyAwMDAwMCBuIAowMDAwMTk2ODU1IDAwMDAwIG4gCjAwMDAxOTY5OTUgMDAwMDAgbiAKMDAwMDE5NzEzNyAwMDAwMCBuIAowMDAwMTk3MjE5IDAwMDAwIG4gCjAwMDAxOTczNTkgMDAwMDAgbiAKMDAwMDE5NzUwMSAwMDAwMCBuIAowMDAwMTk3NTgzIDAwMDAwIG4gCjAwMDAxOTc3MjMgMDAwMDAgbiAKMDAwMDE5Nzg2NSAwMDAwMCBuIAowMDAwMTk3OTQ3IDAwMDAwIG4gCjAwMDAxOTgwODcgMDAwMDAgbiAKMDAwMDE5ODIyOSAwMDAwMCBuIAowMDAwMTk4MzExIDAwMDAwIG4gCjAwMDAxOTg0NTAgMDAwMDAgbiAKMDAwMDE5ODU5MiAwMDAwMCBuIAowMDAwMTk4Njc0IDAwMDAwIG4gCjAwMDAxOTg4MTQgMDAwMDAgbiAKMDAwMDE5ODk1NiAwMDAwMCBuIAowMDAwMTk5MDM4IDAwMDAwIG4gCjAwMDAxOTkxNzggMDAwMDAgbiAKMDAwMDE5OTMyMCAwMDAwMCBuIAowMDAwMTk5NDAwIDAwMDAwIG4gCjAwMDAxOTk1NDAgMDAwMDAgbiAKMDAwMDE5OTY4MiAwMDAwMCBuIAowMDAwMTk5NzYyIDAwMDAwIG4gCjAwMDAxOTk5MDIgMDAwMDAgbiAKMDAwMDIwMDA0NCAwMDAwMCBuIAowMDAwMjAwMTI0IDAwMDAwIG4gCjAwMDAyMDAyNjQgMDAwMDAgbiAKMDAwMDIwMDQwNiAwMDAwMCBuIAowMDAwMjAwNDg2IDAwMDAwIG4gCjAwMDAyMDA2MjYgMDAwMDAgbiAKMDAwMDIwMDc2OCAwMDAwMCBuIAowMDAwMjAwODQ4IDAwMDAwIG4gCjAwMDAyMDA5ODggMDAwMDAgbiAKMDAwMDIwMTEzMCAwMDAwMCBuIAowMDAwMjAxMjEwIDAwMDAwIG4gCjAwMDAyMDEzNTAgMDAwMDAgbiAKMDAwMDIwMTQ5MiAwMDAwMCBuIAowMDAwMjAxNTcyIDAwMDAwIG4gCjAwMDAyMDE3MTEgMDAwMDAgbiAKMDAwMDIwMTg1MyAwMDAwMCBuIAowMDAwMjAxOTM1IDAwMDAwIG4gCjAwMDAyMDIwNzQgMDAwMDAgbiAKMDAwMDIwMjIxNiAwMDAwMCBuIAowMDAwMjAyMjk4IDAwMDAwIG4gCjAwMDAyMDI0MzggMDAwMDAgbiAKMDAwMDIwMjU4MCAwMDAwMCBuIAowMDAwMjAyNjYxIDAwMDAwIG4gCjAwMDAyMDI4MDAgMDAwMDAgbiAKMDAwMDIwMjk0MiAwMDAwMCBuIAowMDAwMjAzMDI0IDAwMDAwIG4gCjAwMDAyMDMxNjQgMDAwMDAgbiAKMDAwMDIwMzMwNiAwMDAwMCBuIAowMDAwMjAzMzg2IDAwMDAwIG4gCjAwMDAyMDM1MjUgMDAwMDAgbiAKMDAwMDIwMzY2NyAwMDAwMCBuIAowMDAwMjAzNzQ3IDAwMDAwIG4gCjAwMDAyMDM4ODUgMDAwMDAgbiAKMDAwMDIwNDAyNyAwMDAwMCBuIAowMDAwMjA0MTA3IDAwMDAwIG4gCjAwMDAyMDQyNDYgMDAwMDAgbiAKMDAwMDIwNDM4OCAwMDAwMCBuIAowMDAwMjA0NDY4IDAwMDAwIG4gCjAwMDAyMDQ2MDggMDAwMDAgbiAKMDAwMDIwNDc1MCAwMDAwMCBuIAowMDAwMjA0ODMwIDAwMDAwIG4gCjAwMDAyMDQ5NjkgMDAwMDAgbiAKMDAwMDIwNTExMSAwMDAwMCBuIAowMDAwMjE5NjQyIDAwMDAwIG4gCjAwMDAyMTk2NjUgMDAwMDAgbiAKMDAwMDIyMDExOCAwMDAwMCBuIAowMDAwMjIwMzMyIDAwMDAwIG4gCjAwMDAyMjE3NjggMDAwMDAgbiAKMDAwMDIyMTc5MCAwMDAwMCBuIAowMDAwMjIxOTg2IDAwMDAwIG4gCjAwMDAyMjIyNTEgMDAwMDAgbiAKMDAwMDIzNjgwMyAwMDAwMCBuIAowMDAwMjM2NzgwIDAwMDAwIG4gCjAwMDAyMzY5MDMgMDAwMDAgbiAKMDAwMDIzNjkyMyAwMDAwMCBuIAowMDAwMjM3NTcwIDAwMDAwIG4gCjAwMDAyMzcwODggMDAwMDAgbiAKMDAwMDIzODE0NyAwMDAwMCBuIAowMDAwMjM4MTY4IDAwMDAwIG4gCjAwMDAyMzg0MjggMDAwMDAgbiAKMDAwMDI1NDUwNyAwMDAwMCBuIAowMDAwMjU0NDg0IDAwMDAwIG4gCjAwMDAyNTQ2MTIgMDAwMDAgbiAKMDAwMDI1NDYzMiAwMDAwMCBuIAowMDAwMjU1MzI3IDAwMDAwIG4gCjAwMDAyNTQ3OTIgMDAwMDAgbiAKMDAwMDI1NTk3MSAwMDAwMCBuIAowMDAwMjU1OTkyIDAwMDAwIG4gCjAwMDAyNTYyNTQgMDAwMDAgbiAKMDAwMDI2NzI4OCAwMDAwMCBuIAowMDAwMjY3MjY1IDAwMDAwIG4gCjAwMDAyNjczODYgMDAwMDAgbiAKMDAwMDI2NzQwNiAwMDAwMCBuIAowMDAwMjY3OTg5IDAwMDAwIG4gCjAwMDAyNjc1NzAgMDAwMDAgbiAKMDAwMDI2ODUxMSAwMDAwMCBuIAowMDAwMjY4NzYxIDAwMDAwIG4gCjAwMDAyNjkxMDAgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9Sb290IDM1MSAwIFIKICAvSW5mbyAxIDAgUgogIC9JRCBbPDQ2MUJDRkE2RUYzRTQ5RDVCNzc0RjUxODJCRjNFQUI1PiA8NDYxQkNGQTZFRjNFNDlENUI3NzRGNTE4MkJGM0VBQjU+XQogIC9TaXplIDM1Mwo+PgpzdGFydHhyZWYKMjY5MzA0CiUlRU9GCg==