Fred
3.2.1
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Refactored. Fred no longer patches framework files. New GUI.
A tool to support the developer by his development.
Ein Entwicklertool welches dem Entwickler zur Laufzeit bei der Entwicklung unterstützen soll.
3.1.x
3.2.x
3.3.x
<br/>
Welcome! <br/>
<br/>
What can Fred do?<br/>
<br/>
To date, Fred has the following features: <br/>
<ul>
<li> HTMLCheck: <br/>
performs different HTML quality checks in JavaScript </li>
<li> JSLint: <br/>
performs different JavaScript quality checks in JavaScript </li>
<li> STDERRLog: <br/>
every entry contained in STDERR is displayed </li>
<li> TranslationDebug: <br/>
displays all translation attempts of the current request which failed. </li>
<li> SQLLog: <br/>
lists all SQL statements of the current request </li>
<li> ConfigLog: <br/>
lists all ConfigGet requests, indicating their frequency </li>
<li> SessionDump: <br/>
show the current content of the serverside session </li>
<li> EnvDump: <br/>
show info about the environment of the layout object </li>
</ul>
<br/>
*Caution* : Please have a look at the possible config settings, which are easily accessible by clicking on "setting". <br/>
<br/>
<br/>
What is Fred's current status?<br/>
<br/>
<ul>
<li> modular design: <br/>
anybody can add a new module at any time </li>
<li> the modules' output is not yet sophisticated <br/>
ideas for improving the output or sensible configurations will be very welcome </li>
<li> please extend Fred, if you have good ideas <br/>
<li> if you have no time to implement your ideas yourselves, please enter them in dev mailinglist </li>
</ul>
<br/>
2014-03-04 09:44:06
opms.otrs.com
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KPCFET0NUWVBFIGJvb2sgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjQvL0VOIgogICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC40L2RvY2Jvb2t4LmR0ZCI+Cgo8Ym9vayBsYW5nPSdlbic+Cgo8Ym9va2luZm8+Cjx0aXRsZT5GcmVkPC90aXRsZT4KPGVkaXRpb24+QSB0b29sIHRvICBzdXBwb3J0IHRoZSBkZXZlbG9wZXIgYnkgaGlzIGRldmVsb3BtZW50LiBWZXJzaW9uIDMuMi4xPC9lZGl0aW9uPgoKPGNvcHlyaWdodD4KPHllYXI+MjAxNDwveWVhcj4KPGhvbGRlcj5PVFJTIEFHLCBodHRwOi8vb3Rycy5vcmcvPC9ob2xkZXI+CjwvY29weXJpZ2h0PgoKPGRhdGU+MjAxNC0wMy0wNDwvZGF0ZT4KCjxsZWdhbG5vdGljZT4KICAgIDxwYXJhPkdOVSBBRkZFUk8gR0VORVJBTCBQVUJMSUMgTElDRU5TRSBWZXJzaW9uIDMsIE5vdmVtYmVyIDIwMDc8L3BhcmE+CiAgICA8cGFyYT5UaGlzIHdvcmsgaXMgY29weXJpZ2h0ZWQgYnkgT1RSUyBBRywgTm9yc2stRGF0YS1TdHIuIDEsIDYxMzUyIEJhZCBIb21idXJnLCBHZXJtYW55LjwvcGFyYT4KICAgIDxwYXJhPkJ1aWxkIERhdGU6IDIwMTQtMDMtMDQ8L3BhcmE+CjwvbGVnYWxub3RpY2U+Cgo8L2Jvb2tpbmZvPgoKPHByZWZhY2UgaWQ9InByZWZhY2UiID4KICAgIDx0aXRsZT5QcmVmYWNlPC90aXRsZT4KICAgIDxwYXJhPkEgbW9kdWxlIGZvciBoZWxwaW5nIHdpdGggZGV2ZWxvcGluZyB3ZWIgYXBwbGljdGlvbnMuPC9wYXJhPgo8L3ByZWZhY2U+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5GZWF0dXJlIExpc3Q8L3RpdGxlPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5IVE1MQ2hlY2s8L3RpdGxlPgogICAgICAgIDxwYXJhPlBlcmZvcm1zIGRpZmZlcmVudCBiYWQvYmVzdCBwcmFjdGljZSBjaGVja3Mgb24gdGhlIGdlbmVyYXRlZCBwYWdlcyB2aWEgSmF2YVNjcmlwdC48L3BhcmE+CiAgICA8L3NlY3QxPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5KU0xpbnQ8L3RpdGxlPgogICAgICAgIDxwYXJhPgogICAgICAgICAgICBFeGFtaW5lcyB0aGUgY29kZSBxdWFsaXR5IG9mIGFsbCBKYXZhU2NyaXB0IGNvZGUgdGhhdCBpcyB1c2VkCiAgICAgICAgICAgIG9uIHRoZSBwYWdlIG9uIHRoZSBmbHkgKGFsc28gdmlhIEphdmFTY3JpcHQpLCB1c2luZyB0aGUgZ3JlYXQgdG9vbCBKU0xpbnQuCiAgICAgICAgPC9wYXJhPgogICAgPC9zZWN0MT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+U1RERVJSTG9nPC90aXRsZT4KICAgICAgICA8cGFyYT5ldmVyeSBlbnRyeSBjb250YWluZWQgaW4gU1RERVJSIGlzIGRpc3BsYXllZCA8L3BhcmE+CiAgICA8L3NlY3QxPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5UcmFuc2xhdGlvbkRlYnVnPC90aXRsZT4KICAgICAgICA8cGFyYT5kaXNwbGF5cyBhbGwgdHJhbnNsYXRpb24gYXR0ZW1wdHMgb2YgdGhlIGN1cnJlbnQgcmVxdWVzdCB3aGljaCBmYWlsZWQuIDwvcGFyYT4KICAgIDwvc2VjdDE+CiAgICA8c2VjdDE+CiAgICAgICAgPHRpdGxlPlNRTExvZzwvdGl0bGU+CiAgICAgICAgPHBhcmE+bGlzdHMgYWxsIFNRTCBzdGF0ZW1lbnRzIG9mIHRoZSBjdXJyZW50IHJlcXVlc3QgPC9wYXJhPgogICAgPC9zZWN0MT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+Q29uZmlnTG9nPC90aXRsZT4KICAgICAgICA8cGFyYT5saXN0cyBhbGwgQ29uZmlnR2V0IHJlcXVlc3RzLCBpbmRpY2F0aW5nIHRoZWlyIGZyZXF1ZW5jeSA8L3BhcmE+CiAgICA8L3NlY3QxPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5TZXNzaW9uRHVtcDwvdGl0bGU+CiAgICAgICAgPHBhcmE+c2hvdyB0aGUgY3VycmVudCBjb250ZW50IG9mIHRoZSBzZXJ2ZXJzaWRlIHNlc3Npb24gPC9wYXJhPgogICAgPC9zZWN0MT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+RW52RHVtcDwvdGl0bGU+CiAgICAgICAgPHBhcmE+c2hvdyBpbmZvIGFib3V0IHRoZSBlbnZpcm9ubWVudCBvZiB0aGUgbGF5b3V0IG9iamVjdCA8L3BhcmE+CiAgICA8L3NlY3QxPgo8L2NoYXB0ZXI+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5JbnN0YWxsYXRpb248L3RpdGxlPgogICAgPHBhcmE+VGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgZXhwbGFpbiBob3cgdG8gaW5zdGFsbCB0aGUgcGFja2FnZS48L3BhcmE+CiAgICA8c2VjdDE+CiAgICAgICAgPHRpdGxlPkFkbWluIEludGVyZmFjZTwvdGl0bGU+CiAgICAgICAgPHBhcmE+ClBsZWFzZSB1c2UgdGhlIGZvbGxvd2luZyBVUkwgdG8gaW5zdGFsbCB0aGUgcGFja2FnZSB1dGlsaXppbmcgdGhlIGFkbWluCmludGVyZmFjZSAocGxlYXNlIG5vdGUgdGhhdCB5b3UgbmVlZCB0byBiZSBpbiB0aGUgYWRtaW4gZ3JvdXApLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KPHVsaW5rIHVybD0iaHR0cDovL2xvY2FsaG9zdC9vdHJzL2luZGV4LnBsP0FjdGlvbj1BZG1pblBhY2thZ2VNYW5hZ2VyIj5odHRwOi8vbG9jYWxob3N0L290cnMvaW5kZXgucGw/QWN0aW9uPUFkbWluUGFja2FnZU1hbmFnZXI8L3VsaW5rPgogICAgICAgIDwvcGFyYT4KICAgIDwvc2VjdDE+CiAgICA8c2VjdDE+CiAgICAgICAgPHRpdGxlPkNvbW1hbmQgTGluZTwvdGl0bGU+CiAgICAgICAgPHBhcmE+CklmIHlvdSBkb24ndCB3YW50IHRvIHVzZSB0aGUgQWRtaW4gSW50ZXJmYWNlLCB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nCk9QTSBjb21tYW5kIHRvIGluc3RhbGwgdGhlIHBhY2thZ2Ugd2l0aCAiYmluL29wbS5wbCIuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgIDxzY3JlZW4+CnNoZWxsPiBiaW4vb3BtLnBsIC1hIGluc3RhbGwgLXAgL3BhdGgvdG8vRnJlZC0zLjIuMS5vcG0KICAgICAgICA8L3NjcmVlbj4KICAgICAgICA8L3BhcmE+CiAgICA8L3NlY3QxPgo8L2NoYXB0ZXI+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5Db25maWd1cmF0aW9uPC90aXRsZT4KICAgIDxwYXJhPlRoZSBmb2xsb3dpbmcgY29uZmlnIG9wdGlvbnMgY2FuIG9yIG5lZWQgdG8gYmUgY2hhbmdlZCB2aWEgU3lzQ29uZmlnLjwvcGFyYT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+RnJlZDo6Q29uZmlnTG9nIyMjT3JkZXJCeTwvdGl0bGU+CiAgICAgICAgPHBhcmE+V2hpY2ggb3JkZXIgc2hvdWxkIHRoZSBjb25maWcgbG9nIGRhdGEgaGF2ZT88L3BhcmE+CiAgICA8L3NlY3QxPgo8L2NoYXB0ZXI+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5NYW5pZmVzdDwvdGl0bGU+CiAgICA8cGFyYT5UaGUgbWFuaWZlc3QgbGlzdHMgYWxsIGluY2x1ZGVkIGZpbGVzIGFuZCB0aGUgcmVmZXJyaW5nIHBlcm1pc3Npb25zLjwvcGFyYT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+RmlsZWxpc3Q8L3RpdGxlPgogICAgICAgIDxwYXJhPgogICAgICAgIDxpdGVtaXplZGxpc3Q+PGxpc3RpdGVtPjxwYXJhPig2NDQpIGRvYy9lbi9GcmVkLnhtbDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvQ29uZmlnL0ZpbGVzL0FBQUZyZWQucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL0NvbmZpZy9GaWxlcy9GcmVkLnhtbDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvTW9kdWxlcy9EZXZlbEZyZWQucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWRDb25maWdMb2cucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWRDb25zb2xlLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkRW52RHVtcC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZEhUTUxDaGVjay5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZEpTTGludC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZFNlc3Npb25EdW1wLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkU1RERVJSTG9nLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkU1FMTG9nLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkVHJhbnNsYXRpb25EZWJ1Zy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0RnJlZC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvT3V0cHV0RmlsdGVyRnJlZC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvT3V0cHV0RmlsdGVyUG9zdFNob3dTeXN0ZW1OYW1lSW5IZWFkZXIucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZENvbmZpZ0xvZy50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvU3RhbmRhcmQvRGV2ZWxGcmVkQ29uc29sZS50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvU3RhbmRhcmQvRGV2ZWxGcmVkQ29udGFpbmVyLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRFbnZEdW1wLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRIVE1MQ2hlY2sudHQ8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZEpTTGludC50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvU3RhbmRhcmQvRGV2ZWxGcmVkU2Vzc2lvbkR1bXAudHQ8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZFNldHRpbmcudHQ8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZFNRTExvZy50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvU3RhbmRhcmQvRGV2ZWxGcmVkU1RERVJSTG9nLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRUcmFuc2xhdGlvbkRlYnVnLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vREJMaXN0ZW5lci9GcmVkU1FMTG9nLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vRnJlZC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQvQ29uZmlnTG9nLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vRnJlZC9Db25zb2xlLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vRnJlZC9FbnZEdW1wLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vRnJlZC9IVE1MQ2hlY2sucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL1N5c3RlbS9GcmVkL0pTTGludC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQvU2Vzc2lvbkR1bXAucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL1N5c3RlbS9GcmVkL1NRTExvZy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQvU1RERVJSTG9nLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vRnJlZC9UcmFuc2xhdGlvbkRlYnVnLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIHZhci9odHRwZC9odGRvY3MvanMvQ29yZS5GcmVkLmpzPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIHZhci9odHRwZC9odGRvY3MvanMvQ29yZS5GcmVkLkhUTUxDaGVjay5qczwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSB2YXIvaHR0cGQvaHRkb2NzL2pzL0NvcmUuRnJlZC5KU0xpbnQuanM8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgdmFyL2h0dHBkL2h0ZG9jcy9qcy90aGlyZHBhcnR5L2pzbGludC9qc2xpbnQuanM8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgdmFyL2h0dHBkL2h0ZG9jcy9za2lucy9BZ2VudC9kZWZhdWx0L2Nzcy9Db3JlLkZyZWQuY3NzPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CgogICAgICAgIDwvcGFyYT4KICAgIDwvc2VjdDE+CjwvY2hhcHRlcj4KCjxjaGFwdGVyPgogICAgPHRpdGxlPkNoYW5nZUxvZzwvdGl0bGU+CiAgICA8cGFyYT4KICAgIDxpdGVtaXplZGxpc3Q+PHRpdGxlPjMuMi4xIC8gMjAxNC0wMy0wNCAwOTo0NDowMjwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPlJlZmFjdG9yZWQuIEZyZWQgbm8gbG9uZ2VyIHBhdGNoZXMgZnJhbWV3b3JrIGZpbGVzLiBOZXcgR1VJLjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0PgoKICAgIDwvcGFyYT4KPC9jaGFwdGVyPgoKPC9ib29rPgo=
IyAtLQojIEFBQUZyZWQucG0gLSB0aGUgY29uZmlnIHRvIGJpbmQgU1RERVJSIHRvIGFuIGxvZyBmaWxlIHVzYWJsZSBmb3IgZnJlZAojIENvcHlyaWdodCAoQykgMjAwMS0yMDA5IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzo6RGVmYXVsdHM7CnVzZSBLZXJuZWw6Okxhbmd1YWdlOwp1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ0xvZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpUcmFuc2xhdGlvbkRlYnVnOwoKaWYgKCAkRU5We0hUVFBfVVNFUl9BR0VOVH0gKSB7CgogICAgIyBjaGVjayBpZiB0aGUgbmVlZGVkIHBhdGggaXMgYXZhaWxhYmxlCiAgICBteSAkUGF0aCA9ICRTZWxmLT57SG9tZX0gLiAnL3Zhci9mcmVkJzsKICAgIGlmICggIS1lICRQYXRoICkgewogICAgICAgIG1rZGlyICRQYXRoOwogICAgfQoKICAgIG15ICRGaWxlID0gJFNlbGYtPntIb21lfSAuICcvdmFyL2ZyZWQvU1RERVJSLmxvZyc7CgogICAgIyBjaGVjayBsb2cgZmlsZSBzaXplCiAgICBpZiAoIC1zICRGaWxlID4gMjAgKiAxMDI0ICogMTAyNCApIHsKICAgICAgICB1bmxpbmsgJEZpbGU7CiAgICB9CgogICAgIyBtb3ZlIFNURE9VVCB0byB0bXAgZmlsZQogICAgaWYgKCAhb3BlbiBTVERFUlIsICc+PicsICRGaWxlICkgeyAjIyBubyBjcml0aWMKICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SOiBDYW4ndCB3cml0ZSAkRmlsZSEiOwogICAgfQp9CgojIGRpc2FibGUgcmVkZWZpbmUgd2FybmluZ3MgaW4gdGhpcyBzY29wZQp7CiAgICBubyB3YXJuaW5ncyAncmVkZWZpbmUnOwoKICAgICMgT3ZlcnJpZGUgS2VybmVsOjpMYW5ndWFnZTo6R2V0KCkgbWV0aG9kIHRvIGludGVyY2VwdCBtaXNzaW5nIHRyYW5zbGF0aW9ucwogICAgaWYgKCBLZXJuZWw6Okxhbmd1YWdlLT5jYW4oJ0dldCcpICYmICFLZXJuZWw6Okxhbmd1YWdlLT5jYW4oJ0dldE9yaWdpbmFsJykgKSB7CiAgICAgICAgKktlcm5lbDo6TGFuZ3VhZ2U6OkdldE9yaWdpbmFsID0gXCZLZXJuZWw6Okxhbmd1YWdlOjpHZXQ7CiAgICAgICAgKktlcm5lbDo6TGFuZ3VhZ2U6OkdldCA9IHN1YiB7CiAgICAgICAgICAgIG15ICgkU2VsZiwgJFdoYXQpID0gQF87CgogICAgICAgICAgICByZXR1cm4gaWYgIWRlZmluZWQgJFdoYXQ7CiAgICAgICAgICAgIHJldHVybiAnJyBpZiAkV2hhdCBlcSAnJzsKCiAgICAgICAgICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+R2V0T3JpZ2luYWwoJFdoYXQpOwoKICAgICAgICAgICAgaWYgKCAkV2hhdCAmJiAkV2hhdCA9fiAvXiguKz8pIixcc3swLDF9IiguKj8pJC8gKSB7CiAgICAgICAgICAgICAgICAkV2hhdCA9ICQxOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoISRTZWxmLT57VHJhbnNsYXRpb259LT57JFdoYXR9KSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RyYW5zbGF0aW9uRGVidWdPYmplY3R9IHx8PSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6VHJhbnNsYXRpb25EZWJ1Zy0+bmV3KCAleyRTZWxmfSApOwogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fS0+SW5zZXJ0V29yZChXaGF0ID0+ICRXaGF0KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICAgICAgfTsKICAgIH0KCiAgICAjIE92ZXJyaWRlIEtlcm5lbDo6TGFuZ3VhZ2U6OlRyYW5zbGF0ZSgpIG1ldGhvZCB0byBpbnRlcmNlcHQgbWlzc2luZyB0cmFuc2xhdGlvbnMKICAgIGlmICggS2VybmVsOjpMYW5ndWFnZS0+Y2FuKCdUcmFuc2xhdGUnKSAmJiAhS2VybmVsOjpMYW5ndWFnZS0+Y2FuKCdUcmFuc2xhdGVPcmlnaW5hbCcpICkgewogICAgICAgICpLZXJuZWw6Okxhbmd1YWdlOjpUcmFuc2xhdGVPcmlnaW5hbCA9IFwmS2VybmVsOjpMYW5ndWFnZTo6VHJhbnNsYXRlOwogICAgICAgICpLZXJuZWw6Okxhbmd1YWdlOjpUcmFuc2xhdGUgPSBzdWIgewogICAgICAgICAgICBteSAoICRTZWxmLCAkVGV4dCwgQFBhcmFtZXRlcnMgKSA9IEBfOwoKICAgICAgICAgICAgaWYgKCRUZXh0ICYmICEkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyRUZXh0fSkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fSB8fD0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWctPm5ldygleyRTZWxmfSk7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RyYW5zbGF0aW9uRGVidWdPYmplY3R9LT5JbnNlcnRXb3JkKFdoYXQgPT4gJFRleHQpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPlRyYW5zbGF0ZU9yaWdpbmFsKCRUZXh0LCBAUGFyYW1ldGVycyk7CiAgICAgICAgfTsKICAgIH0KCiAgICAjIE92ZXJyaWRlIEtlcm5lbDo6Q29uZmlnOjpHZXQoKSBtZXRob2QgdG8gaW50ZXJjZXB0IGNvbmZpZyBzdHJpbmdzCiAgICBpZiAoIEtlcm5lbDo6Q29uZmlnOjpEZWZhdWx0cy0+Y2FuKCdHZXQnKSAmJiAhS2VybmVsOjpDb25maWc6OkRlZmF1bHRzLT5jYW4oJ0dldE9yaWdpbmFsJykgKSB7CiAgICAgICAgKktlcm5lbDo6Q29uZmlnOjpEZWZhdWx0czo6R2V0T3JpZ2luYWwgPSBcJktlcm5lbDo6Q29uZmlnOjpEZWZhdWx0czo6R2V0OwogICAgICAgICpLZXJuZWw6OkNvbmZpZzo6RGVmYXVsdHM6OkdldCA9IHN1YiB7CiAgICAgICAgICAgIG15ICggJFNlbGYsICRXaGF0ICkgPSBAXzsKCiAgICAgICAgICAgICRTZWxmLT57Q29uZmlnTG9nT2JqZWN0fSB8fD0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ0xvZy0+bmV3KAogICAgICAgICAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRTZWxmLAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAkQ2FsbGVyID0gY2FsbGVyKCk7CiAgICAgICAgICAgIGlmICgkU2VsZi0+eyRXaGF0fSkgewogICAgICAgICAgICAgICAgJFNlbGYtPntDb25maWdMb2dPYmplY3R9LT5JbnNlcnRXb3JkKFdoYXQgPT4gIiRXaGF0O1RydWU7JENhbGxlcjsiLCBIb21lID0+ICRTZWxmLT57SG9tZX0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFNlbGYtPntDb25maWdMb2dPYmplY3R9LT5JbnNlcnRXb3JkKFdoYXQgPT4gIiRXaGF0O0ZhbHNlOyRDYWxsZXI7IiwgSG9tZSA9PiAkU2VsZi0+e0hvbWV9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5HZXRPcmlnaW5hbCgkV2hhdCk7CiAgICAgICB9OwogICAgfQp9CgoxOwo=
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIxLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpPdXRwdXQ6OkZpbHRlckNvbnRlbnQjIyNGcmVkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlN1YnNjcmliZSB0aGUgb3V0cHV0IGZpbHRlciBhdCB0aGUgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok91dHB1dEZpbHRlckZyZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlYnVnIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUZW1wbGF0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFMTCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJMb2FkZXI6OkFnZW50OjpDb21tb25KUyMjIzAwMC1GcmVkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2YgSlMgZmlsZXMgdG8gYWx3YXlzIGJlIGxvYWRlZCBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6V2ViPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+dGhpcmRwYXJ0eS9qc2xpbnQvanNsaW50LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5GcmVkLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5GcmVkLkpTTGludC5qczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5IVE1MQ2hlY2suanM8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iTG9hZGVyOjpDdXN0b21lcjo6Q29tbW9uSlMjIyMwMDAtRnJlZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaXN0IG9mIEpTIGZpbGVzIHRvIGFsd2F5cyBiZSBsb2FkZWQgZm9yIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OldlYjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPnRoaXJkcGFydHkvanNsaW50L2pzbGludC5qczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5qczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5KU0xpbnQuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkZyZWQuSFRNTENoZWNrLmpzPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkxvYWRlcjo6QWdlbnQ6OkNvbW1vbkNTUyMjIzAwMC1GcmVkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2YgQ1NTIGZpbGVzIHRvIGFsd2F5cyBiZSBsb2FkZWQgZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJhbWV3b3JrPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6V2ViPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5GcmVkLmNzczwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJMb2FkZXI6OkN1c3RvbWVyOjpDb21tb25DU1MjIyMwMDAtRnJlZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaXN0IG9mIENTUyBmaWxlcyB0byBhbHdheXMgYmUgbG9hZGVkIGZvciB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyYW1ld29yazwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OldlYjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5jc3M8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6Q29uc29sZVdpZHRoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBGcmVkIGNvbnNvbGUgaW4gcGVyY2VudC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+NTAlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6Q29uc29sZU9wYWNpdHkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BhY2l0eSBvZiB0aGUgRnJlZCBjb25zb2xlLCBlLmcuIDAuOSBmb3IgMTAlIHRyYW5zcGFyZW5jeS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MC45PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjQ29uc29sZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgZnJlZCBjb25zb2xlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI1NRTExvZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IGFuIHJlYWx0aW1lIFNRTCBzdGF0ZW1lbnQgbG9nIGZ1bmN0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlNob3dzIGEgbGlzdCBvZiBhbGwgU1FMIHN0YXRlbWVudHMgZXhlY3V0ZWQgaW4gdGhpcyBjYWxsLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI0hUTUxDaGVjayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IGFuIHJlYWx0aW1lIEhUTUwtY2hlY2tlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5WYWxpZGF0ZXMgdGhlIEhUTUwgaW4gdGhpcyBjYWxsLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI0pTTGludCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IGEgSmF2YVNjcmlwdCBjb2RlIHF1YWxpdHkgY2hlY2tlci4gT25seSB3b3JrcyBpbiBDVlMgSGVhZCAvIE9UUlMgMyB3aXRoIGpRdWVyeS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5WYWxpZGF0ZXMgdGhlIEpTIGluIHRoaXMgY2FsbCBhbmQgc2hvd3MgZXJyb3JzIGFuZCBub3RpY2VzLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI1RyYW5zbGF0aW9uRGVidWciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCB0aGUgdHJhbnNsYXRpb24gZGVidWdnZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+U2hvd3MgYSBsaXN0IG9mIHVudHJhbnNsYXRlZCBzdHJpbmdzLiBQbGVhc2Ugbm90ZSB0aGF0IHN0cmluZ3MgZnJvbSBmcmFtZXdvcmsgQU5EIGN1c3RvbSBtb2R1bGVzIHdpbGwgYmUgc2hvd24uPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjQ29uZmlnTG9nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBjb25maWcgbG9nIG1lY2hhbmlzbS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5MaXN0cyBhbGwgY29uZmlndXJhdGlvbiBpdGVtcyB3aGljaCB3ZXJlIHVzZWQgaW4gdGhpcyBjYWxsIChhbmQgaG93IG9mdGVuIHRoZXkgd2VyZSBjYWxsZWQpLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI1NUREVSUkxvZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRvIHNlZSB0aGUgU1RERVJSTG9nLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkxpc3RzIGVudHJpZXMgZnJvbSB0aGUgU1RERVJSIGxvZy48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpNb2R1bGUjIyNTZXNzaW9uRHVtcCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRvIHNlZSB0aGUgZGF0YSBpbiB0aGUgc2VydmVyc2lkZSBzZXNzaW9uIG9iamVjdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5EdW1wcyBvdXQgYWxsIHNlc3Npb24gdmFyaWFibGVzLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI0VudkR1bXAiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCB0byBzZWUgdGhlIGRhdGEgaW4gdGhlIGVudmlyb25tZW50IG9mIHRoZSBsYXlvdXQgb2JqZWN0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkR1bXBzIG91dCBhbGwgZW52aXJvbm1lbnQgdmFyaWFibGVzLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNEZXZlbEZyZWQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGRldmVsIGZyZWQgb2JqZWN0IGluIHRoZSBhZG1pbiBhcmVhLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxGcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbj5BZG1pbjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8VGl0bGU+RnJlZC1EZXZlbG9wZXJ0b29sczwvVGl0bGU+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5BZG1pbjwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJDdXN0b21lckZyb250ZW5kOjpNb2R1bGUjIyNEZXZlbEZyZWQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGN1c3RvbWVyIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkN1c3RvbWVyOjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24+QWRtaW48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPFRpdGxlPkZyZWQtRGV2ZWxvcGVydG9vbHM8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhck5hbWU+QWRtaW48L05hdkJhck5hbWU+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iUHVibGljRnJvbnRlbmQ6Ok1vZHVsZSMjI0RldmVsRnJlZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OlB1YmxpYzo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uPkFkbWluPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxUaXRsZT5GcmVkLURldmVsb3BlcnRvb2xzPC9UaXRsZT4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPkFkbWluPC9OYXZCYXJOYW1lPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6OkNvbmZpZ0xvZyMjI09yZGVyQnkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+V2hpY2ggb3JkZXIgc2hvdWxkIHRoZSBjb25maWcgbG9nIGRhdGEgaGF2ZT88L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29uZmlnTG9nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIzIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMyI+Q2FsbHM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPkNvbmZpZzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMiI+UGFja2FnZTwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iREI6OkRCTGlzdGVuZXIjIyMwMDAtRnJlZFNRTExvZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Db21tYW5kIGZvciBnZW5lcmF0aW5nIGEgSFRNTCB2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik9iamVjdCI+S2VybmVsOjpTeXN0ZW06OkRCTGlzdGVuZXI6OkZyZWRTUUxMb2c8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6T3V0cHV0OjpGaWx0ZXJFbGVtZW50UG9zdCMjI091dHB1dEZpbHRlclBvc3RTaG93U3lzdGVtTmFtZUluSGVhZGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk91dHB1dCBmaWx0ZXIgdG8gc2hvdyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBzeXN0ZW0gaW4gdGhlIHN5c3RlbSBoZWFkZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPk91dHB1dEZpbHRlcjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpPdXRwdXRGaWx0ZXJQb3N0U2hvd1N5c3RlbU5hbWVJbkhlYWRlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGVtcGxhdGVzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJIZWFkZXIiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6U3lzdGVtTmFtZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5DdXN0b21pemFibGUgc3lzdGVtIG5hbWUuIElmIGVtcHR5LCBjb25maWcgaXRlbSAnSG9tZScgaXMgYmVpbmcgdXNlZCBmb3IgZGlzcGxheS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6QmFja2dyb3VuZENvbG9yIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgb3B0aW9uIGRlZmluZXMgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzeXRlbSBuYW1lIGJveC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+I0Q2MzUzNTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCjwvb3Ryc19jb25maWc+Cg==
IyAtLQojIEtlcm5lbC9Nb2R1bGVzL0RldmVsRnJlZC5wbSAtIGEgc3BlY2lhbCBkZXZlbG9wZXIgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkRldmVsRnJlZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpTeXNDb25maWc7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIE9iamVjdHMKICAgIE9CSkVDVDoKICAgIGZvciBteSAkT2JqZWN0ICgKICAgICAgICBxdygKICAgICAgICBQYXJhbU9iamVjdCBEQk9iamVjdCAgICAgTG9nT2JqZWN0IENvbmZpZ09iamVjdAogICAgICAgIE1haW5PYmplY3QgIExheW91dE9iamVjdCBUaW1lT2JqZWN0IEVuY29kZU9iamVjdAogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCAkUGFyYW17JE9iamVjdH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH07CiAgICAgICAgICAgIG5leHQgT0JKRUNUOwogICAgICAgIH0KICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZhdGFsRXJyb3IoIE1lc3NhZ2UgPT4gIkdvdCBubyAkT2JqZWN0ISIgKTsKICAgIH0KCiAgICAkU2VsZi0+e1N5c0NvbmZpZ09iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnLT5uZXcoICV7JFNlbGZ9ICk7CgogICAgJFNlbGYtPntGcmVkT2JqZWN0fSA9IEtlcm5lbDo6U3lzdGVtOjpGcmVkLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1N1YmFjdGlvbn0gPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJhY3Rpb24nICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc2hvdyB0aGUgb3ZlcnZpZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgaWYgKCAhJFNlbGYtPntTdWJhY3Rpb259ICkgewogICAgICAgIG15ICRWZXJzaW9uID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1ZlcnNpb24nKTsKCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+ICdTb3JyeSwgdGhpcyBwYWdlIGlzIGN1cnJlbnRseSB1bmRlciBkZXZlbG9wbWVudCEnLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZmFzdCBoYW5kbGUgZm9yIGZyZWQgc2V0dGluZ3MKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2V0dGluZycgKSB7CgogICAgICAgICMgZ2V0IGhhc2hyZWYgd2l0aCBhbGwgRnJlZC1wbHVnaW5zCiAgICAgICAgbXkgJE1vZHVsZUZvclJlZiA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcmVkOjpNb2R1bGUnKTsKCiAgICAgICAgIyBUaGUgQ29uc29sZSBjYW4ndCBiZSBkZWFjdGl2YXRlZAogICAgICAgIGRlbGV0ZSAkTW9kdWxlRm9yUmVmLT57Q29uc29sZX07CgogICAgICAgICMgbG9vcCBvdmVyIE1vZHVsZXMgd2hpY2ggY2FuIGJlIGFjdGl2YXRlZCBhbmQgZGVhY3RpdmF0ZWQKICAgICAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAleyRNb2R1bGVGb3JSZWZ9ICkgewogICAgICAgICAgICBteSAkQ2hlY2tlZCA9ICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfS0+e0FjdGl2ZX0gPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJyc7CiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdGcmVkTW9kdWxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEZyZWRNb2R1bGUgID0+ICRNb2R1bGUsCiAgICAgICAgICAgICAgICAgICAgQ2hlY2tlZCAgICAgPT4gJENoZWNrZWQsCiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJE1vZHVsZUZvclJlZi0+eyRNb2R1bGV9LT57RGVzY3JpcHRpb259IHx8ICcnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgUHJvdmlkZSBhIGxpbmsgdG8gdGhlIFN5c0NvbmZpZyBvbmx5IGZvciBwbHVnaW5zIHRoYXQgaGF2ZSBjb25maWcgb3B0aW9ucwogICAgICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCJGcmVkOjokTW9kdWxlIikgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbmZpZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1vZHVsZU5hbWUgPT4gJE1vZHVsZSwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBvdXRwdXQKICAgICAgICBteSAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5IZWFkZXIoCiAgICAgICAgICAgIFRpdGxlID0+ICdGcmVkLVNldHRpbmcnLAogICAgICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZFNldHRpbmcnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZvb3RlcigKICAgICAgICAgICAgVHlwZSA9PiAnU21hbGwnLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGZhc3QgaGFuZGxlIGZvciBmcmVkIHNldHRpbmdzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NldHRpbmdBY3Rpb24nICkgewogICAgICAgIG15ICRNb2R1bGVGb3JSZWYgICAgICAgID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpOwogICAgICAgIG15IEBTZWxlY3RlZEZyZWRNb2R1bGVzID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldEFycmF5KCBQYXJhbSA9PiAnRnJlZE1vZHVsZScgKTsKICAgICAgICBteSAlU2VsZWN0ZWRNb2R1bGVzICAgICA9IG1hcCB7ICRfID0+IDE7IH0gQFNlbGVjdGVkRnJlZE1vZHVsZXM7CiAgICAgICAgbXkgJFVwZGF0ZUZsYWc7CiAgICAgICAgZGVsZXRlICRNb2R1bGVGb3JSZWYtPntDb25zb2xlfTsKCiAgICAgICAgZm9yIG15ICRNb2R1bGUgKCBzb3J0IGtleXMgJXskTW9kdWxlRm9yUmVmfSApIHsKCiAgICAgICAgICAgICMgdXBkYXRlIHRoZSBzeXNjb25maWcgc2V0dGluZ3MKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJE1vZHVsZUZvclJlZi0+eyRNb2R1bGV9LT57QWN0aXZlfSAmJiAhJFNlbGVjdGVkTW9kdWxlc3skTW9kdWxlfQogICAgICAgICAgICAgICAgfHwKICAgICAgICAgICAgICAgICEkTW9kdWxlRm9yUmVmLT57JE1vZHVsZX0tPntBY3RpdmV9ICYmICRTZWxlY3RlZE1vZHVsZXN7JE1vZHVsZX0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIyB1cGRhdGUgY2VydGFpbiB2YWx1ZXMKICAgICAgICAgICAgICAgICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfS0+e0FjdGl2ZX0gPSAkU2VsZWN0ZWRNb2R1bGVzeyRNb2R1bGV9IHx8IDA7CgogICAgICAgICAgICAgICAgJFNlbGYtPntTeXNDb25maWdPYmplY3R9LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gIkZyZWQ6Ok1vZHVsZSMjIyRNb2R1bGUiLAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkVXBkYXRlRmxhZyA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgIFJlbG9hZCA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkQ29uZmlnTG9nLnBtIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZENvbmZpZ0xvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnTG9nIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBjb25maWcgbG9nIG1vZHVsZQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnTG9nLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgTGF5b3V0T2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgdHJhbnNsYXRpb25kZWJ1Z2dpbmcgbG9nCgogICAgJExheW91dE9iamVjdC0+Q3JlYXRlRnJlZE91dHB1dCgKICAgICAgICBNb2R1bGVzUmVmID0+ICRNb2R1bGVzUmVmLAogICAgKTsKCj1jdXQKCnN1YiBDcmVhdGVGcmVkT3V0cHV0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtNb2R1bGVSZWZ9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBNb2R1bGVSZWYhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkSFRNTExpbmVzID0gJyc7CiAgICBmb3IgbXkgJExpbmUgKCBAeyAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IH0gKSB7CgogICAgICAgIGZvciBteSAkVEQgKCBAeyRMaW5lfSApIHsKICAgICAgICAgICAgJFREID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRURCApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkTGluZS0+WzFdIGVxICdUcnVlJyApIHsKICAgICAgICAgICAgJExpbmUtPlsxXSA9ICcnOwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRDb3VudCAoIDAgLi4gMyApIHsKICAgICAgICAgICAgJExpbmUtPlskQ291bnRdIHx8PSAnJzsKICAgICAgICB9CgogICAgICAgICRIVE1MTGluZXMgLj0gIiAgICAgICAgPHRyPlxuIgogICAgICAgICAgICAuICIgICAgICAgICAgPHRkIGFsaWduPVwicmlnaHRcIj4kTGluZS0+WzNdPC90ZD5cbiIKICAgICAgICAgICAgLiAiICAgICAgICAgIDx0ZD4kTGluZS0+WzBdPC90ZD5cbiIKICAgICAgICAgICAgLiAiICAgICAgICAgIDx0ZD4kTGluZS0+WzFdPC90ZD5cbiIKICAgICAgICAgICAgLiAiICAgICAgICAgIDx0ZD4kTGluZS0+WzJdPC90ZD5cbiIKICAgICAgICAgICAgLiAiICAgICAgICA8L3RyPiI7CiAgICB9CgogICAgcmV0dXJuIGlmICEkSFRNTExpbmVzOwoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkQ29uZmlnTG9nJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBIVE1MTGluZXMgPT4gJEhUTUxMaW5lcywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkQ29uc29sZS5wbSAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRDb25zb2xlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHZhcnMgcXcoQElTQSAkVkVSU0lPTik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRDb25zb2xlIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIGNvbnNvbGUgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRDb25zb2xlLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgTGF5b3V0T2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgU1RERVJSIGxvZwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjcmVhdGUgdGhlIGNvbnNvbGUgdGFibGUKICAgIG15ICRDb25zb2xlCiAgICAgICAgPSAnQWN0aXZhdGVkIG1vZHVsZXM6IDxzdHJvbmc+JwogICAgICAgIC4gKCBqb2luICcgLSAnLCBAeyAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IH0gKQogICAgICAgIC4gJzwvc3Ryb25nPic7CgogICAgcmV0dXJuIDEgaWYgISRQYXJhbXtNb2R1bGVSZWZ9LT57U3RhdHVzfTsKCiAgICBpZiAoICRQYXJhbXtNb2R1bGVSZWZ9LT57U2V0dGluZ30gKSB7CiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2V0dGluZycsCiAgICAgICAgKTsKICAgIH0KCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZENvbnNvbGUnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgIFRleHQgICAgPT4gJENvbnNvbGUsCiAgICAgICAgICAgIE1vZFBlcmwgPT4gX01vZFBlcmwoKSwKICAgICAgICAgICAgUGVybCAgICA9PiBzcHJpbnRmKCAiJXZkIiwgJF5WICksCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfTW9kUGVybCB7CgogICAgIyBmaW5kIG91dCwgaWYgbW9kcGVybCBpcyB1c2VkCiAgICBteSAkTW9kUGVybCA9ICdpcyBub3QgYWN0aXZhdGVkJzsKCiAgICAjIyBubyBjcml0aWMKICAgIGlmICggZXhpc3RzICRFTlZ7TU9EX1BFUkx9ICYmIGRlZmluZWQgJG1vZF9wZXJsOjpWRVJTSU9OICkgewogICAgICAgICRNb2RQZXJsID0gJG1vZF9wZXJsOjpWRVJTSU9OOwogICAgfQogICAgIyMgdXNlIGNyaXRpYwoKICAgIHJldHVybiAkTW9kUGVybDsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkRW52RHVtcC5wbSAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRFbnZEdW1wOwojIyBub2ZpbHRlcihUaWR5QWxsOjpQbHVnaW46Ok9UUlM6OlBlcmw6OkR1bXBlcikKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRhOjpEdW1wZXI7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRFbnZEdW1wIC0gc2hvdyBkdW1wIG9mIHRoZSBlbnZpcm9ubWVudCByZWYsIGRhdGEgZm9yICRFbnYgaW4gZHRsCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBsYXlvdXQgZW52IGR1bXAgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRFbnZEdW1wLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgTGF5b3V0T2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpHZXQgdGhlIHNlc3Npb24gZGF0YSBhbmQgY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIHNlc3Npb24gZHVtcAoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6RW52RHVtcDo6RGF0YUdldCgpIGlzIG5vdCB1c2VkLAogICAgIyBhcyB0aGUgZGF0YSBvZiBpbnRlcmVzdCBpcyBub3QgZWFzaWx5IGF2YWlsYWJsZSB0aGVyZS4KICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICV7ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0VudlJlZn0gfSApIHsKCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRW52RGF0YVJvdycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJEtleSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0VudlJlZn0tPnskS2V5fSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgb3V0cHV0IHRoZSBodG1sCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZEVudkR1bXAnLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkSFRNTENoZWNrLnBtIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZEhUTUxDaGVjazsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSFRNTENoZWNrIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIEhUTUwgY2hlY2sgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTVERFUlJMb2ctPm5ldygKICAgICAgICAlUGFyYW0sCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCBMYXlvdXRPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSBTVERFUlIgbG9nCgogICAgJExheW91dE9iamVjdC0+Q3JlYXRlRnJlZE91dHB1dCgKICAgICAgICBNb2R1bGVzUmVmID0+ICRNb2R1bGVzUmVmLAogICAgKTsKCj1jdXQKCnN1YiBDcmVhdGVGcmVkT3V0cHV0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEhUTUxMaW5lcyA9ICcnOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdEZXZlbEZyZWRIVE1MQ2hlY2snLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgIEhUTUxMaW5lcyA9PiAkSFRNTExpbmVzLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkSlNMaW50LnBtIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZEpTTGludDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSlNMaW50IC0gRnJlZCBtb2R1bGUgZm9yIEpTTGludCBjaGVja3MKCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGxheW91dCBmdW5jdGlvbnMgb2YgSlNMaW50IG9iamVjdAoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSlNMaW50LT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgTGF5b3V0T2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgSlNMaW50IG1vZHVsZQoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdEZXZlbEZyZWRKU0xpbnQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7fSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkU2Vzc2lvbkR1bXAucG0gLSBsYXlvdXQgYmFja2VuZCBtb2R1bGUKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkU2Vzc2lvbkR1bXA7CiMjIG5vZmlsdGVyKFRpZHlBbGw6OlBsdWdpbjo6T1RSUzo6UGVybDo6RHVtcGVyKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIERhdGE6OkR1bXBlcjsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNlc3Npb25EdW1wIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBzZXNzaW9uIGR1bXAgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTZXNzaW9uRHVtcC0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IExheW91dE9iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENyZWF0ZUZyZWRPdXRwdXQoKQoKR2V0IHRoZSBzZXNzaW9uIGRhdGEgYW5kIGNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSBzZXNzaW9uIGR1bXAKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZVJlZn0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE1vZHVsZVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgRGF0YSBpcyBnZW5lcmF0ZWQgaGVyZSwgYXMgaXQgaXMgbm90IGF2YWlsYWJsZSBpbiBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U2Vzc2lvbkR1bXAKICAgIG15ICRTZXNzaW9uSUQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPntFbnZSZWZ9LT57U2Vzc2lvbklEfTsKICAgIG15ICVTZXNzaW9uRGF0YTsKICAgIGlmICgkU2Vzc2lvbklEKSB7CiAgICAgICAgJVNlc3Npb25EYXRhCiAgICAgICAgICAgID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT57U2Vzc2lvbk9iamVjdH0tPkdldFNlc3Npb25JRERhdGEoIFNlc3Npb25JRCA9PiAkU2Vzc2lvbklEICk7CiAgICB9CgogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJVNlc3Npb25EYXRhICkgewoKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTZXNzaW9uRGF0YVJvdycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJEtleSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRTZXNzaW9uRGF0YXskS2V5fSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgb3V0cHV0IHRoZSBodG1sCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZFNlc3Npb25EdW1wJywKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkU1RERVJSTG9nLnBtIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNUREVSUkxvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNUREVSUkxvZyAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgbGF5b3V0IGZ1bmN0aW9ucyBvZiBTVERFUlIgbG9nIG9iamVjdHMKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgJEJhY2tlbmRPYmplY3QgPSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNUREVSUkxvZy0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IExheW91dE9iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENyZWF0ZUZyZWRPdXRwdXQoKQoKY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIFNUREVSUiBsb2cKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZVJlZn0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE1vZHVsZVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiBpZiAhJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfTsKICAgIHJldHVybiBpZiByZWYgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSBuZSAnQVJSQVknOwoKICAgICMgY3JlYXRlIGh0bWwgc3RyaW5nCiAgICBteSAkSFRNTExpbmVzOwogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSBAeyAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IH0gKSB7CiAgICAgICAgJEhUTUxMaW5lcyAuPSAkTGluZTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRIVE1MTGluZXM7CgogICAgIyBvdXRwdXQgdGhlIGh0bWwKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkU1RERVJSTG9nJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBIVE1MTGluZXMgPT4gJEhUTUxMaW5lcywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkU1FMTG9nLnBtIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNRTExvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkU1FMTG9nIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIFNRTCBsb2cgbW9kdWxlCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTUUxMb2ctPm5ldygKICAgICAgICAlUGFyYW0sCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCBMYXlvdXRPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSB0cmFuc2xhdGlvbmRlYnVnZ2luZyBsb2cKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZVJlZn0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE1vZHVsZVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGZvciBteSAkTGluZSAoIEB7ICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gfSApIHsKCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUm93JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUaW1lICAgICAgICAgICAgPT4gJExpbmUtPls0XSAqIDEwMDAsCiAgICAgICAgICAgICAgICBFcXVhbFN0YXRlbWVudHMgPT4gJExpbmUtPls1XSB8fCAnJywKICAgICAgICAgICAgICAgIFN0YXRlbWVudCAgICAgICA9PiAkTGluZS0+WzFdLAogICAgICAgICAgICAgICAgUGFja2FnZSAgICAgICAgID0+ICRMaW5lLT5bM10sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRMaW5lICggc3BsaXQoIC87LywgJExpbmUtPlszXSApICkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhY2tUcmFjZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBTdGFja1RyYWNlID0+ICRMaW5lLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggJExpbmUtPlsyXSApIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Jvd0JpbmRQYXJhbWV0ZXJzJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEJpbmRQYXJhbWV0ZXJzID0+ICRMaW5lLT5bMl0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICB9CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdEZXZlbEZyZWRTUUxMb2cnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgIEFsbFN0YXRlbWVudHMgICAgPT4gJFBhcmFte01vZHVsZVJlZn0tPntBbGxTdGF0ZW1lbnRzfSwKICAgICAgICAgICAgRG9TdGF0ZW1lbnRzICAgICA9PiAkUGFyYW17TW9kdWxlUmVmfS0+e0RvU3RhdGVtZW50c30sCiAgICAgICAgICAgIFNlbGVjdFN0YXRlbWVudHMgPT4gJFBhcmFte01vZHVsZVJlZn0tPntTZWxlY3RTdGF0ZW1lbnRzfSwKICAgICAgICAgICAgVGltZSAgICAgICAgICAgICA9PiAkUGFyYW17TW9kdWxlUmVmfS0+e1RpbWV9LAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkVHJhbnNsYXRpb25EZWJ1Zy5wbSAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRUcmFuc2xhdGlvbkRlYnVnOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHZhcnMgcXcoQElTQSAkVkVSU0lPTik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRUcmFuc2xhdGlvbkRlYnVnIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRyYW5zbGF0aW9uIGRlYnVnIG1vZHVsZQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkVHJhbnNsYXRpb25EZWJ1Zy0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IExheW91dE9iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENyZWF0ZUZyZWRPdXRwdXQoKQoKY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIHRyYW5zbGF0aW9uZGVidWdnaW5nIGxvZwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJEhUTUxMaW5lcyA9ICcnOwogICAgZm9yIG15ICRMaW5lICggQHsgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSB9ICkgewogICAgICAgICRIVE1MTGluZXMgLj0gIjxzcGFuPiRMaW5lPC9zcGFuPiI7CiAgICB9CgogICAgcmV0dXJuIDEgaWYgISRIVE1MTGluZXM7CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdEZXZlbEZyZWRUcmFuc2xhdGlvbkRlYnVnJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBIVE1MTGluZXMgPT4gJEhUTUxMaW5lcywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXRGcmVkLnBtIC0gcHJvdmlkZXMgZ2VuZXJpYyBIVE1MIG91dHB1dCBmb3IgZnJlZAojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dEZyZWQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgdmFycyBxdyhASVNBICRWRVJTSU9OKTsKCj1vdmVyCgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSBzZXZlcmFsIGZyZWQgbW9kdWxlcwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgRnJlZE1vZHVsZXNSZWYgPT4gJEZyZWRNb2R1bGVzUmVmLAogICAgKTsKCj1jdXQKCnN1YiBDcmVhdGVGcmVkT3V0cHV0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtGcmVkTW9kdWxlc1JlZn0gfHwgcmVmICRQYXJhbXtGcmVkTW9kdWxlc1JlZn0gbmUgJ0hBU0gnICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBGcmVkTW9kdWxlc1JlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIE1PRFVMRU5BTUU6CiAgICBmb3IgbXkgJE1vZHVsZU5hbWUgKCBzb3J0IGtleXMgJXsgJFBhcmFte0ZyZWRNb2R1bGVzUmVmfSB9ICkgewoKICAgICAgICAjIGxvYWQgYmFja2VuZAogICAgICAgIG15ICRCYWNrZW5kT2JqZWN0ID0gJFNlbGYtPl9Mb2FkTGF5b3V0QmFja2VuZCggTW9kdWxlTmFtZSA9PiAkTW9kdWxlTmFtZSApOwoKICAgICAgICAjIGdldCBtb2R1bGUgZGF0YQogICAgICAgIG5leHQgTU9EVUxFTkFNRSBpZiAhJEJhY2tlbmRPYmplY3Q7CgogICAgICAgICRCYWNrZW5kT2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgICAgICBNb2R1bGVSZWYgPT4gJFBhcmFte0ZyZWRNb2R1bGVzUmVmfS0+eyRNb2R1bGVOYW1lfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfTG9hZExheW91dEJhY2tlbmQoKQoKbG9hZCBhIHNwZWNpYWwgZnJlZCBsYXlvdXQgYmFja2VuZHMKCiAgICAkQmFja2VuZE9iamVjdCA9ICRMYXlvdXRPYmplY3QtPl9Mb2FkTGF5b3V0QmFja2VuZCgKICAgICAgICBNb2R1bGVOYW1lID0+ICRNb2R1bGVOYW1lLAogICAgKTsKCj1jdXQKCnN1YiBfTG9hZExheW91dEJhY2tlbmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZU5hbWV9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBNb2R1bGVOYW1lIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBsb2FkIGJhY2tlbmQKICAgIG15ICRHZW5lcmljTW9kdWxlID0gJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkJyAuICRQYXJhbXtNb2R1bGVOYW1lfTsKICAgIGlmICggJFNlbGYtPntNYWluT2JqZWN0fS0+UmVxdWlyZSgkR2VuZXJpY01vZHVsZSkgKSB7CgogICAgICAgIG15ICRCYWNrZW5kT2JqZWN0ID0gJEdlbmVyaWNNb2R1bGUtPm5ldygKICAgICAgICAgICAgJXskU2VsZn0sCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ID0+ICRTZWxmLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkQmFja2VuZE9iamVjdCBpZiAkQmFja2VuZE9iamVjdDsKICAgIH0KCiAgICByZXR1cm47Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9PdXRwdXRGaWx0ZXJGcmVkLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6T3V0cHV0RmlsdGVyRnJlZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIFVSSTo6RXNjYXBlOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpPdXRwdXRGaWx0ZXJGcmVkCgo9aGVhZDEgU1lOT1BTSVMKCmEgb3V0cHV0IGZpbHRlciBtb2R1bGUgc3BlY2lhbGx5IGZvciBkZXZlbG9wZXIKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoTWFpbk9iamVjdCBDb25maWdPYmplY3QgTG9nT2JqZWN0ICkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAkU2VsZi0+e0xheW91dE9iamVjdH0gPSAkUGFyYW17TGF5b3V0T2JqZWN0fTsKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgcGVyaGFwcyBubyBvdXRwdXQgaXMgZ2VuZXJhdGVkCiAgICBkaWUgJ0ZyZWQ6IEF0IHRoZSBtb21lbnQsIHlvdXIgY29kZSBnZW5lcmF0ZXMgbm8gb3V0cHV0IScgaWYgISRQYXJhbXtEYXRhfTsKCiAgICAjIGRvIG5vdCBzaG93IHRoZSBkZWJ1ZyBiYXIgaW4gRnJlZCdzIHNldHRpbmcgd2luZG93CiAgICBpZiAoICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0FjdGlvbn0gJiYgJFNlbGYtPntMYXlvdXRPYmplY3R9LT57QWN0aW9ufSBlcSAnRGV2ZWxGcmVkJyApIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGRvIG5vdGhpbmcgaWYgb3V0cHV0IGlzIGFuIGF0dGFjaG1lbnQgZG93bmxvYWQgb3IgQUpBWCByZXF1ZXN0CiAgICBpZiAoCiAgICAgICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gL15Db250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50Oy9taQogICAgICAgIHx8ICR7ICRQYXJhbXtEYXRhfSB9ID1+IC9eQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOy9taQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGRvIG5vdGhpbmcgaWYgaXQgaXMgYSByZWRpcmVjdAogICAgaWYgKAogICAgICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IC9eU3RhdHVzOiAzMDIgTW92ZWQvbWkKICAgICAgICAmJiAkeyAkUGFyYW17RGF0YX0gfSA9fiAvXmxvY2F0aW9uOi9taQogICAgICAgICYmIGxlbmd0aCggJHsgJFBhcmFte0RhdGF9IH0gKSA8IDgwMAogICAgICAgICkKICAgIHsKICAgICAgICBwcmludCBTVERFUlIgIlJFRElSRUNUXG4iOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgZG8gbm90aGluZyBpZiBpdCBpcyBmcmVkIGl0IHNlbGYKICAgIGlmICggJHsgJFBhcmFte0RhdGF9IH0gPX4gbXtGcmVkLVNldHRpbmc8XC90aXRsZT59bXN4ICkgewogICAgICAgIHByaW50IFNUREVSUiAiQ0hBTkdFIEZSRUQgU0VUVElOR1xuIjsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGRvIG5vdGhpbmcgaWYgaXQgZG9lcyBub3QgY29udGFpbiB0aGUgPGh0bWw+IGVsZW1lbnQsIG1pZ2h0IGJlCiAgICAjIGFuIGVtYmVkZGVkIGxheW91dCByZW5kZXJpbmcKICAgIGlmICggJHsgJFBhcmFte0RhdGF9IH0gIX4gbXs8aHRtbFtePl0qPn1tc3ggKSB7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBnZXQgZGF0YSBvZiB0aGUgYWN0aXZhdGVkIG1vZHVsZXMKICAgIG15ICRNb2R1bGVGb3JSZWYgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcmVkOjpNb2R1bGUnKTsKICAgIG15ICRNb2R1bGVzRGF0YVJlZiA9IHt9OwogICAgZm9yIG15ICRNb2R1bGUgKCBzb3J0IGtleXMgJXskTW9kdWxlRm9yUmVmfSApIHsKICAgICAgICBpZiAoICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfS0+e0FjdGl2ZX0gKSB7CiAgICAgICAgICAgICRNb2R1bGVzRGF0YVJlZi0+eyRNb2R1bGV9ID0ge307CiAgICAgICAgfQogICAgfQoKICAgIG15ICRGcmVkT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkZyZWQtPm5ldyggJXskU2VsZn0gKTsKCiAgICAjIGxvYWQgdGhlIGFjdGl2YXRlZCBtb2R1bGVzCiAgICAkRnJlZE9iamVjdC0+RGF0YUdldCgKICAgICAgICBGcmVkTW9kdWxlc1JlZiA9PiAkTW9kdWxlc0RhdGFSZWYsCiAgICAgICAgSFRNTERhdGFSZWYgICAgPT4gJFBhcmFte0RhdGF9LAogICAgKTsKCiAgICAjIGNyZWF0ZSBmcmVkcyBvdXRwdXQKICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Q3JlYXRlRnJlZE91dHB1dCggRnJlZE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNEYXRhUmVmICk7CgogICAgIyBidWlsZCB0aGUgY29udGVudCBzdHJpbmcKICAgIG15ICRPdXRwdXQgPSAnJzsKICAgIGlmICggJE1vZHVsZXNEYXRhUmVmLT57Q29uc29sZX0tPntPdXRwdXR9ICkgewogICAgICAgICRPdXRwdXQgLj0gJE1vZHVsZXNEYXRhUmVmLT57Q29uc29sZX0tPntPdXRwdXR9OwogICAgICAgIGRlbGV0ZSAkTW9kdWxlc0RhdGFSZWYtPntDb25zb2xlfTsKICAgIH0KICAgIGZvciBteSAkTW9kdWxlICggc29ydCBrZXlzICV7JE1vZHVsZXNEYXRhUmVmfSApIHsKICAgICAgICAkT3V0cHV0IC49ICRNb2R1bGVzRGF0YVJlZi0+eyRNb2R1bGV9LT57T3V0cHV0fSB8fCAnJzsKICAgIH0KCiAgICBteSAkSlNPdXRwdXQgPSAnJzsKICAgICRPdXRwdXQgPX4gc3soPHNjcmlwdC4rPy9zY3JpcHQ+KX17CiAgICAgICAgJEpTT3V0cHV0IC49ICQxOwogICAgICAgICIiOwogICAgfXNteGVnOwoKICAgICMgUHV0IG91dHB1dCBpbiB0aGUgRnJlZCBDb250YWluZXIKICAgICRPdXRwdXQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZENvbnRhaW5lcicsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgRGF0YSA9PiAkT3V0cHV0CiAgICAgICAgfSwKICAgICk7CgogICAgIyBpbmNsdWRlIHRoZSBmcmVkIG91dHB1dCBpbiB0aGUgb3JpZ2luYWwgb3V0cHV0CiAgICBpZiAoICR7ICRQYXJhbXtEYXRhfSB9ICF+IHMvKFw8Ym9keSh8Lis/KVw+KS8kMVxuJE91dHB1dFxuXG5cblxuL214ICkgewogICAgICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IHMvXiguKS9cbiRPdXRwdXRcblxuXG5cbiQxL214OwogICAgfQoKICAgICMgSW5qZWN0IEpTIGF0IHRoZSBlbmQgb2YgdGhlIGJvZHkKICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IHN7PC9ib2R5Pn17JEpTT3V0cHV0XG5cdDwvYm9keT59c214OwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9PdXRwdXRGaWx0ZXJQb3N0U2hvd1N5c3RlbU5hbWVJbkhlYWRlci5wbQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok91dHB1dEZpbHRlclBvc3RTaG93U3lzdGVtTmFtZUluSGVhZGVyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEN3ZDsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICROZWVkZWQgKHF3KCBNYWluT2JqZWN0IENvbmZpZ09iamVjdCBQYXJhbU9iamVjdCApKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPnskTmVlZGVkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5GYXRhbEVycm9yKCBNZXNzYWdlID0+ICJHb3Qgbm8gJE5lZWRlZCEiICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRlbXBsYXRlIG5hbWUKICAgIG15ICRUZW1wbGF0ZU5hbWUgPSAkUGFyYW17VGVtcGxhdGVGaWxlfSB8fCAnJzsKCiAgICByZXR1cm4gMSBpZiAhJFRlbXBsYXRlTmFtZTsKCiAgICAjIGdldCB2YWxpZCBtb2R1bGVzCiAgICBteSAkVmFsaWRUZW1wbGF0ZXMgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJvbnRlbmQ6Ok91dHB1dDo6RmlsdGVyRWxlbWVudFBvc3QnKQogICAgICAgIC0+eydPdXRwdXRGaWx0ZXJQb3N0U2hvd1N5c3RlbU5hbWVJbkhlYWRlcid9LT57VGVtcGxhdGVzfTsKCiAgICAjIGFwcGx5IG9ubHkgaWYgdGVtcGxhdGUgaXMgdmFsaWQgaW4gY29uZmlnCiAgICByZXR1cm4gMSBpZiAoICEkVmFsaWRUZW1wbGF0ZXMtPnskVGVtcGxhdGVOYW1lfSApOwoKICAgICMgZ2V0IGNvbmZpZwogICAgbXkgJFN5c3RlbU5hbWUgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJlZDo6U3lzdGVtTmFtZScpCiAgICAgICAgfHwgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKTsKICAgIG15ICRCYWNrZ3JvdW5kQ29sb3IgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJlZDo6QmFja2dyb3VuZENvbG9yJykKICAgICAgICB8fCAncmVkJzsKCiAgICAjIEFkZCBjdXJyZW50IGdpdCBicmFuY2ggdG8gb3V0cHV0CiAgICBteSAkSG9tZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdIb21lJyk7CiAgICBpZiAoIC1kICIkSG9tZS8uZ2l0IiApIHsKICAgICAgICBteSAkT2xkV29ya2luZ0RpciA9IGdldGN3ZCgpOwogICAgICAgIGNoZGlyKCRIb21lKTsKICAgICAgICBteSAkR2l0UmVzdWx0ID0gYGdpdCBicmFuY2hgOwogICAgICAgIGNoZGlyKCRPbGRXb3JraW5nRGlyKTsKCiAgICAgICAgaWYgKCRHaXRSZXN1bHQpIHsKICAgICAgICAgICAgbXkgKCRCcmFuY2hOYW1lKSA9ICRHaXRSZXN1bHQgPX4gbS9eWypdIFxzKyAoXFMrKS94bXM7CiAgICAgICAgICAgICRTeXN0ZW1OYW1lIC49ICIgKCRCcmFuY2hOYW1lKSI7CiAgICAgICAgfQogICAgfQoKICAgICMgaW5qZWN0IHN5c3RlbSBuYW1lIHJpZ2h0IGludG8gdGhlIG1pZGRsZSBvZiB0aGUgaGVhZGVyIHRvIGFsd2F5cyBoYXZlIHRoZSBhdHRlbnRpb24KICAgIG15ICRTZWFyY2ggID0gJyg8ZGl2IFxzKiBpZD0iTG9nbyI+PC9kaXY+KSc7CiAgICBteSAkUmVwbGFjZSA9IDw8IkZJTFRFUklOUFVUX0hUTUwiOwo8ZGl2IHN0eWxlPSJmb250LXNpemU6MThweDsgYmFja2dyb3VuZC1jb2xvcjogJEJhY2tncm91bmRDb2xvcjsgcGFkZGluZzogMTBweCAxMHB4IDE1cHggMTBweDsgd2lkdGg6IDQwMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLTExMHB4OyB0b3A6IDBweDsgYm9yZGVyLXJhZGl1czogMHB4IDBweCA1cHggNXB4OyI+JFN5c3RlbU5hbWU8L2Rpdj4KRklMVEVSSU5QVVRfSFRNTAogICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gc3skU2VhcmNofXskUmVwbGFjZSQxfXhtczsKCiAgICByZXR1cm4gMTsKfQoKMTsK
IyAtLQojIERldmVsRnJlZENvbmZpZ0xvZy50dCAtIGEgZnJvbnRlbmQgdG8gc2hvdyB0aGUgY29uZmlnIGRlYnVnZ2luZwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgQ29uZmlndXJhdGlvbiBMb2cKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1zZWFyY2ggRnJlZFNlYXJjaCIgdGl0bGU9IlRvZ2dsZSBTZWFyY2ggQmFyIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLXJlbW92ZSBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50IiBpZD0iRGV2ZWxGcmVkQ29uZmlnTG9nQ29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iRnJlZFF1aWNrU2VhcmNoIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2ggZm9yLi4uIiAvPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1yZW1vdmUiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGFibGUgY2xhc3M9IkZyZWRUYWJsZURlZmF1bHQiPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRoPkNhbGxzPC90aD4KICAgICAgICAgICAgICAgICAgICA8dGg+Q29uZmlnPC90aD4KICAgICAgICAgICAgICAgICAgICA8dGg+U3RhdHVzPC90aD4KICAgICAgICAgICAgICAgICAgICA8dGg+UGFja2FnZTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgpbJSBEYXRhLkhUTUxMaW5lcyAlXQogICAgICAgICAgICA8dHIgY2xhc3M9IkhpZGRlbiBGaWx0ZXJNZXNzYWdlIj4KICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI0Ij5ObyBJdGVtcyBmb3VuZC48L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIERldmVsRnJlZENvbnNvbGUudHQgLSBhIGh0bWwgY29uc29sZSBmb3IgYSBiZXR0ZXIgZnJlZCBoYW5kbGluZwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5EZXZlbEZyZWRDb250YWluZXIgewogICAgd2lkdGg6IFslIENvbmZpZygiRnJlZDo6Q29uc29sZVdpZHRoIikgJV07CiAgICAtbW96LW9wYWNpdHk6IFslIENvbmZpZygiRnJlZDo6Q29uc29sZU9wYWNpdHkiKSAlXTsKICAgIC13ZWJraXQtb3BhY2l0eTogWyUgQ29uZmlnKCJGcmVkOjpDb25zb2xlT3BhY2l0eSIpICVdOwogICAgb3BhY2l0eTogWyUgQ29uZmlnKCJGcmVkOjpDb25zb2xlT3BhY2l0eSIpICVdOwp9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3giPgogICAgPGgxPgogICAgICAgIEZyZWQKICAgICAgICA8ZGl2IGNsYXNzPSJGcmVkVG9vbEJhciI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlNldHRpbmciKSAlXQogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1nZWFyIEZyZWRTZXR0aW5ncyIgZGF0YS11cmw9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1EZXZlbEZyZWQ7U3ViYWN0aW9uPVNldHRpbmciPjwvaT4KWyUgUmVuZGVyQmxvY2tFbmQoIlNldHRpbmciKSAlXQogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1taW51cyBGcmVkTWluaW1pemUiIHRpdGxlPSJNaW5pbWl6ZSI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1yZW1vdmUgRnJlZENsb3NlIiB0aXRsZT0iQ2xvc2UiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50IEZyZWRFbGVtZW50TGlzdCI+CiAgICAgICAgPHNwYW4+bW9kX3BlcmwgWyUgRGF0YS5Nb2RQZXJsIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICA8c3Bhbj5QZXJsIFslIERhdGEuUGVybCB8IGh0bWwgJV08L3NwYW4+CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIERldmVsRnJlZENvbnRhaW5lci50dCAtIGNvbnRhaW5lciBmb3IgRnJlZCBvdXRwdXQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCjxkaXYgY2xhc3M9IkRldmVsRnJlZENvbnRhaW5lciIgaWQ9IkRldmVsRnJlZENvbnRhaW5lciI+CiAgICBbJSBEYXRhLkRhdGEgJV0KPC9kaXY+Cg==
IyAtLQojIERldmVsRnJlZEVudkR1bXAudHQgLSBhIGZyb250ZW5kIHRvIHNob3cgdGhlIGxheW91dCBlbnZpcm9ubWVudAojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Ij4KICAgIDxoMT4KICAgICAgICBFbnZpcm9ubWVudCBWYXJpYWJsZXMKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1zZWFyY2ggRnJlZFNlYXJjaCIgdGl0bGU9IlNlYXJjaCI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1taW51cyBGcmVkTWluaW1pemUiIHRpdGxlPSJNaW5pbWl6ZSI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1yZW1vdmUgRnJlZENsb3NlIiB0aXRsZT0iQ2xvc2UiPjwvaT4KICAgICAgICA8L3NwYW4+CiAgICA8L2gxPgogICAgPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Q29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iRnJlZFF1aWNrU2VhcmNoIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2ggZm9yLi4uIiAvPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1yZW1vdmUiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGFibGUgY2xhc3M9IkZyZWRUYWJsZURlZmF1bHQiPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRoPktleTwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlZhbHVlPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVudkRhdGFSb3ciKSAlXQogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5LZXkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlZhbHVlIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJFbnZEYXRhUm93IikgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIERldmVsRnJlZEhUTUxDaGVjay50dCAtIGEgZnJvbnRlbmQgdG8gc2hvdyB0aGUgSFRNTC1DaGVjayByZXN1bHRzCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Ij4KICAgIDxoMT4KICAgICAgICBIVE1MQ2hlY2sKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1taW51cyBGcmVkTWluaW1pemUiIHRpdGxlPSJNaW5pbWl6ZSI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1yZW1vdmUgRnJlZENsb3NlIiB0aXRsZT0iQ2xvc2UiPjwvaT4KICAgICAgICA8L3NwYW4+CiAgICA8L2gxPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgICBDb3JlLkFwcC5SZWFkeShmdW5jdGlvbigpewogICAgICAgICAgICBDb3JlLkZyZWQuSFRNTENoZWNrLkNoZWNrRm9yU3RhcnQoKTsKICAgICAgICB9KTsKICAgIDwvc2NyaXB0PgogICAgPGRpdiBzdHlsZT0icGFkZGluZzo1cHg7IiBpZD0iRnJlZEhUTUxDaGVja1Jlc3VsdHMiIGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50Ij4KICAgICAgICA8ZGl2IGlkPSJGcmVkSFRNTENoZWNrUnVubmluZyI+Q2hlY2tzIGFyZSBydW5uaW5nLi4uPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIERldmVsRnJlZEpTTGludC50dCAtIGEgZnJvbnRlbmQgdG8gc2hvdyB0aGUgSFRNTC1DaGVjayByZXN1bHRzCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Ij4KICAgIDxoMT4KICAgICAgICBKU0xpbnQKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1taW51cyBGcmVkTWluaW1pemUiIHRpdGxlPSJNaW5pbWl6ZSI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1yZW1vdmUgRnJlZENsb3NlIiB0aXRsZT0iQ2xvc2UiPjwvaT4KICAgICAgICA8L3NwYW4+CiAgICA8L2gxPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgICBDb3JlLkFwcC5SZWFkeShmdW5jdGlvbigpewogICAgICAgICAgICBDb3JlLkZyZWQuSlNMaW50LkluaXQoKTsKICAgICAgICB9KTsKICAgIDwvc2NyaXB0PgogICAgPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Q29udGVudCIgaWQ9IkZyZWRKU0xpbnRTY3JpcHRzIj4KICAgICAgICA8ZGl2IGlkPSJGcmVkSlNMaW50UnVubmluZyI+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLXNwaW5uZXIgaWNvbi1zcGluIj48L2k+IENoZWNrcyBhcmUgcnVubmluZy4uLgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIERldmVsRnJlZFNlc3Npb25EdW1wLnR0IC0gYSBmcm9udGVuZCB0byBzaG93IHRoZSBTVERFUlIgbG9nCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQo8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3giPgogICAgPGgxPgogICAgICAgIFNlc3Npb25EdW1wCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tc2VhcmNoIEZyZWRTZWFyY2giIHRpdGxlPSJTZWFyY2giPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0Ij4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0aD5LZXk8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aD5WYWx1ZTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZXNzaW9uRGF0YVJvdyIpICVdCiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLktleSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxwcmU+WyUgRGF0YS5WYWx1ZSB8IGh0bWwgJV08L3ByZT4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJTZXNzaW9uRGF0YVJvdyIpICVdCiAgICAgICAgICAgIDx0ciBjbGFzcz0iSGlkZGVuIEZpbHRlck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPk5vIEl0ZW1zIGZvdW5kLjwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90YWJsZT4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIERldmVsRnJlZFNldHRpbmcudHQgLSBhIGZyb250ZW5kIGZvciBhIGZhc3QgZnJlZCBzZXR0aW5nIGhhbmRsaW5nCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iRGV2ZWxGcmVkU2V0dGluZ3MiPgogICAgPGgxPkZyZWQgU2V0dGluZ3M8L2gxPgogICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IkRldmVsRnJlZFNldHRpbmciPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IkRldmVsRnJlZCIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTZXR0aW5nQWN0aW9uIiAvPgogICAgICAgIDx1bCBjbGFzcz0iRnJlZFNldHRpbmdzIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRnJlZE1vZHVsZSIpICVdCiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlslIERhdGEuRnJlZE1vZHVsZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iRnJlZE1vZHVsZSIgaWQ9IlslIERhdGEuRnJlZE1vZHVsZSB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLkZyZWRNb2R1bGUgfCBodG1sICVdIiBbJSBEYXRhLkNoZWNrZWQgJV0vPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuRnJlZE1vZHVsZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EZXNjcmlwdGlvbiAlXQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvbGFiZWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbmZpZyIpICVdCiAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5TeXNDb25maWc7U3ViYWN0aW9uPUVkaXQ7U3lzQ29uZmlnU3ViR3JvdXA9WyUgRGF0YS5Nb2R1bGVOYW1lICVdO1N5c0NvbmZpZ0dyb3VwPUZyZWQiIHRpdGxlPSJTZXR0aW5ncyIgY2xhc3M9IkZyZWRTZXR0aW5nc0xpbmsiIHRhcmdldD0iX2JsYW5rIj48aSBjbGFzcz0iaWNvbi1nZWFyIj48L2k+PC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29uZmlnIikgJV0KICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkZyZWRNb2R1bGUiKSAlXQogICAgICAgIDwvdWw+CiAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICA8L2Zvcm0+CjwvZGl2Pgo=
IyAtLQojIERldmVsRnJlZFNRTExvZy50dCAtIGEgZnJvbnRlbmQgdG8gc2hvdyB0aGUgc3FsIGxvZwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCIgaWQ9IkRldmVsRnJlZEJveFNRTExvZyI+CiAgICA8aDE+CiAgICAgICAgU1FMIExvZwogICAgICAgIDxzcGFuIGNsYXNzPSJGcmVkVG9vbEJhciI+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLXNlYXJjaCBGcmVkU2VhcmNoIiB0aXRsZT0iU2VhcmNoIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLXJlbW92ZSBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJGcmVkRWxlbWVudExpc3QiPgogICAgICAgICAgICA8c3Bhbj5FeGVjdXRlZCA8c3Ryb25nPlslIERhdGEuQWxsU3RhdGVtZW50cyAlXTwvc3Ryb25nPiBTdGF0ZW1lbnRzPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj48c3Ryb25nPlslIERhdGEuU2VsZWN0U3RhdGVtZW50cyB8IGh0bWwgJV08L3N0cm9uZz4gU0VMRUNUcyArIDxzdHJvbmc+WyUgRGF0YS5Eb1N0YXRlbWVudHMgfCBodG1sICVdPC9zdHJvbmc+IERPczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RHVyYXRpb246IDxzdHJvbmc+WyUgRGF0YS5UaW1lIHwgaHRtbCAlXTwvc3Ryb25nPiBzLjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJGcmVkUXVpY2tTZWFyY2giPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBmb3IuLi4iIC8+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLXJlbW92ZSI+PC9pPgogICAgICAgIDwvZGl2PgogICAgICAgIDx0YWJsZSBjbGFzcz0iRnJlZFRhYmxlRGVmYXVsdCI+CiAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGggdGl0bGU9IlRpbWUgKG1zKSI+bXM8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aCB0aXRsZT0iRXF1YWwgU3RhdGVtZW50cyI+RXF1YWw8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aD5TdGF0ZW1lbnQ8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aCB0aXRsZT0iQmluZCBwYXJhbWV0ZXJzIj5CaW5kPC90aD4KICAgICAgICAgICAgICAgICAgICA8dGg+UGFja2FnZTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJUaW1lIiB0aXRsZT0iWyUgRGF0YS5UaW1lIHwgaHRtbCAlXSBtcyI+WyUgRGF0YS5UaW1lIHwgdHJ1bmNhdGUoNikgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkVxdWFsU3RhdGVtZW50cyI+WyUgRGF0YS5FcXVhbFN0YXRlbWVudHMgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlNRTFN0YXRlbWVudCI+WyUgRGF0YS5TdGF0ZW1lbnQgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkJpbmRQYXJhbWV0ZXJzIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUm93QmluZFBhcmFtZXRlcnMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iU2hvd0JpbmRQYXJhbWV0ZXJzIiBocmVmPSIjIiB0aXRsZT0iWyUgRGF0YS5CaW5kUGFyYW1ldGVycyB8IGh0bWwgJV0iPlNob3c8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhpZGRlbiI+WyUgRGF0YS5CaW5kUGFyYW1ldGVycyB8IGh0bWwgJV08L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJvd0JpbmRQYXJhbWV0ZXJzIikgJV0KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iU3RhY2tUcmFjZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YWNrVHJhY2UiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlN0YWNrVHJhY2UgfCBodG1sICVdPGJyLz4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YWNrVHJhY2UiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3Rib2R5PgpbJSBSZW5kZXJCbG9ja0VuZCgiUm93IikgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNSI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2PgoKPCEtLSBqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KPHNjcmlwdD4KJ3VzZSBzdHJpY3QnOwokKCdhLlNob3dCaW5kUGFyYW1ldGVycycpLnVuYmluZCgnY2xpY2snKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKEV2ZW50KSB7CiAgICAkKHRoaXMpLmhpZGUoKS5wYXJlbnQoKS5maW5kKCdkaXYnKS5zaG93KCk7Cn0pOwo8L3NjcmlwdD4KPCEtLSBqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4K
IyAtLQojIERldmVsRnJlZFNUREVSUkxvZy50dCAtIGEgZnJvbnRlbmQgdG8gc2hvdyB0aGUgU1RERVJSIGxvZwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgU1RERVJSTG9nCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiPgogICAgICAgIDxwcmUgY2xhc3M9IkZyZWRNb25vU3BhY2UiPlslIERhdGEuSFRNTExpbmVzIHwgaHRtbCAlXTwvcHJlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIERldmVsRnJlZFRyYW5zbGF0aW9uRGVidWcudHQgLSBhIGZyb250ZW5kIHRvIHNob3cgdGhlIHRyYW5zbGF0aW9uIGRlYnVnZ2luZwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgTWlzc2luZyBUcmFuc2xhdGlvbnMKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1taW51cyBGcmVkTWluaW1pemUiIHRpdGxlPSJNaW5pbWl6ZSI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1yZW1vdmUgRnJlZENsb3NlIiB0aXRsZT0iQ2xvc2UiPjwvaT4KICAgICAgICA8L3NwYW4+CiAgICA8L2gxPgogICAgPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Q29udGVudCBGcmVkRWxlbWVudExpc3QiPgpbJSBEYXRhLkhUTUxMaW5lcyAlXQogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vREJMaXN0ZW5lci9GcmVkU1FMTG9nLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6REJMaXN0ZW5lcjo6RnJlZFNRTExvZzsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1FMTG9nOwoKdXNlIFRpbWU6OkhpUmVzIHF3KGdldHRpbWVvZmRheSB0dl9pbnRlcnZhbCk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAkU2VsZi0+e1NRTExvZ09iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1FMTG9nLT5uZXcoJVBhcmFtKTsKCiAgICAkU2VsZi0+e0FjdGl2ZX0gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJlZDo6TW9kdWxlJyktPntTUUxMb2d9LT57QWN0aXZlfTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBQcmVQcmVwYXJlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICggISRTZWxmLT57QWN0aXZlfSApOwoKICAgICRTZWxmLT57UHJlcGFyZVN0YXJ0fSA9IFtnZXR0aW1lb2ZkYXldOwp9CgpzdWIgUG9zdFByZXBhcmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgKCAhJFNlbGYtPntBY3RpdmV9ICk7CgogICAgbXkgJERpZmZUaW1lID0gdHZfaW50ZXJ2YWwoICRTZWxmLT57UHJlcGFyZVN0YXJ0fSApOwoKICAgIG15IEBTdGFja1RyYWNlOwoKICAgIENPVU5UOgogICAgZm9yICggbXkgJENvdW50ID0gMTsgJENvdW50IDwgMzA7ICRDb3VudCsrICkgewogICAgICAgIG15ICggJFBhY2thZ2UxLCAkRmlsZW5hbWUxLCAkTGluZTEsICRTdWJyb3V0aW5lMSApID0gY2FsbGVyKCRDb3VudCk7CiAgICAgICAgbGFzdCBDT1VOVCBpZiAhJExpbmUxOwogICAgICAgIG15ICggJFBhY2thZ2UyLCAkRmlsZW5hbWUyLCAkTGluZTIsICRTdWJyb3V0aW5lMiApID0gY2FsbGVyKCAxICsgJENvdW50ICk7CiAgICAgICAgJFN1YnJvdXRpbmUyIHx8PSAkMDsgICAgIyBpZiB0aGVyZSBpcyBubyBjYWxsZXIgbW9kdWxlIHVzZSB0aGUgZmlsZSBuYW1lCiAgICAgICAgJFN1YnJvdXRpbmUyID1+IHMvS2VybmVsOjpTeXN0ZW0vSzo6Uy87CiAgICAgICAgJFN1YnJvdXRpbmUyID1+IHMvS2VybmVsOjpNb2R1bGVzL0s6Ok0vOwogICAgICAgICRTdWJyb3V0aW5lMiA9fiBzL0tlcm5lbDo6T3V0cHV0L0s6Ok8vOwogICAgICAgIHB1c2ggQFN0YWNrVHJhY2UsICIkU3Vicm91dGluZTI6JExpbmUxIjsKICAgIH0KCiAgICBteSBAQXJyYXkgPSBtYXAgeyBkZWZpbmVkICRfID8gJF8gOiAndW5kZWYnIH0gQHsgJFBhcmFte0JpbmR9IHx8IFtdIH07CgogICAgIyBSZXBsYWNlIG5ld2xpbmVzCiAgICBAQXJyYXkgPSBtYXAgeyAkXyA9fiBze1xyP1xufXtbXFxuXX1zbXhnOyAkXzsgfSBAQXJyYXk7ICAgICMjIG5vIGNyaXRpYwoKICAgICMgTGltaXQgYmluZCBwYXJhbSBsZW5ndGgKICAgIEBBcnJheSA9IG1hcCB7IGxlbmd0aCgkXykgPiAxMDAgPyAoIHN1YnN0ciggJF8sIDAsIDEwMCApIC4gJ1suLi5dJyApIDogJF8gfSBAQXJyYXk7CiAgICBteSAkQmluZFN0cmluZyA9IEBBcnJheSA/IGpvaW4gJywgJywgQEFycmF5IDogJyc7CgogICAgJFNlbGYtPntTUUxMb2dPYmplY3R9LT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gIlNRTC1TRUxFQ1QjIyEjIyRQYXJhbXtTUUx9IyMhIyMkQmluZFN0cmluZyMjISMjIgogICAgICAgICAgICAuIGpvaW4oICc7JywgQFN0YWNrVHJhY2UgKQogICAgICAgICAgICAuICIjIyEjIyREaWZmVGltZSIsCiAgICApOwp9CgpzdWIgUHJlRG8gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgKCAhJFNlbGYtPntBY3RpdmV9ICk7CgogICAgJFNlbGYtPntEb1N0YXJ0fSA9IFtnZXR0aW1lb2ZkYXldOwp9CgpzdWIgUG9zdERvIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICggISRTZWxmLT57QWN0aXZlfSApOwoKICAgIG15ICREaWZmVGltZSA9IHR2X2ludGVydmFsKCAkU2VsZi0+e0RvU3RhcnR9ICk7CgogICAgbXkgQFN0YWNrVHJhY2U7CgogICAgQ09VTlQ6CiAgICBmb3IgKCBteSAkQ291bnQgPSAxOyAkQ291bnQgPCAzMDsgJENvdW50KysgKSB7CiAgICAgICAgbXkgKCAkUGFja2FnZTEsICRGaWxlbmFtZTEsICRMaW5lMSwgJFN1YnJvdXRpbmUxICkgPSBjYWxsZXIoJENvdW50KTsKICAgICAgICBsYXN0IENPVU5UIGlmICEkTGluZTE7CiAgICAgICAgbXkgKCAkUGFja2FnZTIsICRGaWxlbmFtZTIsICRMaW5lMiwgJFN1YnJvdXRpbmUyICkgPSBjYWxsZXIoIDEgKyAkQ291bnQgKTsKICAgICAgICAkU3Vicm91dGluZTIgfHw9ICQwOyAgICAjIGlmIHRoZXJlIGlzIG5vIGNhbGxlciBtb2R1bGUgdXNlIHRoZSBmaWxlIG5hbWUKICAgICAgICAkU3Vicm91dGluZTIgPX4gcy9LZXJuZWw6OlN5c3RlbS9LOjpTLzsKICAgICAgICAkU3Vicm91dGluZTIgPX4gcy9LZXJuZWw6Ok1vZHVsZXMvSzo6TS87CiAgICAgICAgcHVzaCBAU3RhY2tUcmFjZSwgIiRTdWJyb3V0aW5lMjokTGluZTEiOwogICAgfQoKICAgIG15IEBBcnJheSA9IG1hcCB7IGRlZmluZWQgJF8gPyAkXyA6ICd1bmRlZicgfSBAeyAkUGFyYW17QmluZH0gfHwgW10gfTsKCiAgICAjIFJlcGxhY2UgbmV3bGluZXMKICAgIEBBcnJheSA9IG1hcCB7ICRfID1+IHN7XHI/XG59e1tcXG5dfXNteGc7ICRfOyB9IEBBcnJheTsgICAgIyMgbm8gY3JpdGljCgogICAgIyBMaW1pdCBiaW5kIHBhcmFtIGxlbmd0aAogICAgQEFycmF5ID0gbWFwIHsgbGVuZ3RoKCRfKSA+IDEwMCA/ICggc3Vic3RyKCAkXywgMCwgMTAwICkgLiAnWy4uLl0nICkgOiAkXyB9IEBBcnJheTsKICAgIG15ICRCaW5kU3RyaW5nID0gQEFycmF5ID8gam9pbiAnLCAnLCBAQXJyYXkgOiAnJzsKCiAgICAkU2VsZi0+e1NRTExvZ09iamVjdH0tPkluc2VydFdvcmQoCiAgICAgICAgV2hhdCA9PiAiU1FMLURPIyMhIyMkUGFyYW17U1FMfSMjISMjJEJpbmRTdHJpbmcjIyEjIyIKICAgICAgICAgICAgLiBqb2luKCAnOycsIEBTdGFja1RyYWNlICkKICAgICAgICAgICAgLiAiIyMhIyMkRGlmZlRpbWUiLAogICAgKTsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC5wbSAtIGFsbCBmcmVkIGNvcmUgZnVuY3Rpb25zCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkIC0gZnJlZCBjb3JlIGxpYgoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgZnJlZCBzdGFuZGFyZCBjb3JlIGZ1bmN0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICApOwogICAgbXkgJExvZ09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJEZyZWRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RnJlZC0+bmV3KAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IE1haW5PYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkV2YWx1YXRlIHRoZSBzZXZlcmFsIGRhdGEgb2YgYWxsIGZyZWQgbW9kdWxlcyBhbmQgYWRkIHRoZW0Kb24gdGhlIEZyZWRNb2R1bGVzIHJlZmVyZW5jZS4KCiAgICAkRnJlZE9iamVjdC0+RGF0YUdldCgKICAgICAgICBGcmVkTW9kdWxlc1JlZiA9PiAkRnJlZE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0ZyZWRNb2R1bGVzUmVmfSB8fCByZWYoICRQYXJhbXtGcmVkTW9kdWxlc1JlZn0gKSBuZSAnSEFTSCcgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIEZyZWRNb2R1bGVzUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoICEkUGFyYW17SFRNTERhdGFSZWZ9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBIVE1MRGF0YVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGZvciBteSAkTW9kdWxlTmFtZSAoIHNvcnQga2V5cyAleyAkUGFyYW17RnJlZE1vZHVsZXNSZWZ9IH0gKSB7CgogICAgICAgICMgbG9hZCBiYWNrZW5kCiAgICAgICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkU2VsZi0+X0xvYWRCYWNrZW5kKCBNb2R1bGVOYW1lID0+ICRNb2R1bGVOYW1lICk7CgogICAgICAgICMgZ2V0IG1vZHVsZSBkYXRhCiAgICAgICAgaWYgKCRCYWNrZW5kT2JqZWN0KSB7CiAgICAgICAgICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgICAgICAgICAgTW9kdWxlUmVmICAgICAgPT4gJFBhcmFte0ZyZWRNb2R1bGVzUmVmfS0+eyRNb2R1bGVOYW1lfSwKICAgICAgICAgICAgICAgIEhUTUxEYXRhUmVmICAgID0+ICRQYXJhbXtIVE1MRGF0YVJlZn0sCiAgICAgICAgICAgICAgICBGcmVkTW9kdWxlc1JlZiA9PiAkUGFyYW17RnJlZE1vZHVsZXNSZWZ9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX0xvYWRCYWNrZW5kKCkKCmxvYWQgYSB4bWwgaXRlbSBtb2R1bGUKCiAgICAkQmFja2VuZE9iamVjdCA9ICRGcmVkT2JqZWN0LT5fTG9hZEJhY2tlbmQoCiAgICAgICAgTW9kdWxlTmFtZSA9PiAkTW9kdWxlTmFtZSwKICAgICk7Cgo9Y3V0CgpzdWIgX0xvYWRCYWNrZW5kIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtNb2R1bGVOYW1lfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlTmFtZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgbG9hZCBiYWNrZW5kCiAgICBteSAkR2VuZXJpY01vZHVsZSA9ICdLZXJuZWw6OlN5c3RlbTo6RnJlZDo6JyAuICRQYXJhbXtNb2R1bGVOYW1lfTsKICAgIGlmICggJFNlbGYtPntNYWluT2JqZWN0fS0+UmVxdWlyZSgkR2VuZXJpY01vZHVsZSkgKSB7CiAgICAgICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkR2VuZXJpY01vZHVsZS0+bmV3KCAleyRTZWxmfSwgJVBhcmFtLCApOwoKICAgICAgICBpZiAoJEJhY2tlbmRPYmplY3QpIHsKCiAgICAgICAgICAgICMgcmV0dXJuIG9iamVjdAogICAgICAgICAgICByZXR1cm4gJEJhY2tlbmRPYmplY3Q7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybjsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9Db25maWdMb2cucG0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpDb25maWdMb2c7CiMjIG5vIGNyaXRpYyhQZXJsOjpDcml0aWM6OlBvbGljeTo6T1RSUzo6UHJvaGliaXRPcGVuKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpDb25maWdMb2cKCj1oZWFkMSBTWU5PUFNJUwoKaGFuZGxlIHRoZSBjb25maWcgbG9nIGRhdGEKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6Q29uZmlnTG9nOwoKICAgIG15ICRDb25maWdPYmplY3QgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2dPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJEZyZWRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6Q29uZmlnTG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAjIERvbid0IGNhbGwgQ29uZmlnT2JqZWN0LT5HZXQoKSBoZXJlLCB0aGlzIGNvdWxkIGNhdXNlIGRlZXAgcmVjdXJzaW9ucy4KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIERhdGFHZXQoKQoKR2V0IHRoZSBkYXRhIGZvciB0aGlzIGZyZWQgbW9kdWxlLiBSZXR1cm5zIHRydWUgb3IgZmFsc2UuCkFuZCBhZGQgdGhlIGRhdGEgdG8gdGhlIG1vZHVsZSByZWYuCgogICAgJEJhY2tlbmRPYmplY3QtPkRhdGFHZXQoCiAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATG9nTWVzc2FnZXM7CgogICAgIyBvcGVuIHRoZSBUcmFuc2xhdGlvbkRlYnVnLmxvZyBmaWxlIHRvIGdldCB0aGUgdW50cmFuc2xhdGVkIHdvcmRzCiAgICBteSAkRmlsZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdIb21lJykgLiAnL3Zhci9mcmVkL0NvbmZpZy5sb2cnOwogICAgbXkgJEZpbGVoYW5kbGU7CiAgICBpZiAoICFvcGVuICRGaWxlaGFuZGxlLCAnPCcsICRGaWxlICkgewogICAgICAgIHByaW50IFNUREVSUiAiUGVyaGFwcyB5b3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIGF0IC92YXIvZnJlZC9cbiIgLgogICAgICAgICAgICAiQ2FuJ3QgcmVhZCAvdmFyL2ZyZWQvQ29uZmlnLmxvZyI7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IHRoZSB3aG9sZSBpbmZvcm1hdGlvbgogICAgTElORToKICAgIGZvciBteSAkTGluZSAoIHJldmVyc2UgPCRGaWxlaGFuZGxlPiApIHsKICAgICAgICBsYXN0IExJTkUgaWYgJExpbmUgPX4gL0ZSRUQvOwogICAgICAgIHB1c2ggQExvZ01lc3NhZ2VzLCAkTGluZTsKICAgIH0KCiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKICAgIHBvcCBATG9nTWVzc2FnZXM7CiAgICAkU2VsZi0+SW5zZXJ0V29yZCggV2hhdCA9PiAiRlJFRFxuIiApOwoKICAgIG15ICVJbmRpdmlkdWFsQ29uZmlnID0gKCk7CgogICAgZm9yIG15ICRMaW5lIChATG9nTWVzc2FnZXMpIHsKICAgICAgICAkTGluZSA9fiBzL1xuLy87CiAgICAgICAgJEluZGl2aWR1YWxDb25maWd7JExpbmV9Kys7CiAgICB9CgogICAgQExvZ01lc3NhZ2VzID0gKCk7CiAgICBmb3IgbXkgJExpbmUgKCBzb3J0IGtleXMgJUluZGl2aWR1YWxDb25maWcgKSB7CiAgICAgICAgbXkgQFNwbGl0ZWRMaW5lID0gc3BsaXQgLzsvLCAkTGluZTsKICAgICAgICBwdXNoIEBTcGxpdGVkTGluZSwgJEluZGl2aWR1YWxDb25maWd7JExpbmV9OwogICAgICAgIHB1c2ggQExvZ01lc3NhZ2VzLCBcQFNwbGl0ZWRMaW5lOwogICAgfQoKICAgICMgc29ydCB0aGUgZGF0YQogICAgbXkgJENvbmZpZyA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcmVkOjpDb25maWdMb2cnKTsKICAgIG15ICRPcmRlckJ5ID0gZGVmaW5lZCggJENvbmZpZy0+e09yZGVyQnl9ICkgPyAkQ29uZmlnLT57T3JkZXJCeX0gOiAzOwogICAgaWYgKCAkT3JkZXJCeSA9PSAzICkgewogICAgICAgIEBMb2dNZXNzYWdlcyA9IHNvcnQgeyAkYi0+WyRPcmRlckJ5XSA8PT4gJGEtPlskT3JkZXJCeV0gfSBATG9nTWVzc2FnZXM7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBATG9nTWVzc2FnZXMgPSBzb3J0IHsgJGEtPlskT3JkZXJCeV0gY21wICRiLT5bJE9yZGVyQnldIH0gQExvZ01lc3NhZ2VzOwogICAgfQoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gPSBcQExvZ01lc3NhZ2VzOwogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIEluc2VydFdvcmQoKQoKU2F2ZSBhIHdvcmQgaW4gdGhlIHRyYW5zbGF0aW9uIGRlYnVnIGxvZwoKICAgICRCYWNrZW5kT2JqZWN0LT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gJ2Egd29yZCcsCiAgICApOwoKPWN1dAoKc3ViIEluc2VydFdvcmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRnJlZFNldHRpbmdzID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXRPcmlnaW5hbCgnRnJlZDo6TW9kdWxlJyk7CgogICAgaWYgKCAhJEZyZWRTZXR0aW5ncyB8fCAhJEZyZWRTZXR0aW5ncy0+e0NvbmZpZ0xvZ30gfHwgISRGcmVkU2V0dGluZ3MtPntDb25maWdMb2d9LT57QWN0aXZlfSApIHsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAhJFBhcmFte0hvbWV9ICkgewogICAgICAgICRQYXJhbXtIb21lfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0T3JpZ2luYWwoJ0hvbWUnKTsKICAgIH0KCiAgICAjIHNhdmUgdGhlIHdvcmQgaW4gbG9nIGZpbGUKICAgIG15ICRGaWxlID0gJFBhcmFte0hvbWV9IC4gJy92YXIvZnJlZC9Db25maWcubG9nJzsKICAgIG9wZW4gbXkgJEZpbGVoYW5kbGUsICc+PicsICRGaWxlIHx8IGRpZSAiQ2FuJ3Qgd3JpdGUgJEZpbGUgIVxuIjsKICAgIHByaW50ICRGaWxlaGFuZGxlICRQYXJhbXtXaGF0fSAuICJcbiI7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9Db25zb2xlLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6Q29uc29sZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6Q29uc29sZQoKPWhlYWQxIFNZTk9QU0lTCgpnaXZlcyB5b3UgYWxsIGZ1bmN0aW9ucyB3aGljaCBhcmUgbmVlZGVkIGZvciB0aGUgRlJFRC1jb25zb2xlCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbnNvbGU7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICApOwogICAgbXkgJExvZ09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkRnJlZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpDb25zb2xlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkcyB0aGUgZGF0YSB0byB0aGUgbW9kdWxlIHJlZi4KCiAgICAkQmFja2VuZE9iamVjdC0+RGF0YUdldCgKICAgICAgICBNb2R1bGVSZWYgPT4gJE1vZHVsZVJlZiwKICAgICk7Cgo9Y3V0CgpzdWIgRGF0YUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJFJlZiAocXcoTW9kdWxlUmVmIEhUTUxEYXRhUmVmIEZyZWRNb2R1bGVzUmVmKSkgewogICAgICAgIGlmICggISRQYXJhbXskUmVmfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJFJlZiEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15IEBNb2R1bGVzOwogICAgZm9yIG15ICRNb2R1bGUgKCBzb3J0IGtleXMgJXsgJFBhcmFte0ZyZWRNb2R1bGVzUmVmfSB9ICkgewogICAgICAgIGlmICggJE1vZHVsZSBuZSAnQ29uc29sZScgKSB7CiAgICAgICAgICAgIHB1c2ggQE1vZHVsZXMsICRNb2R1bGU7CiAgICAgICAgfQogICAgfQogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFxATW9kdWxlczsKCiAgICBpZiAoICR7ICRQYXJhbXtIVE1MRGF0YVJlZn0gfSAhfiBtL0ZyZWQtU2V0dGluZy8gJiYgJHsgJFBhcmFte0hUTUxEYXRhUmVmfSB9ID1+IC9cPGJvZHkuKj9cPi8gKQogICAgewogICAgICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57U3RhdHVzfSA9IDE7CiAgICB9CgogICAgaWYgKCAkeyAkUGFyYW17SFRNTERhdGFSZWZ9IH0gIX4gbS9uYW1lPSJBY3Rpb24iIHZhbHVlPSJMb2dpbiIvICkgewogICAgICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57U2V0dGluZ30gPSAxOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9FbnZEdW1wLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6RW52RHVtcDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6RW52RHVtcAoKPWhlYWQxIFNZTk9QU0lTCgpkb2VzIGVzc2VudGlhbGx5IG5vdGhpbmcKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6RW52RHVtcDsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRGcmVkT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkVudkR1bXAtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIERhdGFHZXQoKQoKVGhpcyBtZXRob2QgaXMganVzdCBmb3IgY29tcGF0YmlsaXR5LiBObyBkYXRhIGlzIHNldCBoZXJlLAphcyB0aGUgbmVlZGVkIHNlc3Npb24gb2JqZWN0IGlzIG5vdCBlYXNpbHkgYXZhaWxhYmxlIGhlcmUuCgogICAgbXkgJERhdGFHZXRPayA9ICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyggTW9kdWxlUmVmICkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9IVE1MQ2hlY2sucG0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpIVE1MQ2hlY2s7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkhUTUxDaGVjawoKPWhlYWQxIFNZTk9QU0lTCgpQZXJmb3JtIEhUTUwgUUEuCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkhUTUxDaGVjazsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRNYWluT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06Ok1haW4tPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7CiAgICBteSAkRnJlZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpIVE1MQ2hlY2stPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgTWFpbk9iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIERhdGFHZXQgewogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9KU0xpbnQucG0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpKU0xpbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgRmlsZTo6VGVtcDsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6SlNMaW50Cgo9aGVhZDEgU1lOT1BTSVMKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6TWFpbjsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6SlNMaW50OwoKICAgIG15ICRDb25maWdPYmplY3QgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2dPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJE1haW5PYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TWFpbi0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgKTsKICAgIG15ICRGcmVkT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkpTTGludC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCBNYWluT2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9TZXNzaW9uRHVtcC5wbQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNlc3Npb25EdW1wOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpTZXNzaW9uRHVtcAoKPWhlYWQxIFNZTk9QU0lTCgpkb2VzIGVzc2VudGlhbGx5IG5vdGhpbmcKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U2Vzc2lvbkR1bXA7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICApOwogICAgbXkgJExvZ09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkRnJlZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTZXNzaW9uRHVtcC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gRGF0YUdldCgpCgpUaGlzIG1ldGhvZCBpcyBqdXN0IGZvciBjb21wYXRiaWxpdHkuIE5vIGRhdGEgaXMgc2V0IGhlcmUsCmFzIHRoZSBuZWVkZWQgc2Vzc2lvbiBvYmplY3QgaXMgbm90IGVhc2lseSBhdmFpbGFibGUgaGVyZS4KCiAgICBteSAkRGF0YUdldE9rID0gJEJhY2tlbmRPYmplY3QtPkRhdGFHZXQoCiAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KCBNb2R1bGVSZWYgKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9TUUxMb2cucG0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTUUxMb2c7CiMjIG5vIGNyaXRpYyhQZXJsOjpDcml0aWM6OlBvbGljeTo6T1RSUzo6UHJvaGliaXRPcGVuKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpTUUxMb2cKCj1oZWFkMSBTWU5PUFNJUwoKU2hvdyBhIGxvZyBvZiB0aGUgU1FMIHN0YXRlbWVudHMgZXhlY3V0ZWQgc2luY2UgdGhlIGxhc3QgdmlldyBvZiB0aGUgbG9nLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1FMTG9nOwoKICAgIG15ICRDb25maWdPYmplY3QgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2dPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJEZyZWRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1FMTG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBvcGVuIHRoZSBmaWxlIFNRTC5sb2cKICAgIG15ICRGaWxlID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvU1FMLmxvZyc7CgogICAgbXkgJEZpbGVoYW5kbGU7CiAgICBpZiAoICFvcGVuICRGaWxlaGFuZGxlLCAnPCcsICRGaWxlICkgewogICAgICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gPSBbCiAgICAgICAgICAgICJQZXJoYXBzIHlvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gYXQgL3Zhci9mcmVkLyIsCiAgICAgICAgICAgICJDYW4ndCByZWFkIC92YXIvZnJlZC9TUUwubG9nIiwKICAgICAgICBdOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSBATG9nTWVzc2FnZXM7CiAgICBteSAkRG9TdGF0ZW1lbnRzICAgICA9IDA7CiAgICBteSAkU2VsZWN0U3RhdGVtZW50cyA9IDA7CgogICAgIyBzbHVycCBpbiB0aGUgd2hvbGUgbG9nZmlsZSwgaW4gb3JkZXIgdG8gYWNjZXNzIHRoZSBsaW5lcyBhdCB0aGUgZW5kCiAgICBMSU5FOgogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSA8JEZpbGVoYW5kbGU+ICkgewoKICAgICAgICAjIGRvIG5vdCBzaG93IHRoZSBsb2cgZnJvbSB0aGUgcHJldmlvdXMgcmVxdWVzdAogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSA9fiAvRlJFRC87CgojIGEgdHlwaWNhbCBsaW5lIGZyb20gU1FMLmxvZyBsb29rcyBsaWtlOgojIFNRTC1TRUxFQ1QjIyEjI1NFTEVDVCAxICsgMSBGUk9NIGR1YWwgV0hFUkUgaWQgPSA/IEFORCB1c2VyX2lkID0gPyMjISMjMSwgMiMjISMjS2VybmVsOjpTeXN0ZW06OlVzZXIjIyEjIzAuMDA0Mzk3CiAgICAgICAgbXkgQFNwbGl0TG9nTGluZSA9IHNwbGl0IC8jIyEjIy8sICRMaW5lOwogICAgICAgIGlmICggJFNwbGl0TG9nTGluZVswXSBlcSAnU1FMLURPJyAmJiAkU3BsaXRMb2dMaW5lWzFdID1+IG17IFxBIFNFTEVDVCB9eG1zICkgewogICAgICAgICAgICAkU3BsaXRMb2dMaW5lWzBdIC49ICcgLSBQZXJoYXBzIHlvdSBoYXZlIGFuIGVycm9yIHlvdSB1c2UgRE8gZm9yIGEgU0VMRUNULVN0YXRlbWVudDonOwogICAgICAgIH0KICAgICAgICBwdXNoIEBMb2dNZXNzYWdlcywgXEBTcGxpdExvZ0xpbmU7CgogICAgICAgIGlmICggJFNwbGl0TG9nTGluZVswXSBlcSAnU1FMLURPJyApIHsKICAgICAgICAgICAgJERvU3RhdGVtZW50cysrOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkU3BsaXRMb2dMaW5lWzRdICkgewogICAgICAgICAgICAkUGFyYW17TW9kdWxlUmVmfS0+e1RpbWV9ICs9ICRTcGxpdExvZ0xpbmVbNF07CiAgICAgICAgfQogICAgfQoKICAgIHBvcCBATG9nTWVzc2FnZXM7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICAjIGZpbmQgU1FMLXN0YXRlbWVudHMgdXNlZCBtdWx0aXBsZSB0aW1lcwogICAgbXkgJU11bHRpVXNlZDsKICAgIGZvciBteSAkU3RhdGVtZW50UmVmIChATG9nTWVzc2FnZXMpIHsKICAgICAgICAkTXVsdGlVc2VkeyAkU3RhdGVtZW50UmVmLT5bMV0gfSsrOwogICAgfQogICAgZm9yIG15ICRTdGF0ZW1lbnRSZWYgKEBMb2dNZXNzYWdlcykgewogICAgICAgIHB1c2ggQHskU3RhdGVtZW50UmVmfSwgKCAkTXVsdGlVc2VkeyAkU3RhdGVtZW50UmVmLT5bMV0gfSAtIDEgKTsKICAgIH0KCiAgICAjIEFkZCBtYXJrZXIgZm9yIHRoZSBuZXh0IHZpZXcKICAgICRTZWxmLT5JbnNlcnRXb3JkKCBXaGF0ID0+ICJGUkVEXG4iICk7CgogICAgIyBzZXQgdGhlIGRhdGEgZm9yIHRoZSBvdXRwdXQgdGVtcGxhdGUKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gICAgICAgICAgICAgPSBcQExvZ01lc3NhZ2VzOwogICAgJFBhcmFte01vZHVsZVJlZn0tPntBbGxTdGF0ZW1lbnRzfSAgICA9IHNjYWxhciBATG9nTWVzc2FnZXM7CiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0RvU3RhdGVtZW50c30gICAgID0gJERvU3RhdGVtZW50czsKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57U2VsZWN0U3RhdGVtZW50c30gPSAkUGFyYW17TW9kdWxlUmVmfS0+e0FsbFN0YXRlbWVudHN9IC0gJERvU3RhdGVtZW50czsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gSW5zZXJ0V29yZCgpCgpBcHBlbmQgYSBzZW1pY29sb24gc2VwZXJhdGVkIHJlY29yZCBsaW5lIHRvIHRoZSB0aGUgU1FMIGxvZy4KCiAgICAkQmFja2VuZE9iamVjdC0+SW5zZXJ0V29yZCgKICAgICAgICBXaGF0ID0+ICdTUUwtU0VMRUNUO1NFTEVDVCAxICsgMSBGUk9NIGR1YWw7S2VybmVsOjpTeXN0ZW06OlVzZXI7MC4wMDQzOTcnLAogICAgKTsKCj1jdXQKCnN1YiBJbnNlcnRXb3JkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtXaGF0fSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgV2hhdCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgRml4dXAgbXVsdGlsaW5lIFNRTCBzdGF0ZW1lbnRzCiAgICBpZiAoICRQYXJhbXtXaGF0fSA9fiBtL15TUUwvc214ICkgewogICAgICAgIG15IEBXaGF0ID0gc3BsaXQgJyMjISMjJywgJFBhcmFte1doYXR9OwoKICAgICAgICAjIGhpZGUgd2hpdGUgc3BhY2UKICAgICAgICAkV2hhdFsxXSA9fiBzL1xyP1xuLyAvc214ZzsKICAgICAgICAkV2hhdFsxXSA9fiBzL1xzKy8gL3NteGc7CiAgICAgICAgJFBhcmFte1doYXR9ID0gam9pbiAnIyMhIyMnLCBAV2hhdDsKICAgIH0KCiAgICAjIGFwcHBlbmQgdGhlIGxpbmUgdG8gbG9nIGZpbGUKICAgIG15ICRGaWxlID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvU1FMLmxvZyc7CiAgICBvcGVuIG15ICRGaWxlaGFuZGxlLCAnPj4nLCAkRmlsZSB8fCBkaWUgIkNhbid0IHdyaXRlICRGaWxlICFcbiI7CiAgICBwcmludCAkRmlsZWhhbmRsZSAkUGFyYW17V2hhdH0sICJcbiI7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9TVERFUlJMb2cucG0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTVERFUlJMb2c7CiMjIG5vIGNyaXRpYyhQZXJsOjpDcml0aWM6OlBvbGljeTo6T1RSUzo6UHJvaGliaXRPcGVuKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpTVERFUlJMb2cKCj1oZWFkMSBTWU5PUFNJUwoKaGFuZGxlIHRoZSBTVERFUlIgbG9nIGRhdGEKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1RERVJSTG9nOwoKICAgIG15ICRDb25maWdPYmplY3QgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2dPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJEZyZWRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1RERVJSTG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhNb2R1bGVSZWYpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBvcGVuIHRoZSBTVERFUlIubG9nIGZpbGUgdG8gZ2V0IHRoZSBTVERFUlIgbWVzc2FnZXMKICAgIG15ICRGaWxlID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvU1RERVJSLmxvZyc7CiAgICBteSAkRmlsZWhhbmRsZTsKCiAgICBpZiAoICFvcGVuICRGaWxlaGFuZGxlLCAnPDplbmNvZGluZyhVVEYtOCknLCAkRmlsZSApIHsKICAgICAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9ID0gWwogICAgICAgICAgICAiUGVyaGFwcyB5b3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIGF0IC92YXIvZnJlZC8gb3IgL0tlcm5lbC9Db25maWcvRmlsZXMvQUFBRnJlZC5wbS4iLAogICAgICAgICAgICAiQ2FuJ3QgcmVhZCAvdmFyL2ZyZWQvU1RERVJSLmxvZyIsCiAgICAgICAgXTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgdGhlIHdob2xlIGluZm9ybWF0aW9uCiAgICBteSBATG9nTWVzc2FnZXM7CiAgICBMSU5FOgogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSA8JEZpbGVoYW5kbGU+ICkgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSA9fiBteyBcQSBccyogRlJFRCBccyogXHp9eG1zOwoKICAgICAgICAjIEF0dGVudGlvbjogdGhlIGxhc3QgdHdvIHN0cmluZ3MgYXJlIGJlY2F1c2Ugb2YgRFByb2YuIEkgaGF2ZSB0byBmb3JjZSB0aGUgcHJvY2Vzcy4KICAgICAgICAjIFNvIEkgZ2V0IHRoaXMgd2FybmluZ3MhCiAgICAgICAgaWYgKAogICAgICAgICAgICAkTGluZQogICAgICAgICAgICAhfiAvKFN1YnJvdXRpbmUgLis/IHJlZGVmaW5lZCBhdHxoYXMgLis/IHVuc3RhY2tlZCBjYWxsc3xGYWtpbmcgLis/IGV4aXQgdGltZXN0YW1wKS8KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcHVzaCBATG9nTWVzc2FnZXMsICRMaW5lOwogICAgICAgIH0KICAgIH0KICAgIGNsb3NlICRGaWxlaGFuZGxlOwoKICAgIHByaW50IFNUREVSUiAiXG5GUkVEXG4iOwoKICAgICMgdHJpbSB0aGUgbG9nIG1lc3NhZ2UgYXJyYXkKICAgIExJTkU6CiAgICBmb3IgbXkgJExpbmUgKEBMb2dNZXNzYWdlcykgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSAhfiBteyBcQSBccyogXHogfXhtczsKICAgICAgICBzaGlmdCBATG9nTWVzc2FnZXM7CiAgICB9CgogICAgIyB0cmltIHRoZSBsb2cgbWVzc2FnZSBhcnJheQogICAgTElORToKICAgIGZvciBteSAkTGluZSAoIHJldmVyc2UgQExvZ01lc3NhZ2VzICkgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSAhfiBteyBcQSBccyogXHogfXhtczsKICAgICAgICBzaGlmdCBATG9nTWVzc2FnZXM7CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFxATG9nTWVzc2FnZXM7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9UcmFuc2xhdGlvbkRlYnVnLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6VHJhbnNsYXRpb25EZWJ1ZzsKIyMgbm8gY3JpdGljKFBlcmw6OkNyaXRpYzo6UG9saWN5OjpPVFJTOjpQcm9oaWJpdE9wZW4pCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWcKCj1oZWFkMSBTWU5PUFNJUwoKaGFuZGxlIHRoZSB0cmFuc2xhdGlvbiBkZWJ1ZyBkYXRhCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWc7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICApOwogICAgbXkgJExvZ09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkRnJlZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpUcmFuc2xhdGlvbkRlYnVnLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgaWYgKCByZWYgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpICYmICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcmVkOjpNb2R1bGUnKS0+e1RyYW5zbGF0aW9uRGVidWd9KSB7CiAgICAgICAgJFNlbGYtPntBY3RpdmV9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpLT57VHJhbnNsYXRpb25EZWJ1Z30tPntBY3RpdmV9OwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gRGF0YUdldCgpCgpHZXQgdGhlIGRhdGEgZm9yIHRoaXMgZnJlZCBtb2R1bGUuIFJldHVybnMgdHJ1ZSBvciBmYWxzZS4KQW5kIGFkZCB0aGUgZGF0YSB0byB0aGUgbW9kdWxlIHJlZi4KCiAgICAkQmFja2VuZE9iamVjdC0+RGF0YUdldCgKICAgICAgICBNb2R1bGVSZWYgPT4gJE1vZHVsZVJlZiwKICAgICk7Cgo9Y3V0CgpzdWIgRGF0YUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgb3BlbiB0aGUgVHJhbnNsYXRpb25EZWJ1Zy5sb2cgZmlsZSB0byBnZXQgdGhlIHVudHJhbnNsYXRlZCB3b3JkcwogICAgbXkgJEZpbGUgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnSG9tZScpIC4gJy92YXIvZnJlZC9UcmFuc2xhdGlvbkRlYnVnLmxvZyc7CiAgICBteSAkRmlsZWhhbmRsZTsKICAgIGlmICggIW9wZW4gJEZpbGVoYW5kbGUsICc8JywgJEZpbGUgKSB7CiAgICAgICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFsKICAgICAgICAgICAgIlBlcmhhcHMgeW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiBhdCAvdmFyL2ZyZWQvIiwKICAgICAgICAgICAgIkNhbid0IHJlYWQgL3Zhci9mcmVkL1RyYW5zbGF0aW9uRGVidWcubG9nIgogICAgICAgIF07CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbXkgQExvZ01lc3NhZ2VzOwoKICAgICMgZ2V0IHRoZSB3aG9sZSBpbmZvcm1hdGlvbgogICAgTElORToKICAgIGZvciBteSAkTGluZSAoIHJldmVyc2UgPCRGaWxlaGFuZGxlPiApIHsKICAgICAgICBsYXN0IExJTkUgaWYgJExpbmUgPX4gL0ZSRUQvOwoKICAgICAgICBjaG9tcCAkTGluZTsKICAgICAgICBuZXh0IExJTkUgaWYgJExpbmUgZXEgJyc7CgogICAgICAgIHB1c2ggQExvZ01lc3NhZ2VzLCAkTGluZTsKICAgIH0KICAgIGNsb3NlICRGaWxlaGFuZGxlOwoKICAgICRTZWxmLT5JbnNlcnRXb3JkKCBXaGF0ID0+ICJGUkVEXG4iICk7CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFxATG9nTWVzc2FnZXM7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIEluc2VydFdvcmQoKQoKU2F2ZSBhIHdvcmQgaW4gdGhlIHRyYW5zbGF0aW9uIGRlYnVnIGxvZwoKICAgICRCYWNrZW5kT2JqZWN0LT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gJ2Egd29yZCcsCiAgICApOwoKPWN1dAoKc3ViIEluc2VydFdvcmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgKCAhJFNlbGYtPntBY3RpdmV9ICk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggIWRlZmluZWQoICRQYXJhbXtXaGF0fSApICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXaGF0IScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzYXZlIHRoZSB3b3JkIGluIGxvZyBmaWxlCiAgICBteSAkRmlsZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdIb21lJykgLiAnL3Zhci9mcmVkL1RyYW5zbGF0aW9uRGVidWcubG9nJzsKICAgIG9wZW4gbXkgJEZpbGVoYW5kbGUsICc+PicsICRGaWxlIHx8IGRpZSAiQ2FuJ3Qgd3JpdGUgJEZpbGUgIVxuIjsKICAgIHByaW50ICRGaWxlaGFuZGxlICRQYXJhbXtXaGF0fSAuICJcbiI7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
Ly8gLS0KLy8gQ29yZS5GcmVkLmpzIC0gR2VuZXJpYyBGcmVkIGZ1bmN0aW9ucwovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5vcmcvCi8vIC0tCi8vIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCi8vIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KLy8gLS0KCiJ1c2Ugc3RyaWN0IjsKCnZhciBDb3JlID0gQ29yZSB8fCB7fTsKQ29yZS5GcmVkID0gQ29yZS5GcmVkIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgYWxsIGxvZ2ljIGZvciBGcmVkCiAqLwpDb3JlLkZyZWQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm4gbm90aGluZy4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRzIGdlbmVyaWMgZnJlZCBmdW5jdGlvbnMKICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgLy8gVG9vbGJhciBpdGVtcwogICAgICAgICQoJy5GcmVkU2VhcmNoJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcuRGV2ZWxGcmVkQm94JykuZmluZCgnLkZyZWRRdWlja1NlYXJjaCcpLnRvZ2dsZSgpOwogICAgICAgIH0pOwogICAgICAgICQoJy5GcmVkTWluaW1pemUnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5EZXZlbEZyZWRCb3gnKS5maW5kKCcuRGV2ZWxGcmVkQm94Q29udGVudCcpLnNsaWRlVG9nZ2xlKCdmYXN0Jyk7CiAgICAgICAgfSk7CiAgICAgICAgJCgnLkZyZWRDbG9zZScpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnLkRldmVsRnJlZEJveCcpLnJlbW92ZSgpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBlbXB0eSB0aGUgc2VhcmNoIGZpZWxkCiAgICAgICAgJCgnLkZyZWRRdWlja1NlYXJjaCBpJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCh0aGlzKS5wcmV2KCdpbnB1dCcpLnZhbCgnJykudHJpZ2dlcigna2V5ZG93bicpOwogICAgICAgIH0pOwoKICAgICAgICAvLyByZWdpc3RlciB0aGUgdGFibGUgZmlsdGVyIG9uIHRoZSBxdWlja3NlYXJjaCBmaWVsZHMKICAgICAgICAkKCcuRnJlZFF1aWNrU2VhcmNoIGlucHV0JykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgQ29yZS5VSS5UYWJsZS5Jbml0VGFibGVGaWx0ZXIoJCh0aGlzKSwgJCh0aGlzKS5jbG9zZXN0KCcuRGV2ZWxGcmVkQm94JykuZmluZCgnLkZyZWRUYWJsZURlZmF1bHQnKSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIHJlZ2lzdGVyIG5ldyBwb3B1cCBwcm9maWxlIGFzIG5lZWRlZCBieSBmcmVkCiAgICAgICAgQ29yZS5VSS5Qb3B1cC5Qcm9maWxlQWRkKCdGcmVkU2V0dGluZ3MnLCB7CiAgICAgICAgICAgIFdpbmRvd1VSTFBhcmFtczogImRlcGVuZGVudD15ZXMsbG9jYXRpb249bm8sbWVudWJhcj1ubyxyZXNpemFibGU9eWVzLHNjcm9sbGJhcnM9eWVzLHN0YXR1cz1ubyx0b29sYmFyPW5vIiwKICAgICAgICAgICAgTGVmdDogICAgICAgICAgICAxMDAsCiAgICAgICAgICAgIFRvcDogICAgICAgICAgICAgMTAwLAogICAgICAgICAgICBXaWR0aDogICAgICAgICAgIDQwMCwKICAgICAgICAgICAgSGVpZ2h0OiAgICAgICAgICA0NzAKICAgICAgICB9KTsKCiAgICAgICAgLy8gb3BlbiB0aGUgc2V0dGluZ3MgcG9wdXAKICAgICAgICAkKCcuRnJlZFNldHRpbmdzJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgQ29yZS5VSS5Qb3B1cC5PcGVuUG9wdXAoJCh0aGlzKS5kYXRhKCd1cmwnKSwgJ0ZyZWRTZXR0aW5ncycsICdGcmVkU2V0dGluZ3MnKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gU1FMIGxvZzogU2hvdyBiaW5kIHBhcmFtZXRlcnMgb24gY2xpY2sgb2YgJ3Nob3cnIGxpbmsKICAgICAgICAkKCcuU2hvd0JpbmRQYXJhbWV0ZXJzJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCh0aGlzKS5uZXh0KCcuSGlkZGVuJykudG9nZ2xlKCk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgJCgnLkZyZWRTZXR0aW5nc0xpbmsnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gbWFrZSB0aGUgZnJlZCBib3ggZHJhZ2dhYmxlCiAgICAgICAgJCgnI0RldmVsRnJlZENvbnRhaW5lcicpLmRyYWdnYWJsZSh7CiAgICAgICAgICAgIGhhbmRsZTogJ2gxJywKICAgICAgICAgICAgc3RvcDogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CiAgICAgICAgICAgICAgICB2YXIgVG9wID0gdWkub2Zmc2V0LnRvcCwKICAgICAgICAgICAgICAgICAgICBMZWZ0ID0gdWkub2Zmc2V0LmxlZnQ7CgogICAgICAgICAgICAgICAgaWYgKHdpbmRvdyAmJiB3aW5kb3cubG9jYWxTdG9yYWdlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV9sZWZ0ID0gTGVmdDsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV90b3AgID0gVG9wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIHNhdmUgZnJlZCdzIHdpbmRvdyBwb3NpdGlvbgogICAgICAgIChmdW5jdGlvbigpewogICAgICAgICAgICBpZiAod2luZG93ICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UgIT09IHVuZGVmaW5lZCAmJiB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV9sZWZ0ICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UuRlJFRF9jb25zb2xlX3RvcCkgewoKICAgICAgICAgICAgICAgIHZhciBTYXZlZExlZnQgID0gd2luZG93LmxvY2FsU3RvcmFnZS5GUkVEX2NvbnNvbGVfbGVmdCwKICAgICAgICAgICAgICAgICAgICBTYXZlZFRvcCAgID0gd2luZG93LmxvY2FsU3RvcmFnZS5GUkVEX2NvbnNvbGVfdG9wLAogICAgICAgICAgICAgICAgICAgIEZyZWRXaWR0aCAgPSAkKCcjRGV2ZWxGcmVkQ29udGFpbmVyJykud2lkdGgoKSwKICAgICAgICAgICAgICAgICAgICBGcmVkSGVpZ2h0ID0gJCgnI0RldmVsRnJlZENvbnRhaW5lcicpLmhlaWdodCgpOwoKICAgICAgICAgICAgICAgIGlmIChTYXZlZExlZnQgPiAkKCdib2R5Jykud2lkdGgoKSkgewogICAgICAgICAgICAgICAgICAgIFNhdmVkTGVmdCA9ICQoJ2JvZHknKS53aWR0aCgpIC0gRnJlZFdpZHRoOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKFNhdmVkVG9wID4gJCgnYm9keScpLmhlaWdodCgpKSB7CiAgICAgICAgICAgICAgICAgICAgU2F2ZWRUb3AgPSAkKCdib2R5JykuaGVpZ2h0KCkgLSBGcmVkSGVpZ2h0OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChTYXZlZExlZnQgJiYgU2F2ZWRUb3ApIHsKICAgICAgICAgICAgICAgICAgICAkKCcjRGV2ZWxGcmVkQ29udGFpbmVyJykuY3NzKCdsZWZ0JywgU2F2ZWRMZWZ0ICsgJ3B4Jyk7CiAgICAgICAgICAgICAgICAgICAgJCgnI0RldmVsRnJlZENvbnRhaW5lcicpLmNzcygndG9wJywgU2F2ZWRUb3AgKyAncHgnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0oKSk7CiAgICB9OwoKICAgIFRhcmdldE5TLkluaXQoKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oQ29yZS5GcmVkLkpTTGludCB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29yZS5GcmVkLkhUTUxDaGVjay5qcyAtIHZhcmlvdXMgSFRNTCBjaGVja3MKLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Ci8qZ2xvYmFsIEpTTElOVDogZmFsc2UsICQ6IGZhbHNlLCBqUXVlcnk6IGZhbHNlICovCgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuRnJlZCA9IENvcmUuRnJlZCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBleHBvcnRzIFRhcmdldE5TIGFzIENvcmUuRnJlZC5IVE1MQ2hlY2sKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgYWxsIGxvZ2ljIGZvciB0aGUgRnJlZCBtb2R1bGUgSFRNTENIZWNrCiAqLwpDb3JlLkZyZWQuSFRNTENoZWNrID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIHZhciBDaGVja0Z1bmN0aW9ucyA9IFtdLAogICAgICAgIEVycm9yc0ZvdW5kID0gZmFsc2U7CgogICAgZnVuY3Rpb24gaHRtbEVuY29kZShUZXh0KXsKICAgICAgICByZXR1cm4gVGV4dC5yZXBsYWNlKC8mL2csICcmYW1wOycpLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7CiAgICB9CgogICAgZnVuY3Rpb24gZXNjYXBlU2VsZWN0b3IgKFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIFNlbGVjdG9yLnJlcGxhY2UoLygjfDp8XC58XFt8XF0pL2csJ1xcJDEnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvdXRwdXRFcnJvcigkRWxlbWVudCwgRXJyb3JUeXBlLCBFcnJvckRlc2NyaXB0aW9uLCBIaW50KXsKICAgICAgICB2YXIgJENvbnRhaW5lciwKICAgICAgICAgICAgQ29kZSwKICAgICAgICAgICAgTWVzc2FnZTsKCiAgICAgICAgJCgnI0ZyZWRIVE1MQ2hlY2tSdW5uaW5nJykucmVtb3ZlKCk7CiAgICAgICAgRXJyb3JzRm91bmQgPSB0cnVlOwoKICAgICAgICAvLyBHZXQgZWxlbWVudCBIVE1MIGJ5IHdyYXBwaW5nIGl0IGluIGEgZGl2IGFuZCBjYWxsaW5nIC5odG1sKCkgb24gdGhhdAogICAgICAgICRDb250YWluZXIgPSAkKCc8ZGl2PjwvZGl2PicpOwogICAgICAgICRDb250YWluZXIuYXBwZW5kKCAkRWxlbWVudC5jbG9uZSgpICk7CgogICAgICAgIENvZGUgPSAkQ29udGFpbmVyLmh0bWwoKTsKICAgICAgICBpZiAoQ29kZS5sZW5ndGggPiAxNjApIHsKICAgICAgICAgICAgQ29kZSA9IENvZGUuc3Vic3RyaW5nKDAsIDE2MCkgKyAnLi4uJzsKICAgICAgICB9CgogICAgICAgIE1lc3NhZ2UgPSAkKCc8cCBjbGFzcz0iU21hbGwiPjwvcD4nKTsKICAgICAgICBNZXNzYWdlLmFwcGVuZCgnPHNwYW4gY2xhc3M9IkVycm9yIj5FcnJvcjo8L3NwYW4+IDxzdHJvbmc+JyArIEVycm9yRGVzY3JpcHRpb24gKyAnPC9zdHJvbmc+PGRpdj4nICsgSGludCArICc8L2Rpdj48ZGl2Pjxjb2RlPicgKyBodG1sRW5jb2RlKENvZGUpICsgJzwvY29kZT48L2Rpdj4nKTsKICAgICAgICAkKCcjRnJlZEhUTUxDaGVja1Jlc3VsdHMnKS5hcHBlbmQoTWVzc2FnZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBQZXJmb3JtcyB2YXJpb3VzIGFjY2Vzc2liaWxpdHkgY2hlY2tzIHRvIHNlZSBpZiB0aGUgSFRNTCBjb2RlCiAgICAgKiAgICAgIHZpb2xhdGVzIHNvbWUgb2Ygb3VyIGd1aWRlbGluZXMuCiAgICAgKiBAcmV0dXJuCiAgICAgKiAgICAgIG5vdGhpbmcsIGJ1dCBjYWxscyBPdXRwdXRFcnJvciBpZiBhbiBlcnJvciB3YXMgZm91bmQKICAgICAqLwoKICAgIGZ1bmN0aW9uIENoZWNrQWNjZXNzaWJpbGl0eSgpIHsKICAgICAgICAvKgogICAgICAgICAqIGNoZWNrIGlmIGlucHV0IGVsZW1lbnRzIGVpdGhlciBoYXZlIGEgbGFiZWwgb3IgYW4gYXNzaWduZWQgdGl0bGUgdGV4dAogICAgICAgICAqLwogICAgICAgICQoJ2lucHV0OnRleHQ6dmlzaWJsZSwgaW5wdXQ6cGFzc3dvcmQ6dmlzaWJsZSwgaW5wdXQ6Y2hlY2tib3g6dmlzaWJsZSwgaW5wdXQ6cmFkaW86dmlzaWJsZSwgc2VsZWN0OnZpc2libGUsIHRleHRhcmVhOnZpc2libGUnKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyksCiAgICAgICAgICAgICAgICAkTGFiZWwgPSAkKFtdKSwKICAgICAgICAgICAgICAgIFRpdGxlOwoKICAgICAgICAgICAgLy8gZmlyc3QgbG9vayBmb3IgbGFiZWxzIHdoaWNoIHJlZmVyIHRvIHRoaXMgZWxlbWVudCBieSBpZAogICAgICAgICAgICBpZiAoJHRoaXMuYXR0cignaWQnKSAmJiAkdGhpcy5hdHRyKCdpZCcpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgJExhYmVsID0gJCgnbGFiZWxbZm9yPScgKyBlc2NhcGVTZWxlY3RvcigkdGhpcy5hdHRyKCdpZCcpKSAgKyAnXScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIHRoZW4gbG9vayBmb3IgbGFiZWxzIHdoaWNoIHN1cnJvdW5kIHRoZSBjdXJyZW50IGVsZW1lbnQKICAgICAgICAgICAgaWYgKCEkTGFiZWwubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAkTGFiZWwgPSAkdGhpcy5wYXJlbnRzKCdsYWJlbCcpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJExhYmVsLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgICAgIG91dHB1dEVycm9yKAogICAgICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgICAgICdBY2Nlc3NpYmlsaXR5TXVsdGlwbGVMYWJlbCcsCiAgICAgICAgICAgICAgICAgICAgJ0lucHV0IGVsZW1lbnQgd2l0aCBtb3JlIHRoYW4gb25lIGFzc2lnbmVkIGxhYmVscycsCiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBtYWtlIHN1cmUgdGhhdCBvbmx5IG9uZSBsYWJlbCBpcyBwcmVzZW50IGZvciB0aGlzIGlucHV0IGVsZW1lbnQuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gZmlyc3QgY2hlY2sgaWYgYSB0aXRsZSBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgdGhhdCBpcyBhbHNvIG9rIGZvciBhY2Nlc3NpYmlsaXR5CiAgICAgICAgICAgIFRpdGxlID0gJHRoaXMuYXR0cigndGl0bGUnKTsKICAgICAgICAgICAgaWYgKFRpdGxlICYmIFRpdGxlLmxlbmd0aCkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBvaywgbm8gdGl0bGUgYXZhaWxhYmxlLCBub3cgbG9vayBmb3IgYW4gYXNzaWduZWQgbGFiZWwgZWxlbWVudAogICAgICAgICAgICBpZiAoISRMYWJlbCB8fCAhJExhYmVsLmxlbmd0aCkgewogICAgICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgJ0FjY2Vzc2liaWxpdHlNaXNzaW5nTGFiZWwnLAogICAgICAgICAgICAgICAgICAgICdJbnB1dCBlbGVtZW50IHdpdGhvdXQgYSBkZXNjcmliaW5nIGxhYmVsIG9yIHRpdGxlIGF0dHJpYnV0ZScsCiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBhZGQgYSB0aXRsZSBhdHRyaWJ1dGUgb3IgYSBsYWJlbCBlbGVtZW50IHdpdGggYSAic3BlYWtpbmciIGRlc2NyaXB0aW9uIGZvciB0aGlzIGVsZW1lbnQuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvKgogICAgICAgICAqIGNoZWNrIGlmIGxpbmtzIGhhdmUgZWl0aGVyIGEgdGV4dCBvciBhIHRpdGxlCiAgICAgICAgICovCiAgICAgICAgJCgnYScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsKCiAgICAgICAgICAgIC8vIGlnbm9yZSBpZiBpdCdzIGEgImEgbmFtZSIgYW5kIG5vICJhIGhyZWYiCiAgICAgICAgICAgIGlmICgkdGhpcy5hdHRyKCduYW1lJykgJiYgISR0aGlzLmF0dHIoJ2hyZWYnKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBsb2cgaWYgYW4gYXR0cmlidXRlIHRpdGxlIGV4dGlzdHMgYnV0IG5vdGhpbmcgaXMgaW4gdGhlcmUsIHNvbWV0aGluZyBtaXNzZWQgc29tZWJvZHkgKGUuIGcuIHRpdGxlPSIiKQogICAgICAgICAgICAkLmVhY2goJHRoaXNbMF0uYXR0cmlidXRlcywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMubmFtZSA9PT0gJ3RpdGxlJyAmJiAhdGhpcy52YWx1ZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgICAgICdBY2Nlc3NpYmlsaXR5SW5hY2Nlc3NpYmxlTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgICdMaW5rIHdpdGggdGl0bGUgYnV0IHdpdGhvdXQgdmFsdWUnLAogICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5IGxpbmsgaGFzIGEgdGl0bGUgYXR0cmlidXRlIG5vdCBlbXB0eS4nCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBldmVyeXRoaW5nIGlzIG9rLCBpZiB0ZXh0IGluIGEgaHJlZiBleGlzdHMKICAgICAgICAgICAgaWYgKCR0aGlzLnRleHQoKSAmJiAkdGhpcy50ZXh0KCkubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgaXMgb2ssIGlmIHRpdGxlIGluIGEgaHJlZiBleGlzdHMKICAgICAgICAgICAgaWYgKCR0aGlzLmF0dHIoJ3RpdGxlJykgJiYgJHRoaXMuYXR0cigndGl0bGUnKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICdBY2Nlc3NpYmlsaXR5SW5hY2Nlc3NpYmxlTGluaycsCiAgICAgICAgICAgICAgICAnTGluayB3aXRob3V0IHRleHQgb3IgdGl0bGUnLAogICAgICAgICAgICAgICAgJ1BsZWFzZSBtYWtlIHN1cmUgdGhhdCBldmVyeSBsaW5rIGhhcyBlaXRoZXIgYSB0ZXh0IGNvbnRlbnQgb3IgYSB0aXRsZSBhdHRyaWJ1dGUgdGhhdCBjYW4gYmUgdXNlZCBieSBhIHNjcmVlbnJlYWRlciB0byBpZGVudGlmeSB0aGUgbGluay4nCiAgICAgICAgICAgICk7CgogICAgICAgIH0pOwogICAgfQogICAgQ2hlY2tGdW5jdGlvbnMucHVzaChDaGVja0FjY2Vzc2liaWxpdHkpOwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgUGVyZm9ybXMgdmFyaW91cyBjaGVja3MgZm9yIGJhZCBIVE1MIHByYWN0aWNlCiAgICAgKiBAcmV0dXJuCiAgICAgKiAgICAgIG5vdGhpbmcsIGJ1dCBjYWxscyBPdXRwdXRFcnJvciBpZiBhbiBlcnJvciB3YXMgZm91bmQKICAgICAqLwoKICAgIGZ1bmN0aW9uIENoZWNrQmFkUHJhY3RpY2UoKSB7CiAgICAgICAgdmFyIE9ic29sZXRlRWxlbWVudDJSZXBsYWNlbWVudDsKCiAgICAgICAgLy8gY2hlY2sgZm9yIGlucHV0cyB3aGljaCBzaG91bGQgYmUgYnV0dG9ucwogICAgICAgICQoJ2lucHV0OmJ1dHRvbiwgaW5wdXQ6c3VibWl0LCBpbnB1dDpyZXNldCcpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsKICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICdCYWRQcmFjdGljZUlucHV0QnV0dG9uJywKICAgICAgICAgICAgICAgICdPbGQgaW5wdXQgd2l0aCB0eXBlIGJ1dHRvbiwgc3VibWl0IG9yIHJlc2V0IGRldGVjdGVkJywKICAgICAgICAgICAgICAgICdQbGVhc2UgcmVwbGFjZSB0aGlzIGVsZW1lbnQgd2l0aCBhIDxjb2RlPiZsdDtidXR0b24mZ3Q7PC9jb2RlPiB3aXRoIHRoZSBzYW1lIHR5cGUuIElucHV0IGZpZWxkcyBtdXN0IG5vdCBiZSB1c2VkIGZvciB0aGlzIHB1cnBvc2UgYW55IG1vcmUuJwogICAgICAgICAgICApOwogICAgICAgIH0pOwoKICAgICAgICAvKgogICAgICAgIFRPRE86IGxvb2sgZm9yIGEgZml4IGZvciBjaHJvbWUuIEluIENocm9tZSwgdGhlIHNpemUgYXR0cmlidXRlIGhhcyBhIHZhbHVlIG9mIDIwIGlmCiAgICAgICAgICAgIGl0IHdhcyBub3Qgc3BlY2lmaWVkLgogICAgICAgIC8vIGNoZWNrIGZvciBpbnB1dHMgd2l0aCBzaXplIGF0dHJpYnV0ZXMKICAgICAgICAkKCdpbnB1dDpub3QoOmZpbGUpJykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOwogICAgICAgICAgICBpZiAoJHRoaXMuYXR0cignc2l6ZScpICYmICR0aGlzLmF0dHIoJ3NpemUnKSA+IDApIHsKICAgICAgICAgICAgICAgIG91dHB1dEVycm9yKAogICAgICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgICAgICdCYWRQcmFjdGljZUlucHV0U2l6ZScsCiAgICAgICAgICAgICAgICAgICAgJ0lucHV0IGVsZW1lbnQgd2l0aCBzaXplIGF0dHJpYnV0ZScsCiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSByZW1vdmUgdGhlIHNpemUgYXR0cmlidXRlICh0aGlzIGlzIG9ubHkgYWxsb3dlZCBmb3IgZmlsZSB1cGxvYWQgZmllbGRzKS4gTWF5YmUgYSBjbGFzcyBsaWtlIFcyNXBjLCBXMzNwYyBvciBXNTBwYyB3b3VsZCBhY2hpZXZlIGEgc2ltaWxhciBlZmZlY3QuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgICovCgogICAgICAgIC8vIGNoZWNrIGZvciBvYnNvbGV0ZSBlbGVtZW50cwogICAgICAgIE9ic29sZXRlRWxlbWVudDJSZXBsYWNlbWVudCA9IHsKICAgICAgICAgICAgYjogJzxjb2RlPiZsdDtzdHJvbmcmZ3Q7PC9jb2RlPicsCiAgICAgICAgICAgIGk6ICc8Y29kZT4mbHQ7ZW0mZ3Q7PC9jb2RlPicsCiAgICAgICAgICAgIGZvbnQ6ICc8Y29kZT4mbHQ7c3BhbiZndDs8L2NvZGU+IHdpdGggYSBDU1MgY2xhc3MnLAogICAgICAgICAgICBub2JyOiAnYSBwcm9wZXIgc3Vic3RpdHV0ZSAoZGVwZW5kcyBvbiBjb250ZXh0KScKICAgICAgICB9OwoKICAgICAgICAvLyBjaGVjayBmb3IgaW5wdXRzIHdpdGggc2l6ZSBhdHRyaWJ1dGVzCiAgICAgICAgJCgnZm9udCwgbm9icicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsKICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgJ0JhZFByYWN0aWNlT2Jzb2xldGVFbGVtZW50JywKICAgICAgICAgICAgICAgICAgICAnT2Jzb2xldGUgZWxlbWVudCA8Y29kZT4mbHQ7JyArIHRoaXMudGFnTmFtZSArICcmZ3Q7PC9jb2RlPiB1c2VkJywKICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHJlcGxhY2UgaXQgd2l0aDogJyArIE9ic29sZXRlRWxlbWVudDJSZXBsYWNlbWVudFt0aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKV0gKyAnLicKICAgICAgICAgICAgKTsKICAgICAgICB9KTsKCiAgICAgICAgZnVuY3Rpb24gb2Jzb2xldGVDbGFzc0Vycm9yKENsYXNzTmFtZSkgewogICAgICAgICAgICAvLyBSZXR1cm4gYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgY2FsbGJhY2sgYnkgZWFjaCgpLgogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOwogICAgICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgICAgICAgICAnQmFkUHJhY3RpY2VPYnNvbGV0ZUNsYXNzJywKICAgICAgICAgICAgICAgICAgICAgICAgJ09ic29sZXRlIGNsYXNzIDxjb2RlPiInICsgQ2xhc3NOYW1lICsgJyI8L2NvZGU+IHVzZWQnLAogICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHJlbW92ZSBpdCBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgcHJvcGVyIHN1YnN0aXR1dGUuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIC8vIGNoZWNrIGZvciBpbnB1dHMgd2l0aCBzaXplIGF0dHJpYnV0ZXMKICAgICAgICAkKCcubWFpbmJvZHknKS5lYWNoKG9ic29sZXRlQ2xhc3NFcnJvcignbWFpbmJvZHknKSk7CiAgICAgICAgJCgnLmNvbnRlbnRrZXknKS5lYWNoKG9ic29sZXRlQ2xhc3NFcnJvcignY29udGVudGtleScpKTsKICAgICAgICAkKCcuY29udGVudHZhbHVlJykuZWFjaChvYnNvbGV0ZUNsYXNzRXJyb3IoJ2NvbnRlbnR2YWx1ZScpKTsKICAgICAgICAkKCcuc2VhcmNoYWN0aXZlJykuZWFjaChvYnNvbGV0ZUNsYXNzRXJyb3IoJ3NlYXJjaGFjdGl2ZScpKTsKICAgICAgICAkKCcuc2VhcmNocGFzc2l2ZScpLmVhY2gob2Jzb2xldGVDbGFzc0Vycm9yKCdzZWFyY2hwYXNzaXZlJykpOwoKICAgICAgICAvLyBjaGVjayBmb3IgZXZlbnRzCiAgICAgICAgJCgiZGl2IikuZWFjaChmdW5jdGlvbigpewoKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwKICAgICAgICAgICAgICAgICRDb250YWluZXIsCiAgICAgICAgICAgICAgICBDb2RlLAogICAgICAgICAgICAgICAgRXZlbnRzLAogICAgICAgICAgICAgICAgRXZlbnQ7CgogICAgICAgICAgICAvLyBEb24ndCBvdXRwdXQgdGhpcyBlcnJvciBmb3IgZnJlZCBpdHNlbGYuCiAgICAgICAgICAgIC8vIFdlIGFsc28gY3VycmVudGx5IG5lZWQgb25jbGljayBldmVudHMgaW4gdGhlIG1haW4gbWVudS4KICAgICAgICAgICAgaWYgKCAkdGhpcy5jbG9zZXN0KCcuRGV2ZWxGcmVkQ29udGFpbmVyLCAjTmF2aWdhdGlvbicpLmxlbmd0aCApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gR2V0IGVsZW1lbnQgSFRNTCBieSB3cmFwcGluZyBpdCBpbiBhIGRpdiBhbmQgY2FsbGluZyAuaHRtbCgpIG9uIHRoYXQKICAgICAgICAgICAgJENvbnRhaW5lciA9ICQoJzxkaXY+PC9kaXY+Jyk7CiAgICAgICAgICAgICRDb250YWluZXIuYXBwZW5kKCAkdGhpcy5jbG9uZSgpICk7CgogICAgICAgICAgICBDb2RlID0gJENvbnRhaW5lci5odG1sKCk7CgogICAgICAgICAgICAvLyBzZWFyY2ggZm9yIGV2ZW50cyBpbiBodG1sIGVsZW1lbnQgY29kZQogICAgICAgICAgICBFdmVudHMgPSBDb2RlLm1hdGNoKC9ccytvblx3Kz0vaWcpOwoKICAgICAgICAgICAgLy8gc2VuZCBlcnJvciB0byBvdXRwdXQKICAgICAgICAgICAgaWYgKEV2ZW50cyAhPT0gbnVsbCl7CiAgICAgICAgICAgICAgICAvLyBjbGVhbiBsZWFkaW5nIHNwYWNlIGFuZCBlcXVhbHMgc2lnbiBmcm9tIHRoZSBSZWdFeCBtYXRjaGluZwogICAgICAgICAgICAgICAgZm9yIChFdmVudCBpbiBFdmVudHMpewogICAgICAgICAgICAgICAgICAgIGlmIChFdmVudHMuaGFzT3duUHJvcGVydHkoRXZlbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50c1tFdmVudF0gPSBFdmVudHNbRXZlbnRdLnRvU3RyaW5nKCkubWF0Y2goL29uXHcrLyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgJ0JhZFByYWN0aWNlRXZlbnQnLAogICAgICAgICAgICAgICAgICAgICdFdmVudCA8Y29kZT4iJyArIEV2ZW50cyArICciPC9jb2RlPiB1c2VkJywKICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHJlbW92ZSBpdCBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgcHJvcGVyIHN1YnN0aXR1dGUuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgIH0KICAgIENoZWNrRnVuY3Rpb25zLnB1c2goQ2hlY2tCYWRQcmFjdGljZSk7CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBIVE1MQ2hlY2sgY2FuIGJlIHN0YXJ0ZWQgKGpRdWVyeSBpcyBsb2FkZWQpLgogICAgICogQHJldHVybiBub3RoaW5nLgogICAgICovCiAgICBUYXJnZXROUy5DaGVja0ZvclN0YXJ0ID0gZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChqUXVlcnkpIHsKICAgICAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgIENvcmUuRnJlZC5IVE1MQ2hlY2suUnVuKCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgQ29yZS5GcmVkLkhUTUxDaGVjay5DaGVja0ZvclN0YXJ0KCk7CiAgICAgICAgICAgIH0sIDI1MCk7CiAgICAgICAgfQogICAgfTsKCiAgICAvKioKICAgICAqIEBmdW5jdGlvbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFJ1bnMgYWxsIGF2YWlsYWJsZSBjaGVjayBmdW5jdGlvbnMKICAgICAqIEByZXR1cm4KICAgICAqICAgICAgbm90aGluZwogICAgICovCiAgICBUYXJnZXROUy5SdW4gPSBmdW5jdGlvbigpewogICAgICAgICQuZWFjaChDaGVja0Z1bmN0aW9ucywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgdGhpcygpOwogICAgICAgIH0pOwogICAgICAgICQoJyNGcmVkSFRNTENoZWNrUnVubmluZycpLnJlbW92ZSgpOwogICAgICAgIGlmICghRXJyb3JzRm91bmQpIHsKICAgICAgICAgICAgJCgnI0ZyZWRIVE1MQ2hlY2tSZXN1bHRzJykuaHRtbCgnPHAgY2xhc3M9IkNvbmZpcm1hdGlvbiI+QWxsIGNoZWNrcyBvay48L3A+Jyk7CiAgICAgICAgfQogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oQ29yZS5GcmVkLkhUTUxDaGVjayB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29yZS5GcmVkLkpTTGludC5qcyAtIEpTTGludCBpbnRlcmZhY2UKLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Ci8qZ2xvYmFsIEpTTElOVDogZmFsc2UsICQ6IGZhbHNlLCBqUXVlcnk6IGZhbHNlICovCgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuRnJlZCA9IENvcmUuRnJlZCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIGFsbCBsb2dpYyBmb3IgdGhlIEZyZWQgbW9kdWxlIEpTTGludAogKi8KQ29yZS5GcmVkLkpTTGludCA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBmdW5jdGlvbiBodG1sRXNjYXBlKHN0cikgewogICAgICAgIHJldHVybiBTdHJpbmcoc3RyKQogICAgICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKQogICAgICAgICAgICAucmVwbGFjZSgvIi9nLCAnJnF1b3Q7JykKICAgICAgICAgICAgLnJlcGxhY2UoLycvZywgJyYjMzk7JykKICAgICAgICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKQogICAgICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpOwogICAgfQoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcHJpdmF0ZQogICAgICogQHJldHVybiBub3RoaW5nCiAgICAgKiBAZGVzY3JpcHRpb24gU3RhcnQgSlNMaW50IGNoZWNrLgogICAgICovCiAgICBmdW5jdGlvbiBzdGFydEpTTGludCgpIHsKICAgICAgICB2YXIgUmVzdWx0LAogICAgICAgICAgICBFcnJvcnNGb3VuZCA9IGZhbHNlOwoKICAgICAgICAvLyBUaGlzIGZ1bmMgc2hvdWxkIG5vdCBiZSBzdGFydGVkIG1vcmUgdGhhbiBvbmUgdGltZS4uLgogICAgICAgIGlmIChUYXJnZXROUy5TdGFydGVkKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgVGFyZ2V0TlMuU3RhcnRlZCsrOwoKICAgICAgICAvLyBTdGFydCBKU0xpbnQgZm9yIGV2ZXJ5IHNjcmlwdCB3ZSBmb3VuZCBhbmQgb3V0cHV0IHRoZSByZXN1bHQKICAgICAgICAkLmVhY2goVGFyZ2V0TlMuQWxsU2NyaXB0cywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgRXJyb3JPYmplY3QsIE91dHB1dCwgaTsKCiAgICAgICAgICAgIC8vIElnbm9yZSBpbnZhbGlkIGNvZGUgdGhhdCBpcyBpbmplY3RlZCBieSB0aGUgZ29vZ2xlIGFuYWx5dGljcyBvcHQtb3V0IHBsdWdpbiBmb3IgYnJvd3NlcnMuCiAgICAgICAgICAgIGlmICggdGhpcy5TcmMgPT09ICdpbmxpbmUnICYmIHRoaXMuU2NyaXB0Lm1hdGNoKC9fZ2FVc2VyUHJlZnMvKSApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmVzdWx0ID0gSlNMSU5UKHRoaXMuU2NyaXB0LCAodGhpcy5TcmMgPT09ICdpbmxpbmUnKSA/IFRhcmdldE5TLklubGluZU9wdGlvbnMgOiBUYXJnZXROUy5SZW1vdGVPcHRpb25zKTsKICAgICAgICAgICAgaWYgKCFSZXN1bHQpIHsKICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBKU0xJTlQuZXJyb3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgRXJyb3JPYmplY3QgPSBKU0xJTlQuZXJyb3JzW2ldOwogICAgICAgICAgICAgICAgICAgIGlmIChFcnJvck9iamVjdCkgewogICAgICAgICAgICAgICAgICAgICAgICAkKCcjRnJlZEpTTGludFJ1bm5pbmcnKS5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0ID0gJzxkaXYgY2xhc3M9IkZyZWRKU0xpbnRFcnJvciI+JzsKICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0ICs9ICc8cD48c3BhbiBjbGFzcz0iRXJyb3IiPkVycm9yOiA8L3NwYW4+PHN0cm9uZz4nICsgRXJyb3JPYmplY3QucmVhc29uICsgJzwvc3Ryb25nPiBTb3VyY2U6ICAgICAnICsgdGhpcy5TcmMgKyAnOicgKyBFcnJvck9iamVjdC5saW5lICsgJzonICsgRXJyb3JPYmplY3QuY2hhcmFjdGVyICsgJzwvcD4nOwogICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQgKz0gJzxjb2RlPicgKyBodG1sRXNjYXBlKEVycm9yT2JqZWN0LmV2aWRlbmNlKSArICc8L2NvZGU+JzsKICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0ICs9ICc8L2Rpdj4nOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjRnJlZEpTTGludFNjcmlwdHMnKS5hcHBlbmQoT3V0cHV0KTsKICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JzRm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBhY3RpdmF0ZSBlbHNlIGJyYW5jaCB0byBzZWUgcG9zaXRpdmUgY2hlY2sgcmVzdWx0cyBwZXIgZmlsZSBmb3IgZnJlZCBkZWJ1Z2dpbmcKICAgICAgICAgICAgLy9lbHNlIHsKICAgICAgICAgICAgLy8gICAgJCgnI0ZyZWRKU0xpbnRSdW5uaW5nJykucmVtb3ZlKCk7CiAgICAgICAgICAgIC8vICAgICQoJyNGcmVkSlNMaW50U2NyaXB0cycpLmFwcGVuZCgnPHAgY2xhc3M9IkZyZWRKU0xpbnRTdWNjZXNzZnVsbCI+JyArIHRoaXMuU3JjICsgJyBvazwvcD4nKTsKICAgICAgICAgICAgLy99CiAgICAgICAgfSk7CiAgICAgICAgaWYgKCFFcnJvcnNGb3VuZCkgewogICAgICAgICAgICAkKCcjRnJlZEpTTGludFJ1bm5pbmcnKS5yZW1vdmUoKTsKICAgICAgICAgICAgJCgnI0ZyZWRKU0xpbnRTY3JpcHRzJykuYXBwZW5kKCc8cCBjbGFzcz0iRnJlZEpTTGludFN1Y2Nlc3NmdWxsIj5BbGwgY2hlY2tzIG9rLjwvcD4nKTsKICAgICAgICB9CgogICAgICAgIGlmIChUYXJnZXROUy5BbGxTY3JpcHRzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAkKCcjRnJlZEpTTGludFNjcmlwdHMnKS5hcHBlbmQoJzxwPk5vIHNjcmlwdHMgZm91bmQhPC9wPicpLmNzcygnaGVpZ2h0JywgJzE1cHgnKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBAZmllbGQKICAgICAqIEBkZXNjcmlwdGlvbiBBbGwgb3B0aW9ucyBmb3IgSlNMaW50LgogICAgICovCiAgICBUYXJnZXROUy5Db21tb25PcHRpb25zID0gewogICAgICAgIGJyb3dzZXI6IHRydWUsCiAgICAgICAgd2hpdGU6IHRydWUsCiAgICAgICAgaW5kZW50OiA0LAogICAgICAgIGRldmVsOiB0cnVlLAogICAgICAgIG9uZXZhcjogdHJ1ZSwKICAgICAgICB1bmRlZjogdHJ1ZSwKICAgICAgICBub21lbjogdHJ1ZSwKICAgICAgICBlcWVxZXE6IHRydWUsCiAgICAgICAgcGx1c3BsdXM6IGZhbHNlLAogICAgICAgIGJpdHdpc2U6IHRydWUsCiAgICAgICAgc3RyaWN0OiB0cnVlLAogICAgICAgIGltbWVkOiB0cnVlLAogICAgICAgIHByZWRlZjogWydDb3JlJywgJ2lzSlF1ZXJ5T2JqZWN0JywgJyQnLCAnalF1ZXJ5JywgJ0NLRURJVE9SJywgJ3dpbmRvdycsICdkb2N1bWVudCcsICdwcmludFN0YWNrVHJhY2UnXQogICAgfTsKICAgIFRhcmdldE5TLlJlbW90ZU9wdGlvbnMgPSAkLmV4dGVuZChUYXJnZXROUy5Db21tb25PcHRpb25zLCB7fSk7CiAgICBUYXJnZXROUy5JbmxpbmVPcHRpb25zID0gJC5leHRlbmQoVGFyZ2V0TlMuQ29tbW9uT3B0aW9ucywgewogICAgICAgIHdoaXRlOiBmYWxzZQogICAgfSk7CgogICAgVGFyZ2V0TlMuQWxsU2NyaXB0cyA9IFRhcmdldE5TLkFsbFNjcmlwdHMgfHwgW107CiAgICBUYXJnZXROUy5XYWl0aW5nID0gMDsKICAgIFRhcmdldE5TLlN0YXJ0ZWQgPSAwOwogICAgVGFyZ2V0TlMuU291cmNlcyA9IHt9OwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJuIG5vdGhpbmcuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBpcyB0aGUgaW5pdCBmdW5jdGlvbiBmb3IgSlNMaW50LgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewogICAgICAgIC8vIHRoaXMgbW9kdWxlIG5lZWRzIGpRdWVyeSEKICAgICAgICBpZiAodHlwZW9mIGpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcgfHwgIWpRdWVyeSkgewogICAgICAgICAgICB3aW5kb3cuYWxlcnQoJ0ZyZWQgSlNMaW50IG1vZHVsZSBuZWVkcyBqUXVlcnkgbG9hZGVkJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdGcmVkSlNMaW50U2NyaXB0cycpLnN0eWxlLmhlaWdodCA9ICcxNXB4JzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIENvcmUuRnJlZC5KU0xpbnQuR2V0U2NyaXB0cygpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9OwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJuIG5vdGhpbmcKICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgYWxsIHNjcmlwdHMgdG8gY2hlY2suCiAgICAgKi8KICAgIFRhcmdldE5TLkdldFNjcmlwdHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgU2NyaXB0cywgU291cmNlOwoKICAgICAgICAgICAgJCgnc2NyaXB0JykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAvLyBFeGNsdWRlIHRoZSBGcmVkIEphdmFTY3JpcHQgOy0pCiAgICAgICAgICAgICAgICBTY3JpcHRzID0gJCh0aGlzKS50ZXh0KCk7CgogICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaXMoJ1tzcmNdJykpIHsKICAgICAgICAgICAgICAgICAgICBTb3VyY2UgPSAkKHRoaXMpLmF0dHIoJ3NyYycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU291cmNlID0gJ2lubGluZSc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKFNvdXJjZSA9PT0gJ2lubGluZScpIHsKICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5BbGxTY3JpcHRzLnB1c2goe1NyYzogU291cmNlLCBTY3JpcHQ6IFNjcmlwdHN9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIElmIGV4dGVybmFsIHNvdXJjZSBpcyBub3QgYSB0aGlyZHBhcnR5IHNjcmlwdCwgbG9hZCBpdCEKICAgICAgICAgICAgICAgICAgICBpZiAoIVNvdXJjZS5tYXRjaCgvdGhpcmRwYXJ0eS8pICYmICFTb3VyY2UubWF0Y2goL2Nocm9tZTpcL1wvLykgJiYgIVRhcmdldE5TLlNvdXJjZXNbU291cmNlXSkgewogICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5XYWl0aW5nKys7CiAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldE5TLlNvdXJjZXNbU291cmNlXSA9IDE7CgogICAgICAgICAgICAgICAgICAgICAgICAkLmdldChTb3VyY2UsIHt9LCBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuQWxsU2NyaXB0cy5wdXNoKHtTcmM6IHRoaXMudXJsLCBTY3JpcHQ6IGRhdGF9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldE5TLldhaXRpbmctLTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ3RleHQnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gc3RhcnQganNsaW50LCBpZiBhbGwgYWpheCByZXF1ZXN0cyBhcmUgcmVhZHkKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBDb3JlLkZyZWQuSlNMaW50LkNoZWNrRm9yU3RhcnQoKTsKICAgICAgICAgICAgfSwgMjUwKTsKICAgICAgICB9KTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm4gbm90aGluZy4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrcywgaWYgSlNMaW50IGNhbiBiZSBzdGFydGVkIChhbGwgc2NyaXB0cyBhcmUgbG9hZGVkKS4KICAgICAqLwogICAgVGFyZ2V0TlMuQ2hlY2tGb3JTdGFydCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoVGFyZ2V0TlMuV2FpdGluZyA8PSAwICYmIFRhcmdldE5TLlN0YXJ0ZWQgPT09IDApIHsKICAgICAgICAgICAgc3RhcnRKU0xpbnQoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmIChUYXJnZXROUy5TdGFydGVkID09PSAwKSB7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBDb3JlLkZyZWQuSlNMaW50LkNoZWNrRm9yU3RhcnQoKTsKICAgICAgICAgICAgICAgIH0sIDI1MCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwogICAgcmV0dXJuIFRhcmdldE5TOwp9KENvcmUuRnJlZC5KU0xpbnQgfHwge30pKTsK
Ly8gKEMpMjAwMiBEb3VnbGFzIENyb2NrZm9yZAovLyB3d3cuSlNMaW50LmNvbQoidXNlIHN0cmljdCI7dmFyIEpTTElOVD0oZnVuY3Rpb24oKXt2YXIgYWRzYWZlX2lkLGFkc2FmZV9tYXksYWRzYWZlX3dlbnQsYW5vbm5hbWUsYXBwcm92ZWQsYXRydWxlPXttZWRpYTp0cnVlLCdmb250LWZhY2UnOnRydWUscGFnZTp0cnVlfSxiYW5nPXsnPCc6dHJ1ZSwnPD0nOnRydWUsJz09Jzp0cnVlLCc9PT0nOnRydWUsJyE9PSc6dHJ1ZSwnIT0nOnRydWUsJz4nOnRydWUsJz49Jzp0cnVlLCcrJzp0cnVlLCctJzp0cnVlLCcqJzp0cnVlLCcvJzp0cnVlLCclJzp0cnVlfSxiYW5uZWQ9eydhcmd1bWVudHMnOnRydWUsY2FsbGVlOnRydWUsY2FsbGVyOnRydWUsY29uc3RydWN0b3I6dHJ1ZSwnZXZhbCc6dHJ1ZSxwcm90b3R5cGU6dHJ1ZSx1bndhdGNoOnRydWUsdmFsdWVPZjp0cnVlLHdhdGNoOnRydWV9LGJvb2xPcHRpb25zPXthZHNhZmU6dHJ1ZSxiaXR3aXNlOnRydWUsYnJvd3Nlcjp0cnVlLGNhcDp0cnVlLGNzczp0cnVlLGRlYnVnOnRydWUsZGV2ZWw6dHJ1ZSxlcWVxZXE6dHJ1ZSxldmlsOnRydWUsZm9yaW46dHJ1ZSxmcmFnbWVudDp0cnVlLGltbWVkOnRydWUsbGF4YnJlYWs6dHJ1ZSxuZXdjYXA6dHJ1ZSxub21lbjp0cnVlLG9uOnRydWUsb25ldmFyOnRydWUscGFzc2ZhaWw6dHJ1ZSxwbHVzcGx1czp0cnVlLHJlZ2V4cDp0cnVlLHJoaW5vOnRydWUsdW5kZWY6dHJ1ZSxzYWZlOnRydWUsc2lkZWJhcjp0cnVlLHN0cmljdDp0cnVlLHN1Yjp0cnVlLHdoaXRlOnRydWUsd2lkZ2V0OnRydWV9LGJyb3dzZXI9e2FkZEV2ZW50TGlzdGVuZXI6ZmFsc2UsYmx1cjpmYWxzZSxjbGVhckludGVydmFsOmZhbHNlLGNsZWFyVGltZW91dDpmYWxzZSxjbG9zZTpmYWxzZSxjbG9zZWQ6ZmFsc2UsZGVmYXVsdFN0YXR1czpmYWxzZSxkb2N1bWVudDpmYWxzZSxldmVudDpmYWxzZSxmb2N1czpmYWxzZSxmcmFtZXM6ZmFsc2UsZ2V0Q29tcHV0ZWRTdHlsZTpmYWxzZSxoaXN0b3J5OmZhbHNlLEltYWdlOmZhbHNlLGxlbmd0aDpmYWxzZSxsb2NhdGlvbjpmYWxzZSxtb3ZlQnk6ZmFsc2UsbW92ZVRvOmZhbHNlLG5hbWU6ZmFsc2UsbmF2aWdhdG9yOmZhbHNlLG9uYmVmb3JldW5sb2FkOnRydWUsb25ibHVyOnRydWUsb25lcnJvcjp0cnVlLG9uZm9jdXM6dHJ1ZSxvbmxvYWQ6dHJ1ZSxvbnJlc2l6ZTp0cnVlLG9udW5sb2FkOnRydWUsb3BlbjpmYWxzZSxvcGVuZXI6ZmFsc2UsT3B0aW9uOmZhbHNlLHBhcmVudDpmYWxzZSxwcmludDpmYWxzZSxyZW1vdmVFdmVudExpc3RlbmVyOmZhbHNlLHJlc2l6ZUJ5OmZhbHNlLHJlc2l6ZVRvOmZhbHNlLHNjcmVlbjpmYWxzZSxzY3JvbGw6ZmFsc2Usc2Nyb2xsQnk6ZmFsc2Usc2Nyb2xsVG86ZmFsc2Usc2V0SW50ZXJ2YWw6ZmFsc2Usc2V0VGltZW91dDpmYWxzZSxzdGF0dXM6ZmFsc2UsdG9wOmZhbHNlLFhNTEh0dHBSZXF1ZXN0OmZhbHNlfSxjc3NBdHRyaWJ1dGVEYXRhLGNzc0FueSxjc3NDb2xvckRhdGE9eyJhbGljZWJsdWUiOnRydWUsImFudGlxdWV3aGl0ZSI6dHJ1ZSwiYXF1YSI6dHJ1ZSwiYXF1YW1hcmluZSI6dHJ1ZSwiYXp1cmUiOnRydWUsImJlaWdlIjp0cnVlLCJiaXNxdWUiOnRydWUsImJsYWNrIjp0cnVlLCJibGFuY2hlZGFsbW9uZCI6dHJ1ZSwiYmx1ZSI6dHJ1ZSwiYmx1ZXZpb2xldCI6dHJ1ZSwiYnJvd24iOnRydWUsImJ1cmx5d29vZCI6dHJ1ZSwiY2FkZXRibHVlIjp0cnVlLCJjaGFydHJldXNlIjp0cnVlLCJjaG9jb2xhdGUiOnRydWUsImNvcmFsIjp0cnVlLCJjb3JuZmxvd2VyYmx1ZSI6dHJ1ZSwiY29ybnNpbGsiOnRydWUsImNyaW1zb24iOnRydWUsImN5YW4iOnRydWUsImRhcmtibHVlIjp0cnVlLCJkYXJrY3lhbiI6dHJ1ZSwiZGFya2dvbGRlbnJvZCI6dHJ1ZSwiZGFya2dyYXkiOnRydWUsImRhcmtncmVlbiI6dHJ1ZSwiZGFya2toYWtpIjp0cnVlLCJkYXJrbWFnZW50YSI6dHJ1ZSwiZGFya29saXZlZ3JlZW4iOnRydWUsImRhcmtvcmFuZ2UiOnRydWUsImRhcmtvcmNoaWQiOnRydWUsImRhcmtyZWQiOnRydWUsImRhcmtzYWxtb24iOnRydWUsImRhcmtzZWFncmVlbiI6dHJ1ZSwiZGFya3NsYXRlYmx1ZSI6dHJ1ZSwiZGFya3NsYXRlZ3JheSI6dHJ1ZSwiZGFya3R1cnF1b2lzZSI6dHJ1ZSwiZGFya3Zpb2xldCI6dHJ1ZSwiZGVlcHBpbmsiOnRydWUsImRlZXBza3libHVlIjp0cnVlLCJkaW1ncmF5Ijp0cnVlLCJkb2RnZXJibHVlIjp0cnVlLCJmaXJlYnJpY2siOnRydWUsImZsb3JhbHdoaXRlIjp0cnVlLCJmb3Jlc3RncmVlbiI6dHJ1ZSwiZnVjaHNpYSI6dHJ1ZSwiZ2FpbnNib3JvIjp0cnVlLCJnaG9zdHdoaXRlIjp0cnVlLCJnb2xkIjp0cnVlLCJnb2xkZW5yb2QiOnRydWUsImdyYXkiOnRydWUsImdyZWVuIjp0cnVlLCJncmVlbnllbGxvdyI6dHJ1ZSwiaG9uZXlkZXciOnRydWUsImhvdHBpbmsiOnRydWUsImluZGlhbnJlZCI6dHJ1ZSwiaW5kaWdvIjp0cnVlLCJpdm9yeSI6dHJ1ZSwia2hha2kiOnRydWUsImxhdmVuZGVyIjp0cnVlLCJsYXZlbmRlcmJsdXNoIjp0cnVlLCJsYXduZ3JlZW4iOnRydWUsImxlbW9uY2hpZmZvbiI6dHJ1ZSwibGlnaHRibHVlIjp0cnVlLCJsaWdodGNvcmFsIjp0cnVlLCJsaWdodGN5YW4iOnRydWUsImxpZ2h0Z29sZGVucm9keWVsbG93Ijp0cnVlLCJsaWdodGdyZWVuIjp0cnVlLCJsaWdodHBpbmsiOnRydWUsImxpZ2h0c2FsbW9uIjp0cnVlLCJsaWdodHNlYWdyZWVuIjp0cnVlLCJsaWdodHNreWJsdWUiOnRydWUsImxpZ2h0c2xhdGVncmF5Ijp0cnVlLCJsaWdodHN0ZWVsYmx1ZSI6dHJ1ZSwibGlnaHR5ZWxsb3ciOnRydWUsImxpbWUiOnRydWUsImxpbWVncmVlbiI6dHJ1ZSwibGluZW4iOnRydWUsIm1hZ2VudGEiOnRydWUsIm1hcm9vbiI6dHJ1ZSwibWVkaXVtYXF1YW1hcmluZSI6dHJ1ZSwibWVkaXVtYmx1ZSI6dHJ1ZSwibWVkaXVtb3JjaGlkIjp0cnVlLCJtZWRpdW1wdXJwbGUiOnRydWUsIm1lZGl1bXNlYWdyZWVuIjp0cnVlLCJtZWRpdW1zbGF0ZWJsdWUiOnRydWUsIm1lZGl1bXNwcmluZ2dyZWVuIjp0cnVlLCJtZWRpdW10dXJxdW9pc2UiOnRydWUsIm1lZGl1bXZpb2xldHJlZCI6dHJ1ZSwibWlkbmlnaHRibHVlIjp0cnVlLCJtaW50Y3JlYW0iOnRydWUsIm1pc3R5cm9zZSI6dHJ1ZSwibW9jY2FzaW4iOnRydWUsIm5hdmFqb3doaXRlIjp0cnVlLCJuYXZ5Ijp0cnVlLCJvbGRsYWNlIjp0cnVlLCJvbGl2ZSI6dHJ1ZSwib2xpdmVkcmFiIjp0cnVlLCJvcmFuZ2UiOnRydWUsIm9yYW5nZXJlZCI6dHJ1ZSwib3JjaGlkIjp0cnVlLCJwYWxlZ29sZGVucm9kIjp0cnVlLCJwYWxlZ3JlZW4iOnRydWUsInBhbGV0dXJxdW9pc2UiOnRydWUsInBhbGV2aW9sZXRyZWQiOnRydWUsInBhcGF5YXdoaXAiOnRydWUsInBlYWNocHVmZiI6dHJ1ZSwicGVydSI6dHJ1ZSwicGluayI6dHJ1ZSwicGx1bSI6dHJ1ZSwicG93ZGVyYmx1ZSI6dHJ1ZSwicHVycGxlIjp0cnVlLCJyZWQiOnRydWUsInJvc3licm93biI6dHJ1ZSwicm95YWxibHVlIjp0cnVlLCJzYWRkbGVicm93biI6dHJ1ZSwic2FsbW9uIjp0cnVlLCJzYW5keWJyb3duIjp0cnVlLCJzZWFncmVlbiI6dHJ1ZSwic2Vhc2hlbGwiOnRydWUsInNpZW5uYSI6dHJ1ZSwic2lsdmVyIjp0cnVlLCJza3libHVlIjp0cnVlLCJzbGF0ZWJsdWUiOnRydWUsInNsYXRlZ3JheSI6dHJ1ZSwic25vdyI6dHJ1ZSwic3ByaW5nZ3JlZW4iOnRydWUsInN0ZWVsYmx1ZSI6dHJ1ZSwidGFuIjp0cnVlLCJ0ZWFsIjp0cnVlLCJ0aGlzdGxlIjp0cnVlLCJ0b21hdG8iOnRydWUsInR1cnF1b2lzZSI6dHJ1ZSwidmlvbGV0Ijp0cnVlLCJ3aGVhdCI6dHJ1ZSwid2hpdGUiOnRydWUsIndoaXRlc21va2UiOnRydWUsInllbGxvdyI6dHJ1ZSwieWVsbG93Z3JlZW4iOnRydWV9LGNzc0JvcmRlclN0eWxlLGNzc0JyZWFrLGNzc0xlbmd0aERhdGE9eyclJzp0cnVlLCdjbSc6dHJ1ZSwnZW0nOnRydWUsJ2V4Jzp0cnVlLCdpbic6dHJ1ZSwnbW0nOnRydWUsJ3BjJzp0cnVlLCdwdCc6dHJ1ZSwncHgnOnRydWV9LGNzc092ZXJmbG93LGRldmVsPXthbGVydDpmYWxzZSxjb25maXJtOmZhbHNlLGNvbnNvbGU6ZmFsc2UsRGVidWc6ZmFsc2Usb3BlcmE6ZmFsc2UscHJvbXB0OmZhbHNlfSxlc2NhcGVzPXsnXGInOidcXGInLCdcdCc6J1xcdCcsJ1xuJzonXFxuJywnXGYnOidcXGYnLCdccic6J1xccicsJyInOidcXCInLCcvJzonXFwvJywnXFwnOidcXFxcJ30sZnVuY3QsZnVuY3Rpb25pY2l0eT1bJ2Nsb3N1cmUnLCdleGNlcHRpb24nLCdnbG9iYWwnLCdsYWJlbCcsJ291dGVyJywndW51c2VkJywndmFyJ10sZnVuY3Rpb25zLGdsb2JhbCxodG1sdGFnPXthOnt9LGFiYnI6e30sYWNyb255bTp7fSxhZGRyZXNzOnt9LGFwcGxldDp7fSxhcmVhOntlbXB0eTp0cnVlLHBhcmVudDonIG1hcCAnfSxiOnt9LGJhc2U6e2VtcHR5OnRydWUscGFyZW50OicgaGVhZCAnfSxiZG86e30sYmlnOnt9LGJsb2NrcXVvdGU6e30sYm9keTp7cGFyZW50OicgaHRtbCBub2ZyYW1lcyAnfSxicjp7ZW1wdHk6dHJ1ZX0sYnV0dG9uOnt9LGNhbnZhczp7cGFyZW50OicgYm9keSBwIGRpdiB0aCB0ZCAnfSxjYXB0aW9uOntwYXJlbnQ6JyB0YWJsZSAnfSxjZW50ZXI6e30sY2l0ZTp7fSxjb2RlOnt9LGNvbDp7ZW1wdHk6dHJ1ZSxwYXJlbnQ6JyB0YWJsZSBjb2xncm91cCAnfSxjb2xncm91cDp7cGFyZW50OicgdGFibGUgJ30sZGQ6e3BhcmVudDonIGRsICd9LGRlbDp7fSxkZm46e30sZGlyOnt9LGRpdjp7fSxkbDp7fSxkdDp7cGFyZW50OicgZGwgJ30sZW06e30sZW1iZWQ6e30sZmllbGRzZXQ6e30sZm9udDp7fSxmb3JtOnt9LGZyYW1lOntlbXB0eTp0cnVlLHBhcmVudDonIGZyYW1lc2V0ICd9LGZyYW1lc2V0OntwYXJlbnQ6JyBodG1sIGZyYW1lc2V0ICd9LGgxOnt9LGgyOnt9LGgzOnt9LGg0Ont9LGg1Ont9LGg2Ont9LGhlYWQ6e3BhcmVudDonIGh0bWwgJ30saHRtbDp7cGFyZW50OicqJ30saHI6e2VtcHR5OnRydWV9LGk6e30saWZyYW1lOnt9LGltZzp7ZW1wdHk6dHJ1ZX0saW5wdXQ6e2VtcHR5OnRydWV9LGluczp7fSxrYmQ6e30sbGFiZWw6e30sbGVnZW5kOntwYXJlbnQ6JyBmaWVsZHNldCAnfSxsaTp7cGFyZW50OicgZGlyIG1lbnUgb2wgdWwgJ30sbGluazp7ZW1wdHk6dHJ1ZSxwYXJlbnQ6JyBoZWFkICd9LG1hcDp7fSxtZW51Ont9LG1ldGE6e2VtcHR5OnRydWUscGFyZW50OicgaGVhZCBub2ZyYW1lcyBub3NjcmlwdCAnfSxub2ZyYW1lczp7cGFyZW50OicgaHRtbCBib2R5ICd9LG5vc2NyaXB0OntwYXJlbnQ6JyBib2R5IGhlYWQgbm9mcmFtZXMgJ30sb2JqZWN0Ont9LG9sOnt9LG9wdGdyb3VwOntwYXJlbnQ6JyBzZWxlY3QgJ30sb3B0aW9uOntwYXJlbnQ6JyBvcHRncm91cCBzZWxlY3QgJ30scDp7fSxwYXJhbTp7ZW1wdHk6dHJ1ZSxwYXJlbnQ6JyBhcHBsZXQgb2JqZWN0ICd9LHByZTp7fSxxOnt9LHNhbXA6e30sc2NyaXB0OntlbXB0eTp0cnVlLHBhcmVudDonIGJvZHkgZGl2IGZyYW1lIGhlYWQgaWZyYW1lIHAgcHJlIHNwYW4gJ30sc2VsZWN0Ont9LHNtYWxsOnt9LHNwYW46e30sc3Ryb25nOnt9LHN0eWxlOntwYXJlbnQ6JyBoZWFkICcsZW1wdHk6dHJ1ZX0sc3ViOnt9LHN1cDp7fSx0YWJsZTp7fSx0Ym9keTp7cGFyZW50OicgdGFibGUgJ30sdGQ6e3BhcmVudDonIHRyICd9LHRleHRhcmVhOnt9LHRmb290OntwYXJlbnQ6JyB0YWJsZSAnfSx0aDp7cGFyZW50OicgdHIgJ30sdGhlYWQ6e3BhcmVudDonIHRhYmxlICd9LHRpdGxlOntwYXJlbnQ6JyBoZWFkICd9LHRyOntwYXJlbnQ6JyB0YWJsZSB0Ym9keSB0aGVhZCB0Zm9vdCAnfSx0dDp7fSx1Ont9LHVsOnt9LCd2YXInOnt9fSxpZHMsaW1wbGllZCxpbmJsb2NrLGluZGVudCxqc29ubW9kZSxsaW5lcyxsb29rYWhlYWQsbWVtYmVyLG1lbWJlcnNPbmx5LG5leHR0b2tlbixub3JlYWNoLG9wdGlvbixwcmVkZWZpbmVkLHByZXJlZyxwcmV2dG9rZW4scmhpbm89e2RlZmluZUNsYXNzOmZhbHNlLGRlc2VyaWFsaXplOmZhbHNlLGdjOmZhbHNlLGhlbHA6ZmFsc2UsbG9hZDpmYWxzZSxsb2FkQ2xhc3M6ZmFsc2UscHJpbnQ6ZmFsc2UscXVpdDpmYWxzZSxyZWFkRmlsZTpmYWxzZSxyZWFkVXJsOmZhbHNlLHJ1bkNvbW1hbmQ6ZmFsc2Usc2VhbDpmYWxzZSxzZXJpYWxpemU6ZmFsc2Usc3Bhd246ZmFsc2Usc3luYzpmYWxzZSx0b2ludDMyOmZhbHNlLHZlcnNpb246ZmFsc2V9LHNjb3BlLHNpZGViYXI9e1N5c3RlbTpmYWxzZX0sc3JjLHN0YWNrLHN0YW5kYXJkPXtBcnJheTpmYWxzZSxCb29sZWFuOmZhbHNlLERhdGU6ZmFsc2UsZGVjb2RlVVJJOmZhbHNlLGRlY29kZVVSSUNvbXBvbmVudDpmYWxzZSxlbmNvZGVVUkk6ZmFsc2UsZW5jb2RlVVJJQ29tcG9uZW50OmZhbHNlLEVycm9yOmZhbHNlLCdldmFsJzpmYWxzZSxFdmFsRXJyb3I6ZmFsc2UsRnVuY3Rpb246ZmFsc2UsaGFzT3duUHJvcGVydHk6ZmFsc2UsaXNGaW5pdGU6ZmFsc2UsaXNOYU46ZmFsc2UsSlNPTjpmYWxzZSxNYXRoOmZhbHNlLE51bWJlcjpmYWxzZSxPYmplY3Q6ZmFsc2UscGFyc2VJbnQ6ZmFsc2UscGFyc2VGbG9hdDpmYWxzZSxSYW5nZUVycm9yOmZhbHNlLFJlZmVyZW5jZUVycm9yOmZhbHNlLFJlZ0V4cDpmYWxzZSxTdHJpbmc6ZmFsc2UsU3ludGF4RXJyb3I6ZmFsc2UsVHlwZUVycm9yOmZhbHNlLFVSSUVycm9yOmZhbHNlfSxzdGFuZGFyZF9tZW1iZXI9e0U6dHJ1ZSxMTjI6dHJ1ZSxMTjEwOnRydWUsTE9HMkU6dHJ1ZSxMT0cxMEU6dHJ1ZSxQSTp0cnVlLFNRUlQxXzI6dHJ1ZSxTUVJUMjp0cnVlLE1BWF9WQUxVRTp0cnVlLE1JTl9WQUxVRTp0cnVlLE5FR0FUSVZFX0lORklOSVRZOnRydWUsUE9TSVRJVkVfSU5GSU5JVFk6dHJ1ZX0sc3RyaWN0X21vZGUsc3ludGF4PXt9LHRhYix0b2tlbix1cmxzLHdhcm5pbmdzLHdpZGdldD17YWxlcnQ6dHJ1ZSxhbmltYXRvcjp0cnVlLGFwcGxlU2NyaXB0OnRydWUsYmVlcDp0cnVlLGJ5dGVzVG9VSVN0cmluZzp0cnVlLENhbnZhczp0cnVlLGNob29zZUNvbG9yOnRydWUsY2hvb3NlRmlsZTp0cnVlLGNob29zZUZvbGRlcjp0cnVlLGNsb3NlV2lkZ2V0OnRydWUsQ09NOnRydWUsY29udmVydFBhdGhUb0hGUzp0cnVlLGNvbnZlcnRQYXRoVG9QbGF0Zm9ybTp0cnVlLEN1c3RvbUFuaW1hdGlvbjp0cnVlLGVzY2FwZTp0cnVlLEZhZGVBbmltYXRpb246dHJ1ZSxmaWxlc3lzdGVtOnRydWUsRmxhc2g6dHJ1ZSxmb2N1c1dpZGdldDp0cnVlLGZvcm06dHJ1ZSxGb3JtRmllbGQ6dHJ1ZSxGcmFtZTp0cnVlLEhvdEtleTp0cnVlLEltYWdlOnRydWUsaW5jbHVkZTp0cnVlLGlzQXBwbGljYXRpb25SdW5uaW5nOnRydWUsaVR1bmVzOnRydWUsa29uZmFidWxhdG9yVmVyc2lvbjp0cnVlLGxvZzp0cnVlLG1kNTp0cnVlLE1lbnVJdGVtOnRydWUsTW92ZUFuaW1hdGlvbjp0cnVlLG9wZW5VUkw6dHJ1ZSxwbGF5OnRydWUsUG9pbnQ6dHJ1ZSxwb3B1cE1lbnU6dHJ1ZSxwcmVmZXJlbmNlR3JvdXBzOnRydWUscHJlZmVyZW5jZXM6dHJ1ZSxwcmludDp0cnVlLHByb21wdDp0cnVlLHJhbmRvbTp0cnVlLFJlY3RhbmdsZTp0cnVlLHJlbG9hZFdpZGdldDp0cnVlLFJlc2l6ZUFuaW1hdGlvbjp0cnVlLHJlc29sdmVQYXRoOnRydWUscmVzdW1lVXBkYXRlczp0cnVlLFJvdGF0ZUFuaW1hdGlvbjp0cnVlLHJ1bkNvbW1hbmQ6dHJ1ZSxydW5Db21tYW5kSW5CZzp0cnVlLHNhdmVBczp0cnVlLHNhdmVQcmVmZXJlbmNlczp0cnVlLHNjcmVlbjp0cnVlLFNjcm9sbEJhcjp0cnVlLHNob3dXaWRnZXRQcmVmZXJlbmNlczp0cnVlLHNsZWVwOnRydWUsc3BlYWs6dHJ1ZSxTdHlsZTp0cnVlLHN1cHByZXNzVXBkYXRlczp0cnVlLHN5c3RlbTp0cnVlLHRlbGxXaWRnZXQ6dHJ1ZSxUZXh0OnRydWUsVGV4dEFyZWE6dHJ1ZSxUaW1lcjp0cnVlLHVuZXNjYXBlOnRydWUsdXBkYXRlTm93OnRydWUsVVJMOnRydWUsV2ViOnRydWUsd2lkZ2V0OnRydWUsV2luZG93OnRydWUsWE1MRE9NOnRydWUsWE1MSHR0cFJlcXVlc3Q6dHJ1ZSx5YWhvb0NoZWNrTG9naW46dHJ1ZSx5YWhvb0xvZ2luOnRydWUseWFob29Mb2dvdXQ6dHJ1ZX0seG1vZGUseHF1b3RlLGF4PS9AY2N8PFwvP3xzY3JpcHR8XF0qc1xdfDxccyohfCZsdC9pLGN4PS9bXHUwMDAwLVx1MDAxZlx1MDA3Zi1cdTAwOWZcdTAwYWRcdTA2MDAtXHUwNjA0XHUwNzBmXHUxN2I0XHUxN2I1XHUyMDBjLVx1MjAwZlx1MjAyOC1cdTIwMmZcdTIwNjAtXHUyMDZmXHVmZWZmXHVmZmYwLVx1ZmZmZl0vLHR4PS9eXHMqKFsoKXt9XFsuLDo7JyJ+XD9cXSNAXXw9PT89P3xcLyhcKihqc2xpbnR8bWVtYmVycz98Z2xvYmFsKT98PXxcLyk/fFwqW1wvPV0/fFwrWys9XT98LVtcLT1dP3wlPT98JlsmPV0/fFx8W3w9XT98Pj4/Pj89P3w8KFtcLz0hXXxcIShcW3wtLSk/fDw9Pyk/fFxePT98XCE9Pz0/fFthLXpBLVpfJF1bYS16QS1aMC05XyRdKnxbMC05XSsoW3hYXVswLTlhLWZBLUZdK3xcLlswLTldKik/KFtlRV1bK1wtXT9bMC05XSspPykvLGh4PS9eXHMqKFsnIj0+XC8mI118PCg/OlwvfFwhKD86LS0pPyk/fFthLXpBLVpdW2EtekEtWjAtOV9cLV0qfFswLTldK3wtLSkvLG54PS9bXHUwMDAwLVx1MDAxZiY8IlwvXFxcdTAwN2YtXHUwMDlmXHUwMGFkXHUwNjAwLVx1MDYwNFx1MDcwZlx1MTdiNFx1MTdiNVx1MjAwYy1cdTIwMGZcdTIwMjgtXHUyMDJmXHUyMDYwLVx1MjA2Zlx1ZmVmZlx1ZmZmMC1cdWZmZmZdLyxueGc9L1tcdTAwMDAtXHUwMDFmJjwiXC9cXFx1MDA3Zi1cdTAwOWZcdTAwYWRcdTA2MDAtXHUwNjA0XHUwNzBmXHUxN2I0XHUxN2I1XHUyMDBjLVx1MjAwZlx1MjAyOC1cdTIwMmZcdTIwNjAtXHUyMDZmXHVmZWZmXHVmZmYwLVx1ZmZmZl0vZyxveD0vWz4mXXw8W1wvIV0/fC0tLyxseD0vXCpcL3xcL1wqLyxpeD0vXihbYS16QS1aXyRdW2EtekEtWjAtOV8kXSopJC8sang9L14oPzpqYXZhc2NyaXB0fGpzY3JpcHR8ZWNtYXNjcmlwdHx2YnNjcmlwdHxtb2NoYXxsaXZlc2NyaXB0KVxzKjovaSx1eD0vJnxcK3xcdTAwQUR8XC5cLnxcL1wqfCVbXjtdfGJhc2U2NHx1cmx8ZXhwcmVzc2lvbnxkYXRhfG1haWx0by9pLHN4PS9eXHMqKFt7OiMlLj0sPitcW1xdQCgpIic7XXxcKj0/fFwkPXxcfD18XF49fH49fFthLXpBLVpfXVthLXpBLVowLTlfXC1dKnxbMC05XSt8PFwvfFwvXCopLyxzc3g9L15ccyooW0AjISInfTs6XC0lLj0sK1xbXF0oKSpfXXxbYS16QS1aXVthLXpBLVowLTkuX1wtXSp8XC9cKj98XGQrKD86XC5cZCspP3w8XC8pLyxxeD0vW15hLXpBLVowLTktX1wvIF0vLGR4PS9bXFtcXVwvXFwiJyo8Pi4mOigpe30rPSNdLyxyeD17b3V0ZXI6aHgsaHRtbDpoeCxzdHlsZTpzeCxzdHlsZXByb3BlcnR5OnNzeH07ZnVuY3Rpb24gRigpe30KaWYodHlwZW9mIE9iamVjdC5jcmVhdGUhPT0nZnVuY3Rpb24nKXtPYmplY3QuY3JlYXRlPWZ1bmN0aW9uKG8pe0YucHJvdG90eXBlPW87cmV0dXJuIG5ldyBGKCk7fTt9CmZ1bmN0aW9uIGlzX293bihvYmplY3QsbmFtZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsbmFtZSk7fQpmdW5jdGlvbiBjb21iaW5lKHQsbyl7dmFyIG47Zm9yKG4gaW4gbyl7aWYoaXNfb3duKG8sbikpe3Rbbl09b1tuXTt9fX0KU3RyaW5nLnByb3RvdHlwZS5lbnRpdHlpZnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC8mL2csJyZhbXA7JykucmVwbGFjZSgvPC9nLCcmbHQ7JykucmVwbGFjZSgvPi9nLCcmZ3Q7Jyk7fTtTdHJpbmcucHJvdG90eXBlLmlzQWxwaGE9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcz49J2EnJiZ0aGlzPD0nelx1ZmZmZicpfHwodGhpcz49J0EnJiZ0aGlzPD0nWlx1ZmZmZicpO307U3RyaW5nLnByb3RvdHlwZS5pc0RpZ2l0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXM+PScwJyYmdGhpczw9JzknKTt9O1N0cmluZy5wcm90b3R5cGUuc3VwcGxhbnQ9ZnVuY3Rpb24obyl7cmV0dXJuIHRoaXMucmVwbGFjZSgvXHsoW157fV0qKVx9L2csZnVuY3Rpb24oYSxiKXt2YXIgcj1vW2JdO3JldHVybiB0eXBlb2Ygcj09PSdzdHJpbmcnfHx0eXBlb2Ygcj09PSdudW1iZXInP3I6YTt9KTt9O1N0cmluZy5wcm90b3R5cGUubmFtZT1mdW5jdGlvbigpe2lmKGl4LnRlc3QodGhpcykpe3JldHVybiB0aGlzO30KaWYobngudGVzdCh0aGlzKSl7cmV0dXJuJyInK3RoaXMucmVwbGFjZShueGcsZnVuY3Rpb24oYSl7dmFyIGM9ZXNjYXBlc1thXTtpZihjKXtyZXR1cm4gYzt9CnJldHVybidcXHUnKygnMDAwMCcrYS5jaGFyQ29kZUF0KCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCk7fSkrJyInO30KcmV0dXJuJyInK3RoaXMrJyInO307ZnVuY3Rpb24gYXNzdW1lKCl7aWYoIW9wdGlvbi5zYWZlKXtpZihvcHRpb24ucmhpbm8pe2NvbWJpbmUocHJlZGVmaW5lZCxyaGlubyk7fQppZihvcHRpb24uZGV2ZWwpe2NvbWJpbmUocHJlZGVmaW5lZCxkZXZlbCk7fQppZihvcHRpb24uYnJvd3Nlcnx8b3B0aW9uLnNpZGViYXIpe2NvbWJpbmUocHJlZGVmaW5lZCxicm93c2VyKTt9CmlmKG9wdGlvbi5zaWRlYmFyKXtjb21iaW5lKHByZWRlZmluZWQsc2lkZWJhcik7fQppZihvcHRpb24ud2lkZ2V0KXtjb21iaW5lKHByZWRlZmluZWQsd2lkZ2V0KTt9fX0KZnVuY3Rpb24gcXVpdChtLGwsY2gpe3Rocm93e25hbWU6J0pTTGludEVycm9yJyxsaW5lOmwsY2hhcmFjdGVyOmNoLG1lc3NhZ2U6bSsiICgiK01hdGguZmxvb3IoKGwvbGluZXMubGVuZ3RoKSoxMDApKyIlIHNjYW5uZWQpLiJ9O30KZnVuY3Rpb24gd2FybmluZyhtLHQsYSxiLGMsZCl7dmFyIGNoLGwsdzt0PXR8fG5leHR0b2tlbjtpZih0LmlkPT09JyhlbmQpJyl7dD10b2tlbjt9Cmw9dC5saW5lfHwwO2NoPXQuZnJvbXx8MDt3PXtpZDonKGVycm9yKScscmF3Om0sZXZpZGVuY2U6bGluZXNbbC0xXXx8JycsbGluZTpsLGNoYXJhY3RlcjpjaCxhOmEsYjpiLGM6YyxkOmR9O3cucmVhc29uPW0uc3VwcGxhbnQodyk7SlNMSU5ULmVycm9ycy5wdXNoKHcpO2lmKG9wdGlvbi5wYXNzZmFpbCl7cXVpdCgnU3RvcHBpbmcuICcsbCxjaCk7fQp3YXJuaW5ncys9MTtpZih3YXJuaW5ncz49b3B0aW9uLm1heGVycil7cXVpdCgiVG9vIG1hbnkgZXJyb3JzLiIsbCxjaCk7fQpyZXR1cm4gdzt9CmZ1bmN0aW9uIHdhcm5pbmdBdChtLGwsY2gsYSxiLGMsZCl7cmV0dXJuIHdhcm5pbmcobSx7bGluZTpsLGZyb206Y2h9LGEsYixjLGQpO30KZnVuY3Rpb24gZXJyb3IobSx0LGEsYixjLGQpe3ZhciB3PXdhcm5pbmcobSx0LGEsYixjLGQpO3F1aXQoIlN0b3BwaW5nLCB1bmFibGUgdG8gY29udGludWUuIix3LmxpbmUsdy5jaGFyYWN0ZXIpO30KZnVuY3Rpb24gZXJyb3JBdChtLGwsY2gsYSxiLGMsZCl7cmV0dXJuIGVycm9yKG0se2xpbmU6bCxmcm9tOmNofSxhLGIsYyxkKTt9CnZhciBsZXg9KGZ1bmN0aW9uIGxleCgpe3ZhciBjaGFyYWN0ZXIsZnJvbSxsaW5lLHM7ZnVuY3Rpb24gbmV4dExpbmUoKXt2YXIgYXQ7aWYobGluZT49bGluZXMubGVuZ3RoKXtyZXR1cm4gZmFsc2U7fQpjaGFyYWN0ZXI9MTtzPWxpbmVzW2xpbmVdO2xpbmUrPTE7YXQ9cy5zZWFyY2goLyBcdC8pO2lmKGF0Pj0wKXt3YXJuaW5nQXQoIk1peGVkIHNwYWNlcyBhbmQgdGFicy4iLGxpbmUsYXQrMSk7fQpzPXMucmVwbGFjZSgvXHQvZyx0YWIpO2F0PXMuc2VhcmNoKGN4KTtpZihhdD49MCl7d2FybmluZ0F0KCJVbnNhZmUgY2hhcmFjdGVyLiIsbGluZSxhdCk7fQppZihvcHRpb24ubWF4bGVuJiZvcHRpb24ubWF4bGVuPHMubGVuZ3RoKXt3YXJuaW5nQXQoIkxpbmUgdG9vIGxvbmcuIixsaW5lLHMubGVuZ3RoKTt9CnJldHVybiB0cnVlO30KZnVuY3Rpb24gaXQodHlwZSx2YWx1ZSl7dmFyIGksdDtpZih0eXBlPT09Jyhjb2xvciknKXt0PXt0eXBlOnR5cGV9O31lbHNlIGlmKHR5cGU9PT0nKHB1bmN0dWF0b3IpJ3x8KHR5cGU9PT0nKGlkZW50aWZpZXIpJyYmaXNfb3duKHN5bnRheCx2YWx1ZSkpKXt0PXN5bnRheFt2YWx1ZV18fHN5bnRheFsnKGVycm9yKSddO31lbHNle3Q9c3ludGF4W3R5cGVdO30KdD1PYmplY3QuY3JlYXRlKHQpO2lmKHR5cGU9PT0nKHN0cmluZyknfHx0eXBlPT09JyhyYW5nZSknKXtpZihqeC50ZXN0KHZhbHVlKSl7d2FybmluZ0F0KCJTY3JpcHQgVVJMLiIsbGluZSxmcm9tKTt9fQppZih0eXBlPT09JyhpZGVudGlmaWVyKScpe3QuaWRlbnRpZmllcj10cnVlO2lmKHZhbHVlPT09J19faXRlcmF0b3JfXyd8fHZhbHVlPT09J19fcHJvdG9fXycpe2Vycm9yQXQoIlJlc2VydmVkIG5hbWUgJ3thfScuIixsaW5lLGZyb20sdmFsdWUpO31lbHNlIGlmKG9wdGlvbi5ub21lbiYmKHZhbHVlLmNoYXJBdCgwKT09PSdfJ3x8dmFsdWUuY2hhckF0KHZhbHVlLmxlbmd0aC0xKT09PSdfJykpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCB7YX0gaW4gJ3tifScuIixsaW5lLGZyb20sImRhbmdsaW5nICdfJyIsdmFsdWUpO319CnQudmFsdWU9dmFsdWU7dC5saW5lPWxpbmU7dC5jaGFyYWN0ZXI9Y2hhcmFjdGVyO3QuZnJvbT1mcm9tO2k9dC5pZDtpZihpIT09JyhlbmRsaW5lKScpe3ByZXJlZz1pJiYoKCcoLD06WyEmfD97fTsnLmluZGV4T2YoaS5jaGFyQXQoaS5sZW5ndGgtMSkpPj0wKXx8aT09PSdyZXR1cm4nKTt9CnJldHVybiB0O30KcmV0dXJue2luaXQ6ZnVuY3Rpb24oc291cmNlKXtpZih0eXBlb2Ygc291cmNlPT09J3N0cmluZycpe2xpbmVzPXNvdXJjZS5yZXBsYWNlKC9cclxuL2csJ1xuJykucmVwbGFjZSgvXHIvZywnXG4nKS5zcGxpdCgnXG4nKTt9ZWxzZXtsaW5lcz1zb3VyY2U7fQpsaW5lPTA7bmV4dExpbmUoKTtmcm9tPTE7fSxyYW5nZTpmdW5jdGlvbihiZWdpbixlbmQpe3ZhciBjLHZhbHVlPScnO2Zyb209Y2hhcmFjdGVyO2lmKHMuY2hhckF0KDApIT09YmVnaW4pe2Vycm9yQXQoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLGxpbmUsY2hhcmFjdGVyLGJlZ2luLHMuY2hhckF0KDApKTt9CmZvcig7Oyl7cz1zLnNsaWNlKDEpO2NoYXJhY3Rlcis9MTtjPXMuY2hhckF0KDApO3N3aXRjaChjKXtjYXNlJyc6ZXJyb3JBdCgiTWlzc2luZyAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLGMpO2JyZWFrO2Nhc2UgZW5kOnM9cy5zbGljZSgxKTtjaGFyYWN0ZXIrPTE7cmV0dXJuIGl0KCcocmFuZ2UpJyx2YWx1ZSk7Y2FzZSB4cXVvdGU6Y2FzZSdcXCc6d2FybmluZ0F0KCJVbmV4cGVjdGVkICd7YX0nLiIsbGluZSxjaGFyYWN0ZXIsYyk7fQp2YWx1ZSs9Yzt9fSx0b2tlbjpmdW5jdGlvbigpe3ZhciBiLGMsY2FwdHVyZXMsZCxkZXB0aCxoaWdoLGksbCxsb3cscSx0O2Z1bmN0aW9uIG1hdGNoKHgpe3ZhciByPXguZXhlYyhzKSxyMTtpZihyKXtsPXJbMF0ubGVuZ3RoO3IxPXJbMV07Yz1yMS5jaGFyQXQoMCk7cz1zLnN1YnN0cihsKTtmcm9tPWNoYXJhY3RlcitsLXIxLmxlbmd0aDtjaGFyYWN0ZXIrPWw7cmV0dXJuIHIxO319CmZ1bmN0aW9uIHN0cmluZyh4KXt2YXIgYyxqLHI9Jyc7aWYoanNvbm1vZGUmJnghPT0nIicpe3dhcm5pbmdBdCgiU3RyaW5ncyBtdXN0IHVzZSBkb3VibGVxdW90ZS4iLGxpbmUsY2hhcmFjdGVyKTt9CmlmKHhxdW90ZT09PXh8fCh4bW9kZT09PSdzY3JpcHRzdHJpbmcnJiYheHF1b3RlKSl7cmV0dXJuIGl0KCcocHVuY3R1YXRvciknLHgpO30KZnVuY3Rpb24gZXNjKG4pe3ZhciBpPXBhcnNlSW50KHMuc3Vic3RyKGorMSxuKSwxNik7ais9bjtpZihpPj0zMiYmaTw9MTI2JiZpIT09MzQmJmkhPT05MiYmaSE9PTM5KXt3YXJuaW5nQXQoIlVubmVjZXNzYXJ5IGVzY2FwZW1lbnQuIixsaW5lLGNoYXJhY3Rlcik7fQpjaGFyYWN0ZXIrPW47Yz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpO30Kaj0wO2Zvcig7Oyl7d2hpbGUoaj49cy5sZW5ndGgpe2o9MDtpZih4bW9kZSE9PSdodG1sJ3x8IW5leHRMaW5lKCkpe2Vycm9yQXQoIlVuY2xvc2VkIHN0cmluZy4iLGxpbmUsZnJvbSk7fX0KYz1zLmNoYXJBdChqKTtpZihjPT09eCl7Y2hhcmFjdGVyKz0xO3M9cy5zdWJzdHIoaisxKTtyZXR1cm4gaXQoJyhzdHJpbmcpJyxyLHgpO30KaWYoYzwnICcpe2lmKGM9PT0nXG4nfHxjPT09J1xyJyl7YnJlYWs7fQp3YXJuaW5nQXQoIkNvbnRyb2wgY2hhcmFjdGVyIGluIHN0cmluZzoge2F9LiIsbGluZSxjaGFyYWN0ZXIraixzLnNsaWNlKDAsaikpO31lbHNlIGlmKGM9PT14cXVvdGUpe3dhcm5pbmdBdCgiQmFkIEhUTUwgc3RyaW5nIixsaW5lLGNoYXJhY3RlcitqKTt9ZWxzZSBpZihjPT09JzwnKXtpZihvcHRpb24uc2FmZSYmeG1vZGU9PT0naHRtbCcpe3dhcm5pbmdBdCgiQURzYWZlIHN0cmluZyB2aW9sYXRpb24uIixsaW5lLGNoYXJhY3RlcitqKTt9ZWxzZSBpZihzLmNoYXJBdChqKzEpPT09Jy8nJiYoeG1vZGV8fG9wdGlvbi5zYWZlKSl7d2FybmluZ0F0KCJFeHBlY3RlZCAnPFxcLycgYW5kIGluc3RlYWQgc2F3ICc8LycuIixsaW5lLGNoYXJhY3Rlcik7fWVsc2UgaWYocy5jaGFyQXQoaisxKT09PSchJyYmKHhtb2RlfHxvcHRpb24uc2FmZSkpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCAnPCEnIGluIGEgc3RyaW5nLiIsbGluZSxjaGFyYWN0ZXIpO319ZWxzZSBpZihjPT09J1xcJyl7aWYoeG1vZGU9PT0naHRtbCcpe2lmKG9wdGlvbi5zYWZlKXt3YXJuaW5nQXQoIkFEc2FmZSBzdHJpbmcgdmlvbGF0aW9uLiIsbGluZSxjaGFyYWN0ZXIraik7fX1lbHNlIGlmKHhtb2RlPT09J3N0eWxlcHJvcGVydHknKXtqKz0xO2NoYXJhY3Rlcis9MTtjPXMuY2hhckF0KGopO2lmKGMhPT14KXt3YXJuaW5nQXQoIkVzY2FwZW1lbnQgaW4gc3R5bGUgc3RyaW5nLiIsbGluZSxjaGFyYWN0ZXIraik7fX1lbHNle2orPTE7Y2hhcmFjdGVyKz0xO2M9cy5jaGFyQXQoaik7c3dpdGNoKGMpe2Nhc2UgeHF1b3RlOndhcm5pbmdBdCgiQmFkIEhUTUwgc3RyaW5nIixsaW5lLGNoYXJhY3RlcitqKTticmVhaztjYXNlJ1xcJzpjYXNlJ1wnJzpjYXNlJyInOmNhc2UnLyc6YnJlYWs7Y2FzZSdiJzpjPSdcYic7YnJlYWs7Y2FzZSdmJzpjPSdcZic7YnJlYWs7Y2FzZSduJzpjPSdcbic7YnJlYWs7Y2FzZSdyJzpjPSdccic7YnJlYWs7Y2FzZSd0JzpjPSdcdCc7YnJlYWs7Y2FzZSd1Jzplc2MoNCk7YnJlYWs7Y2FzZSd2JzpjPSdcdic7YnJlYWs7Y2FzZSd4JzppZihqc29ubW9kZSl7d2FybmluZ0F0KCJBdm9pZCBcXHgtLiIsbGluZSxjaGFyYWN0ZXIpO30KZXNjKDIpO2JyZWFrO2RlZmF1bHQ6d2FybmluZ0F0KCJCYWQgZXNjYXBlbWVudC4iLGxpbmUsY2hhcmFjdGVyKTt9fX0Kcis9YztjaGFyYWN0ZXIrPTE7ais9MTt9fQpmb3IoOzspe2lmKCFzKXtyZXR1cm4gaXQobmV4dExpbmUoKT8nKGVuZGxpbmUpJzonKGVuZCknLCcnKTt9CndoaWxlKHhtb2RlPT09J291dGVyJyl7aT1zLnNlYXJjaChveCk7aWYoaT09PTApe2JyZWFrO31lbHNlIGlmKGk+MCl7Y2hhcmFjdGVyKz0xO3M9cy5zbGljZShpKTticmVhazt9ZWxzZXtpZighbmV4dExpbmUoKSl7cmV0dXJuIGl0KCcoZW5kKScsJycpO319fQp0PW1hdGNoKHJ4W3htb2RlXXx8dHgpO2lmKCF0KXt0PScnO2M9Jyc7d2hpbGUocyYmczwnIScpe3M9cy5zdWJzdHIoMSk7fQppZihzKXtpZih4bW9kZT09PSdodG1sJyl7cmV0dXJuIGl0KCcoZXJyb3IpJyxzLmNoYXJBdCgwKSk7fWVsc2V7ZXJyb3JBdCgiVW5leHBlY3RlZCAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLHMuc3Vic3RyKDAsMSkpO319fWVsc2V7aWYoYy5pc0FscGhhKCl8fGM9PT0nXyd8fGM9PT0nJCcpe3JldHVybiBpdCgnKGlkZW50aWZpZXIpJyx0KTt9CmlmKGMuaXNEaWdpdCgpKXtpZih4bW9kZSE9PSdzdHlsZScmJiFpc0Zpbml0ZShOdW1iZXIodCkpKXt3YXJuaW5nQXQoIkJhZCBudW1iZXIgJ3thfScuIixsaW5lLGNoYXJhY3Rlcix0KTt9CmlmKHhtb2RlIT09J3N0eWxlJyYmeG1vZGUhPT0nc3R5bGVwcm9wZXJ0eScmJnMuc3Vic3RyKDAsMSkuaXNBbHBoYSgpKXt3YXJuaW5nQXQoIk1pc3Npbmcgc3BhY2UgYWZ0ZXIgJ3thfScuIixsaW5lLGNoYXJhY3Rlcix0KTt9CmlmKGM9PT0nMCcpe2Q9dC5zdWJzdHIoMSwxKTtpZihkLmlzRGlnaXQoKSl7aWYodG9rZW4uaWQhPT0nLicmJnhtb2RlIT09J3N0eWxlcHJvcGVydHknKXt3YXJuaW5nQXQoIkRvbid0IHVzZSBleHRyYSBsZWFkaW5nIHplcm9zICd7YX0nLiIsbGluZSxjaGFyYWN0ZXIsdCk7fX1lbHNlIGlmKGpzb25tb2RlJiYoZD09PSd4J3x8ZD09PSdYJykpe3dhcm5pbmdBdCgiQXZvaWQgMHgtLiAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLHQpO319CmlmKHQuc3Vic3RyKHQubGVuZ3RoLTEpPT09Jy4nKXt3YXJuaW5nQXQoIkEgdHJhaWxpbmcgZGVjaW1hbCBwb2ludCBjYW4gYmUgY29uZnVzZWQgd2l0aCBhIGRvdCAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLHQpO30KcmV0dXJuIGl0KCcobnVtYmVyKScsdCk7fQpzd2l0Y2godCl7Y2FzZSciJzpjYXNlIiciOnJldHVybiBzdHJpbmcodCk7Y2FzZScvLyc6aWYoc3JjfHwoeG1vZGUmJnhtb2RlIT09J3NjcmlwdCcpKXt3YXJuaW5nQXQoIlVuZXhwZWN0ZWQgY29tbWVudC4iLGxpbmUsY2hhcmFjdGVyKTt9ZWxzZSBpZih4bW9kZT09PSdzY3JpcHQnJiYvPFxzKlwvL2kudGVzdChzKSl7d2FybmluZ0F0KCJVbmV4cGVjdGVkIDxcLyBpbiBjb21tZW50LiIsbGluZSxjaGFyYWN0ZXIpO31lbHNlIGlmKChvcHRpb24uc2FmZXx8eG1vZGU9PT0nc2NyaXB0JykmJmF4LnRlc3Qocykpe3dhcm5pbmdBdCgiRGFuZ2Vyb3VzIGNvbW1lbnQuIixsaW5lLGNoYXJhY3Rlcik7fQpzPScnO3Rva2VuLmNvbW1lbnQ9dHJ1ZTticmVhaztjYXNlJy8qJzppZihzcmN8fCh4bW9kZSYmeG1vZGUhPT0nc2NyaXB0JyYmeG1vZGUhPT0nc3R5bGUnJiZ4bW9kZSE9PSdzdHlsZXByb3BlcnR5Jykpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCBjb21tZW50LiIsbGluZSxjaGFyYWN0ZXIpO30KaWYob3B0aW9uLnNhZmUmJmF4LnRlc3Qocykpe3dhcm5pbmdBdCgiQURzYWZlIGNvbW1lbnQgdmlvbGF0aW9uLiIsbGluZSxjaGFyYWN0ZXIpO30KZm9yKDs7KXtpPXMuc2VhcmNoKGx4KTtpZihpPj0wKXticmVhazt9CmlmKCFuZXh0TGluZSgpKXtlcnJvckF0KCJVbmNsb3NlZCBjb21tZW50LiIsbGluZSxjaGFyYWN0ZXIpO31lbHNle2lmKG9wdGlvbi5zYWZlJiZheC50ZXN0KHMpKXt3YXJuaW5nQXQoIkFEc2FmZSBjb21tZW50IHZpb2xhdGlvbi4iLGxpbmUsY2hhcmFjdGVyKTt9fX0KY2hhcmFjdGVyKz1pKzI7aWYocy5zdWJzdHIoaSwxKT09PScvJyl7ZXJyb3JBdCgiTmVzdGVkIGNvbW1lbnQuIixsaW5lLGNoYXJhY3Rlcik7fQpzPXMuc3Vic3RyKGkrMik7dG9rZW4uY29tbWVudD10cnVlO2JyZWFrO2Nhc2UnLyptZW1iZXJzJzpjYXNlJy8qbWVtYmVyJzpjYXNlJy8qanNsaW50JzpjYXNlJy8qZ2xvYmFsJzpjYXNlJyovJzpyZXR1cm57dmFsdWU6dCx0eXBlOidzcGVjaWFsJyxsaW5lOmxpbmUsY2hhcmFjdGVyOmNoYXJhY3Rlcixmcm9tOmZyb219O2Nhc2UnJzpicmVhaztjYXNlJy8nOmlmKHRva2VuLmlkPT09Jy89Jyl7ZXJyb3JBdCgiQSByZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbCBjYW4gYmUgY29uZnVzZWQgd2l0aCAnLz0nLiIsbGluZSxmcm9tKTt9CmlmKHByZXJlZyl7ZGVwdGg9MDtjYXB0dXJlcz0wO2w9MDtmb3IoOzspe2I9dHJ1ZTtjPXMuY2hhckF0KGwpO2wrPTE7c3dpdGNoKGMpe2Nhc2UnJzplcnJvckF0KCJVbmNsb3NlZCByZWd1bGFyIGV4cHJlc3Npb24uIixsaW5lLGZyb20pO3JldHVybjtjYXNlJy8nOmlmKGRlcHRoPjApe3dhcm5pbmdBdCgiVW5lc2NhcGVkICd7YX0nLiIsbGluZSxmcm9tK2wsJy8nKTt9CmM9cy5zdWJzdHIoMCxsLTEpO3E9e2c6dHJ1ZSxpOnRydWUsbTp0cnVlfTt3aGlsZShxW3MuY2hhckF0KGwpXT09PXRydWUpe3Fbcy5jaGFyQXQobCldPWZhbHNlO2wrPTE7fQpjaGFyYWN0ZXIrPWw7cz1zLnN1YnN0cihsKTtxPXMuY2hhckF0KDApO2lmKHE9PT0nLyd8fHE9PT0nKicpe2Vycm9yQXQoIkNvbmZ1c2luZyByZWd1bGFyIGV4cHJlc3Npb24uIixsaW5lLGZyb20pO30KcmV0dXJuIGl0KCcocmVnZXhwKScsYyk7Y2FzZSdcXCc6Yz1zLmNoYXJBdChsKTtpZihjPCcgJyl7d2FybmluZ0F0KCJVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4iLGxpbmUsZnJvbStsKTt9ZWxzZSBpZihjPT09JzwnKXt3YXJuaW5nQXQoIlVuZXhwZWN0ZWQgZXNjYXBlZCBjaGFyYWN0ZXIgJ3thfScgaW4gcmVndWxhciBleHByZXNzaW9uLiIsbGluZSxmcm9tK2wsYyk7fQpsKz0xO2JyZWFrO2Nhc2UnKCc6ZGVwdGgrPTE7Yj1mYWxzZTtpZihzLmNoYXJBdChsKT09PSc/Jyl7bCs9MTtzd2l0Y2gocy5jaGFyQXQobCkpe2Nhc2UnOic6Y2FzZSc9JzpjYXNlJyEnOmwrPTE7YnJlYWs7ZGVmYXVsdDp3YXJuaW5nQXQoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLGxpbmUsZnJvbStsLCc6JyxzLmNoYXJBdChsKSk7fX1lbHNle2NhcHR1cmVzKz0xO30KYnJlYWs7Y2FzZSd8JzpiPWZhbHNlO2JyZWFrO2Nhc2UnKSc6aWYoZGVwdGg9PT0wKXt3YXJuaW5nQXQoIlVuZXNjYXBlZCAne2F9Jy4iLGxpbmUsZnJvbStsLCcpJyk7fWVsc2V7ZGVwdGgtPTE7fQpicmVhaztjYXNlJyAnOnE9MTt3aGlsZShzLmNoYXJBdChsKT09PScgJyl7bCs9MTtxKz0xO30KaWYocT4xKXt3YXJuaW5nQXQoIlNwYWNlcyBhcmUgaGFyZCB0byBjb3VudC4gVXNlIHt7YX19LiIsbGluZSxmcm9tK2wscSk7fQpicmVhaztjYXNlJ1snOmM9cy5jaGFyQXQobCk7aWYoYz09PSdeJyl7bCs9MTtpZihvcHRpb24ucmVnZXhwKXt3YXJuaW5nQXQoIkluc2VjdXJlICd7YX0nLiIsbGluZSxmcm9tK2wsYyk7fX0KcT1mYWxzZTtpZihjPT09J10nKXt3YXJuaW5nQXQoIkVtcHR5IGNsYXNzLiIsbGluZSxmcm9tK2wtMSk7cT10cnVlO30Ka2xhc3M6ZG97Yz1zLmNoYXJBdChsKTtsKz0xO3N3aXRjaChjKXtjYXNlJ1snOmNhc2UnXic6d2FybmluZ0F0KCJVbmVzY2FwZWQgJ3thfScuIixsaW5lLGZyb20rbCxjKTtxPXRydWU7YnJlYWs7Y2FzZSctJzppZihxKXtxPWZhbHNlO31lbHNle3dhcm5pbmdBdCgiVW5lc2NhcGVkICd7YX0nLiIsbGluZSxmcm9tK2wsJy0nKTtxPXRydWU7fQpicmVhaztjYXNlJ10nOmlmKCFxKXt3YXJuaW5nQXQoIlVuZXNjYXBlZCAne2F9Jy4iLGxpbmUsZnJvbStsLTEsJy0nKTt9CmJyZWFrIGtsYXNzO2Nhc2UnXFwnOmM9cy5jaGFyQXQobCk7aWYoYzwnICcpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCBjb250cm9sIGNoYXJhY3RlciBpbiByZWd1bGFyIGV4cHJlc3Npb24uIixsaW5lLGZyb20rbCk7fWVsc2UgaWYoYz09PSc8Jyl7d2FybmluZ0F0KCJVbmV4cGVjdGVkIGVzY2FwZWQgY2hhcmFjdGVyICd7YX0nIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4iLGxpbmUsZnJvbStsLGMpO30KbCs9MTtxPXRydWU7YnJlYWs7Y2FzZScvJzp3YXJuaW5nQXQoIlVuZXNjYXBlZCAne2F9Jy4iLGxpbmUsZnJvbStsLTEsJy8nKTtxPXRydWU7YnJlYWs7Y2FzZSc8JzppZih4bW9kZT09PSdzY3JpcHQnKXtjPXMuY2hhckF0KGwpO2lmKGM9PT0nISd8fGM9PT0nLycpe3dhcm5pbmdBdCgiSFRNTCBjb25mdXNpb24gaW4gcmVndWxhciBleHByZXNzaW9uICc8e2F9Jy4iLGxpbmUsZnJvbStsLGMpO319CnE9dHJ1ZTticmVhaztkZWZhdWx0OnE9dHJ1ZTt9fXdoaWxlKGMpO2JyZWFrO2Nhc2UnLic6aWYob3B0aW9uLnJlZ2V4cCl7d2FybmluZ0F0KCJJbnNlY3VyZSAne2F9Jy4iLGxpbmUsZnJvbStsLGMpO30KYnJlYWs7Y2FzZSddJzpjYXNlJz8nOmNhc2Uneyc6Y2FzZSd9JzpjYXNlJysnOmNhc2UnKic6d2FybmluZ0F0KCJVbmVzY2FwZWQgJ3thfScuIixsaW5lLGZyb20rbCxjKTticmVhaztjYXNlJzwnOmlmKHhtb2RlPT09J3NjcmlwdCcpe2M9cy5jaGFyQXQobCk7aWYoYz09PSchJ3x8Yz09PScvJyl7d2FybmluZ0F0KCJIVE1MIGNvbmZ1c2lvbiBpbiByZWd1bGFyIGV4cHJlc3Npb24gJzx7YX0nLiIsbGluZSxmcm9tK2wsYyk7fX19CmlmKGIpe3N3aXRjaChzLmNoYXJBdChsKSl7Y2FzZSc/JzpjYXNlJysnOmNhc2UnKic6bCs9MTtpZihzLmNoYXJBdChsKT09PSc/Jyl7bCs9MTt9CmJyZWFrO2Nhc2Uneyc6bCs9MTtjPXMuY2hhckF0KGwpO2lmKGM8JzAnfHxjPic5Jyl7d2FybmluZ0F0KCJFeHBlY3RlZCBhIG51bWJlciBhbmQgaW5zdGVhZCBzYXcgJ3thfScuIixsaW5lLGZyb20rbCxjKTt9CmwrPTE7bG93PStjO2Zvcig7Oyl7Yz1zLmNoYXJBdChsKTtpZihjPCcwJ3x8Yz4nOScpe2JyZWFrO30KbCs9MTtsb3c9K2MrKGxvdyoxMCk7fQpoaWdoPWxvdztpZihjPT09JywnKXtsKz0xO2hpZ2g9SW5maW5pdHk7Yz1zLmNoYXJBdChsKTtpZihjPj0nMCcmJmM8PSc5Jyl7bCs9MTtoaWdoPStjO2Zvcig7Oyl7Yz1zLmNoYXJBdChsKTtpZihjPCcwJ3x8Yz4nOScpe2JyZWFrO30KbCs9MTtoaWdoPStjKyhoaWdoKjEwKTt9fX0KaWYocy5jaGFyQXQobCkhPT0nfScpe3dhcm5pbmdBdCgiRXhwZWN0ZWQgJ3thfScgYW5kIGluc3RlYWQgc2F3ICd7Yn0nLiIsbGluZSxmcm9tK2wsJ30nLGMpO31lbHNle2wrPTE7fQppZihzLmNoYXJBdChsKT09PSc/Jyl7bCs9MTt9CmlmKGxvdz5oaWdoKXt3YXJuaW5nQXQoIid7YX0nIHNob3VsZCBub3QgYmUgZ3JlYXRlciB0aGFuICd7Yn0nLiIsbGluZSxmcm9tK2wsbG93LGhpZ2gpO319fX0KYz1zLnN1YnN0cigwLGwtMSk7Y2hhcmFjdGVyKz1sO3M9cy5zdWJzdHIobCk7cmV0dXJuIGl0KCcocmVnZXhwKScsYyk7fQpyZXR1cm4gaXQoJyhwdW5jdHVhdG9yKScsdCk7Y2FzZSc8IS0tJzpsPWxpbmU7Yz1jaGFyYWN0ZXI7Zm9yKDs7KXtpPXMuaW5kZXhPZignLS0nKTtpZihpPj0wKXticmVhazt9Cmk9cy5pbmRleE9mKCc8IScpO2lmKGk+PTApe2Vycm9yQXQoIk5lc3RlZCBIVE1MIGNvbW1lbnQuIixsaW5lLGNoYXJhY3RlcitpKTt9CmlmKCFuZXh0TGluZSgpKXtlcnJvckF0KCJVbmNsb3NlZCBIVE1MIGNvbW1lbnQuIixsLGMpO319Cmw9cy5pbmRleE9mKCc8IScpO2lmKGw+PTAmJmw8aSl7ZXJyb3JBdCgiTmVzdGVkIEhUTUwgY29tbWVudC4iLGxpbmUsY2hhcmFjdGVyK2wpO30KY2hhcmFjdGVyKz1pO2lmKHNbaSsyXSE9PSc+Jyl7ZXJyb3JBdCgiRXhwZWN0ZWQgLS0+LiIsbGluZSxjaGFyYWN0ZXIpO30KY2hhcmFjdGVyKz0zO3M9cy5zbGljZShpKzMpO2JyZWFrO2Nhc2UnIyc6aWYoeG1vZGU9PT0naHRtbCd8fHhtb2RlPT09J3N0eWxlcHJvcGVydHknKXtmb3IoOzspe2M9cy5jaGFyQXQoMCk7aWYoKGM8JzAnfHxjPic5JykmJihjPCdhJ3x8Yz4nZicpJiYoYzwnQSd8fGM+J0YnKSl7YnJlYWs7fQpjaGFyYWN0ZXIrPTE7cz1zLnN1YnN0cigxKTt0Kz1jO30KaWYodC5sZW5ndGghPT00JiZ0Lmxlbmd0aCE9PTcpe3dhcm5pbmdBdCgiQmFkIGhleCBjb2xvciAne2F9Jy4iLGxpbmUsZnJvbStsLHQpO30KcmV0dXJuIGl0KCcoY29sb3IpJyx0KTt9CnJldHVybiBpdCgnKHB1bmN0dWF0b3IpJyx0KTtkZWZhdWx0OmlmKHhtb2RlPT09J291dGVyJyYmYz09PScmJyl7Y2hhcmFjdGVyKz0xO3M9cy5zdWJzdHIoMSk7Zm9yKDs7KXtjPXMuY2hhckF0KDApO2NoYXJhY3Rlcis9MTtzPXMuc3Vic3RyKDEpO2lmKGM9PT0nOycpe2JyZWFrO30KaWYoISgoYz49JzAnJiZjPD0nOScpfHwoYz49J2EnJiZjPD0neicpfHxjPT09JyMnKSl7ZXJyb3JBdCgiQmFkIGVudGl0eSIsbGluZSxmcm9tK2wsY2hhcmFjdGVyKTt9fQpicmVhazt9CnJldHVybiBpdCgnKHB1bmN0dWF0b3IpJyx0KTt9fX19fTt9KCkpO2Z1bmN0aW9uIGFkZGxhYmVsKHQsdHlwZSl7aWYob3B0aW9uLnNhZmUmJmZ1bmN0WycoZ2xvYmFsKSddJiZ0eXBlb2YgcHJlZGVmaW5lZFt0XSE9PSdib29sZWFuJyl7d2FybmluZygnQURzYWZlIGdsb2JhbDogJyt0KycuJyx0b2tlbik7fWVsc2UgaWYodD09PSdoYXNPd25Qcm9wZXJ0eScpe3dhcm5pbmcoIidoYXNPd25Qcm9wZXJ0eScgaXMgYSByZWFsbHkgYmFkIG5hbWUuIik7fQppZihpc19vd24oZnVuY3QsdCkmJiFmdW5jdFsnKGdsb2JhbCknXSl7d2FybmluZyhmdW5jdFt0XT09PXRydWU/Iid7YX0nIHdhcyB1c2VkIGJlZm9yZSBpdCB3YXMgZGVmaW5lZC4iOiIne2F9JyBpcyBhbHJlYWR5IGRlZmluZWQuIixuZXh0dG9rZW4sdCk7fQpmdW5jdFt0XT10eXBlO2lmKGZ1bmN0WycoZ2xvYmFsKSddKXtnbG9iYWxbdF09ZnVuY3Q7aWYoaXNfb3duKGltcGxpZWQsdCkpe3dhcm5pbmcoIid7YX0nIHdhcyB1c2VkIGJlZm9yZSBpdCB3YXMgZGVmaW5lZC4iLG5leHR0b2tlbix0KTtkZWxldGUgaW1wbGllZFt0XTt9fWVsc2V7c2NvcGVbdF09ZnVuY3Q7fX0KZnVuY3Rpb24gZG9PcHRpb24oKXt2YXIgYixvYmosZmlsdGVyLG89bmV4dHRva2VuLnZhbHVlLHQsdjtzd2l0Y2gobyl7Y2FzZScqLyc6ZXJyb3IoIlVuYmVndW4gY29tbWVudC4iKTticmVhaztjYXNlJy8qbWVtYmVycyc6Y2FzZScvKm1lbWJlcic6bz0nLyptZW1iZXJzJztpZighbWVtYmVyc09ubHkpe21lbWJlcnNPbmx5PXt9O30Kb2JqPW1lbWJlcnNPbmx5O2JyZWFrO2Nhc2UnLypqc2xpbnQnOmlmKG9wdGlvbi5zYWZlKXt3YXJuaW5nKCJBRHNhZmUgcmVzdHJpY3Rpb24uIik7fQpvYmo9b3B0aW9uO2ZpbHRlcj1ib29sT3B0aW9uczticmVhaztjYXNlJy8qZ2xvYmFsJzppZihvcHRpb24uc2FmZSl7d2FybmluZygiQURzYWZlIHJlc3RyaWN0aW9uLiIpO30Kb2JqPXByZWRlZmluZWQ7YnJlYWs7ZGVmYXVsdDp9CnQ9bGV4LnRva2VuKCk7bG9vcDpmb3IoOzspe2Zvcig7Oyl7aWYodC50eXBlPT09J3NwZWNpYWwnJiZ0LnZhbHVlPT09JyovJyl7YnJlYWsgbG9vcDt9CmlmKHQuaWQhPT0nKGVuZGxpbmUpJyYmdC5pZCE9PScsJyl7YnJlYWs7fQp0PWxleC50b2tlbigpO30KaWYodC50eXBlIT09JyhzdHJpbmcpJyYmdC50eXBlIT09JyhpZGVudGlmaWVyKScmJm8hPT0nLyptZW1iZXJzJyl7ZXJyb3IoIkJhZCBvcHRpb24uIix0KTt9CnY9bGV4LnRva2VuKCk7aWYodi5pZD09PSc6Jyl7dj1sZXgudG9rZW4oKTtpZihvYmo9PT1tZW1iZXJzT25seSl7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLHQsJyovJywnOicpO30KaWYodC52YWx1ZT09PSdpbmRlbnQnJiZvPT09Jy8qanNsaW50Jyl7Yj0rdi52YWx1ZTtpZih0eXBlb2YgYiE9PSdudW1iZXInfHwhaXNGaW5pdGUoYil8fGI8PTB8fE1hdGguZmxvb3IoYikhPT1iKXtlcnJvcigiRXhwZWN0ZWQgYSBzbWFsbCBpbnRlZ2VyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHYsdi52YWx1ZSk7fQpvYmoud2hpdGU9dHJ1ZTtvYmouaW5kZW50PWI7fWVsc2UgaWYodC52YWx1ZT09PSdtYXhlcnInJiZvPT09Jy8qanNsaW50Jyl7Yj0rdi52YWx1ZTtpZih0eXBlb2YgYiE9PSdudW1iZXInfHwhaXNGaW5pdGUoYil8fGI8PTB8fE1hdGguZmxvb3IoYikhPT1iKXtlcnJvcigiRXhwZWN0ZWQgYSBzbWFsbCBpbnRlZ2VyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHYsdi52YWx1ZSk7fQpvYmoubWF4ZXJyPWI7fWVsc2UgaWYodC52YWx1ZT09PSdtYXhsZW4nJiZvPT09Jy8qanNsaW50Jyl7Yj0rdi52YWx1ZTtpZih0eXBlb2YgYiE9PSdudW1iZXInfHwhaXNGaW5pdGUoYil8fGI8PTB8fE1hdGguZmxvb3IoYikhPT1iKXtlcnJvcigiRXhwZWN0ZWQgYSBzbWFsbCBpbnRlZ2VyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHYsdi52YWx1ZSk7fQpvYmoubWF4bGVuPWI7fWVsc2UgaWYodi52YWx1ZT09PSd0cnVlJyl7b2JqW3QudmFsdWVdPXRydWU7fWVsc2UgaWYodi52YWx1ZT09PSdmYWxzZScpe29ialt0LnZhbHVlXT1mYWxzZTt9ZWxzZXtlcnJvcigiQmFkIG9wdGlvbiB2YWx1ZS4iLHYpO30KdD1sZXgudG9rZW4oKTt9ZWxzZXtpZihvPT09Jy8qanNsaW50Jyl7ZXJyb3IoIk1pc3Npbmcgb3B0aW9uIHZhbHVlLiIsdCk7fQpvYmpbdC52YWx1ZV09ZmFsc2U7dD12O319CmlmKGZpbHRlcil7YXNzdW1lKCk7fX0KZnVuY3Rpb24gcGVlayhwKXt2YXIgaT1wfHwwLGo9MCx0O3doaWxlKGo8PWkpe3Q9bG9va2FoZWFkW2pdO2lmKCF0KXt0PWxvb2thaGVhZFtqXT1sZXgudG9rZW4oKTt9CmorPTE7fQpyZXR1cm4gdDt9CmZ1bmN0aW9uIGFkdmFuY2UoaWQsdCl7c3dpdGNoKHRva2VuLmlkKXtjYXNlJyhudW1iZXIpJzppZihuZXh0dG9rZW4uaWQ9PT0nLicpe3dhcm5pbmcoIkEgZG90IGZvbGxvd2luZyBhIG51bWJlciBjYW4gYmUgY29uZnVzZWQgd2l0aCBhIGRlY2ltYWwgcG9pbnQuIix0b2tlbik7fQpicmVhaztjYXNlJy0nOmlmKG5leHR0b2tlbi5pZD09PSctJ3x8bmV4dHRva2VuLmlkPT09Jy0tJyl7d2FybmluZygiQ29uZnVzaW5nIG1pbnVzc2VzLiIpO30KYnJlYWs7Y2FzZScrJzppZihuZXh0dG9rZW4uaWQ9PT0nKyd8fG5leHR0b2tlbi5pZD09PScrKycpe3dhcm5pbmcoIkNvbmZ1c2luZyBwbHVzc2VzLiIpO30KYnJlYWs7fQppZih0b2tlbi50eXBlPT09JyhzdHJpbmcpJ3x8dG9rZW4uaWRlbnRpZmllcil7YW5vbm5hbWU9dG9rZW4udmFsdWU7fQppZihpZCYmbmV4dHRva2VuLmlkIT09aWQpe2lmKHQpe2lmKG5leHR0b2tlbi5pZD09PScoZW5kKScpe3dhcm5pbmcoIlVubWF0Y2hlZCAne2F9Jy4iLHQsdC5pZCk7fWVsc2V7d2FybmluZygiRXhwZWN0ZWQgJ3thfScgdG8gbWF0Y2ggJ3tifScgZnJvbSBsaW5lIHtjfSBhbmQgaW5zdGVhZCBzYXcgJ3tkfScuIixuZXh0dG9rZW4saWQsdC5pZCx0LmxpbmUsbmV4dHRva2VuLnZhbHVlKTt9fWVsc2UgaWYobmV4dHRva2VuLnR5cGUhPT0nKGlkZW50aWZpZXIpJ3x8bmV4dHRva2VuLnZhbHVlIT09aWQpe3dhcm5pbmcoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbixpZCxuZXh0dG9rZW4udmFsdWUpO319CnByZXZ0b2tlbj10b2tlbjt0b2tlbj1uZXh0dG9rZW47Zm9yKDs7KXtuZXh0dG9rZW49bG9va2FoZWFkLnNoaWZ0KCl8fGxleC50b2tlbigpO2lmKG5leHR0b2tlbi5pZD09PScoZW5kKSd8fG5leHR0b2tlbi5pZD09PScoZXJyb3IpJyl7cmV0dXJuO30KaWYobmV4dHRva2VuLnR5cGU9PT0nc3BlY2lhbCcpe2RvT3B0aW9uKCk7fWVsc2V7aWYobmV4dHRva2VuLmlkIT09JyhlbmRsaW5lKScpe2JyZWFrO319fX0KZnVuY3Rpb24gcGFyc2UocmJwLGluaXRpYWwpe3ZhciBsZWZ0O2lmKG5leHR0b2tlbi5pZD09PScoZW5kKScpe2Vycm9yKCJVbmV4cGVjdGVkIGVhcmx5IGVuZCBvZiBwcm9ncmFtLiIsdG9rZW4pO30KYWR2YW5jZSgpO2lmKG9wdGlvbi5zYWZlJiZ0eXBlb2YgcHJlZGVmaW5lZFt0b2tlbi52YWx1ZV09PT0nYm9vbGVhbicmJihuZXh0dG9rZW4uaWQhPT0nKCcmJm5leHR0b2tlbi5pZCE9PScuJykpe3dhcm5pbmcoJ0FEc2FmZSB2aW9sYXRpb24uJyx0b2tlbik7fQppZihpbml0aWFsKXthbm9ubmFtZT0nYW5vbnltb3VzJztmdW5jdFsnKHZlcmIpJ109dG9rZW4udmFsdWU7fQppZihpbml0aWFsPT09dHJ1ZSYmdG9rZW4uZnVkKXtsZWZ0PXRva2VuLmZ1ZCgpO31lbHNle2lmKHRva2VuLm51ZCl7bGVmdD10b2tlbi5udWQoKTt9ZWxzZXtpZihuZXh0dG9rZW4udHlwZT09PScobnVtYmVyKScmJnRva2VuLmlkPT09Jy4nKXt3YXJuaW5nKCJBIGxlYWRpbmcgZGVjaW1hbCBwb2ludCBjYW4gYmUgY29uZnVzZWQgd2l0aCBhIGRvdDogJy57YX0nLiIsdG9rZW4sbmV4dHRva2VuLnZhbHVlKTthZHZhbmNlKCk7cmV0dXJuIHRva2VuO31lbHNle2Vycm9yKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHRva2VuLHRva2VuLmlkKTt9fQp3aGlsZShyYnA8bmV4dHRva2VuLmxicCl7YWR2YW5jZSgpO2lmKHRva2VuLmxlZCl7bGVmdD10b2tlbi5sZWQobGVmdCk7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkIGFuIG9wZXJhdG9yIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHRva2VuLHRva2VuLmlkKTt9fX0KcmV0dXJuIGxlZnQ7fQpmdW5jdGlvbiBhZGphY2VudChsZWZ0LHJpZ2h0KXtsZWZ0PWxlZnR8fHRva2VuO3JpZ2h0PXJpZ2h0fHxuZXh0dG9rZW47aWYob3B0aW9uLndoaXRlfHx4bW9kZT09PSdzdHlsZXByb3BlcnR5J3x8eG1vZGU9PT0nc3R5bGUnKXtpZihsZWZ0LmNoYXJhY3RlciE9PXJpZ2h0LmZyb20mJmxlZnQubGluZT09PXJpZ2h0LmxpbmUpe3dhcm5pbmcoIlVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgJ3thfScuIixyaWdodCxsZWZ0LnZhbHVlKTt9fX0KZnVuY3Rpb24gbm9zcGFjZShsZWZ0LHJpZ2h0KXtsZWZ0PWxlZnR8fHRva2VuO3JpZ2h0PXJpZ2h0fHxuZXh0dG9rZW47aWYob3B0aW9uLndoaXRlJiYhbGVmdC5jb21tZW50KXtpZihsZWZ0LmxpbmU9PT1yaWdodC5saW5lKXthZGphY2VudChsZWZ0LHJpZ2h0KTt9fX0KZnVuY3Rpb24gbm9uYWRqYWNlbnQobGVmdCxyaWdodCl7aWYob3B0aW9uLndoaXRlKXtsZWZ0PWxlZnR8fHRva2VuO3JpZ2h0PXJpZ2h0fHxuZXh0dG9rZW47aWYobGVmdC5saW5lPT09cmlnaHQubGluZSYmbGVmdC5jaGFyYWN0ZXI9PT1yaWdodC5mcm9tKXt3YXJuaW5nKCJNaXNzaW5nIHNwYWNlIGFmdGVyICd7YX0nLiIsbmV4dHRva2VuLGxlZnQudmFsdWUpO319fQpmdW5jdGlvbiBub2JyZWFrbm9uYWRqYWNlbnQobGVmdCxyaWdodCl7bGVmdD1sZWZ0fHx0b2tlbjtyaWdodD1yaWdodHx8bmV4dHRva2VuO2lmKCFvcHRpb24ubGF4YnJlYWsmJmxlZnQubGluZSE9PXJpZ2h0LmxpbmUpe3dhcm5pbmcoIkJhZCBsaW5lIGJyZWFraW5nIGJlZm9yZSAne2F9Jy4iLHJpZ2h0LHJpZ2h0LmlkKTt9ZWxzZSBpZihvcHRpb24ud2hpdGUpe2xlZnQ9bGVmdHx8dG9rZW47cmlnaHQ9cmlnaHR8fG5leHR0b2tlbjtpZihsZWZ0LmNoYXJhY3Rlcj09PXJpZ2h0LmZyb20pe3dhcm5pbmcoIk1pc3Npbmcgc3BhY2UgYWZ0ZXIgJ3thfScuIixuZXh0dG9rZW4sbGVmdC52YWx1ZSk7fX19CmZ1bmN0aW9uIGluZGVudGF0aW9uKGJpYXMpe3ZhciBpO2lmKG9wdGlvbi53aGl0ZSYmbmV4dHRva2VuLmlkIT09JyhlbmQpJyl7aT1pbmRlbnQrKGJpYXN8fDApO2lmKG5leHR0b2tlbi5mcm9tIT09aSl7d2FybmluZygiRXhwZWN0ZWQgJ3thfScgdG8gaGF2ZSBhbiBpbmRlbnRhdGlvbiBhdCB7Yn0gaW5zdGVhZCBhdCB7Y30uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlLGksbmV4dHRva2VuLmZyb20pO319fQpmdW5jdGlvbiBub2xpbmVicmVhayh0KXt0PXR8fHRva2VuO2lmKHQubGluZSE9PW5leHR0b2tlbi5saW5lKXt3YXJuaW5nKCJMaW5lIGJyZWFraW5nIGVycm9yICd7YX0nLiIsdCx0LnZhbHVlKTt9fQpmdW5jdGlvbiBjb21tYSgpe2lmKHRva2VuLmxpbmUhPT1uZXh0dG9rZW4ubGluZSl7aWYoIW9wdGlvbi5sYXhicmVhayl7d2FybmluZygiQmFkIGxpbmUgYnJlYWtpbmcgYmVmb3JlICd7YX0nLiIsdG9rZW4sbmV4dHRva2VuLmlkKTt9fWVsc2UgaWYodG9rZW4uY2hhcmFjdGVyIT09bmV4dHRva2VuLmZyb20mJm9wdGlvbi53aGl0ZSl7d2FybmluZygiVW5leHBlY3RlZCBzcGFjZSBhZnRlciAne2F9Jy4iLG5leHR0b2tlbix0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCcsJyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt9CmZ1bmN0aW9uIHN5bWJvbChzLHApe3ZhciB4PXN5bnRheFtzXTtpZigheHx8dHlwZW9mIHghPT0nb2JqZWN0Jyl7c3ludGF4W3NdPXg9e2lkOnMsbGJwOnAsdmFsdWU6c307fQpyZXR1cm4geDt9CmZ1bmN0aW9uIGRlbGltKHMpe3JldHVybiBzeW1ib2wocywwKTt9CmZ1bmN0aW9uIHN0bXQocyxmKXt2YXIgeD1kZWxpbShzKTt4LmlkZW50aWZpZXI9eC5yZXNlcnZlZD10cnVlO3guZnVkPWY7cmV0dXJuIHg7fQpmdW5jdGlvbiBibG9ja3N0bXQocyxmKXt2YXIgeD1zdG10KHMsZik7eC5ibG9jaz10cnVlO3JldHVybiB4O30KZnVuY3Rpb24gcmVzZXJ2ZU5hbWUoeCl7dmFyIGM9eC5pZC5jaGFyQXQoMCk7aWYoKGM+PSdhJyYmYzw9J3onKXx8KGM+PSdBJyYmYzw9J1onKSl7eC5pZGVudGlmaWVyPXgucmVzZXJ2ZWQ9dHJ1ZTt9CnJldHVybiB4O30KZnVuY3Rpb24gcHJlZml4KHMsZil7dmFyIHg9c3ltYm9sKHMsMTUwKTtyZXNlcnZlTmFtZSh4KTt4Lm51ZD0odHlwZW9mIGY9PT0nZnVuY3Rpb24nKT9mOmZ1bmN0aW9uKCl7dGhpcy5yaWdodD1wYXJzZSgxNTApO3RoaXMuYXJpdHk9J3VuYXJ5JztpZih0aGlzLmlkPT09JysrJ3x8dGhpcy5pZD09PSctLScpe2lmKG9wdGlvbi5wbHVzcGx1cyl7d2FybmluZygiVW5leHBlY3RlZCB1c2Ugb2YgJ3thfScuIix0aGlzLHRoaXMuaWQpO31lbHNlIGlmKCghdGhpcy5yaWdodC5pZGVudGlmaWVyfHx0aGlzLnJpZ2h0LnJlc2VydmVkKSYmdGhpcy5yaWdodC5pZCE9PScuJyYmdGhpcy5yaWdodC5pZCE9PSdbJyl7d2FybmluZygiQmFkIG9wZXJhbmQuIix0aGlzKTt9fQpyZXR1cm4gdGhpczt9O3JldHVybiB4O30KZnVuY3Rpb24gdHlwZShzLGYpe3ZhciB4PWRlbGltKHMpO3gudHlwZT1zO3gubnVkPWY7cmV0dXJuIHg7fQpmdW5jdGlvbiByZXNlcnZlKHMsZil7dmFyIHg9dHlwZShzLGYpO3guaWRlbnRpZmllcj14LnJlc2VydmVkPXRydWU7cmV0dXJuIHg7fQpmdW5jdGlvbiByZXNlcnZldmFyKHMsdil7cmV0dXJuIHJlc2VydmUocyxmdW5jdGlvbigpe2lmKHRoaXMuaWQ9PT0ndGhpcyd8fHRoaXMuaWQ9PT0nYXJndW1lbnRzJyl7aWYoc3RyaWN0X21vZGUmJmZ1bmN0WycoZ2xvYmFsKSddKXt3YXJuaW5nKCJTdHJpY3QgdmlvbGF0aW9uLiIsdGhpcyk7fWVsc2UgaWYob3B0aW9uLnNhZmUpe3dhcm5pbmcoIkFEc2FmZSB2aW9sYXRpb24uIix0aGlzKTt9fQpyZXR1cm4gdGhpczt9KTt9CmZ1bmN0aW9uIGluZml4KHMsZixwLHcpe3ZhciB4PXN5bWJvbChzLHApO3Jlc2VydmVOYW1lKHgpO3gubGVkPWZ1bmN0aW9uKGxlZnQpe2lmKCF3KXtub2JyZWFrbm9uYWRqYWNlbnQocHJldnRva2VuLHRva2VuKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO30KaWYodHlwZW9mIGY9PT0nZnVuY3Rpb24nKXtyZXR1cm4gZihsZWZ0LHRoaXMpO31lbHNle3RoaXMubGVmdD1sZWZ0O3RoaXMucmlnaHQ9cGFyc2UocCk7cmV0dXJuIHRoaXM7fX07cmV0dXJuIHg7fQpmdW5jdGlvbiByZWxhdGlvbihzLGYpe3ZhciB4PXN5bWJvbChzLDEwMCk7eC5sZWQ9ZnVuY3Rpb24obGVmdCl7bm9icmVha25vbmFkamFjZW50KHByZXZ0b2tlbix0b2tlbik7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt2YXIgcmlnaHQ9cGFyc2UoMTAwKTtpZigobGVmdCYmbGVmdC5pZD09PSdOYU4nKXx8KHJpZ2h0JiZyaWdodC5pZD09PSdOYU4nKSl7d2FybmluZygiVXNlIHRoZSBpc05hTiBmdW5jdGlvbiB0byBjb21wYXJlIHdpdGggTmFOLiIsdGhpcyk7fWVsc2UgaWYoZil7Zi5hcHBseSh0aGlzLFtsZWZ0LHJpZ2h0XSk7fQppZihsZWZ0LmlkPT09JyEnKXt3YXJuaW5nKCJDb25mdXNpbmcgdXNlIG9mICd7YX0nLiIsbGVmdCwnIScpO30KaWYocmlnaHQuaWQ9PT0nIScpe3dhcm5pbmcoIkNvbmZ1c2luZyB1c2Ugb2YgJ3thfScuIixsZWZ0LCchJyk7fQp0aGlzLmxlZnQ9bGVmdDt0aGlzLnJpZ2h0PXJpZ2h0O3JldHVybiB0aGlzO307cmV0dXJuIHg7fQpmdW5jdGlvbiBpc1Bvb3JSZWxhdGlvbihub2RlKXtyZXR1cm4gbm9kZSYmKChub2RlLnR5cGU9PT0nKG51bWJlciknJiYrbm9kZS52YWx1ZT09PTApfHwobm9kZS50eXBlPT09JyhzdHJpbmcpJyYmbm9kZS52YWx1ZT09PScgJyl8fG5vZGUudHlwZT09PSd0cnVlJ3x8bm9kZS50eXBlPT09J2ZhbHNlJ3x8bm9kZS50eXBlPT09J3VuZGVmaW5lZCd8fG5vZGUudHlwZT09PSdudWxsJyk7fQpmdW5jdGlvbiBhc3NpZ25vcChzLGYpe3N5bWJvbChzLDIwKS5leHBzPXRydWU7cmV0dXJuIGluZml4KHMsZnVuY3Rpb24obGVmdCx0aGF0KXt2YXIgbDt0aGF0LmxlZnQ9bGVmdDtpZihwcmVkZWZpbmVkW2xlZnQudmFsdWVdPT09ZmFsc2UmJnNjb3BlW2xlZnQudmFsdWVdWycoZ2xvYmFsKSddPT09dHJ1ZSl7d2FybmluZygnUmVhZCBvbmx5LicsbGVmdCk7fQppZihvcHRpb24uc2FmZSl7bD1sZWZ0O2Rve2lmKHR5cGVvZiBwcmVkZWZpbmVkW2wudmFsdWVdPT09J2Jvb2xlYW4nKXt3YXJuaW5nKCdBRHNhZmUgdmlvbGF0aW9uLicsbCk7fQpsPWwubGVmdDt9d2hpbGUobCk7fQppZihsZWZ0KXtpZihsZWZ0LmlkPT09Jy4nfHxsZWZ0LmlkPT09J1snKXtpZighbGVmdC5sZWZ0fHxsZWZ0LmxlZnQudmFsdWU9PT0nYXJndW1lbnRzJyl7d2FybmluZygnQmFkIGFzc2lnbm1lbnQuJyx0aGF0KTt9CnRoYXQucmlnaHQ9cGFyc2UoMTkpO3JldHVybiB0aGF0O31lbHNlIGlmKGxlZnQuaWRlbnRpZmllciYmIWxlZnQucmVzZXJ2ZWQpe2lmKGZ1bmN0W2xlZnQudmFsdWVdPT09J2V4Y2VwdGlvbicpe3dhcm5pbmcoIkRvIG5vdCBhc3NpZ24gdG8gdGhlIGV4Y2VwdGlvbiBwYXJhbWV0ZXIuIixsZWZ0KTt9CnRoYXQucmlnaHQ9cGFyc2UoMTkpO3JldHVybiB0aGF0O30KaWYobGVmdD09PXN5bnRheFsnZnVuY3Rpb24nXSl7d2FybmluZygiRXhwZWN0ZWQgYW4gaWRlbnRpZmllciBpbiBhbiBhc3NpZ25tZW50IGFuZCBpbnN0ZWFkIHNhdyBhIGZ1bmN0aW9uIGludm9jYXRpb24uIix0b2tlbik7fX0KZXJyb3IoIkJhZCBhc3NpZ25tZW50LiIsdGhhdCk7fSwyMCk7fQpmdW5jdGlvbiBiaXR3aXNlKHMsZixwKXt2YXIgeD1zeW1ib2wocyxwKTtyZXNlcnZlTmFtZSh4KTt4LmxlZD0odHlwZW9mIGY9PT0nZnVuY3Rpb24nKT9mOmZ1bmN0aW9uKGxlZnQpe2lmKG9wdGlvbi5iaXR3aXNlKXt3YXJuaW5nKCJVbmV4cGVjdGVkIHVzZSBvZiAne2F9Jy4iLHRoaXMsdGhpcy5pZCk7fQp0aGlzLmxlZnQ9bGVmdDt0aGlzLnJpZ2h0PXBhcnNlKHApO3JldHVybiB0aGlzO307cmV0dXJuIHg7fQpmdW5jdGlvbiBiaXR3aXNlYXNzaWdub3Aocyl7c3ltYm9sKHMsMjApLmV4cHM9dHJ1ZTtyZXR1cm4gaW5maXgocyxmdW5jdGlvbihsZWZ0LHRoYXQpe2lmKG9wdGlvbi5iaXR3aXNlKXt3YXJuaW5nKCJVbmV4cGVjdGVkIHVzZSBvZiAne2F9Jy4iLHRoYXQsdGhhdC5pZCk7fQpub25hZGphY2VudChwcmV2dG9rZW4sdG9rZW4pO25vbmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7aWYobGVmdCl7aWYobGVmdC5pZD09PScuJ3x8bGVmdC5pZD09PSdbJ3x8KGxlZnQuaWRlbnRpZmllciYmIWxlZnQucmVzZXJ2ZWQpKXtwYXJzZSgxOSk7cmV0dXJuIHRoYXQ7fQppZihsZWZ0PT09c3ludGF4WydmdW5jdGlvbiddKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGluIGFuIGFzc2lnbm1lbnQsIGFuZCBpbnN0ZWFkIHNhdyBhIGZ1bmN0aW9uIGludm9jYXRpb24uIix0b2tlbik7fQpyZXR1cm4gdGhhdDt9CmVycm9yKCJCYWQgYXNzaWdubWVudC4iLHRoYXQpO30sMjApO30KZnVuY3Rpb24gc3VmZml4KHMsZil7dmFyIHg9c3ltYm9sKHMsMTUwKTt4LmxlZD1mdW5jdGlvbihsZWZ0KXtpZihvcHRpb24ucGx1c3BsdXMpe3dhcm5pbmcoIlVuZXhwZWN0ZWQgdXNlIG9mICd7YX0nLiIsdGhpcyx0aGlzLmlkKTt9ZWxzZSBpZigoIWxlZnQuaWRlbnRpZmllcnx8bGVmdC5yZXNlcnZlZCkmJmxlZnQuaWQhPT0nLicmJmxlZnQuaWQhPT0nWycpe3dhcm5pbmcoIkJhZCBvcGVyYW5kLiIsdGhpcyk7fQp0aGlzLmxlZnQ9bGVmdDtyZXR1cm4gdGhpczt9O3JldHVybiB4O30KZnVuY3Rpb24gb3B0aW9uYWxpZGVudGlmaWVyKCl7aWYobmV4dHRva2VuLnJlc2VydmVkKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9JyAoYSByZXNlcnZlZCB3b3JkKS4iLG5leHR0b2tlbixuZXh0dG9rZW4uaWQpO30KaWYobmV4dHRva2VuLmlkZW50aWZpZXIpe2FkdmFuY2UoKTtyZXR1cm4gdG9rZW4udmFsdWU7fX0KZnVuY3Rpb24gaWRlbnRpZmllcigpe3ZhciBpPW9wdGlvbmFsaWRlbnRpZmllcigpO2lmKGkpe3JldHVybiBpO30KaWYodG9rZW4uaWQ9PT0nZnVuY3Rpb24nJiZuZXh0dG9rZW4uaWQ9PT0nKCcpe3dhcm5pbmcoIk1pc3NpbmcgbmFtZSBpbiBmdW5jdGlvbiBzdGF0ZW1lbnQuIik7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkIGFuIGlkZW50aWZpZXIgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fX0KZnVuY3Rpb24gcmVhY2hhYmxlKHMpe3ZhciBpPTAsdDtpZihuZXh0dG9rZW4uaWQhPT0nOyd8fG5vcmVhY2gpe3JldHVybjt9CmZvcig7Oyl7dD1wZWVrKGkpO2lmKHQucmVhY2gpe3JldHVybjt9CmlmKHQuaWQhPT0nKGVuZGxpbmUpJyl7aWYodC5pZD09PSdmdW5jdGlvbicpe3dhcm5pbmcoIklubmVyIGZ1bmN0aW9ucyBzaG91bGQgYmUgbGlzdGVkIGF0IHRoZSB0b3Agb2YgdGhlIG91dGVyIGZ1bmN0aW9uLiIsdCk7YnJlYWs7fQp3YXJuaW5nKCJVbnJlYWNoYWJsZSAne2F9JyBhZnRlciAne2J9Jy4iLHQsdC52YWx1ZSxzKTticmVhazt9CmkrPTE7fX0KZnVuY3Rpb24gc3RhdGVtZW50KG5vaW5kZW50KXt2YXIgaT1pbmRlbnQscixzPXNjb3BlLHQ9bmV4dHRva2VuO2lmKHQuaWQ9PT0nOycpe3dhcm5pbmcoIlVubmVjZXNzYXJ5IHNlbWljb2xvbi4iLHQpO2FkdmFuY2UoJzsnKTtyZXR1cm47fQppZih0LmlkZW50aWZpZXImJiF0LnJlc2VydmVkJiZwZWVrKCkuaWQ9PT0nOicpe2FkdmFuY2UoKTthZHZhbmNlKCc6Jyk7c2NvcGU9T2JqZWN0LmNyZWF0ZShzKTthZGRsYWJlbCh0LnZhbHVlLCdsYWJlbCcpO2lmKCFuZXh0dG9rZW4ubGFiZWxsZWQpe3dhcm5pbmcoIkxhYmVsICd7YX0nIG9uIHtifSBzdGF0ZW1lbnQuIixuZXh0dG9rZW4sdC52YWx1ZSxuZXh0dG9rZW4udmFsdWUpO30KaWYoangudGVzdCh0LnZhbHVlKyc6Jykpe3dhcm5pbmcoIkxhYmVsICd7YX0nIGxvb2tzIGxpa2UgYSBqYXZhc2NyaXB0IHVybC4iLHQsdC52YWx1ZSk7fQpuZXh0dG9rZW4ubGFiZWw9dC52YWx1ZTt0PW5leHR0b2tlbjt9CmlmKCFub2luZGVudCl7aW5kZW50YXRpb24oKTt9CmlmKG5leHR0b2tlbi5pZD09PSduZXcnKXt3YXJuaW5nKCInbmV3JyBzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBzdGF0ZW1lbnQuIik7fQpyPXBhcnNlKDAsdHJ1ZSk7aWYoIXQuYmxvY2spe2lmKCFyfHwhci5leHBzKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBhc3NpZ25tZW50IG9yIGZ1bmN0aW9uIGNhbGwgYW5kIGluc3RlYWQgc2F3IGFuIGV4cHJlc3Npb24uIix0b2tlbik7fQppZihuZXh0dG9rZW4uaWQhPT0nOycpe3dhcm5pbmdBdCgiTWlzc2luZyBzZW1pY29sb24uIix0b2tlbi5saW5lLHRva2VuLmZyb20rdG9rZW4udmFsdWUubGVuZ3RoKTt9ZWxzZXthZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2FkdmFuY2UoJzsnKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO319CmluZGVudD1pO3Njb3BlPXM7cmV0dXJuIHI7fQpmdW5jdGlvbiB1c2Vfc3RyaWN0KCl7aWYobmV4dHRva2VuLnZhbHVlPT09J3VzZSBzdHJpY3QnKXthZHZhbmNlKCk7YWR2YW5jZSgnOycpO3N0cmljdF9tb2RlPXRydWU7cmV0dXJuIHRydWU7fWVsc2V7cmV0dXJuIGZhbHNlO319CmZ1bmN0aW9uIHN0YXRlbWVudHMoYmVnaW4pe3ZhciBhPVtdLGYscDtpZihiZWdpbiYmIXVzZV9zdHJpY3QoKSYmb3B0aW9uLnN0cmljdCl7d2FybmluZygnTWlzc2luZyAidXNlIHN0cmljdCIgc3RhdGVtZW50LicsbmV4dHRva2VuKTt9CmlmKG9wdGlvbi5hZHNhZmUpe3N3aXRjaChiZWdpbil7Y2FzZSdzY3JpcHQnOmlmKCFhZHNhZmVfbWF5KXtpZihuZXh0dG9rZW4udmFsdWUhPT0nQURTQUZFJ3x8cGVlaygwKS5pZCE9PScuJ3x8KHBlZWsoMSkudmFsdWUhPT0naWQnJiZwZWVrKDEpLnZhbHVlIT09J2dvJykpe2Vycm9yKCdBRHNhZmUgdmlvbGF0aW9uOiBNaXNzaW5nIEFEU0FGRS5pZCBvciBBRFNBRkUuZ28uJyxuZXh0dG9rZW4pO319CmlmKG5leHR0b2tlbi52YWx1ZT09PSdBRFNBRkUnJiZwZWVrKDApLmlkPT09Jy4nJiZwZWVrKDEpLnZhbHVlPT09J2lkJyl7aWYoYWRzYWZlX21heSl7ZXJyb3IoJ0FEc2FmZSB2aW9sYXRpb24uJyxuZXh0dG9rZW4pO30KYWR2YW5jZSgnQURTQUZFJyk7YWR2YW5jZSgnLicpO2FkdmFuY2UoJ2lkJyk7YWR2YW5jZSgnKCcpO2lmKG5leHR0b2tlbi52YWx1ZSE9PWFkc2FmZV9pZCl7ZXJyb3IoJ0FEc2FmZSB2aW9sYXRpb246IGlkIGRvZXMgbm90IG1hdGNoLicsbmV4dHRva2VuKTt9CmFkdmFuY2UoJyhzdHJpbmcpJyk7YWR2YW5jZSgnKScpO2FkdmFuY2UoJzsnKTthZHNhZmVfbWF5PXRydWU7fQpicmVhaztjYXNlJ2xpYic6aWYobmV4dHRva2VuLnZhbHVlPT09J0FEU0FGRScpe2FkdmFuY2UoJ0FEU0FGRScpO2FkdmFuY2UoJy4nKTthZHZhbmNlKCdsaWInKTthZHZhbmNlKCcoJyk7YWR2YW5jZSgnKHN0cmluZyknKTtjb21tYSgpO2Y9cGFyc2UoMCk7aWYoZi5pZCE9PSdmdW5jdGlvbicpe2Vycm9yKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGxpYiBtdXN0IGJlIGEgZnVuY3Rpb24uJyxmKTt9CnA9Zi5mdW5jdFsnKHBhcmFtcyknXTtwPXAmJnAuam9pbignLCAnKTtpZihwJiZwIT09J2xpYicpe2Vycm9yKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixmLCcobGliKScsJygnK3ArJyknKTt9CmFkdmFuY2UoJyknKTthZHZhbmNlKCc7Jyk7cmV0dXJuIGE7fWVsc2V7ZXJyb3IoIkFEc2FmZSBsaWIgdmlvbGF0aW9uLiIpO319fQp3aGlsZSghbmV4dHRva2VuLnJlYWNoJiZuZXh0dG9rZW4uaWQhPT0nKGVuZCknKXtpZihuZXh0dG9rZW4uaWQ9PT0nOycpe3dhcm5pbmcoIlVubmVjZXNzYXJ5IHNlbWljb2xvbi4iKTthZHZhbmNlKCc7Jyk7fWVsc2V7YS5wdXNoKHN0YXRlbWVudCgpKTt9fQpyZXR1cm4gYTt9CmZ1bmN0aW9uIGJsb2NrKGYpe3ZhciBhLGI9aW5ibG9jayxvbGRfaW5kZW50PWluZGVudCxzPXNjb3BlLHQ7aW5ibG9jaz1mO3Njb3BlPU9iamVjdC5jcmVhdGUoc2NvcGUpO25vbmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7dD1uZXh0dG9rZW47aWYobmV4dHRva2VuLmlkPT09J3snKXthZHZhbmNlKCd7Jyk7aWYobmV4dHRva2VuLmlkIT09J30nfHx0b2tlbi5saW5lIT09bmV4dHRva2VuLmxpbmUpe2luZGVudCs9b3B0aW9uLmluZGVudDt3aGlsZSghZiYmbmV4dHRva2VuLmZyb20+aW5kZW50KXtpbmRlbnQrPW9wdGlvbi5pbmRlbnQ7fQppZighZil7dXNlX3N0cmljdCgpO30KYT1zdGF0ZW1lbnRzKCk7aW5kZW50LT1vcHRpb24uaW5kZW50O2luZGVudGF0aW9uKCk7fQphZHZhbmNlKCd9Jyx0KTtpbmRlbnQ9b2xkX2luZGVudDt9ZWxzZXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ3snLG5leHR0b2tlbi52YWx1ZSk7bm9yZWFjaD10cnVlO2E9W3N0YXRlbWVudCgpXTtub3JlYWNoPWZhbHNlO30KZnVuY3RbJyh2ZXJiKSddPW51bGw7c2NvcGU9cztpbmJsb2NrPWI7cmV0dXJuIGE7fQpmdW5jdGlvbiBpZFZhbHVlKCl7cmV0dXJuIHRoaXM7fQpmdW5jdGlvbiBjb3VudE1lbWJlcihtKXtpZihtZW1iZXJzT25seSYmdHlwZW9mIG1lbWJlcnNPbmx5W21dIT09J2Jvb2xlYW4nKXt3YXJuaW5nKCJVbmV4cGVjdGVkIC8qbWVtYmVyICd7YX0nLiIsdG9rZW4sbSk7fQppZih0eXBlb2YgbWVtYmVyW21dPT09J251bWJlcicpe21lbWJlclttXSs9MTt9ZWxzZXttZW1iZXJbbV09MTt9fQpmdW5jdGlvbiBub3RlX2ltcGxpZWQodG9rZW4pe3ZhciBuYW1lPXRva2VuLnZhbHVlLGxpbmU9dG9rZW4ubGluZSxhPWltcGxpZWRbbmFtZV07aWYodHlwZW9mIGE9PT0nZnVuY3Rpb24nKXthPWZhbHNlO30KaWYoIWEpe2E9W2xpbmVdO2ltcGxpZWRbbmFtZV09YTt9ZWxzZSBpZihhW2EubGVuZ3RoLTFdIT09bGluZSl7YS5wdXNoKGxpbmUpO319CmZ1bmN0aW9uIGNzc05hbWUoKXtpZihuZXh0dG9rZW4uaWRlbnRpZmllcil7YWR2YW5jZSgpO3JldHVybiB0cnVlO319CmZ1bmN0aW9uIGNzc051bWJlcigpe2lmKG5leHR0b2tlbi5pZD09PSctJyl7YWR2YW5jZSgnLScpO2FkamFjZW50KCk7bm9saW5lYnJlYWsoKTt9CmlmKG5leHR0b2tlbi50eXBlPT09JyhudW1iZXIpJyl7YWR2YW5jZSgnKG51bWJlciknKTtyZXR1cm4gdHJ1ZTt9fQpmdW5jdGlvbiBjc3NTdHJpbmcoKXtpZihuZXh0dG9rZW4udHlwZT09PScoc3RyaW5nKScpe2FkdmFuY2UoKTtyZXR1cm4gdHJ1ZTt9fQpmdW5jdGlvbiBjc3NDb2xvcigpe3ZhciBpLG51bWJlcjtpZihuZXh0dG9rZW4uaWRlbnRpZmllcil7aWYobmV4dHRva2VuLnZhbHVlPT09J3JnYicpe2FkdmFuY2UoKTthZHZhbmNlKCcoJyk7Zm9yKGk9MDtpPDM7aSs9MSl7aWYoaSl7YWR2YW5jZSgnLCcpO30KbnVtYmVyPW5leHR0b2tlbi52YWx1ZTtpZihuZXh0dG9rZW4udHlwZSE9PScobnVtYmVyKSd8fG51bWJlcjwwKXt3YXJuaW5nKCJFeHBlY3RlZCBhIHBvc2l0aXZlIG51bWJlciBhbmQgaW5zdGVhZCBzYXcgJ3thfSciLG5leHR0b2tlbixudW1iZXIpO2FkdmFuY2UoKTt9ZWxzZXthZHZhbmNlKCk7aWYobmV4dHRva2VuLmlkPT09JyUnKXthZHZhbmNlKCclJyk7aWYobnVtYmVyPjEwMCl7d2FybmluZygiRXhwZWN0ZWQgYSBwZXJjZW50YWdlIGFuZCBpbnN0ZWFkIHNhdyAne2F9JyIsdG9rZW4sbnVtYmVyKTt9fWVsc2V7aWYobnVtYmVyPjI1NSl7d2FybmluZygiRXhwZWN0ZWQgYSBzbWFsbCBudW1iZXIgYW5kIGluc3RlYWQgc2F3ICd7YX0nIix0b2tlbixudW1iZXIpO319fX0KYWR2YW5jZSgnKScpO3JldHVybiB0cnVlO31lbHNlIGlmKGNzc0NvbG9yRGF0YVtuZXh0dG9rZW4udmFsdWVdPT09dHJ1ZSl7YWR2YW5jZSgpO3JldHVybiB0cnVlO319ZWxzZSBpZihuZXh0dG9rZW4udHlwZT09PScoY29sb3IpJyl7YWR2YW5jZSgpO3JldHVybiB0cnVlO30KcmV0dXJuIGZhbHNlO30KZnVuY3Rpb24gY3NzTGVuZ3RoKCl7aWYobmV4dHRva2VuLmlkPT09Jy0nKXthZHZhbmNlKCctJyk7YWRqYWNlbnQoKTtub2xpbmVicmVhaygpO30KaWYobmV4dHRva2VuLnR5cGU9PT0nKG51bWJlciknKXthZHZhbmNlKCk7aWYobmV4dHRva2VuLnR5cGUhPT0nKHN0cmluZyknJiZjc3NMZW5ndGhEYXRhW25leHR0b2tlbi52YWx1ZV09PT10cnVlKXthZGphY2VudCgpO2FkdmFuY2UoKTt9ZWxzZSBpZigrdG9rZW4udmFsdWUhPT0wKXt3YXJuaW5nKCJFeHBlY3RlZCBhIGxpbmVhciB1bml0IGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KcmV0dXJuIHRydWU7fQpyZXR1cm4gZmFsc2U7fQpmdW5jdGlvbiBjc3NMaW5lSGVpZ2h0KCl7aWYobmV4dHRva2VuLmlkPT09Jy0nKXthZHZhbmNlKCctJyk7YWRqYWNlbnQoKTt9CmlmKG5leHR0b2tlbi50eXBlPT09JyhudW1iZXIpJyl7YWR2YW5jZSgpO2lmKG5leHR0b2tlbi50eXBlIT09JyhzdHJpbmcpJyYmY3NzTGVuZ3RoRGF0YVtuZXh0dG9rZW4udmFsdWVdPT09dHJ1ZSl7YWRqYWNlbnQoKTthZHZhbmNlKCk7fQpyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc1dpZHRoKCl7aWYobmV4dHRva2VuLmlkZW50aWZpZXIpe3N3aXRjaChuZXh0dG9rZW4udmFsdWUpe2Nhc2UndGhpbic6Y2FzZSdtZWRpdW0nOmNhc2UndGhpY2snOmFkdmFuY2UoKTtyZXR1cm4gdHJ1ZTt9fWVsc2V7cmV0dXJuIGNzc0xlbmd0aCgpO319CmZ1bmN0aW9uIGNzc01hcmdpbigpe2lmKG5leHR0b2tlbi5pZGVudGlmaWVyKXtpZihuZXh0dG9rZW4udmFsdWU9PT0nYXV0bycpe2FkdmFuY2UoKTtyZXR1cm4gdHJ1ZTt9fWVsc2V7cmV0dXJuIGNzc0xlbmd0aCgpO319CmZ1bmN0aW9uIGNzc0F0dHIoKXtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J2F0dHInKXthZHZhbmNlKCk7YWR2YW5jZSgnKCcpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYSBuYW1lIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO2FkdmFuY2UoJyknKTtyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc0NvbW1hTGlzdCgpe3doaWxlKG5leHR0b2tlbi5pZCE9PSc7Jyl7aWYoIWNzc05hbWUoKSYmIWNzc1N0cmluZygpKXt3YXJuaW5nKCJFeHBlY3RlZCBhIG5hbWUgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQppZihuZXh0dG9rZW4uaWQhPT0nLCcpe3JldHVybiB0cnVlO30KY29tbWEoKTt9fQpmdW5jdGlvbiBjc3NDb3VudGVyKCl7aWYobmV4dHRva2VuLmlkZW50aWZpZXImJm5leHR0b2tlbi52YWx1ZT09PSdjb3VudGVyJyl7YWR2YW5jZSgpO2FkdmFuY2UoJygnKTtpZighbmV4dHRva2VuLmlkZW50aWZpZXIpe30KYWR2YW5jZSgpO2lmKG5leHR0b2tlbi5pZD09PScsJyl7Y29tbWEoKTtpZihuZXh0dG9rZW4udHlwZSE9PScoc3RyaW5nKScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgc3RyaW5nIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO30KYWR2YW5jZSgnKScpO3JldHVybiB0cnVlO30KaWYobmV4dHRva2VuLmlkZW50aWZpZXImJm5leHR0b2tlbi52YWx1ZT09PSdjb3VudGVycycpe2FkdmFuY2UoKTthZHZhbmNlKCcoJyk7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyKXt3YXJuaW5nKCJFeHBlY3RlZCBhIG5hbWUgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7aWYobmV4dHRva2VuLmlkPT09JywnKXtjb21tYSgpO2lmKG5leHR0b2tlbi50eXBlIT09JyhzdHJpbmcpJyl7d2FybmluZygiRXhwZWN0ZWQgYSBzdHJpbmcgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7fQppZihuZXh0dG9rZW4uaWQ9PT0nLCcpe2NvbW1hKCk7aWYobmV4dHRva2VuLnR5cGUhPT0nKHN0cmluZyknKXt3YXJuaW5nKCJFeHBlY3RlZCBhIHN0cmluZyBhbmQgaW5zdGVhZCBzYXcgJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmFkdmFuY2UoKTt9CmFkdmFuY2UoJyknKTtyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc1NoYXBlKCl7dmFyIGk7aWYobmV4dHRva2VuLmlkZW50aWZpZXImJm5leHR0b2tlbi52YWx1ZT09PSdyZWN0Jyl7YWR2YW5jZSgpO2FkdmFuY2UoJygnKTtmb3IoaT0wO2k8NDtpKz0xKXtpZighY3NzTGVuZ3RoKCkpe3dhcm5pbmcoIkV4cGVjdGVkIGEgbnVtYmVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO2JyZWFrO319CmFkdmFuY2UoJyknKTtyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc1VybCgpe3ZhciBjLHVybDtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J3VybCcpe25leHR0b2tlbj1sZXgucmFuZ2UoJygnLCcpJyk7dXJsPW5leHR0b2tlbi52YWx1ZTtjPXVybC5jaGFyQXQoMCk7aWYoYz09PSciJ3x8Yz09PSdcJycpe2lmKHVybC5zbGljZSgtMSkhPT1jKXt3YXJuaW5nKCJCYWQgdXJsIHN0cmluZy4iKTt9ZWxzZXt1cmw9dXJsLnNsaWNlKDEsLTEpO2lmKHVybC5pbmRleE9mKGMpPj0wKXt3YXJuaW5nKCJCYWQgdXJsIHN0cmluZy4iKTt9fX0KaWYoIXVybCl7d2FybmluZygiTWlzc2luZyB1cmwuIik7fQphZHZhbmNlKCk7aWYob3B0aW9uLnNhZmUmJnV4LnRlc3QodXJsKSl7ZXJyb3IoIkFEc2FmZSBVUkwgdmlvbGF0aW9uLiIpO30KdXJscy5wdXNoKHVybCk7cmV0dXJuIHRydWU7fQpyZXR1cm4gZmFsc2U7fQpjc3NBbnk9W2Nzc1VybCxmdW5jdGlvbigpe2Zvcig7Oyl7aWYobmV4dHRva2VuLmlkZW50aWZpZXIpe3N3aXRjaChuZXh0dG9rZW4udmFsdWUudG9Mb3dlckNhc2UoKSl7Y2FzZSd1cmwnOmNzc1VybCgpO2JyZWFrO2Nhc2UnZXhwcmVzc2lvbic6d2FybmluZygiVW5leHBlY3RlZCBleHByZXNzaW9uICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7YWR2YW5jZSgpO2JyZWFrO2RlZmF1bHQ6YWR2YW5jZSgpO319ZWxzZXtpZihuZXh0dG9rZW4uaWQ9PT0nOyd8fG5leHR0b2tlbi5pZD09PSchJ3x8bmV4dHRva2VuLmlkPT09JyhlbmQpJ3x8bmV4dHRva2VuLmlkPT09J30nKXtyZXR1cm4gdHJ1ZTt9CmFkdmFuY2UoKTt9fX1dO2Nzc0JvcmRlclN0eWxlPVsnbm9uZScsJ2hpZGRlbicsJ2RvdHRlZCcsJ2Rhc2hlZCcsJ3NvbGlkJywnZG91YmxlJywncmlkZ2UnLCdpbnNldCcsJ291dHNldCddO2Nzc0JyZWFrPVsnYXV0bycsJ2Fsd2F5cycsJ2F2b2lkJywnbGVmdCcsJ3JpZ2h0J107Y3NzT3ZlcmZsb3c9WydhdXRvJywnaGlkZGVuJywnc2Nyb2xsJywndmlzaWJsZSddO2Nzc0F0dHJpYnV0ZURhdGE9e2JhY2tncm91bmQ6W3RydWUsJ2JhY2tncm91bmQtYXR0YWNobWVudCcsJ2JhY2tncm91bmQtY29sb3InLCdiYWNrZ3JvdW5kLWltYWdlJywnYmFja2dyb3VuZC1wb3NpdGlvbicsJ2JhY2tncm91bmQtcmVwZWF0J10sJ2JhY2tncm91bmQtYXR0YWNobWVudCc6WydzY3JvbGwnLCdmaXhlZCddLCdiYWNrZ3JvdW5kLWNvbG9yJzpbJ3RyYW5zcGFyZW50Jyxjc3NDb2xvcl0sJ2JhY2tncm91bmQtaW1hZ2UnOlsnbm9uZScsY3NzVXJsXSwnYmFja2dyb3VuZC1wb3NpdGlvbic6WzIsW2Nzc0xlbmd0aCwndG9wJywnYm90dG9tJywnbGVmdCcsJ3JpZ2h0JywnY2VudGVyJ11dLCdiYWNrZ3JvdW5kLXJlcGVhdCc6WydyZXBlYXQnLCdyZXBlYXQteCcsJ3JlcGVhdC15Jywnbm8tcmVwZWF0J10sJ2JvcmRlcic6W3RydWUsJ2JvcmRlci1jb2xvcicsJ2JvcmRlci1zdHlsZScsJ2JvcmRlci13aWR0aCddLCdib3JkZXItYm90dG9tJzpbdHJ1ZSwnYm9yZGVyLWJvdHRvbS1jb2xvcicsJ2JvcmRlci1ib3R0b20tc3R5bGUnLCdib3JkZXItYm90dG9tLXdpZHRoJ10sJ2JvcmRlci1ib3R0b20tY29sb3InOmNzc0NvbG9yLCdib3JkZXItYm90dG9tLXN0eWxlJzpjc3NCb3JkZXJTdHlsZSwnYm9yZGVyLWJvdHRvbS13aWR0aCc6Y3NzV2lkdGgsJ2JvcmRlci1jb2xsYXBzZSc6Wydjb2xsYXBzZScsJ3NlcGFyYXRlJ10sJ2JvcmRlci1jb2xvcic6Wyd0cmFuc3BhcmVudCcsNCxjc3NDb2xvcl0sJ2JvcmRlci1sZWZ0JzpbdHJ1ZSwnYm9yZGVyLWxlZnQtY29sb3InLCdib3JkZXItbGVmdC1zdHlsZScsJ2JvcmRlci1sZWZ0LXdpZHRoJ10sJ2JvcmRlci1sZWZ0LWNvbG9yJzpjc3NDb2xvciwnYm9yZGVyLWxlZnQtc3R5bGUnOmNzc0JvcmRlclN0eWxlLCdib3JkZXItbGVmdC13aWR0aCc6Y3NzV2lkdGgsJ2JvcmRlci1yaWdodCc6W3RydWUsJ2JvcmRlci1yaWdodC1jb2xvcicsJ2JvcmRlci1yaWdodC1zdHlsZScsJ2JvcmRlci1yaWdodC13aWR0aCddLCdib3JkZXItcmlnaHQtY29sb3InOmNzc0NvbG9yLCdib3JkZXItcmlnaHQtc3R5bGUnOmNzc0JvcmRlclN0eWxlLCdib3JkZXItcmlnaHQtd2lkdGgnOmNzc1dpZHRoLCdib3JkZXItc3BhY2luZyc6WzIsY3NzTGVuZ3RoXSwnYm9yZGVyLXN0eWxlJzpbNCxjc3NCb3JkZXJTdHlsZV0sJ2JvcmRlci10b3AnOlt0cnVlLCdib3JkZXItdG9wLWNvbG9yJywnYm9yZGVyLXRvcC1zdHlsZScsJ2JvcmRlci10b3Atd2lkdGgnXSwnYm9yZGVyLXRvcC1jb2xvcic6Y3NzQ29sb3IsJ2JvcmRlci10b3Atc3R5bGUnOmNzc0JvcmRlclN0eWxlLCdib3JkZXItdG9wLXdpZHRoJzpjc3NXaWR0aCwnYm9yZGVyLXdpZHRoJzpbNCxjc3NXaWR0aF0sYm90dG9tOltjc3NMZW5ndGgsJ2F1dG8nXSwnY2FwdGlvbi1zaWRlJzpbJ2JvdHRvbScsJ2xlZnQnLCdyaWdodCcsJ3RvcCddLGNsZWFyOlsnYm90aCcsJ2xlZnQnLCdub25lJywncmlnaHQnXSxjbGlwOltjc3NTaGFwZSwnYXV0byddLGNvbG9yOmNzc0NvbG9yLGNvbnRlbnQ6WydvcGVuLXF1b3RlJywnY2xvc2UtcXVvdGUnLCduby1vcGVuLXF1b3RlJywnbm8tY2xvc2UtcXVvdGUnLGNzc1N0cmluZyxjc3NVcmwsY3NzQ291bnRlcixjc3NBdHRyXSwnY291bnRlci1pbmNyZW1lbnQnOltjc3NOYW1lLCdub25lJ10sJ2NvdW50ZXItcmVzZXQnOltjc3NOYW1lLCdub25lJ10sY3Vyc29yOltjc3NVcmwsJ2F1dG8nLCdjcm9zc2hhaXInLCdkZWZhdWx0JywnZS1yZXNpemUnLCdoZWxwJywnbW92ZScsJ24tcmVzaXplJywnbmUtcmVzaXplJywnbnctcmVzaXplJywncG9pbnRlcicsJ3MtcmVzaXplJywnc2UtcmVzaXplJywnc3ctcmVzaXplJywndy1yZXNpemUnLCd0ZXh0Jywnd2FpdCddLGRpcmVjdGlvbjpbJ2x0cicsJ3J0bCddLGRpc3BsYXk6WydibG9jaycsJ2NvbXBhY3QnLCdpbmxpbmUnLCdpbmxpbmUtYmxvY2snLCdpbmxpbmUtdGFibGUnLCdsaXN0LWl0ZW0nLCdtYXJrZXInLCdub25lJywncnVuLWluJywndGFibGUnLCd0YWJsZS1jYXB0aW9uJywndGFibGUtY2VsbCcsJ3RhYmxlLWNvbHVtbicsJ3RhYmxlLWNvbHVtbi1ncm91cCcsJ3RhYmxlLWZvb3Rlci1ncm91cCcsJ3RhYmxlLWhlYWRlci1ncm91cCcsJ3RhYmxlLXJvdycsJ3RhYmxlLXJvdy1ncm91cCddLCdlbXB0eS1jZWxscyc6WydzaG93JywnaGlkZSddLCdmbG9hdCc6WydsZWZ0Jywnbm9uZScsJ3JpZ2h0J10sZm9udDpbJ2NhcHRpb24nLCdpY29uJywnbWVudScsJ21lc3NhZ2UtYm94Jywnc21hbGwtY2FwdGlvbicsJ3N0YXR1cy1iYXInLHRydWUsJ2ZvbnQtc2l6ZScsJ2ZvbnQtc3R5bGUnLCdmb250LXdlaWdodCcsJ2ZvbnQtZmFtaWx5J10sJ2ZvbnQtZmFtaWx5Jzpjc3NDb21tYUxpc3QsJ2ZvbnQtc2l6ZSc6Wyd4eC1zbWFsbCcsJ3gtc21hbGwnLCdzbWFsbCcsJ21lZGl1bScsJ2xhcmdlJywneC1sYXJnZScsJ3h4LWxhcmdlJywnbGFyZ2VyJywnc21hbGxlcicsY3NzTGVuZ3RoXSwnZm9udC1zaXplLWFkanVzdCc6Wydub25lJyxjc3NOdW1iZXJdLCdmb250LXN0cmV0Y2gnOlsnbm9ybWFsJywnd2lkZXInLCduYXJyb3dlcicsJ3VsdHJhLWNvbmRlbnNlZCcsJ2V4dHJhLWNvbmRlbnNlZCcsJ2NvbmRlbnNlZCcsJ3NlbWktY29uZGVuc2VkJywnc2VtaS1leHBhbmRlZCcsJ2V4cGFuZGVkJywnZXh0cmEtZXhwYW5kZWQnXSwnZm9udC1zdHlsZSc6Wydub3JtYWwnLCdpdGFsaWMnLCdvYmxpcXVlJ10sJ2ZvbnQtdmFyaWFudCc6Wydub3JtYWwnLCdzbWFsbC1jYXBzJ10sJ2ZvbnQtd2VpZ2h0JzpbJ25vcm1hbCcsJ2JvbGQnLCdib2xkZXInLCdsaWdodGVyJyxjc3NOdW1iZXJdLGhlaWdodDpbY3NzTGVuZ3RoLCdhdXRvJ10sbGVmdDpbY3NzTGVuZ3RoLCdhdXRvJ10sJ2xldHRlci1zcGFjaW5nJzpbJ25vcm1hbCcsY3NzTGVuZ3RoXSwnbGluZS1oZWlnaHQnOlsnbm9ybWFsJyxjc3NMaW5lSGVpZ2h0XSwnbGlzdC1zdHlsZSc6W3RydWUsJ2xpc3Qtc3R5bGUtaW1hZ2UnLCdsaXN0LXN0eWxlLXBvc2l0aW9uJywnbGlzdC1zdHlsZS10eXBlJ10sJ2xpc3Qtc3R5bGUtaW1hZ2UnOlsnbm9uZScsY3NzVXJsXSwnbGlzdC1zdHlsZS1wb3NpdGlvbic6WydpbnNpZGUnLCdvdXRzaWRlJ10sJ2xpc3Qtc3R5bGUtdHlwZSc6WydjaXJjbGUnLCdkaXNjJywnc3F1YXJlJywnZGVjaW1hbCcsJ2RlY2ltYWwtbGVhZGluZy16ZXJvJywnbG93ZXItcm9tYW4nLCd1cHBlci1yb21hbicsJ2xvd2VyLWdyZWVrJywnbG93ZXItYWxwaGEnLCdsb3dlci1sYXRpbicsJ3VwcGVyLWFscGhhJywndXBwZXItbGF0aW4nLCdoZWJyZXcnLCdrYXRha2FuYScsJ2hpcmFnYW5hLWlyb2hhJywna2F0YWthbmEtb3JvaGEnLCdub25lJ10sbWFyZ2luOls0LGNzc01hcmdpbl0sJ21hcmdpbi1ib3R0b20nOmNzc01hcmdpbiwnbWFyZ2luLWxlZnQnOmNzc01hcmdpbiwnbWFyZ2luLXJpZ2h0Jzpjc3NNYXJnaW4sJ21hcmdpbi10b3AnOmNzc01hcmdpbiwnbWFya2VyLW9mZnNldCc6W2Nzc0xlbmd0aCwnYXV0byddLCdtYXgtaGVpZ2h0JzpbY3NzTGVuZ3RoLCdub25lJ10sJ21heC13aWR0aCc6W2Nzc0xlbmd0aCwnbm9uZSddLCdtaW4taGVpZ2h0Jzpjc3NMZW5ndGgsJ21pbi13aWR0aCc6Y3NzTGVuZ3RoLG9wYWNpdHk6Y3NzTnVtYmVyLG91dGxpbmU6W3RydWUsJ291dGxpbmUtY29sb3InLCdvdXRsaW5lLXN0eWxlJywnb3V0bGluZS13aWR0aCddLCdvdXRsaW5lLWNvbG9yJzpbJ2ludmVydCcsY3NzQ29sb3JdLCdvdXRsaW5lLXN0eWxlJzpbJ2Rhc2hlZCcsJ2RvdHRlZCcsJ2RvdWJsZScsJ2dyb292ZScsJ2luc2V0Jywnbm9uZScsJ291dHNldCcsJ3JpZGdlJywnc29saWQnXSwnb3V0bGluZS13aWR0aCc6Y3NzV2lkdGgsb3ZlcmZsb3c6Y3NzT3ZlcmZsb3csJ292ZXJmbG93LXgnOmNzc092ZXJmbG93LCdvdmVyZmxvdy15Jzpjc3NPdmVyZmxvdyxwYWRkaW5nOls0LGNzc0xlbmd0aF0sJ3BhZGRpbmctYm90dG9tJzpjc3NMZW5ndGgsJ3BhZGRpbmctbGVmdCc6Y3NzTGVuZ3RoLCdwYWRkaW5nLXJpZ2h0Jzpjc3NMZW5ndGgsJ3BhZGRpbmctdG9wJzpjc3NMZW5ndGgsJ3BhZ2UtYnJlYWstYWZ0ZXInOmNzc0JyZWFrLCdwYWdlLWJyZWFrLWJlZm9yZSc6Y3NzQnJlYWsscG9zaXRpb246WydhYnNvbHV0ZScsJ2ZpeGVkJywncmVsYXRpdmUnLCdzdGF0aWMnXSxxdW90ZXM6WzgsY3NzU3RyaW5nXSxyaWdodDpbY3NzTGVuZ3RoLCdhdXRvJ10sJ3RhYmxlLWxheW91dCc6WydhdXRvJywnZml4ZWQnXSwndGV4dC1hbGlnbic6WydjZW50ZXInLCdqdXN0aWZ5JywnbGVmdCcsJ3JpZ2h0J10sJ3RleHQtZGVjb3JhdGlvbic6Wydub25lJywndW5kZXJsaW5lJywnb3ZlcmxpbmUnLCdsaW5lLXRocm91Z2gnLCdibGluayddLCd0ZXh0LWluZGVudCc6Y3NzTGVuZ3RoLCd0ZXh0LXNoYWRvdyc6Wydub25lJyw0LFtjc3NDb2xvcixjc3NMZW5ndGhdXSwndGV4dC10cmFuc2Zvcm0nOlsnY2FwaXRhbGl6ZScsJ3VwcGVyY2FzZScsJ2xvd2VyY2FzZScsJ25vbmUnXSx0b3A6W2Nzc0xlbmd0aCwnYXV0byddLCd1bmljb2RlLWJpZGknOlsnbm9ybWFsJywnZW1iZWQnLCdiaWRpLW92ZXJyaWRlJ10sJ3ZlcnRpY2FsLWFsaWduJzpbJ2Jhc2VsaW5lJywnYm90dG9tJywnc3ViJywnc3VwZXInLCd0b3AnLCd0ZXh0LXRvcCcsJ21pZGRsZScsJ3RleHQtYm90dG9tJyxjc3NMZW5ndGhdLHZpc2liaWxpdHk6Wyd2aXNpYmxlJywnaGlkZGVuJywnY29sbGFwc2UnXSwnd2hpdGUtc3BhY2UnOlsnbm9ybWFsJywnbm93cmFwJywncHJlJywncHJlLWxpbmUnLCdwcmUtd3JhcCcsJ2luaGVyaXQnXSx3aWR0aDpbY3NzTGVuZ3RoLCdhdXRvJ10sJ3dvcmQtc3BhY2luZyc6Wydub3JtYWwnLGNzc0xlbmd0aF0sJ3dvcmQtd3JhcCc6WydicmVhay13b3JkJywnbm9ybWFsJ10sJ3otaW5kZXgnOlsnYXV0bycsY3NzTnVtYmVyXX07ZnVuY3Rpb24gc3R5bGVBdHRyaWJ1dGUoKXt2YXIgdjt3aGlsZShuZXh0dG9rZW4uaWQ9PT0nKid8fG5leHR0b2tlbi5pZD09PScjJ3x8bmV4dHRva2VuLnZhbHVlPT09J18nKXtpZighb3B0aW9uLmNzcyl7d2FybmluZygiVW5leHBlY3RlZCAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO30KaWYobmV4dHRva2VuLmlkPT09Jy0nKXtpZighb3B0aW9uLmNzcyl7d2FybmluZygiVW5leHBlY3RlZCAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgnLScpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYSBub24tc3RhbmRhcmQgc3R5bGUgYXR0cmlidXRlIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO3JldHVybiBjc3NBbnk7fWVsc2V7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyKXt3YXJuaW5nKCJFeGNlcHRlZCBhIHN0eWxlIGF0dHJpYnV0ZSwgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fWVsc2V7aWYoaXNfb3duKGNzc0F0dHJpYnV0ZURhdGEsbmV4dHRva2VuLnZhbHVlKSl7dj1jc3NBdHRyaWJ1dGVEYXRhW25leHR0b2tlbi52YWx1ZV07fWVsc2V7dj1jc3NBbnk7aWYoIW9wdGlvbi5jc3Mpe3dhcm5pbmcoIlVucmVjb2duaXplZCBzdHlsZSBhdHRyaWJ1dGUgJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9fX0KYWR2YW5jZSgpO3JldHVybiB2O319CmZ1bmN0aW9uIHN0eWxlVmFsdWUodil7dmFyIGk9MCxuLG9uY2UsbWF0Y2gscm91bmQsc3RhcnQ9MCx2aTtzd2l0Y2godHlwZW9mIHYpe2Nhc2UnZnVuY3Rpb24nOnJldHVybiB2KCk7Y2FzZSdzdHJpbmcnOmlmKG5leHR0b2tlbi5pZGVudGlmaWVyJiZuZXh0dG9rZW4udmFsdWU9PT12KXthZHZhbmNlKCk7cmV0dXJuIHRydWU7fQpyZXR1cm4gZmFsc2U7fQpmb3IoOzspe2lmKGk+PXYubGVuZ3RoKXtyZXR1cm4gZmFsc2U7fQp2aT12W2ldO2krPTE7aWYodmk9PT10cnVlKXticmVhazt9ZWxzZSBpZih0eXBlb2Ygdmk9PT0nbnVtYmVyJyl7bj12aTt2aT12W2ldO2krPTE7fWVsc2V7bj0xO30KbWF0Y2g9ZmFsc2U7d2hpbGUobj4wKXtpZihzdHlsZVZhbHVlKHZpKSl7bWF0Y2g9dHJ1ZTtuLT0xO31lbHNle2JyZWFrO319CmlmKG1hdGNoKXtyZXR1cm4gdHJ1ZTt9fQpzdGFydD1pO29uY2U9W107Zm9yKDs7KXtyb3VuZD1mYWxzZTtmb3IoaT1zdGFydDtpPHYubGVuZ3RoO2krPTEpe2lmKCFvbmNlW2ldKXtpZihzdHlsZVZhbHVlKGNzc0F0dHJpYnV0ZURhdGFbdltpXV0pKXttYXRjaD10cnVlO3JvdW5kPXRydWU7b25jZVtpXT10cnVlO2JyZWFrO319fQppZighcm91bmQpe3JldHVybiBtYXRjaDt9fX0KZnVuY3Rpb24gc3R5bGVDaGlsZCgpe2lmKG5leHR0b2tlbi5pZD09PScobnVtYmVyKScpe2FkdmFuY2UoKTtpZihuZXh0dG9rZW4udmFsdWU9PT0nbicmJm5leHR0b2tlbi5pZGVudGlmaWVyKXthZGphY2VudCgpO2FkdmFuY2UoKTtpZihuZXh0dG9rZW4uaWQ9PT0nKycpe2FkamFjZW50KCk7YWR2YW5jZSgnKycpO2FkamFjZW50KCk7YWR2YW5jZSgnKG51bWJlciknKTt9fQpyZXR1cm47fWVsc2V7c3dpdGNoKG5leHR0b2tlbi52YWx1ZSl7Y2FzZSdvZGQnOmNhc2UnZXZlbic6aWYobmV4dHRva2VuLmlkZW50aWZpZXIpe2FkdmFuY2UoKTtyZXR1cm47fX19Cndhcm5pbmcoIlVuZXhwZWN0ZWQgdG9rZW4gJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmZ1bmN0aW9uIHN1YnN0eWxlKCl7dmFyIHY7Zm9yKDs7KXtpZihuZXh0dG9rZW4uaWQ9PT0nfSd8fG5leHR0b2tlbi5pZD09PScoZW5kKSd8fHhxdW90ZSYmbmV4dHRva2VuLmlkPT09eHF1b3RlKXtyZXR1cm47fQp3aGlsZShuZXh0dG9rZW4uaWQ9PT0nOycpe3dhcm5pbmcoIk1pc3BsYWNlZCAnOycuIik7YWR2YW5jZSgnOycpO30Kdj1zdHlsZUF0dHJpYnV0ZSgpO2FkdmFuY2UoJzonKTtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J2luaGVyaXQnKXthZHZhbmNlKCk7fWVsc2V7aWYoIXN0eWxlVmFsdWUodikpe3dhcm5pbmcoIlVuZXhwZWN0ZWQgdG9rZW4gJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTthZHZhbmNlKCk7fX0KaWYobmV4dHRva2VuLmlkPT09JyEnKXthZHZhbmNlKCchJyk7YWRqYWNlbnQoKTtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J2ltcG9ydGFudCcpe2FkdmFuY2UoKTt9ZWxzZXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ2ltcG9ydGFudCcsbmV4dHRva2VuLnZhbHVlKTt9fQppZihuZXh0dG9rZW4uaWQ9PT0nfSd8fG5leHR0b2tlbi5pZD09PXhxdW90ZSl7d2FybmluZygiTWlzc2luZyAne2F9Jy4iLG5leHR0b2tlbiwnOycpO31lbHNle2FkdmFuY2UoJzsnKTt9fX0KZnVuY3Rpb24gc3R5bGVTZWxlY3Rvcigpe2lmKG5leHR0b2tlbi5pZGVudGlmaWVyKXtpZighaXNfb3duKGh0bWx0YWcsbmV4dHRva2VuLnZhbHVlKSl7d2FybmluZygiRXhwZWN0ZWQgYSB0YWdOYW1lLCBhbmQgaW5zdGVhZCBzYXcge2F9LiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7fWVsc2V7c3dpdGNoKG5leHR0b2tlbi5pZCl7Y2FzZSc+JzpjYXNlJysnOmFkdmFuY2UoKTtzdHlsZVNlbGVjdG9yKCk7YnJlYWs7Y2FzZSc6JzphZHZhbmNlKCc6Jyk7c3dpdGNoKG5leHR0b2tlbi52YWx1ZSl7Y2FzZSdhY3RpdmUnOmNhc2UnYWZ0ZXInOmNhc2UnYmVmb3JlJzpjYXNlJ2NoZWNrZWQnOmNhc2UnZGlzYWJsZWQnOmNhc2UnZW1wdHknOmNhc2UnZW5hYmxlZCc6Y2FzZSdmaXJzdC1jaGlsZCc6Y2FzZSdmaXJzdC1sZXR0ZXInOmNhc2UnZmlyc3QtbGluZSc6Y2FzZSdmaXJzdC1vZi10eXBlJzpjYXNlJ2ZvY3VzJzpjYXNlJ2hvdmVyJzpjYXNlJ2xhc3Qtb2YtdHlwZSc6Y2FzZSdsaW5rJzpjYXNlJ29ubHktb2YtdHlwZSc6Y2FzZSdyb290JzpjYXNlJ3RhcmdldCc6Y2FzZSd2aXNpdGVkJzphZHZhbmNlKCk7YnJlYWs7Y2FzZSdsYW5nJzphZHZhbmNlKCk7YWR2YW5jZSgnKCcpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYSBsYW5nIGNvZGUsIGFuZCBpbnN0ZWFkIHNhdyA6e2F9LiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCcpJyk7YnJlYWs7Y2FzZSdudGgtY2hpbGQnOmNhc2UnbnRoLWxhc3QtY2hpbGQnOmNhc2UnbnRoLWxhc3Qtb2YtdHlwZSc6Y2FzZSdudGgtb2YtdHlwZSc6YWR2YW5jZSgpO2FkdmFuY2UoJygnKTtzdHlsZUNoaWxkKCk7YWR2YW5jZSgnKScpO2JyZWFrO2Nhc2Unbm90JzphZHZhbmNlKCk7YWR2YW5jZSgnKCcpO2lmKG5leHR0b2tlbi5pZD09PSc6JyYmcGVlaygwKS52YWx1ZT09PSdub3QnKXt3YXJuaW5nKCJOZXN0ZWQgbm90LiIpO30Kc3R5bGVTZWxlY3RvcigpO2FkdmFuY2UoJyknKTticmVhaztkZWZhdWx0Ondhcm5pbmcoIkV4cGVjdGVkIGEgcHNldWRvLCBhbmQgaW5zdGVhZCBzYXcgOnthfS4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYnJlYWs7Y2FzZScjJzphZHZhbmNlKCcjJyk7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZCwgYW5kIGluc3RlYWQgc2F3ICN7YX0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmFkdmFuY2UoKTticmVhaztjYXNlJyonOmFkdmFuY2UoJyonKTticmVhaztjYXNlJy4nOmFkdmFuY2UoJy4nKTtpZighbmV4dHRva2VuLmlkZW50aWZpZXIpe3dhcm5pbmcoIkV4cGVjdGVkIGEgY2xhc3MsIGFuZCBpbnN0ZWFkIHNhdyAjLnthfS4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO2JyZWFrO2Nhc2UnWyc6YWR2YW5jZSgnWycpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYW4gYXR0cmlidXRlLCBhbmQgaW5zdGVhZCBzYXcgW3thfV0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmFkdmFuY2UoKTtpZihuZXh0dG9rZW4uaWQ9PT0nPSd8fG5leHR0b2tlbi52YWx1ZT09PSd+PSd8fG5leHR0b2tlbi52YWx1ZT09PSckPSd8fG5leHR0b2tlbi52YWx1ZT09PSd8PSd8fG5leHR0b2tlbi5pZD09PScqPSd8fG5leHR0b2tlbi5pZD09PSdePScpe2FkdmFuY2UoKTtpZihuZXh0dG9rZW4udHlwZSE9PScoc3RyaW5nKScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgc3RyaW5nLCBhbmQgaW5zdGVhZCBzYXcge2F9LiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7fQphZHZhbmNlKCddJyk7YnJlYWs7ZGVmYXVsdDplcnJvcigiRXhwZWN0ZWQgYSBDU1Mgc2VsZWN0b3IsIGFuZCBpbnN0ZWFkIHNhdyB7YX0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9fX0KZnVuY3Rpb24gc3R5bGVQYXR0ZXJuKCl7dmFyIG5hbWU7aWYobmV4dHRva2VuLmlkPT09J3snKXt3YXJuaW5nKCJFeHBlY3RlZCBhIHN0eWxlIHBhdHRlcm4sIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4uaWQpO31lbHNlIGlmKG5leHR0b2tlbi5pZD09PSdAJyl7YWR2YW5jZSgnQCcpO25hbWU9bmV4dHRva2VuLnZhbHVlO2lmKG5leHR0b2tlbi5pZGVudGlmaWVyJiZhdHJ1bGVbbmFtZV09PT10cnVlKXthZHZhbmNlKCk7cmV0dXJuIG5hbWU7fQp3YXJuaW5nKCJFeHBlY3RlZCBhbiBhdC1ydWxlLCBhbmQgaW5zdGVhZCBzYXcgQHthfS4iLG5leHR0b2tlbixuYW1lKTt9CmZvcig7Oyl7c3R5bGVTZWxlY3RvcigpO2lmKG5leHR0b2tlbi5pZD09PSc8Lyd8fG5leHR0b2tlbi5pZD09PSd7J3x8bmV4dHRva2VuLmlkPT09JyhlbmQpJyl7cmV0dXJuJyc7fQppZihuZXh0dG9rZW4uaWQ9PT0nLCcpe2NvbW1hKCk7fX19CmZ1bmN0aW9uIHN0eWxlcygpe3ZhciBpO3doaWxlKG5leHR0b2tlbi5pZD09PSdAJyl7aT1wZWVrKCk7aWYoaS5pZGVudGlmaWVyJiZpLnZhbHVlPT09J2ltcG9ydCcpe2FkdmFuY2UoJ0AnKTthZHZhbmNlKCk7aWYoIWNzc1VybCgpKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ3VybCcsbmV4dHRva2VuLnZhbHVlKTthZHZhbmNlKCk7fQphZHZhbmNlKCc7Jyk7fWVsc2V7YnJlYWs7fX0Kd2hpbGUobmV4dHRva2VuLmlkIT09JzwvJyYmbmV4dHRva2VuLmlkIT09JyhlbmQpJyl7c3R5bGVQYXR0ZXJuKCk7eG1vZGU9J3N0eWxlcHJvcGVydHknO2lmKG5leHR0b2tlbi5pZD09PSc7Jyl7YWR2YW5jZSgnOycpO31lbHNle2FkdmFuY2UoJ3snKTtzdWJzdHlsZSgpO3htb2RlPSdzdHlsZSc7YWR2YW5jZSgnfScpO319fQpmdW5jdGlvbiBkb0JlZ2luKG4pe2lmKG4hPT0naHRtbCcmJiFvcHRpb24uZnJhZ21lbnQpe2lmKG49PT0nZGl2JyYmb3B0aW9uLmFkc2FmZSl7ZXJyb3IoIkFEU0FGRTogVXNlIHRoZSBmcmFnbWVudCBvcHRpb24uIik7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLHRva2VuLCdodG1sJyxuKTt9fQppZihvcHRpb24uYWRzYWZlKXtpZihuPT09J2h0bWwnKXtlcnJvcigiQ3VycmVudGx5LCBBRHNhZmUgZG9lcyBub3Qgb3BlcmF0ZSBvbiB3aG9sZSBIVE1MIGRvY3VtZW50cy4gSXQgb3BlcmF0ZXMgb24gPGRpdj4gZnJhZ21lbnRzIGFuZCAuanMgZmlsZXMuIix0b2tlbik7fQppZihvcHRpb24uZnJhZ21lbnQpe2lmKG4hPT0nZGl2Jyl7ZXJyb3IoIkFEc2FmZSB2aW9sYXRpb246IFdyYXAgdGhlIHdpZGdldCBpbiBhIGRpdi4iLHRva2VuKTt9fWVsc2V7ZXJyb3IoIlVzZSB0aGUgZnJhZ21lbnQgb3B0aW9uLiIsdG9rZW4pO319Cm9wdGlvbi5icm93c2VyPXRydWU7YXNzdW1lKCk7fQpmdW5jdGlvbiBkb0F0dHJpYnV0ZShuLGEsdil7dmFyIHUseDtpZihhPT09J2lkJyl7dT10eXBlb2Ygdj09PSdzdHJpbmcnP3YudG9VcHBlckNhc2UoKTonJztpZihpZHNbdV09PT10cnVlKXt3YXJuaW5nKCJEdXBsaWNhdGUgaWQ9J3thfScuIixuZXh0dG9rZW4sdik7fQppZihvcHRpb24uYWRzYWZlKXtpZihhZHNhZmVfaWQpe2lmKHYuc2xpY2UoMCxhZHNhZmVfaWQubGVuZ3RoKSE9PWFkc2FmZV9pZCl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbjogQW4gaWQgbXVzdCBoYXZlIGEgJ3thfScgcHJlZml4IixuZXh0dG9rZW4sYWRzYWZlX2lkKTt9ZWxzZSBpZighL15bQS1aXStfW0EtWl0rJC8udGVzdCh2KSl7d2FybmluZygiQURTQUZFIHZpb2xhdGlvbjogYmFkIGlkLiIpO319ZWxzZXthZHNhZmVfaWQ9djtpZighL15bQS1aXStfJC8udGVzdCh2KSl7d2FybmluZygiQURTQUZFIHZpb2xhdGlvbjogYmFkIGlkLiIpO319fQp4PXYuc2VhcmNoKGR4KTtpZih4Pj0wKXt3YXJuaW5nKCJVbmV4cGVjdGVkIGNoYXJhY3RlciAne2F9JyBpbiB7Yn0uIix0b2tlbix2LmNoYXJBdCh4KSxhKTt9Cmlkc1t1XT10cnVlO31lbHNlIGlmKGE9PT0nY2xhc3MnfHxhPT09J3R5cGUnfHxhPT09J25hbWUnKXt4PXYuc2VhcmNoKHF4KTtpZih4Pj0wKXt3YXJuaW5nKCJVbmV4cGVjdGVkIGNoYXJhY3RlciAne2F9JyBpbiB7Yn0uIix0b2tlbix2LmNoYXJBdCh4KSxhKTt9Cmlkc1t1XT10cnVlO31lbHNlIGlmKGE9PT0naHJlZid8fGE9PT0nYmFja2dyb3VuZCd8fGE9PT0nY29udGVudCd8fGE9PT0nZGF0YSd8fGEuaW5kZXhPZignc3JjJyk+PTB8fGEuaW5kZXhPZigndXJsJyk+PTApe2lmKG9wdGlvbi5zYWZlJiZ1eC50ZXN0KHYpKXtlcnJvcigiQURzYWZlIFVSTCB2aW9sYXRpb24uIik7fQp1cmxzLnB1c2godik7fWVsc2UgaWYoYT09PSdmb3InKXtpZihvcHRpb24uYWRzYWZlKXtpZihhZHNhZmVfaWQpe2lmKHYuc2xpY2UoMCxhZHNhZmVfaWQubGVuZ3RoKSE9PWFkc2FmZV9pZCl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbjogQW4gaWQgbXVzdCBoYXZlIGEgJ3thfScgcHJlZml4IixuZXh0dG9rZW4sYWRzYWZlX2lkKTt9ZWxzZSBpZighL15bQS1aXStfW0EtWl0rJC8udGVzdCh2KSl7d2FybmluZygiQURTQUZFIHZpb2xhdGlvbjogYmFkIGlkLiIpO319ZWxzZXt3YXJuaW5nKCJBRFNBRkUgdmlvbGF0aW9uOiBiYWQgaWQuIik7fX19ZWxzZSBpZihhPT09J25hbWUnKXtpZihvcHRpb24uYWRzYWZlJiZ2LmluZGV4T2YoJ18nKT49MCl7d2FybmluZygiQURzYWZlIG5hbWUgdmlvbGF0aW9uLiIpO319fQpmdW5jdGlvbiBkb1RhZyhuLGEpe3ZhciBpLHQ9aHRtbHRhZ1tuXSx4O3NyYz1mYWxzZTtpZighdCl7ZXJyb3IoIlVucmVjb2duaXplZCB0YWcgJzx7YX0+Jy4iLG5leHR0b2tlbixuPT09bi50b0xvd2VyQ2FzZSgpP246bisnIChjYXBpdGFsaXphdGlvbiBlcnJvciknKTt9CmlmKHN0YWNrLmxlbmd0aD4wKXtpZihuPT09J2h0bWwnKXtlcnJvcigiVG9vIG1hbnkgPGh0bWw+IHRhZ3MuIix0b2tlbik7fQp4PXQucGFyZW50O2lmKHgpe2lmKHguaW5kZXhPZignICcrc3RhY2tbc3RhY2subGVuZ3RoLTFdLm5hbWUrJyAnKTwwKXtlcnJvcigiQSAnPHthfT4nIG11c3QgYmUgd2l0aGluICc8e2J9PicuIix0b2tlbixuLHgpO319ZWxzZSBpZighb3B0aW9uLmFkc2FmZSYmIW9wdGlvbi5mcmFnbWVudCl7aT1zdGFjay5sZW5ndGg7ZG97aWYoaTw9MCl7ZXJyb3IoIkEgJzx7YX0+JyBtdXN0IGJlIHdpdGhpbiAnPHtifT4nLiIsdG9rZW4sbiwnYm9keScpO30KaS09MTt9d2hpbGUoc3RhY2tbaV0ubmFtZSE9PSdib2R5Jyk7fX0Kc3dpdGNoKG4pe2Nhc2UnZGl2JzppZihvcHRpb24uYWRzYWZlJiZzdGFjay5sZW5ndGg9PT0xJiYhYWRzYWZlX2lkKXt3YXJuaW5nKCJBRFNBRkUgdmlvbGF0aW9uOiBtaXNzaW5nIElEXy4iKTt9CmJyZWFrO2Nhc2Unc2NyaXB0Jzp4bW9kZT0nc2NyaXB0JzthZHZhbmNlKCc+Jyk7aW5kZW50PW5leHR0b2tlbi5mcm9tO2lmKGEubGFuZyl7d2FybmluZygibGFuZyBpcyBkZXByZWNhdGVkLiIsdG9rZW4pO30KaWYob3B0aW9uLmFkc2FmZSYmc3RhY2subGVuZ3RoIT09MSl7d2FybmluZygiQURzYWZlIHNjcmlwdCBwbGFjZW1lbnQgdmlvbGF0aW9uLiIsdG9rZW4pO30KaWYoYS5zcmMpe2lmKG9wdGlvbi5hZHNhZmUmJighYWRzYWZlX21heXx8IWFwcHJvdmVkW2Euc3JjXSkpe3dhcm5pbmcoIkFEc2FmZSB1bmFwcHJvdmVkIHNjcmlwdCBzb3VyY2UuIix0b2tlbik7fQppZihhLnR5cGUpe3dhcm5pbmcoInR5cGUgaXMgdW5uZWNlc3NhcnkuIix0b2tlbik7fX1lbHNle2lmKGFkc2FmZV93ZW50KXtlcnJvcigiQURzYWZlIHNjcmlwdCB2aW9sYXRpb24uIix0b2tlbik7fQpzdGF0ZW1lbnRzKCdzY3JpcHQnKTt9Cnhtb2RlPSdodG1sJzthZHZhbmNlKCc8LycpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlIT09J3NjcmlwdCcpe3dhcm5pbmcoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnc2NyaXB0JyxuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO3htb2RlPSdvdXRlcic7YnJlYWs7Y2FzZSdzdHlsZSc6eG1vZGU9J3N0eWxlJzthZHZhbmNlKCc+Jyk7c3R5bGVzKCk7eG1vZGU9J2h0bWwnO2FkdmFuY2UoJzwvJyk7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyJiZuZXh0dG9rZW4udmFsdWUhPT0nc3R5bGUnKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ3N0eWxlJyxuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO3htb2RlPSdvdXRlcic7YnJlYWs7Y2FzZSdpbnB1dCc6c3dpdGNoKGEudHlwZSl7Y2FzZSdyYWRpbyc6Y2FzZSdjaGVja2JveCc6Y2FzZSdidXR0b24nOmNhc2UncmVzZXQnOmNhc2Unc3VibWl0JzpicmVhaztjYXNlJ3RleHQnOmNhc2UnZmlsZSc6Y2FzZSdwYXNzd29yZCc6Y2FzZSdmaWxlJzpjYXNlJ2hpZGRlbic6Y2FzZSdpbWFnZSc6aWYob3B0aW9uLmFkc2FmZSYmYS5hdXRvY29tcGxldGUhPT0nb2ZmJyl7d2FybmluZygiQURzYWZlIGF1dG9jb21wbGV0ZSB2aW9sYXRpb24uIik7fQpicmVhaztkZWZhdWx0Ondhcm5pbmcoIkJhZCBpbnB1dCB0eXBlLiIpO30KYnJlYWs7Y2FzZSdhcHBsZXQnOmNhc2UnYm9keSc6Y2FzZSdlbWJlZCc6Y2FzZSdmcmFtZSc6Y2FzZSdmcmFtZXNldCc6Y2FzZSdoZWFkJzpjYXNlJ2lmcmFtZSc6Y2FzZSdub2VtYmVkJzpjYXNlJ25vZnJhbWVzJzpjYXNlJ29iamVjdCc6Y2FzZSdwYXJhbSc6aWYob3B0aW9uLmFkc2FmZSl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbjogRGlzYWxsb3dlZCB0YWc6ICIrbik7fQpicmVhazt9fQpmdW5jdGlvbiBjbG9zZXRhZyhuKXtyZXR1cm4nPC8nK24rJz4nO30KZnVuY3Rpb24gaHRtbCgpe3ZhciBhLGF0dHJpYnV0ZXMsZSxuLHEsdCx2LHc9b3B0aW9uLndoaXRlLHdtb2RlO3htb2RlPSdodG1sJzt4cXVvdGU9Jyc7c3RhY2s9bnVsbDtmb3IoOzspe3N3aXRjaChuZXh0dG9rZW4udmFsdWUpe2Nhc2UnPCc6eG1vZGU9J2h0bWwnO2FkdmFuY2UoJzwnKTthdHRyaWJ1dGVzPXt9O3Q9bmV4dHRva2VuO2lmKCF0LmlkZW50aWZpZXIpe3dhcm5pbmcoIkJhZCBpZGVudGlmaWVyIHthfS4iLHQsdC52YWx1ZSk7fQpuPXQudmFsdWU7aWYob3B0aW9uLmNhcCl7bj1uLnRvTG93ZXJDYXNlKCk7fQp0Lm5hbWU9bjthZHZhbmNlKCk7aWYoIXN0YWNrKXtzdGFjaz1bXTtkb0JlZ2luKG4pO30Kdj1odG1sdGFnW25dO2lmKHR5cGVvZiB2IT09J29iamVjdCcpe2Vycm9yKCJVbnJlY29nbml6ZWQgdGFnICc8e2F9PicuIix0LG4pO30KZT12LmVtcHR5O3QudHlwZT1uO2Zvcig7Oyl7aWYobmV4dHRva2VuLmlkPT09Jy8nKXthZHZhbmNlKCcvJyk7aWYobmV4dHRva2VuLmlkIT09Jz4nKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJz4nLG5leHR0b2tlbi52YWx1ZSk7fQpicmVhazt9CmlmKG5leHR0b2tlbi5pZCYmbmV4dHRva2VuLmlkLnN1YnN0cigwLDEpPT09Jz4nKXticmVhazt9CmlmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7aWYobmV4dHRva2VuLmlkPT09JyhlbmQpJ3x8bmV4dHRva2VuLmlkPT09JyhlcnJvciknKXtlcnJvcigiTWlzc2luZyAnPicuIixuZXh0dG9rZW4pO30Kd2FybmluZygiQmFkIGlkZW50aWZpZXIuIik7fQpvcHRpb24ud2hpdGU9dHJ1ZTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2E9bmV4dHRva2VuLnZhbHVlO29wdGlvbi53aGl0ZT13O2FkdmFuY2UoKTtpZighb3B0aW9uLmNhcCYmYSE9PWEudG9Mb3dlckNhc2UoKSl7d2FybmluZygiQXR0cmlidXRlICd7YX0nIG5vdCBhbGwgbG93ZXIgY2FzZS4iLG5leHR0b2tlbixhKTt9CmE9YS50b0xvd2VyQ2FzZSgpO3hxdW90ZT0nJztpZihpc19vd24oYXR0cmlidXRlcyxhKSl7d2FybmluZygiQXR0cmlidXRlICd7YX0nIHJlcGVhdGVkLiIsbmV4dHRva2VuLGEpO30KaWYoYS5zbGljZSgwLDIpPT09J29uJyl7aWYoIW9wdGlvbi5vbil7d2FybmluZygiQXZvaWQgSFRNTCBldmVudCBoYW5kbGVycy4iKTt9Cnhtb2RlPSdzY3JpcHRzdHJpbmcnO2FkdmFuY2UoJz0nKTtxPW5leHR0b2tlbi5pZDtpZihxIT09JyInJiZxIT09IiciKXtlcnJvcigiTWlzc2luZyBxdW90ZS4iKTt9CnhxdW90ZT1xO3dtb2RlPW9wdGlvbi53aGl0ZTtvcHRpb24ud2hpdGU9ZmFsc2U7YWR2YW5jZShxKTtzdGF0ZW1lbnRzKCdvbicpO29wdGlvbi53aGl0ZT13bW9kZTtpZihuZXh0dG9rZW4uaWQhPT1xKXtlcnJvcigiTWlzc2luZyBjbG9zZSBxdW90ZSBvbiBzY3JpcHQgYXR0cmlidXRlLiIpO30KeG1vZGU9J2h0bWwnO3hxdW90ZT0nJzthZHZhbmNlKHEpO3Y9ZmFsc2U7fWVsc2UgaWYoYT09PSdzdHlsZScpe3htb2RlPSdzY3JpcHRzdHJpbmcnO2FkdmFuY2UoJz0nKTtxPW5leHR0b2tlbi5pZDtpZihxIT09JyInJiZxIT09IiciKXtlcnJvcigiTWlzc2luZyBxdW90ZS4iKTt9Cnhtb2RlPSdzdHlsZXByb3BlcnR5Jzt4cXVvdGU9cTthZHZhbmNlKHEpO3N1YnN0eWxlKCk7eG1vZGU9J2h0bWwnO3hxdW90ZT0nJzthZHZhbmNlKHEpO3Y9ZmFsc2U7fWVsc2V7aWYobmV4dHRva2VuLmlkPT09Jz0nKXthZHZhbmNlKCc9Jyk7dj1uZXh0dG9rZW4udmFsdWU7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyJiZuZXh0dG9rZW4uaWQhPT0nIicmJm5leHR0b2tlbi5pZCE9PSdcJycmJm5leHR0b2tlbi50eXBlIT09JyhzdHJpbmcpJyYmbmV4dHRva2VuLnR5cGUhPT0nKG51bWJlciknJiZuZXh0dG9rZW4udHlwZSE9PScoY29sb3IpJyl7d2FybmluZygiRXhwZWN0ZWQgYW4gYXR0cmlidXRlIHZhbHVlIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHRva2VuLGEpO30KYWR2YW5jZSgpO31lbHNle3Y9dHJ1ZTt9fQphdHRyaWJ1dGVzW2FdPXY7ZG9BdHRyaWJ1dGUobixhLHYpO30KZG9UYWcobixhdHRyaWJ1dGVzKTtpZighZSl7c3RhY2sucHVzaCh0KTt9Cnhtb2RlPSdvdXRlcic7YWR2YW5jZSgnPicpO2JyZWFrO2Nhc2UnPC8nOnhtb2RlPSdodG1sJzthZHZhbmNlKCc8LycpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiQmFkIGlkZW50aWZpZXIuIik7fQpuPW5leHR0b2tlbi52YWx1ZTtpZihvcHRpb24uY2FwKXtuPW4udG9Mb3dlckNhc2UoKTt9CmFkdmFuY2UoKTtpZighc3RhY2spe2Vycm9yKCJVbmV4cGVjdGVkICd7YX0nLiIsbmV4dHRva2VuLGNsb3NldGFnKG4pKTt9CnQ9c3RhY2sucG9wKCk7aWYoIXQpe2Vycm9yKCJVbmV4cGVjdGVkICd7YX0nLiIsbmV4dHRva2VuLGNsb3NldGFnKG4pKTt9CmlmKHQubmFtZSE9PW4pe2Vycm9yKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sY2xvc2V0YWcodC5uYW1lKSxjbG9zZXRhZyhuKSk7fQppZihuZXh0dG9rZW4uaWQhPT0nPicpe2Vycm9yKCJNaXNzaW5nICd7YX0nLiIsbmV4dHRva2VuLCc+Jyk7fQp4bW9kZT0nb3V0ZXInO2FkdmFuY2UoJz4nKTticmVhaztjYXNlJzwhJzppZihvcHRpb24uc2FmZSl7d2FybmluZygiQURzYWZlIEhUTUwgdmlvbGF0aW9uLiIpO30KeG1vZGU9J2h0bWwnO2Zvcig7Oyl7YWR2YW5jZSgpO2lmKG5leHR0b2tlbi5pZD09PSc+J3x8bmV4dHRva2VuLmlkPT09JyhlbmQpJyl7YnJlYWs7fQppZihuZXh0dG9rZW4udmFsdWUuaW5kZXhPZignLS0nKT49MCl7d2FybmluZygiVW5leHBlY3RlZCAtLS4iKTt9CmlmKG5leHR0b2tlbi52YWx1ZS5pbmRleE9mKCc8Jyk+PTApe3dhcm5pbmcoIlVuZXhwZWN0ZWQgPC4iKTt9CmlmKG5leHR0b2tlbi52YWx1ZS5pbmRleE9mKCc+Jyk+PTApe3dhcm5pbmcoIlVuZXhwZWN0ZWQgPi4iKTt9fQp4bW9kZT0nb3V0ZXInO2FkdmFuY2UoJz4nKTticmVhaztjYXNlJyhlbmQpJzpyZXR1cm47ZGVmYXVsdDppZihuZXh0dG9rZW4uaWQ9PT0nKGVuZCknKXtlcnJvcigiTWlzc2luZyAne2F9Jy4iLG5leHR0b2tlbiwnPC8nK3N0YWNrW3N0YWNrLmxlbmd0aC0xXS52YWx1ZSsnPicpO31lbHNle2FkdmFuY2UoKTt9fQppZihzdGFjayYmc3RhY2subGVuZ3RoPT09MCYmKG9wdGlvbi5hZHNhZmV8fCFvcHRpb24uZnJhZ21lbnR8fG5leHR0b2tlbi5pZD09PScoZW5kKScpKXticmVhazt9fQppZihuZXh0dG9rZW4uaWQhPT0nKGVuZCknKXtlcnJvcigiVW5leHBlY3RlZCBtYXRlcmlhbCBhZnRlciB0aGUgZW5kLiIpO319CnR5cGUoJyhudW1iZXIpJyxpZFZhbHVlKTt0eXBlKCcoc3RyaW5nKScsaWRWYWx1ZSk7c3ludGF4WycoaWRlbnRpZmllciknXT17dHlwZTonKGlkZW50aWZpZXIpJyxsYnA6MCxpZGVudGlmaWVyOnRydWUsbnVkOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcy52YWx1ZSxzPXNjb3BlW3ZdLGY7aWYodHlwZW9mIHM9PT0nZnVuY3Rpb24nKXtzPXVuZGVmaW5lZDt9ZWxzZSBpZih0eXBlb2Ygcz09PSdib29sZWFuJyl7Zj1mdW5jdDtmdW5jdD1mdW5jdGlvbnNbMF07YWRkbGFiZWwodiwndmFyJyk7cz1mdW5jdDtmdW5jdD1mO30KaWYoZnVuY3Q9PT1zKXtzd2l0Y2goZnVuY3Rbdl0pe2Nhc2UndW51c2VkJzpmdW5jdFt2XT0ndmFyJzticmVhaztjYXNlJ2xhYmVsJzp3YXJuaW5nKCIne2F9JyBpcyBhIHN0YXRlbWVudCBsYWJlbC4iLHRva2VuLHYpO2JyZWFrO319ZWxzZSBpZihmdW5jdFsnKGdsb2JhbCknXSl7aWYob3B0aW9uLnVuZGVmJiZwcmVkZWZpbmVkW3ZdIT09J2Jvb2xlYW4nKXt3YXJuaW5nKCIne2F9JyBpcyBub3QgZGVmaW5lZC4iLHRva2VuLHYpO30Kbm90ZV9pbXBsaWVkKHRva2VuKTt9ZWxzZXtzd2l0Y2goZnVuY3Rbdl0pe2Nhc2UnY2xvc3VyZSc6Y2FzZSdmdW5jdGlvbic6Y2FzZSd2YXInOmNhc2UndW51c2VkJzp3YXJuaW5nKCIne2F9JyB1c2VkIG91dCBvZiBzY29wZS4iLHRva2VuLHYpO2JyZWFrO2Nhc2UnbGFiZWwnOndhcm5pbmcoIid7YX0nIGlzIGEgc3RhdGVtZW50IGxhYmVsLiIsdG9rZW4sdik7YnJlYWs7Y2FzZSdvdXRlcic6Y2FzZSdnbG9iYWwnOmJyZWFrO2RlZmF1bHQ6aWYocz09PXRydWUpe2Z1bmN0W3ZdPXRydWU7fWVsc2UgaWYocz09PW51bGwpe3dhcm5pbmcoIid7YX0nIGlzIG5vdCBhbGxvd2VkLiIsdG9rZW4sdik7bm90ZV9pbXBsaWVkKHRva2VuKTt9ZWxzZSBpZih0eXBlb2YgcyE9PSdvYmplY3QnKXtpZihvcHRpb24udW5kZWYpe3dhcm5pbmcoIid7YX0nIGlzIG5vdCBkZWZpbmVkLiIsdG9rZW4sdik7fWVsc2V7ZnVuY3Rbdl09dHJ1ZTt9Cm5vdGVfaW1wbGllZCh0b2tlbik7fWVsc2V7c3dpdGNoKHNbdl0pe2Nhc2UnZnVuY3Rpb24nOmNhc2UndmFyJzpjYXNlJ3VudXNlZCc6c1t2XT0nY2xvc3VyZSc7ZnVuY3Rbdl09c1snKGdsb2JhbCknXT8nZ2xvYmFsJzonb3V0ZXInO2JyZWFrO2Nhc2UnY2xvc3VyZSc6Y2FzZSdwYXJhbWV0ZXInOmZ1bmN0W3ZdPXNbJyhnbG9iYWwpJ10/J2dsb2JhbCc6J291dGVyJzticmVhaztjYXNlJ2xhYmVsJzp3YXJuaW5nKCIne2F9JyBpcyBhIHN0YXRlbWVudCBsYWJlbC4iLHRva2VuLHYpO319fX0KcmV0dXJuIHRoaXM7fSxsZWQ6ZnVuY3Rpb24oKXtlcnJvcigiRXhwZWN0ZWQgYW4gb3BlcmF0b3IgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fX07dHlwZSgnKHJlZ2V4cCknLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM7fSk7ZGVsaW0oJyhlbmRsaW5lKScpO2RlbGltKCcoYmVnaW4pJyk7ZGVsaW0oJyhlbmQpJykucmVhY2g9dHJ1ZTtkZWxpbSgnPC8nKS5yZWFjaD10cnVlO2RlbGltKCc8IScpO2RlbGltKCc8IS0tJyk7ZGVsaW0oJy0tPicpO2RlbGltKCcoZXJyb3IpJykucmVhY2g9dHJ1ZTtkZWxpbSgnfScpLnJlYWNoPXRydWU7ZGVsaW0oJyknKTtkZWxpbSgnXScpO2RlbGltKCciJykucmVhY2g9dHJ1ZTtkZWxpbSgiJyIpLnJlYWNoPXRydWU7ZGVsaW0oJzsnKTtkZWxpbSgnOicpLnJlYWNoPXRydWU7ZGVsaW0oJywnKTtkZWxpbSgnIycpO2RlbGltKCdAJyk7cmVzZXJ2ZSgnZWxzZScpO3Jlc2VydmUoJ2Nhc2UnKS5yZWFjaD10cnVlO3Jlc2VydmUoJ2NhdGNoJyk7cmVzZXJ2ZSgnZGVmYXVsdCcpLnJlYWNoPXRydWU7cmVzZXJ2ZSgnZmluYWxseScpO3Jlc2VydmV2YXIoJ2FyZ3VtZW50cycpO3Jlc2VydmV2YXIoJ2V2YWwnKTtyZXNlcnZldmFyKCdmYWxzZScpO3Jlc2VydmV2YXIoJ0luZmluaXR5Jyk7cmVzZXJ2ZXZhcignTmFOJyk7cmVzZXJ2ZXZhcignbnVsbCcpO3Jlc2VydmV2YXIoJ3RoaXMnKTtyZXNlcnZldmFyKCd0cnVlJyk7cmVzZXJ2ZXZhcigndW5kZWZpbmVkJyk7YXNzaWdub3AoJz0nLCdhc3NpZ24nLDIwKTthc3NpZ25vcCgnKz0nLCdhc3NpZ25hZGQnLDIwKTthc3NpZ25vcCgnLT0nLCdhc3NpZ25zdWInLDIwKTthc3NpZ25vcCgnKj0nLCdhc3NpZ25tdWx0JywyMCk7YXNzaWdub3AoJy89JywnYXNzaWduZGl2JywyMCkubnVkPWZ1bmN0aW9uKCl7ZXJyb3IoIkEgcmVndWxhciBleHByZXNzaW9uIGxpdGVyYWwgY2FuIGJlIGNvbmZ1c2VkIHdpdGggJy89Jy4iKTt9O2Fzc2lnbm9wKCclPScsJ2Fzc2lnbm1vZCcsMjApO2JpdHdpc2Vhc3NpZ25vcCgnJj0nLCdhc3NpZ25iaXRhbmQnLDIwKTtiaXR3aXNlYXNzaWdub3AoJ3w9JywnYXNzaWduYml0b3InLDIwKTtiaXR3aXNlYXNzaWdub3AoJ149JywnYXNzaWduYml0eG9yJywyMCk7Yml0d2lzZWFzc2lnbm9wKCc8PD0nLCdhc3NpZ25zaGlmdGxlZnQnLDIwKTtiaXR3aXNlYXNzaWdub3AoJz4+PScsJ2Fzc2lnbnNoaWZ0cmlnaHQnLDIwKTtiaXR3aXNlYXNzaWdub3AoJz4+Pj0nLCdhc3NpZ25zaGlmdHJpZ2h0dW5zaWduZWQnLDIwKTtpbmZpeCgnPycsZnVuY3Rpb24obGVmdCx0aGF0KXt0aGF0LmxlZnQ9bGVmdDt0aGF0LnJpZ2h0PXBhcnNlKDEwKTthZHZhbmNlKCc6Jyk7dGhhdFsnZWxzZSddPXBhcnNlKDEwKTtyZXR1cm4gdGhhdDt9LDMwKTtpbmZpeCgnfHwnLCdvcicsNDApO2luZml4KCcmJicsJ2FuZCcsNTApO2JpdHdpc2UoJ3wnLCdiaXRvcicsNzApO2JpdHdpc2UoJ14nLCdiaXR4b3InLDgwKTtiaXR3aXNlKCcmJywnYml0YW5kJyw5MCk7cmVsYXRpb24oJz09JyxmdW5jdGlvbihsZWZ0LHJpZ2h0KXtpZihvcHRpb24uZXFlcWVxKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIix0aGlzLCc9PT0nLCc9PScpO31lbHNlIGlmKGlzUG9vclJlbGF0aW9uKGxlZnQpKXt3YXJuaW5nKCJVc2UgJ3thfScgdG8gY29tcGFyZSB3aXRoICd7Yn0nLiIsdGhpcywnPT09JyxsZWZ0LnZhbHVlKTt9ZWxzZSBpZihpc1Bvb3JSZWxhdGlvbihyaWdodCkpe3dhcm5pbmcoIlVzZSAne2F9JyB0byBjb21wYXJlIHdpdGggJ3tifScuIix0aGlzLCc9PT0nLHJpZ2h0LnZhbHVlKTt9CnJldHVybiB0aGlzO30pO3JlbGF0aW9uKCc9PT0nKTtyZWxhdGlvbignIT0nLGZ1bmN0aW9uKGxlZnQscmlnaHQpe2lmKG9wdGlvbi5lcWVxZXEpe3dhcm5pbmcoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLHRoaXMsJyE9PScsJyE9Jyk7fWVsc2UgaWYoaXNQb29yUmVsYXRpb24obGVmdCkpe3dhcm5pbmcoIlVzZSAne2F9JyB0byBjb21wYXJlIHdpdGggJ3tifScuIix0aGlzLCchPT0nLGxlZnQudmFsdWUpO31lbHNlIGlmKGlzUG9vclJlbGF0aW9uKHJpZ2h0KSl7d2FybmluZygiVXNlICd7YX0nIHRvIGNvbXBhcmUgd2l0aCAne2J9Jy4iLHRoaXMsJyE9PScscmlnaHQudmFsdWUpO30KcmV0dXJuIHRoaXM7fSk7cmVsYXRpb24oJyE9PScpO3JlbGF0aW9uKCc8Jyk7cmVsYXRpb24oJz4nKTtyZWxhdGlvbignPD0nKTtyZWxhdGlvbignPj0nKTtiaXR3aXNlKCc8PCcsJ3NoaWZ0bGVmdCcsMTIwKTtiaXR3aXNlKCc+PicsJ3NoaWZ0cmlnaHQnLDEyMCk7Yml0d2lzZSgnPj4+Jywnc2hpZnRyaWdodHVuc2lnbmVkJywxMjApO2luZml4KCdpbicsJ2luJywxMjApO2luZml4KCdpbnN0YW5jZW9mJywnaW5zdGFuY2VvZicsMTIwKTtpbmZpeCgnKycsZnVuY3Rpb24obGVmdCx0aGF0KXt2YXIgcmlnaHQ9cGFyc2UoMTMwKTtpZihsZWZ0JiZyaWdodCYmbGVmdC5pZD09PScoc3RyaW5nKScmJnJpZ2h0LmlkPT09JyhzdHJpbmcpJyl7bGVmdC52YWx1ZSs9cmlnaHQudmFsdWU7bGVmdC5jaGFyYWN0ZXI9cmlnaHQuY2hhcmFjdGVyO2lmKGp4LnRlc3QobGVmdC52YWx1ZSkpe3dhcm5pbmcoIkphdmFTY3JpcHQgVVJMLiIsbGVmdCk7fQpyZXR1cm4gbGVmdDt9CnRoYXQubGVmdD1sZWZ0O3RoYXQucmlnaHQ9cmlnaHQ7cmV0dXJuIHRoYXQ7fSwxMzApO3ByZWZpeCgnKycsJ251bScpO2luZml4KCctJywnc3ViJywxMzApO3ByZWZpeCgnLScsJ25lZycpO2luZml4KCcqJywnbXVsdCcsMTQwKTtpbmZpeCgnLycsJ2RpdicsMTQwKTtpbmZpeCgnJScsJ21vZCcsMTQwKTtzdWZmaXgoJysrJywncG9zdGluYycpO3ByZWZpeCgnKysnLCdwcmVpbmMnKTtzeW50YXhbJysrJ10uZXhwcz10cnVlO3N1ZmZpeCgnLS0nLCdwb3N0ZGVjJyk7cHJlZml4KCctLScsJ3ByZWRlYycpO3N5bnRheFsnLS0nXS5leHBzPXRydWU7cHJlZml4KCdkZWxldGUnLGZ1bmN0aW9uKCl7dmFyIHA9cGFyc2UoMCk7aWYoIXB8fChwLmlkIT09Jy4nJiZwLmlkIT09J1snKSl7d2FybmluZygiRXhwZWN0ZWQgJ3thfScgYW5kIGluc3RlYWQgc2F3ICd7Yn0nLiIsbmV4dHRva2VuLCcuJyxuZXh0dG9rZW4udmFsdWUpO30KdGhpcy5maXJzdD1wO3JldHVybiB0aGlzO30pLmV4cHM9dHJ1ZTtwcmVmaXgoJ34nLGZ1bmN0aW9uKCl7aWYob3B0aW9uLmJpdHdpc2Upe3dhcm5pbmcoIlVuZXhwZWN0ZWQgJ3thfScuIix0aGlzLCd+Jyk7fQpwYXJzZSgxNTApO3JldHVybiB0aGlzO30pO3ByZWZpeCgnIScsZnVuY3Rpb24oKXt0aGlzLnJpZ2h0PXBhcnNlKDE1MCk7dGhpcy5hcml0eT0ndW5hcnknO2lmKGJhbmdbdGhpcy5yaWdodC5pZF09PT10cnVlKXt3YXJuaW5nKCJDb25mdXNpbmcgdXNlIG9mICd7YX0nLiIsdGhpcywnIScpO30KcmV0dXJuIHRoaXM7fSk7cHJlZml4KCd0eXBlb2YnLCd0eXBlb2YnKTtwcmVmaXgoJ25ldycsZnVuY3Rpb24oKXt2YXIgYz1wYXJzZSgxNTUpLGk7aWYoYyYmYy5pZCE9PSdmdW5jdGlvbicpe2lmKGMuaWRlbnRpZmllcil7Y1snbmV3J109dHJ1ZTtzd2l0Y2goYy52YWx1ZSl7Y2FzZSdPYmplY3QnOndhcm5pbmcoIlVzZSB0aGUgb2JqZWN0IGxpdGVyYWwgbm90YXRpb24ge30uIix0b2tlbik7YnJlYWs7Y2FzZSdBcnJheSc6aWYobmV4dHRva2VuLmlkIT09JygnKXt3YXJuaW5nKCJVc2UgdGhlIGFycmF5IGxpdGVyYWwgbm90YXRpb24gW10uIix0b2tlbik7fWVsc2V7YWR2YW5jZSgnKCcpO2lmKG5leHR0b2tlbi5pZD09PScpJyl7d2FybmluZygiVXNlIHRoZSBhcnJheSBsaXRlcmFsIG5vdGF0aW9uIFtdLiIsdG9rZW4pO31lbHNle2k9cGFyc2UoMCk7Yy5kaW1lbnNpb249aTtpZigoaS5pZD09PScobnVtYmVyKScmJi9bLitcLUVlXS8udGVzdChpLnZhbHVlKSl8fChpLmlkPT09Jy0nJiYhaS5yaWdodCl8fGkuaWQ9PT0nKHN0cmluZyknfHxpLmlkPT09J1snfHxpLmlkPT09J3snfHxpLmlkPT09J3RydWUnfHxpLmlkPT09J2ZhbHNlJ3x8aS5pZD09PSdudWxsJ3x8aS5pZD09PSd1bmRlZmluZWQnfHxpLmlkPT09J0luZmluaXR5Jyl7d2FybmluZygiVXNlIHRoZSBhcnJheSBsaXRlcmFsIG5vdGF0aW9uIFtdLiIsdG9rZW4pO30KaWYobmV4dHRva2VuLmlkIT09JyknKXtlcnJvcigiVXNlIHRoZSBhcnJheSBsaXRlcmFsIG5vdGF0aW9uIFtdLiIsdG9rZW4pO319CmFkdmFuY2UoJyknKTt9CnRoaXMuZmlyc3Q9YztyZXR1cm4gdGhpcztjYXNlJ051bWJlcic6Y2FzZSdTdHJpbmcnOmNhc2UnQm9vbGVhbic6Y2FzZSdNYXRoJzpjYXNlJ0pTT04nOndhcm5pbmcoIkRvIG5vdCB1c2Uge2F9IGFzIGEgY29uc3RydWN0b3IuIix0b2tlbixjLnZhbHVlKTticmVhaztjYXNlJ0Z1bmN0aW9uJzppZighb3B0aW9uLmV2aWwpe3dhcm5pbmcoIlRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBldmFsLiIpO30KYnJlYWs7Y2FzZSdEYXRlJzpjYXNlJ1JlZ0V4cCc6YnJlYWs7ZGVmYXVsdDppZihjLmlkIT09J2Z1bmN0aW9uJyl7aT1jLnZhbHVlLnN1YnN0cigwLDEpO2lmKG9wdGlvbi5uZXdjYXAmJihpPCdBJ3x8aT4nWicpKXt3YXJuaW5nKCJBIGNvbnN0cnVjdG9yIG5hbWUgc2hvdWxkIHN0YXJ0IHdpdGggYW4gdXBwZXJjYXNlIGxldHRlci4iLHRva2VuKTt9fX19ZWxzZXtpZihjLmlkIT09Jy4nJiZjLmlkIT09J1snJiZjLmlkIT09JygnKXt3YXJuaW5nKCJCYWQgY29uc3RydWN0b3IuIix0b2tlbik7fX19ZWxzZXt3YXJuaW5nKCJXZWlyZCBjb25zdHJ1Y3Rpb24uIERlbGV0ZSAnbmV3Jy4iLHRoaXMpO30KYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtpZihuZXh0dG9rZW4uaWQhPT0nKCcpe3dhcm5pbmcoIk1pc3NpbmcgJygpJyBpbnZva2luZyBhIGNvbnN0cnVjdG9yLiIpO30KdGhpcy5maXJzdD1jO3JldHVybiB0aGlzO30pO3N5bnRheFsnbmV3J10uZXhwcz10cnVlO2luZml4KCcuJyxmdW5jdGlvbihsZWZ0LHRoYXQpe2FkamFjZW50KHByZXZ0b2tlbix0b2tlbik7dmFyIG09aWRlbnRpZmllcigpO2lmKHR5cGVvZiBtPT09J3N0cmluZycpe2NvdW50TWVtYmVyKG0pO30KdGhhdC5sZWZ0PWxlZnQ7dGhhdC5yaWdodD1tO2lmKCFvcHRpb24uZXZpbCYmbGVmdCYmbGVmdC52YWx1ZT09PSdkb2N1bWVudCcmJihtPT09J3dyaXRlJ3x8bT09PSd3cml0ZWxuJykpe3dhcm5pbmcoImRvY3VtZW50LndyaXRlIGNhbiBiZSBhIGZvcm0gb2YgZXZhbC4iLGxlZnQpO31lbHNlIGlmKG9wdGlvbi5hZHNhZmUpe2lmKGxlZnQmJmxlZnQudmFsdWU9PT0nQURTQUZFJyl7aWYobT09PSdpZCd8fG09PT0nbGliJyl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbi4iLHRoYXQpO31lbHNlIGlmKG09PT0nZ28nKXtpZih4bW9kZSE9PSdzY3JpcHQnKXt3YXJuaW5nKCJBRHNhZmUgdmlvbGF0aW9uLiIsdGhhdCk7fWVsc2UgaWYoYWRzYWZlX3dlbnR8fG5leHR0b2tlbi5pZCE9PScoJ3x8cGVlaygwKS5pZCE9PScoc3RyaW5nKSd8fHBlZWsoMCkudmFsdWUhPT1hZHNhZmVfaWR8fHBlZWsoMSkuaWQhPT0nLCcpe2Vycm9yKCJBRHNhZmUgdmlvbGF0aW9uOiBnby4iLHRoYXQpO30KYWRzYWZlX3dlbnQ9dHJ1ZTthZHNhZmVfbWF5PWZhbHNlO319fQppZighb3B0aW9uLmV2aWwmJihtPT09J2V2YWwnfHxtPT09J2V4ZWNTY3JpcHQnKSl7d2FybmluZygnZXZhbCBpcyBldmlsLicpO31lbHNlIGlmKG9wdGlvbi5zYWZlKXtmb3IoOzspe2lmKGJhbm5lZFttXT09PXRydWUpe3dhcm5pbmcoIkFEc2FmZSByZXN0cmljdGVkIHdvcmQgJ3thfScuIix0b2tlbixtKTt9CmlmKHR5cGVvZiBwcmVkZWZpbmVkW2xlZnQudmFsdWVdIT09J2Jvb2xlYW4nfHxuZXh0dG9rZW4uaWQ9PT0nKCcpe2JyZWFrO30KaWYoc3RhbmRhcmRfbWVtYmVyW21dPT09dHJ1ZSl7aWYobmV4dHRva2VuLmlkPT09Jy4nKXt3YXJuaW5nKCJBRHNhZmUgdmlvbGF0aW9uLiIsdGhhdCk7fQpicmVhazt9CmlmKG5leHR0b2tlbi5pZCE9PScuJyl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbi4iLHRoYXQpO2JyZWFrO30KYWR2YW5jZSgnLicpO3Rva2VuLmxlZnQ9dGhhdDt0b2tlbi5yaWdodD1tO3RoYXQ9dG9rZW47bT1pZGVudGlmaWVyKCk7aWYodHlwZW9mIG09PT0nc3RyaW5nJyl7Y291bnRNZW1iZXIobSk7fX19CnJldHVybiB0aGF0O30sMTYwLHRydWUpO2luZml4KCcoJyxmdW5jdGlvbihsZWZ0LHRoYXQpe2FkamFjZW50KHByZXZ0b2tlbix0b2tlbik7bm9zcGFjZSgpO3ZhciBuPTAscD1bXTtpZihsZWZ0KXtpZihsZWZ0LnR5cGU9PT0nKGlkZW50aWZpZXIpJyl7aWYobGVmdC52YWx1ZS5tYXRjaCgvXltBLVpdKFtBLVowLTlfJF0qW2Etel1bQS1aYS16MC05XyRdKik/JC8pKXtpZihsZWZ0LnZhbHVlIT09J051bWJlcicmJmxlZnQudmFsdWUhPT0nU3RyaW5nJyYmbGVmdC52YWx1ZSE9PSdCb29sZWFuJyYmbGVmdC52YWx1ZSE9PSdEYXRlJyl7aWYobGVmdC52YWx1ZT09PSdNYXRoJyl7d2FybmluZygiTWF0aCBpcyBub3QgYSBmdW5jdGlvbi4iLGxlZnQpO31lbHNlIGlmKG9wdGlvbi5uZXdjYXApe3dhcm5pbmcoIk1pc3NpbmcgJ25ldycgcHJlZml4IHdoZW4gaW52b2tpbmcgYSBjb25zdHJ1Y3Rvci4iLGxlZnQpO319fX1lbHNlIGlmKGxlZnQuaWQ9PT0nLicpe2lmKG9wdGlvbi5zYWZlJiZsZWZ0LmxlZnQudmFsdWU9PT0nTWF0aCcmJmxlZnQucmlnaHQ9PT0ncmFuZG9tJyl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbi4iLGxlZnQpO319fQppZihuZXh0dG9rZW4uaWQhPT0nKScpe2Zvcig7Oyl7cFtwLmxlbmd0aF09cGFyc2UoMTApO24rPTE7aWYobmV4dHRva2VuLmlkIT09JywnKXticmVhazt9CmNvbW1hKCk7fX0KYWR2YW5jZSgnKScpO2lmKG9wdGlvbi5pbW1lZCYmbGVmdC5pZD09PSdmdW5jdGlvbicmJm5leHR0b2tlbi5pZCE9PScpJyl7d2FybmluZygiV3JhcCB0aGUgZW50aXJlIGltbWVkaWF0ZSBmdW5jdGlvbiBpbnZvY2F0aW9uIGluIHBhcmVucy4iLHRoYXQpO30Kbm9zcGFjZShwcmV2dG9rZW4sdG9rZW4pO2lmKHR5cGVvZiBsZWZ0PT09J29iamVjdCcpe2lmKGxlZnQudmFsdWU9PT0ncGFyc2VJbnQnJiZuPT09MSl7d2FybmluZygiTWlzc2luZyByYWRpeCBwYXJhbWV0ZXIuIixsZWZ0KTt9CmlmKCFvcHRpb24uZXZpbCl7aWYobGVmdC52YWx1ZT09PSdldmFsJ3x8bGVmdC52YWx1ZT09PSdGdW5jdGlvbid8fGxlZnQudmFsdWU9PT0nZXhlY1NjcmlwdCcpe3dhcm5pbmcoImV2YWwgaXMgZXZpbC4iLGxlZnQpO31lbHNlIGlmKHBbMF0mJnBbMF0uaWQ9PT0nKHN0cmluZyknJiYobGVmdC52YWx1ZT09PSdzZXRUaW1lb3V0J3x8bGVmdC52YWx1ZT09PSdzZXRJbnRlcnZhbCcpKXt3YXJuaW5nKCJJbXBsaWVkIGV2YWwgaXMgZXZpbC4gUGFzcyBhIGZ1bmN0aW9uIGluc3RlYWQgb2YgYSBzdHJpbmcuIixsZWZ0KTt9fQppZighbGVmdC5pZGVudGlmaWVyJiZsZWZ0LmlkIT09Jy4nJiZsZWZ0LmlkIT09J1snJiZsZWZ0LmlkIT09JygnJiZsZWZ0LmlkIT09JyYmJyYmbGVmdC5pZCE9PSd8fCcmJmxlZnQuaWQhPT0nPycpe3dhcm5pbmcoIkJhZCBpbnZvY2F0aW9uLiIsbGVmdCk7fX0KdGhhdC5sZWZ0PWxlZnQ7cmV0dXJuIHRoYXQ7fSwxNTUsdHJ1ZSkuZXhwcz10cnVlO3ByZWZpeCgnKCcsZnVuY3Rpb24oKXtub3NwYWNlKCk7dmFyIHY9cGFyc2UoMCk7YWR2YW5jZSgnKScsdGhpcyk7bm9zcGFjZShwcmV2dG9rZW4sdG9rZW4pO2lmKG9wdGlvbi5pbW1lZCYmdi5pZD09PSdmdW5jdGlvbicpe2lmKG5leHR0b2tlbi5pZD09PScoJyl7d2FybmluZygiTW92ZSB0aGUgaW52b2NhdGlvbiBpbnRvIHRoZSBwYXJlbnMgdGhhdCBjb250YWluIHRoZSBmdW5jdGlvbi4iLG5leHR0b2tlbik7fWVsc2V7d2FybmluZygiRG8gbm90IHdyYXAgZnVuY3Rpb24gbGl0ZXJhbHMgaW4gcGFyZW5zIHVubGVzcyB0aGV5IGFyZSB0byBiZSBpbW1lZGlhdGVseSBpbnZva2VkLiIsdGhpcyk7fX0KcmV0dXJuIHY7fSk7aW5maXgoJ1snLGZ1bmN0aW9uKGxlZnQsdGhhdCl7bm9zcGFjZSgpO3ZhciBlPXBhcnNlKDApLHM7aWYoZSYmZS50eXBlPT09JyhzdHJpbmcpJyl7aWYob3B0aW9uLnNhZmUmJmJhbm5lZFtlLnZhbHVlXT09PXRydWUpe3dhcm5pbmcoIkFEc2FmZSByZXN0cmljdGVkIHdvcmQgJ3thfScuIix0aGF0LGUudmFsdWUpO31lbHNlIGlmKCFvcHRpb24uZXZpbCYmKGUudmFsdWU9PT0nZXZhbCd8fGUudmFsdWU9PT0nZXhlY1NjcmlwdCcpKXt3YXJuaW5nKCJldmFsIGlzIGV2aWwuIix0aGF0KTt9ZWxzZSBpZihvcHRpb24uc2FmZSYmKGUudmFsdWUuY2hhckF0KDApPT09J18nfHxlLnZhbHVlLmNoYXJBdCgwKT09PSctJykpe3dhcm5pbmcoIkFEc2FmZSByZXN0cmljdGVkIHN1YnNjcmlwdCAne2F9Jy4iLHRoYXQsZS52YWx1ZSk7fQpjb3VudE1lbWJlcihlLnZhbHVlKTtpZighb3B0aW9uLnN1YiYmaXgudGVzdChlLnZhbHVlKSl7cz1zeW50YXhbZS52YWx1ZV07aWYoIXN8fCFzLnJlc2VydmVkKXt3YXJuaW5nKCJbJ3thfSddIGlzIGJldHRlciB3cml0dGVuIGluIGRvdCBub3RhdGlvbi4iLGUsZS52YWx1ZSk7fX19ZWxzZSBpZighZXx8ZS50eXBlIT09JyhudW1iZXIpJ3x8ZS52YWx1ZTwwKXtpZihvcHRpb24uc2FmZSl7d2FybmluZygnQURzYWZlIHN1YnNjcmlwdGluZy4nKTt9fQphZHZhbmNlKCddJyx0aGF0KTtub3NwYWNlKHByZXZ0b2tlbix0b2tlbik7dGhhdC5sZWZ0PWxlZnQ7dGhhdC5yaWdodD1lO3JldHVybiB0aGF0O30sMTYwLHRydWUpO3ByZWZpeCgnWycsZnVuY3Rpb24oKXt2YXIgYj10b2tlbi5saW5lIT09bmV4dHRva2VuLmxpbmU7dGhpcy5maXJzdD1bXTtpZihiKXtpbmRlbnQrPW9wdGlvbi5pbmRlbnQ7aWYobmV4dHRva2VuLmZyb209PT1pbmRlbnQrb3B0aW9uLmluZGVudCl7aW5kZW50Kz1vcHRpb24uaW5kZW50O319CndoaWxlKG5leHR0b2tlbi5pZCE9PScoZW5kKScpe3doaWxlKG5leHR0b2tlbi5pZD09PScsJyl7d2FybmluZygiRXh0cmEgY29tbWEuIik7YWR2YW5jZSgnLCcpO30KaWYobmV4dHRva2VuLmlkPT09J10nKXticmVhazt9CmlmKGImJnRva2VuLmxpbmUhPT1uZXh0dG9rZW4ubGluZSl7aW5kZW50YXRpb24oKTt9CnRoaXMuZmlyc3QucHVzaChwYXJzZSgxMCkpO2lmKG5leHR0b2tlbi5pZD09PScsJyl7Y29tbWEoKTtpZihuZXh0dG9rZW4uaWQ9PT0nXScpe3dhcm5pbmcoIkV4dHJhIGNvbW1hLiIsdG9rZW4pO2JyZWFrO319ZWxzZXticmVhazt9fQppZihiKXtpbmRlbnQtPW9wdGlvbi5pbmRlbnQ7aW5kZW50YXRpb24oKTt9CmFkdmFuY2UoJ10nLHRoaXMpO3JldHVybiB0aGlzO30sMTYwKTsoZnVuY3Rpb24oeCl7eC5udWQ9ZnVuY3Rpb24oKXt2YXIgYixpLHMsc2Vlbj17fTtiPXRva2VuLmxpbmUhPT1uZXh0dG9rZW4ubGluZTtpZihiKXtpbmRlbnQrPW9wdGlvbi5pbmRlbnQ7aWYobmV4dHRva2VuLmZyb209PT1pbmRlbnQrb3B0aW9uLmluZGVudCl7aW5kZW50Kz1vcHRpb24uaW5kZW50O319CmZvcig7Oyl7aWYobmV4dHRva2VuLmlkPT09J30nKXticmVhazt9CmlmKGIpe2luZGVudGF0aW9uKCk7fQppPW9wdGlvbmFsaWRlbnRpZmllcih0cnVlKTtpZighaSl7aWYobmV4dHRva2VuLmlkPT09JyhzdHJpbmcpJyl7aT1uZXh0dG9rZW4udmFsdWU7aWYoaXgudGVzdChpKSl7cz1zeW50YXhbaV07fQphZHZhbmNlKCk7fWVsc2UgaWYobmV4dHRva2VuLmlkPT09JyhudW1iZXIpJyl7aT1uZXh0dG9rZW4udmFsdWUudG9TdHJpbmcoKTthZHZhbmNlKCk7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnfScsbmV4dHRva2VuLnZhbHVlKTt9fQppZihzZWVuW2ldPT09dHJ1ZSl7d2FybmluZygiRHVwbGljYXRlIG1lbWJlciAne2F9Jy4iLG5leHR0b2tlbixpKTt9CnNlZW5baV09dHJ1ZTtjb3VudE1lbWJlcihpKTthZHZhbmNlKCc6Jyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtwYXJzZSgxMCk7aWYobmV4dHRva2VuLmlkPT09JywnKXtjb21tYSgpO2lmKG5leHR0b2tlbi5pZD09PScsJ3x8bmV4dHRva2VuLmlkPT09J30nKXt3YXJuaW5nKCJFeHRyYSBjb21tYS4iLHRva2VuKTt9fWVsc2V7YnJlYWs7fX0KaWYoYil7aW5kZW50LT1vcHRpb24uaW5kZW50O2luZGVudGF0aW9uKCk7fQphZHZhbmNlKCd9Jyx0aGlzKTtyZXR1cm4gdGhpczt9O3guZnVkPWZ1bmN0aW9uKCl7ZXJyb3IoIkV4cGVjdGVkIHRvIHNlZSBhIHN0YXRlbWVudCBhbmQgaW5zdGVhZCBzYXcgYSBibG9jay4iLHRva2VuKTt9O30oZGVsaW0oJ3snKSkpO2Z1bmN0aW9uIHZhcnN0YXRlbWVudChwcmVmaXgpe3ZhciBpZCxuYW1lLHZhbHVlO2lmKGZ1bmN0Wycob25ldmFyKSddJiZvcHRpb24ub25ldmFyKXt3YXJuaW5nKCJUb28gbWFueSB2YXIgc3RhdGVtZW50cy4iKTt9ZWxzZSBpZighZnVuY3RbJyhnbG9iYWwpJ10pe2Z1bmN0Wycob25ldmFyKSddPXRydWU7fQp0aGlzLmZpcnN0PVtdO2Zvcig7Oyl7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtpZD1pZGVudGlmaWVyKCk7aWYoZnVuY3RbJyhnbG9iYWwpJ10mJnByZWRlZmluZWRbaWRdPT09ZmFsc2Upe3dhcm5pbmcoIlJlZGVmaW5pdGlvbiBvZiAne2F9Jy4iLHRva2VuLGlkKTt9CmFkZGxhYmVsKGlkLCd1bnVzZWQnKTtpZihwcmVmaXgpe2JyZWFrO30KbmFtZT10b2tlbjt0aGlzLmZpcnN0LnB1c2godG9rZW4pO2lmKG5leHR0b2tlbi5pZD09PSc9Jyl7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTthZHZhbmNlKCc9Jyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtpZihuZXh0dG9rZW4uaWQ9PT0ndW5kZWZpbmVkJyl7d2FybmluZygiSXQgaXMgbm90IG5lY2Vzc2FyeSB0byBpbml0aWFsaXplICd7YX0nIHRvICd1bmRlZmluZWQnLiIsdG9rZW4saWQpO30KaWYocGVlaygwKS5pZD09PSc9JyYmbmV4dHRva2VuLmlkZW50aWZpZXIpe2Vycm9yKCJWYXJpYWJsZSB7YX0gd2FzIG5vdCBkZWNsYXJlZCBjb3JyZWN0bHkuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CnZhbHVlPXBhcnNlKDApO25hbWUuZmlyc3Q9dmFsdWU7fQppZihuZXh0dG9rZW4uaWQhPT0nLCcpe2JyZWFrO30KY29tbWEoKTt9CnJldHVybiB0aGlzO30Kc3RtdCgndmFyJyx2YXJzdGF0ZW1lbnQpLmV4cHM9dHJ1ZTtmdW5jdGlvbiBmdW5jdGlvbnBhcmFtcygpe3ZhciBpLHQ9bmV4dHRva2VuLHA9W107YWR2YW5jZSgnKCcpO25vc3BhY2UoKTtpZihuZXh0dG9rZW4uaWQ9PT0nKScpe2FkdmFuY2UoJyknKTtub3NwYWNlKHByZXZ0b2tlbix0b2tlbik7cmV0dXJuO30KZm9yKDs7KXtpPWlkZW50aWZpZXIoKTtwLnB1c2goaSk7YWRkbGFiZWwoaSwncGFyYW1ldGVyJyk7aWYobmV4dHRva2VuLmlkPT09JywnKXtjb21tYSgpO31lbHNle2FkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtyZXR1cm4gcDt9fX0KZnVuY3Rpb24gZG9GdW5jdGlvbihpKXt2YXIgcz1zY29wZTtzY29wZT1PYmplY3QuY3JlYXRlKHMpO2Z1bmN0PXsnKG5hbWUpJzppfHwnIicrYW5vbm5hbWUrJyInLCcobGluZSknOm5leHR0b2tlbi5saW5lLCcoY29udGV4dCknOmZ1bmN0LCcoYnJlYWthZ2UpJzowLCcobG9vcGFnZSknOjAsJyhzY29wZSknOnNjb3BlfTt0b2tlbi5mdW5jdD1mdW5jdDtmdW5jdGlvbnMucHVzaChmdW5jdCk7aWYoaSl7YWRkbGFiZWwoaSwnZnVuY3Rpb24nKTt9CmZ1bmN0WycocGFyYW1zKSddPWZ1bmN0aW9ucGFyYW1zKCk7YmxvY2soZmFsc2UpO3Njb3BlPXM7ZnVuY3RbJyhsYXN0KSddPXRva2VuLmxpbmU7ZnVuY3Q9ZnVuY3RbJyhjb250ZXh0KSddO30KYmxvY2tzdG10KCdmdW5jdGlvbicsZnVuY3Rpb24oKXtpZihpbmJsb2NrKXt3YXJuaW5nKCJGdW5jdGlvbiBzdGF0ZW1lbnRzIGNhbm5vdCBiZSBwbGFjZWQgaW4gYmxvY2tzLiBVc2UgYSBmdW5jdGlvbiBleHByZXNzaW9uIG9yIG1vdmUgdGhlIHN0YXRlbWVudCB0byB0aGUgdG9wIG9mIHRoZSBvdXRlciBmdW5jdGlvbi4iLHRva2VuKTt9CnZhciBpPWlkZW50aWZpZXIoKTthZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2FkZGxhYmVsKGksJ3VudXNlZCcpO2RvRnVuY3Rpb24oaSk7aWYobmV4dHRva2VuLmlkPT09JygnJiZuZXh0dG9rZW4ubGluZT09PXRva2VuLmxpbmUpe2Vycm9yKCJGdW5jdGlvbiBzdGF0ZW1lbnRzIGFyZSBub3QgaW52b2NhYmxlLiBXcmFwIHRoZSB3aG9sZSBmdW5jdGlvbiBpbnZvY2F0aW9uIGluIHBhcmVucy4iKTt9CnJldHVybiB0aGlzO30pO3ByZWZpeCgnZnVuY3Rpb24nLGZ1bmN0aW9uKCl7dmFyIGk9b3B0aW9uYWxpZGVudGlmaWVyKCk7aWYoaSl7YWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt9ZWxzZXtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO30KZG9GdW5jdGlvbihpKTtpZihmdW5jdFsnKGxvb3BhZ2UpJ10mJm5leHR0b2tlbi5pZCE9PScoJyl7d2FybmluZygiQmUgY2FyZWZ1bCB3aGVuIG1ha2luZyBmdW5jdGlvbnMgd2l0aGluIGEgbG9vcC4gQ29uc2lkZXIgcHV0dGluZyB0aGUgZnVuY3Rpb24gaW4gYSBjbG9zdXJlLiIpO30KcmV0dXJuIHRoaXM7fSk7YmxvY2tzdG10KCdpZicsZnVuY3Rpb24oKXt2YXIgdD1uZXh0dG9rZW47YWR2YW5jZSgnKCcpO25vbmFkamFjZW50KHRoaXMsdCk7bm9zcGFjZSgpO3BhcnNlKDIwKTtpZihuZXh0dG9rZW4uaWQ9PT0nPScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBhbmQgaW5zdGVhZCBzYXcgYW4gYXNzaWdubWVudC4iKTthZHZhbmNlKCc9Jyk7cGFyc2UoMjApO30KYWR2YW5jZSgnKScsdCk7bm9zcGFjZShwcmV2dG9rZW4sdG9rZW4pO2Jsb2NrKHRydWUpO2lmKG5leHR0b2tlbi5pZD09PSdlbHNlJyl7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTthZHZhbmNlKCdlbHNlJyk7aWYobmV4dHRva2VuLmlkPT09J2lmJ3x8bmV4dHRva2VuLmlkPT09J3N3aXRjaCcpe3N0YXRlbWVudCh0cnVlKTt9ZWxzZXtibG9jayh0cnVlKTt9fQpyZXR1cm4gdGhpczt9KTtibG9ja3N0bXQoJ3RyeScsZnVuY3Rpb24oKXt2YXIgYixlLHM7aWYob3B0aW9uLmFkc2FmZSl7d2FybmluZygiQURzYWZlIHRyeSB2aW9sYXRpb24uIix0aGlzKTt9CmJsb2NrKGZhbHNlKTtpZihuZXh0dG9rZW4uaWQ9PT0nY2F0Y2gnKXthZHZhbmNlKCdjYXRjaCcpO25vbmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7YWR2YW5jZSgnKCcpO3M9c2NvcGU7c2NvcGU9T2JqZWN0LmNyZWF0ZShzKTtlPW5leHR0b2tlbi52YWx1ZTtpZihuZXh0dG9rZW4udHlwZSE9PScoaWRlbnRpZmllciknKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixlKTt9ZWxzZXthZGRsYWJlbChlLCdleGNlcHRpb24nKTt9CmFkdmFuY2UoKTthZHZhbmNlKCcpJyk7YmxvY2soZmFsc2UpO2I9dHJ1ZTtzY29wZT1zO30KaWYobmV4dHRva2VuLmlkPT09J2ZpbmFsbHknKXthZHZhbmNlKCdmaW5hbGx5Jyk7YmxvY2soZmFsc2UpO3JldHVybjt9ZWxzZSBpZighYil7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnY2F0Y2gnLG5leHR0b2tlbi52YWx1ZSk7fQpyZXR1cm4gdGhpczt9KTtibG9ja3N0bXQoJ3doaWxlJyxmdW5jdGlvbigpe3ZhciB0PW5leHR0b2tlbjtmdW5jdFsnKGJyZWFrYWdlKSddKz0xO2Z1bmN0WycobG9vcGFnZSknXSs9MTthZHZhbmNlKCcoJyk7bm9uYWRqYWNlbnQodGhpcyx0KTtub3NwYWNlKCk7cGFyc2UoMjApO2lmKG5leHR0b2tlbi5pZD09PSc9Jyl7d2FybmluZygiRXhwZWN0ZWQgYSBjb25kaXRpb25hbCBleHByZXNzaW9uIGFuZCBpbnN0ZWFkIHNhdyBhbiBhc3NpZ25tZW50LiIpO2FkdmFuY2UoJz0nKTtwYXJzZSgyMCk7fQphZHZhbmNlKCcpJyx0KTtub3NwYWNlKHByZXZ0b2tlbix0b2tlbik7YmxvY2sodHJ1ZSk7ZnVuY3RbJyhicmVha2FnZSknXS09MTtmdW5jdFsnKGxvb3BhZ2UpJ10tPTE7cmV0dXJuIHRoaXM7fSkubGFiZWxsZWQ9dHJ1ZTtyZXNlcnZlKCd3aXRoJyk7YmxvY2tzdG10KCdzd2l0Y2gnLGZ1bmN0aW9uKCl7dmFyIHQ9bmV4dHRva2VuLGc9ZmFsc2U7ZnVuY3RbJyhicmVha2FnZSknXSs9MTthZHZhbmNlKCcoJyk7bm9uYWRqYWNlbnQodGhpcyx0KTtub3NwYWNlKCk7dGhpcy5jb25kaXRpb249cGFyc2UoMjApO2FkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO3Q9bmV4dHRva2VuO2FkdmFuY2UoJ3snKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2luZGVudCs9b3B0aW9uLmluZGVudDt0aGlzLmNhc2VzPVtdO2Zvcig7Oyl7c3dpdGNoKG5leHR0b2tlbi5pZCl7Y2FzZSdjYXNlJzpzd2l0Y2goZnVuY3RbJyh2ZXJiKSddKXtjYXNlJ2JyZWFrJzpjYXNlJ2Nhc2UnOmNhc2UnY29udGludWUnOmNhc2UncmV0dXJuJzpjYXNlJ3N3aXRjaCc6Y2FzZSd0aHJvdyc6YnJlYWs7ZGVmYXVsdDp3YXJuaW5nKCJFeHBlY3RlZCBhICdicmVhaycgc3RhdGVtZW50IGJlZm9yZSAnY2FzZScuIix0b2tlbik7fQppbmRlbnRhdGlvbigtb3B0aW9uLmluZGVudCk7YWR2YW5jZSgnY2FzZScpO3RoaXMuY2FzZXMucHVzaChwYXJzZSgyMCkpO2c9dHJ1ZTthZHZhbmNlKCc6Jyk7ZnVuY3RbJyh2ZXJiKSddPSdjYXNlJzticmVhaztjYXNlJ2RlZmF1bHQnOnN3aXRjaChmdW5jdFsnKHZlcmIpJ10pe2Nhc2UnYnJlYWsnOmNhc2UnY29udGludWUnOmNhc2UncmV0dXJuJzpjYXNlJ3Rocm93JzpicmVhaztkZWZhdWx0Ondhcm5pbmcoIkV4cGVjdGVkIGEgJ2JyZWFrJyBzdGF0ZW1lbnQgYmVmb3JlICdkZWZhdWx0Jy4iLHRva2VuKTt9CmluZGVudGF0aW9uKC1vcHRpb24uaW5kZW50KTthZHZhbmNlKCdkZWZhdWx0Jyk7Zz10cnVlO2FkdmFuY2UoJzonKTticmVhaztjYXNlJ30nOmluZGVudC09b3B0aW9uLmluZGVudDtpbmRlbnRhdGlvbigpO2FkdmFuY2UoJ30nLHQpO2lmKHRoaXMuY2FzZXMubGVuZ3RoPT09MXx8dGhpcy5jb25kaXRpb24uaWQ9PT0ndHJ1ZSd8fHRoaXMuY29uZGl0aW9uLmlkPT09J2ZhbHNlJyl7d2FybmluZygiVGhpcyAnc3dpdGNoJyBzaG91bGQgYmUgYW4gJ2lmJy4iLHRoaXMpO30KZnVuY3RbJyhicmVha2FnZSknXS09MTtmdW5jdFsnKHZlcmIpJ109dW5kZWZpbmVkO3JldHVybjtjYXNlJyhlbmQpJzplcnJvcigiTWlzc2luZyAne2F9Jy4iLG5leHR0b2tlbiwnfScpO3JldHVybjtkZWZhdWx0OmlmKGcpe3N3aXRjaCh0b2tlbi5pZCl7Y2FzZScsJzplcnJvcigiRWFjaCB2YWx1ZSBzaG91bGQgaGF2ZSBpdHMgb3duIGNhc2UgbGFiZWwuIik7cmV0dXJuO2Nhc2UnOic6c3RhdGVtZW50cygpO2JyZWFrO2RlZmF1bHQ6ZXJyb3IoIk1pc3NpbmcgJzonIG9uIGEgY2FzZSBjbGF1c2UuIix0b2tlbik7fX1lbHNle2Vycm9yKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ2Nhc2UnLG5leHR0b2tlbi52YWx1ZSk7fX19fSkubGFiZWxsZWQ9dHJ1ZTtzdG10KCdkZWJ1Z2dlcicsZnVuY3Rpb24oKXtpZighb3B0aW9uLmRlYnVnKXt3YXJuaW5nKCJBbGwgJ2RlYnVnZ2VyJyBzdGF0ZW1lbnRzIHNob3VsZCBiZSByZW1vdmVkLiIpO30KcmV0dXJuIHRoaXM7fSkuZXhwcz10cnVlOyhmdW5jdGlvbigpe3ZhciB4PXN0bXQoJ2RvJyxmdW5jdGlvbigpe2Z1bmN0WycoYnJlYWthZ2UpJ10rPTE7ZnVuY3RbJyhsb29wYWdlKSddKz0xO3RoaXMuZmlyc3Q9YmxvY2sodHJ1ZSk7YWR2YW5jZSgnd2hpbGUnKTt2YXIgdD1uZXh0dG9rZW47bm9uYWRqYWNlbnQodG9rZW4sdCk7YWR2YW5jZSgnKCcpO25vc3BhY2UoKTtwYXJzZSgyMCk7aWYobmV4dHRva2VuLmlkPT09Jz0nKXt3YXJuaW5nKCJFeHBlY3RlZCBhIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gYW5kIGluc3RlYWQgc2F3IGFuIGFzc2lnbm1lbnQuIik7YWR2YW5jZSgnPScpO3BhcnNlKDIwKTt9CmFkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtmdW5jdFsnKGJyZWFrYWdlKSddLT0xO2Z1bmN0WycobG9vcGFnZSknXS09MTtyZXR1cm4gdGhpczt9KTt4LmxhYmVsbGVkPXRydWU7eC5leHBzPXRydWU7fSgpKTtibG9ja3N0bXQoJ2ZvcicsZnVuY3Rpb24oKXt2YXIgZj1vcHRpb24uZm9yaW4scyx0PW5leHR0b2tlbjtmdW5jdFsnKGJyZWFrYWdlKSddKz0xO2Z1bmN0WycobG9vcGFnZSknXSs9MTthZHZhbmNlKCcoJyk7bm9uYWRqYWNlbnQodGhpcyx0KTtub3NwYWNlKCk7aWYocGVlayhuZXh0dG9rZW4uaWQ9PT0ndmFyJz8xOjApLmlkPT09J2luJyl7aWYobmV4dHRva2VuLmlkPT09J3Zhcicpe2FkdmFuY2UoJ3ZhcicpO3ZhcnN0YXRlbWVudCh0cnVlKTt9ZWxzZXtzd2l0Y2goZnVuY3RbbmV4dHRva2VuLnZhbHVlXSl7Y2FzZSd1bnVzZWQnOmZ1bmN0W25leHR0b2tlbi52YWx1ZV09J3Zhcic7YnJlYWs7Y2FzZSd2YXInOmJyZWFrO2RlZmF1bHQ6d2FybmluZygiQmFkIGZvciBpbiB2YXJpYWJsZSAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO30KYWR2YW5jZSgnaW4nKTtwYXJzZSgyMCk7YWR2YW5jZSgnKScsdCk7cz1ibG9jayh0cnVlKTtpZighZiYmKHMubGVuZ3RoPjF8fHR5cGVvZiBzWzBdIT09J29iamVjdCd8fHNbMF0udmFsdWUhPT0naWYnKSl7d2FybmluZygiVGhlIGJvZHkgb2YgYSBmb3IgaW4gc2hvdWxkIGJlIHdyYXBwZWQgaW4gYW4gaWYgc3RhdGVtZW50IHRvIGZpbHRlciB1bndhbnRlZCBwcm9wZXJ0aWVzIGZyb20gdGhlIHByb3RvdHlwZS4iLHRoaXMpO30KZnVuY3RbJyhicmVha2FnZSknXS09MTtmdW5jdFsnKGxvb3BhZ2UpJ10tPTE7cmV0dXJuIHRoaXM7fWVsc2V7aWYobmV4dHRva2VuLmlkIT09JzsnKXtpZihuZXh0dG9rZW4uaWQ9PT0ndmFyJyl7YWR2YW5jZSgndmFyJyk7dmFyc3RhdGVtZW50KCk7fWVsc2V7Zm9yKDs7KXtwYXJzZSgwLCdmb3InKTtpZihuZXh0dG9rZW4uaWQhPT0nLCcpe2JyZWFrO30KY29tbWEoKTt9fX0Kbm9saW5lYnJlYWsodG9rZW4pO2FkdmFuY2UoJzsnKTtpZihuZXh0dG9rZW4uaWQhPT0nOycpe3BhcnNlKDIwKTtpZihuZXh0dG9rZW4uaWQ9PT0nPScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBhbmQgaW5zdGVhZCBzYXcgYW4gYXNzaWdubWVudC4iKTthZHZhbmNlKCc9Jyk7cGFyc2UoMjApO319Cm5vbGluZWJyZWFrKHRva2VuKTthZHZhbmNlKCc7Jyk7aWYobmV4dHRva2VuLmlkPT09JzsnKXtlcnJvcigiRXhwZWN0ZWQgJ3thfScgYW5kIGluc3RlYWQgc2F3ICd7Yn0nLiIsbmV4dHRva2VuLCcpJywnOycpO30KaWYobmV4dHRva2VuLmlkIT09JyknKXtmb3IoOzspe3BhcnNlKDAsJ2ZvcicpO2lmKG5leHR0b2tlbi5pZCE9PScsJyl7YnJlYWs7fQpjb21tYSgpO319CmFkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtibG9jayh0cnVlKTtmdW5jdFsnKGJyZWFrYWdlKSddLT0xO2Z1bmN0WycobG9vcGFnZSknXS09MTtyZXR1cm4gdGhpczt9fSkubGFiZWxsZWQ9dHJ1ZTtzdG10KCdicmVhaycsZnVuY3Rpb24oKXt2YXIgdj1uZXh0dG9rZW4udmFsdWU7aWYoZnVuY3RbJyhicmVha2FnZSknXT09PTApe3dhcm5pbmcoIlVuZXhwZWN0ZWQgJ3thfScuIixuZXh0dG9rZW4sdGhpcy52YWx1ZSk7fQpub2xpbmVicmVhayh0aGlzKTtpZihuZXh0dG9rZW4uaWQhPT0nOycpe2lmKHRva2VuLmxpbmU9PT1uZXh0dG9rZW4ubGluZSl7aWYoZnVuY3Rbdl0hPT0nbGFiZWwnKXt3YXJuaW5nKCIne2F9JyBpcyBub3QgYSBzdGF0ZW1lbnQgbGFiZWwuIixuZXh0dG9rZW4sdik7fWVsc2UgaWYoc2NvcGVbdl0hPT1mdW5jdCl7d2FybmluZygiJ3thfScgaXMgb3V0IG9mIHNjb3BlLiIsbmV4dHRva2VuLHYpO30KdGhpcy5maXJzdD1uZXh0dG9rZW47YWR2YW5jZSgpO319CnJlYWNoYWJsZSgnYnJlYWsnKTtyZXR1cm4gdGhpczt9KS5leHBzPXRydWU7c3RtdCgnY29udGludWUnLGZ1bmN0aW9uKCl7dmFyIHY9bmV4dHRva2VuLnZhbHVlO2lmKGZ1bmN0WycoYnJlYWthZ2UpJ109PT0wKXt3YXJuaW5nKCJVbmV4cGVjdGVkICd7YX0nLiIsbmV4dHRva2VuLHRoaXMudmFsdWUpO30Kbm9saW5lYnJlYWsodGhpcyk7aWYobmV4dHRva2VuLmlkIT09JzsnKXtpZih0b2tlbi5saW5lPT09bmV4dHRva2VuLmxpbmUpe2lmKGZ1bmN0W3ZdIT09J2xhYmVsJyl7d2FybmluZygiJ3thfScgaXMgbm90IGEgc3RhdGVtZW50IGxhYmVsLiIsbmV4dHRva2VuLHYpO31lbHNlIGlmKHNjb3BlW3ZdIT09ZnVuY3Qpe3dhcm5pbmcoIid7YX0nIGlzIG91dCBvZiBzY29wZS4iLG5leHR0b2tlbix2KTt9CnRoaXMuZmlyc3Q9bmV4dHRva2VuO2FkdmFuY2UoKTt9fQpyZWFjaGFibGUoJ2NvbnRpbnVlJyk7cmV0dXJuIHRoaXM7fSkuZXhwcz10cnVlO3N0bXQoJ3JldHVybicsZnVuY3Rpb24oKXtub2xpbmVicmVhayh0aGlzKTtpZihuZXh0dG9rZW4uaWQ9PT0nKHJlZ2V4cCknKXt3YXJuaW5nKCJXcmFwIHRoZSAvcmVnZXhwLyBsaXRlcmFsIGluIHBhcmVucyB0byBkaXNhbWJpZ3VhdGUgdGhlIHNsYXNoIG9wZXJhdG9yLiIpO30KaWYobmV4dHRva2VuLmlkIT09JzsnJiYhbmV4dHRva2VuLnJlYWNoKXtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO3RoaXMuZmlyc3Q9cGFyc2UoMjApO30KcmVhY2hhYmxlKCdyZXR1cm4nKTtyZXR1cm4gdGhpczt9KS5leHBzPXRydWU7c3RtdCgndGhyb3cnLGZ1bmN0aW9uKCl7bm9saW5lYnJlYWsodGhpcyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt0aGlzLmZpcnN0PXBhcnNlKDIwKTtyZWFjaGFibGUoJ3Rocm93Jyk7cmV0dXJuIHRoaXM7fSkuZXhwcz10cnVlO3Jlc2VydmUoJ3ZvaWQnKTtyZXNlcnZlKCdjbGFzcycpO3Jlc2VydmUoJ2NvbnN0Jyk7cmVzZXJ2ZSgnZW51bScpO3Jlc2VydmUoJ2V4cG9ydCcpO3Jlc2VydmUoJ2V4dGVuZHMnKTtyZXNlcnZlKCdpbXBvcnQnKTtyZXNlcnZlKCdzdXBlcicpO3Jlc2VydmUoJ2xldCcpO3Jlc2VydmUoJ3lpZWxkJyk7cmVzZXJ2ZSgnaW1wbGVtZW50cycpO3Jlc2VydmUoJ2ludGVyZmFjZScpO3Jlc2VydmUoJ3BhY2thZ2UnKTtyZXNlcnZlKCdwcml2YXRlJyk7cmVzZXJ2ZSgncHJvdGVjdGVkJyk7cmVzZXJ2ZSgncHVibGljJyk7cmVzZXJ2ZSgnc3RhdGljJyk7ZnVuY3Rpb24ganNvblZhbHVlKCl7ZnVuY3Rpb24ganNvbk9iamVjdCgpe3ZhciBvPXt9LHQ9bmV4dHRva2VuO2FkdmFuY2UoJ3snKTtpZihuZXh0dG9rZW4uaWQhPT0nfScpe2Zvcig7Oyl7aWYobmV4dHRva2VuLmlkPT09JyhlbmQpJyl7ZXJyb3IoIk1pc3NpbmcgJ30nIHRvIG1hdGNoICd7JyBmcm9tIGxpbmUge2F9LiIsbmV4dHRva2VuLHQubGluZSk7fWVsc2UgaWYobmV4dHRva2VuLmlkPT09J30nKXt3YXJuaW5nKCJVbmV4cGVjdGVkIGNvbW1hLiIsdG9rZW4pO2JyZWFrO31lbHNlIGlmKG5leHR0b2tlbi5pZD09PScsJyl7ZXJyb3IoIlVuZXhwZWN0ZWQgY29tbWEuIixuZXh0dG9rZW4pO31lbHNlIGlmKG5leHR0b2tlbi5pZCE9PScoc3RyaW5nKScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgc3RyaW5nIGFuZCBpbnN0ZWFkIHNhdyB7YX0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmlmKG9bbmV4dHRva2VuLnZhbHVlXT09PXRydWUpe3dhcm5pbmcoIkR1cGxpY2F0ZSBrZXkgJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9ZWxzZSBpZihuZXh0dG9rZW4udmFsdWU9PT0nX19wcm90b19fJyl7d2FybmluZygiU3R1cGlkIGtleSAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO31lbHNle29bbmV4dHRva2VuLnZhbHVlXT10cnVlO30KYWR2YW5jZSgpO2FkdmFuY2UoJzonKTtqc29uVmFsdWUoKTtpZihuZXh0dG9rZW4uaWQhPT0nLCcpe2JyZWFrO30KYWR2YW5jZSgnLCcpO319CmFkdmFuY2UoJ30nKTt9CmZ1bmN0aW9uIGpzb25BcnJheSgpe3ZhciB0PW5leHR0b2tlbjthZHZhbmNlKCdbJyk7aWYobmV4dHRva2VuLmlkIT09J10nKXtmb3IoOzspe2lmKG5leHR0b2tlbi5pZD09PScoZW5kKScpe2Vycm9yKCJNaXNzaW5nICddJyB0byBtYXRjaCAnWycgZnJvbSBsaW5lIHthfS4iLG5leHR0b2tlbix0LmxpbmUpO31lbHNlIGlmKG5leHR0b2tlbi5pZD09PSddJyl7d2FybmluZygiVW5leHBlY3RlZCBjb21tYS4iLHRva2VuKTticmVhazt9ZWxzZSBpZihuZXh0dG9rZW4uaWQ9PT0nLCcpe2Vycm9yKCJVbmV4cGVjdGVkIGNvbW1hLiIsbmV4dHRva2VuKTt9Cmpzb25WYWx1ZSgpO2lmKG5leHR0b2tlbi5pZCE9PScsJyl7YnJlYWs7fQphZHZhbmNlKCcsJyk7fX0KYWR2YW5jZSgnXScpO30Kc3dpdGNoKG5leHR0b2tlbi5pZCl7Y2FzZSd7Jzpqc29uT2JqZWN0KCk7YnJlYWs7Y2FzZSdbJzpqc29uQXJyYXkoKTticmVhaztjYXNlJ3RydWUnOmNhc2UnZmFsc2UnOmNhc2UnbnVsbCc6Y2FzZScobnVtYmVyKSc6Y2FzZScoc3RyaW5nKSc6YWR2YW5jZSgpO2JyZWFrO2Nhc2UnLSc6YWR2YW5jZSgnLScpO2lmKHRva2VuLmNoYXJhY3RlciE9PW5leHR0b2tlbi5mcm9tKXt3YXJuaW5nKCJVbmV4cGVjdGVkIHNwYWNlIGFmdGVyICctJy4iLHRva2VuKTt9CmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7YWR2YW5jZSgnKG51bWJlciknKTticmVhaztkZWZhdWx0OmVycm9yKCJFeHBlY3RlZCBhIEpTT04gdmFsdWUuIixuZXh0dG9rZW4pO319CnZhciBpdHNlbGY9ZnVuY3Rpb24ocyxvKXt2YXIgYSxpO0pTTElOVC5lcnJvcnM9W107cHJlZGVmaW5lZD1PYmplY3QuY3JlYXRlKHN0YW5kYXJkKTtpZihvKXthPW8ucHJlZGVmO2lmKGEgaW5zdGFuY2VvZiBBcnJheSl7Zm9yKGk9MDtpPGEubGVuZ3RoO2krPTEpe3ByZWRlZmluZWRbYVtpXV09dHJ1ZTt9fQppZihvLmFkc2FmZSl7by5zYWZlPXRydWU7fQppZihvLnNhZmUpe28uYnJvd3Nlcj1mYWxzZTtvLmNzcz1mYWxzZTtvLmRlYnVnPWZhbHNlO28uZGV2ZWw9ZmFsc2U7by5lcWVxZXE9dHJ1ZTtvLmV2aWw9ZmFsc2U7by5mb3Jpbj1mYWxzZTtvLm5vbWVuPXRydWU7by5vbj1mYWxzZTtvLnJoaW5vPWZhbHNlO28uc2FmZT10cnVlO28uc2lkZWJhcj1mYWxzZTtvLnN0cmljdD10cnVlO28uc3ViPWZhbHNlO28udW5kZWY9dHJ1ZTtvLndpZGdldD1mYWxzZTtwcmVkZWZpbmVkLkRhdGU9bnVsbDtwcmVkZWZpbmVkWydldmFsJ109bnVsbDtwcmVkZWZpbmVkLkZ1bmN0aW9uPW51bGw7cHJlZGVmaW5lZC5PYmplY3Q9bnVsbDtwcmVkZWZpbmVkLkFEU0FGRT1mYWxzZTtwcmVkZWZpbmVkLmxpYj1mYWxzZTt9Cm9wdGlvbj1vO31lbHNle29wdGlvbj17fTt9Cm9wdGlvbi5pbmRlbnQ9b3B0aW9uLmluZGVudHx8NDtvcHRpb24ubWF4ZXJyPW9wdGlvbi5tYXhlcnJ8fDUwO2Fkc2FmZV9pZD0nJzthZHNhZmVfbWF5PWZhbHNlO2Fkc2FmZV93ZW50PWZhbHNlO2FwcHJvdmVkPXt9O2lmKG9wdGlvbi5hcHByb3ZlZCl7Zm9yKGk9MDtpPG9wdGlvbi5hcHByb3ZlZC5sZW5ndGg7aSs9MSl7YXBwcm92ZWRbb3B0aW9uLmFwcHJvdmVkW2ldXT1vcHRpb24uYXBwcm92ZWRbaV07fX1lbHNle2FwcHJvdmVkLnRlc3Q9J3Rlc3QnO30KdGFiPScnO2ZvcihpPTA7aTxvcHRpb24uaW5kZW50O2krPTEpe3RhYis9JyAnO30KaW5kZW50PTE7Z2xvYmFsPU9iamVjdC5jcmVhdGUocHJlZGVmaW5lZCk7c2NvcGU9Z2xvYmFsO2Z1bmN0PXsnKGdsb2JhbCknOnRydWUsJyhuYW1lKSc6JyhnbG9iYWwpJywnKHNjb3BlKSc6c2NvcGUsJyhicmVha2FnZSknOjAsJyhsb29wYWdlKSc6MH07ZnVuY3Rpb25zPVtmdW5jdF07aWRzPXt9O3VybHM9W107c3JjPWZhbHNlO3htb2RlPWZhbHNlO3N0YWNrPW51bGw7bWVtYmVyPXt9O21lbWJlcnNPbmx5PW51bGw7aW1wbGllZD17fTtpbmJsb2NrPWZhbHNlO2xvb2thaGVhZD1bXTtqc29ubW9kZT1mYWxzZTt3YXJuaW5ncz0wO2xleC5pbml0KHMpO3ByZXJlZz10cnVlO3N0cmljdF9tb2RlPWZhbHNlO3ByZXZ0b2tlbj10b2tlbj1uZXh0dG9rZW49c3ludGF4WycoYmVnaW4pJ107YXNzdW1lKCk7dHJ5e2FkdmFuY2UoKTtpZihuZXh0dG9rZW4udmFsdWUuY2hhckF0KDApPT09JzwnKXtodG1sKCk7aWYob3B0aW9uLmFkc2FmZSYmIWFkc2FmZV93ZW50KXt3YXJuaW5nKCJBRHNhZmUgdmlvbGF0aW9uOiBNaXNzaW5nIEFEU0FGRS5nby4iLHRoaXMpO319ZWxzZXtzd2l0Y2gobmV4dHRva2VuLmlkKXtjYXNlJ3snOmNhc2UnWyc6b3B0aW9uLmxheGJyZWFrPXRydWU7anNvbm1vZGU9dHJ1ZTtqc29uVmFsdWUoKTticmVhaztjYXNlJ0AnOmNhc2UnKic6Y2FzZScjJzpjYXNlJy4nOmNhc2UnOic6eG1vZGU9J3N0eWxlJzthZHZhbmNlKCk7aWYodG9rZW4uaWQhPT0nQCd8fCFuZXh0dG9rZW4uaWRlbnRpZmllcnx8bmV4dHRva2VuLnZhbHVlIT09J2NoYXJzZXQnfHx0b2tlbi5saW5lIT09MXx8dG9rZW4uZnJvbSE9PTEpe2Vycm9yKCdBIGNzcyBmaWxlIHNob3VsZCBiZWdpbiB3aXRoIEBjaGFyc2V0ICJVVEYtOCI7Jyk7fQphZHZhbmNlKCk7aWYobmV4dHRva2VuLnR5cGUhPT0nKHN0cmluZyknJiZuZXh0dG9rZW4udmFsdWUhPT0nVVRGLTgnKXtlcnJvcignQSBjc3MgZmlsZSBzaG91bGQgYmVnaW4gd2l0aCBAY2hhcnNldCAiVVRGLTgiOycpO30KYWR2YW5jZSgpO2FkdmFuY2UoJzsnKTtzdHlsZXMoKTticmVhaztkZWZhdWx0OmlmKG9wdGlvbi5hZHNhZmUmJm9wdGlvbi5mcmFnbWVudCl7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnPGRpdj4nLG5leHR0b2tlbi52YWx1ZSk7fQpzdGF0ZW1lbnRzKCdsaWInKTt9fQphZHZhbmNlKCcoZW5kKScpO31jYXRjaChlKXtpZihlKXtKU0xJTlQuZXJyb3JzLnB1c2goe3JlYXNvbjplLm1lc3NhZ2UsbGluZTplLmxpbmV8fG5leHR0b2tlbi5saW5lLGNoYXJhY3RlcjplLmNoYXJhY3Rlcnx8bmV4dHRva2VuLmZyb219LG51bGwpO319CnJldHVybiBKU0xJTlQuZXJyb3JzLmxlbmd0aD09PTA7fTtmdW5jdGlvbiBpc19hcnJheShvKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShvKT09PSdbb2JqZWN0IEFycmF5XSc7fQpmdW5jdGlvbiB0b19hcnJheShvKXt2YXIgYT1bXSxrO2ZvcihrIGluIG8pe2lmKGlzX293bihvLGspKXthLnB1c2goayk7fX0KcmV0dXJuIGE7fQppdHNlbGYuZGF0YT1mdW5jdGlvbigpe3ZhciBkYXRhPXtmdW5jdGlvbnM6W119LGZ1LGdsb2JhbHMsaW1wbGllZHM9W10sZixpLGosbWVtYmVycz1bXSxuLHVudXNlZD1bXSx2O2lmKGl0c2VsZi5lcnJvcnMubGVuZ3RoKXtkYXRhLmVycm9ycz1pdHNlbGYuZXJyb3JzO30KaWYoanNvbm1vZGUpe2RhdGEuanNvbj10cnVlO30KZm9yKG4gaW4gaW1wbGllZCl7aWYoaXNfb3duKGltcGxpZWQsbikpe2ltcGxpZWRzLnB1c2goe25hbWU6bixsaW5lOmltcGxpZWRbbl19KTt9fQppZihpbXBsaWVkcy5sZW5ndGg+MCl7ZGF0YS5pbXBsaWVkcz1pbXBsaWVkczt9CmlmKHVybHMubGVuZ3RoPjApe2RhdGEudXJscz11cmxzO30KZ2xvYmFscz10b19hcnJheShzY29wZSk7aWYoZ2xvYmFscy5sZW5ndGg+MCl7ZGF0YS5nbG9iYWxzPWdsb2JhbHM7fQpmb3IoaT0xO2k8ZnVuY3Rpb25zLmxlbmd0aDtpKz0xKXtmPWZ1bmN0aW9uc1tpXTtmdT17fTtmb3Ioaj0wO2o8ZnVuY3Rpb25pY2l0eS5sZW5ndGg7ais9MSl7ZnVbZnVuY3Rpb25pY2l0eVtqXV09W107fQpmb3IobiBpbiBmKXtpZihpc19vd24oZixuKSYmbi5jaGFyQXQoMCkhPT0nKCcpe3Y9ZltuXTtpZihpc19hcnJheShmdVt2XSkpe2Z1W3ZdLnB1c2gobik7aWYodj09PSd1bnVzZWQnKXt1bnVzZWQucHVzaCh7bmFtZTpuLGxpbmU6ZlsnKGxpbmUpJ10sJ2Z1bmN0aW9uJzpmWycobmFtZSknXX0pO319fX0KZm9yKGo9MDtqPGZ1bmN0aW9uaWNpdHkubGVuZ3RoO2orPTEpe2lmKGZ1W2Z1bmN0aW9uaWNpdHlbal1dLmxlbmd0aD09PTApe2RlbGV0ZSBmdVtmdW5jdGlvbmljaXR5W2pdXTt9fQpmdS5uYW1lPWZbJyhuYW1lKSddO2Z1LnBhcmFtPWZbJyhwYXJhbXMpJ107ZnUubGluZT1mWycobGluZSknXTtmdS5sYXN0PWZbJyhsYXN0KSddO2RhdGEuZnVuY3Rpb25zLnB1c2goZnUpO30KaWYodW51c2VkLmxlbmd0aD4wKXtkYXRhLnVudXNlZD11bnVzZWQ7fQptZW1iZXJzPVtdO2ZvcihuIGluIG1lbWJlcil7aWYodHlwZW9mIG1lbWJlcltuXT09PSdudW1iZXInKXtkYXRhLm1lbWJlcj1tZW1iZXI7YnJlYWs7fX0KcmV0dXJuIGRhdGE7fTtpdHNlbGYucmVwb3J0PWZ1bmN0aW9uKG9wdGlvbil7dmFyIGRhdGE9aXRzZWxmLmRhdGEoKTt2YXIgYT1bXSxjLGUsZXJyLGYsaSxrLGwsbT0nJyxuLG89W10scztmdW5jdGlvbiBkZXRhaWwoaCxhcnJheSl7dmFyIGIsaSxzaW5ndWxhcml0eTtpZihhcnJheSl7by5wdXNoKCc8ZGl2PjxpPicraCsnPC9pPiAnKTthcnJheT1hcnJheS5zb3J0KCk7Zm9yKGk9MDtpPGFycmF5Lmxlbmd0aDtpKz0xKXtpZihhcnJheVtpXSE9PXNpbmd1bGFyaXR5KXtzaW5ndWxhcml0eT1hcnJheVtpXTtvLnB1c2goKGI/JywgJzonJykrc2luZ3VsYXJpdHkpO2I9dHJ1ZTt9fQpvLnB1c2goJzwvZGl2PicpO319CmlmKGRhdGEuZXJyb3JzfHxkYXRhLmltcGxpZWRzfHxkYXRhLnVudXNlZCl7ZXJyPXRydWU7by5wdXNoKCc8ZGl2IGlkPWVycm9ycz48aT5FcnJvcjo8L2k+Jyk7aWYoZGF0YS5lcnJvcnMpe2ZvcihpPTA7aTxkYXRhLmVycm9ycy5sZW5ndGg7aSs9MSl7Yz1kYXRhLmVycm9yc1tpXTtpZihjKXtlPWMuZXZpZGVuY2V8fCcnO28ucHVzaCgnPHA+UHJvYmxlbScrKGlzRmluaXRlKGMubGluZSk/JyBhdCBsaW5lICcrCmMubGluZSsnIGNoYXJhY3RlciAnK2MuY2hhcmFjdGVyOicnKSsnOiAnK2MucmVhc29uLmVudGl0eWlmeSgpKyc8L3A+PHAgY2xhc3M9ZXZpZGVuY2U+JysKKGUmJihlLmxlbmd0aD44MD9lLnNsaWNlKDAsNzcpKycuLi4nOmUpLmVudGl0eWlmeSgpKSsnPC9wPicpO319fQppZihkYXRhLmltcGxpZWRzKXtzPVtdO2ZvcihpPTA7aTxkYXRhLmltcGxpZWRzLmxlbmd0aDtpKz0xKXtzW2ldPSc8Y29kZT4nK2RhdGEuaW1wbGllZHNbaV0ubmFtZSsnPC9jb2RlPiZuYnNwOzxpPicrCmRhdGEuaW1wbGllZHNbaV0ubGluZSsnPC9pPic7fQpvLnB1c2goJzxwPjxpPkltcGxpZWQgZ2xvYmFsOjwvaT4gJytzLmpvaW4oJywgJykrJzwvcD4nKTt9CmlmKGRhdGEudW51c2VkKXtzPVtdO2ZvcihpPTA7aTxkYXRhLnVudXNlZC5sZW5ndGg7aSs9MSl7c1tpXT0nPGNvZGU+PHU+JytkYXRhLnVudXNlZFtpXS5uYW1lKyc8L3U+PC9jb2RlPiZuYnNwOzxpPicrCmRhdGEudW51c2VkW2ldLmxpbmUrJzwvaT4gPGNvZGU+JysKZGF0YS51bnVzZWRbaV1bJ2Z1bmN0aW9uJ10rJzwvY29kZT4nO30Kby5wdXNoKCc8cD48aT5VbnVzZWQgdmFyaWFibGU6PC9pPiAnK3Muam9pbignLCAnKSsnPC9wPicpO30KaWYoZGF0YS5qc29uKXtvLnB1c2goJzxwPkpTT046IGJhZC48L3A+Jyk7fQpvLnB1c2goJzwvZGl2PicpO30KaWYoIW9wdGlvbil7by5wdXNoKCc8YnI+PGRpdiBpZD1mdW5jdGlvbnM+Jyk7aWYoZGF0YS51cmxzKXtkZXRhaWwoIlVSTHM8YnI+IixkYXRhLnVybHMsJzxicj4nKTt9CmlmKHhtb2RlPT09J3N0eWxlJyl7by5wdXNoKCc8cD5DU1MuPC9wPicpO31lbHNlIGlmKGRhdGEuanNvbiYmIWVycil7by5wdXNoKCc8cD5KU09OOiBnb29kLjwvcD4nKTt9ZWxzZSBpZihkYXRhLmdsb2JhbHMpe28ucHVzaCgnPGRpdj48aT5HbG9iYWw8L2k+ICcrCmRhdGEuZ2xvYmFscy5zb3J0KCkuam9pbignLCAnKSsnPC9kaXY+Jyk7fWVsc2V7by5wdXNoKCc8ZGl2PjxpPk5vIG5ldyBnbG9iYWwgdmFyaWFibGVzIGludHJvZHVjZWQuPC9pPjwvZGl2PicpO30KZm9yKGk9MDtpPGRhdGEuZnVuY3Rpb25zLmxlbmd0aDtpKz0xKXtmPWRhdGEuZnVuY3Rpb25zW2ldO28ucHVzaCgnPGJyPjxkaXYgY2xhc3M9ZnVuY3Rpb24+PGk+JytmLmxpbmUrJy0nKwpmLmxhc3QrJzwvaT4gJysoZi5uYW1lfHwnJykrJygnKwooZi5wYXJhbT9mLnBhcmFtLmpvaW4oJywgJyk6JycpKycpPC9kaXY+Jyk7ZGV0YWlsKCc8YmlnPjxiPlVudXNlZDwvYj48L2JpZz4nLGYudW51c2VkKTtkZXRhaWwoJ0Nsb3N1cmUnLGYuY2xvc3VyZSk7ZGV0YWlsKCdWYXJpYWJsZScsZlsndmFyJ10pO2RldGFpbCgnRXhjZXB0aW9uJyxmLmV4Y2VwdGlvbik7ZGV0YWlsKCdPdXRlcicsZi5vdXRlcik7ZGV0YWlsKCdHbG9iYWwnLGYuZ2xvYmFsKTtkZXRhaWwoJ0xhYmVsJyxmLmxhYmVsKTt9CmlmKGRhdGEubWVtYmVyKXthPXRvX2FycmF5KGRhdGEubWVtYmVyKTtpZihhLmxlbmd0aCl7YT1hLnNvcnQoKTttPSc8YnI+PHByZSBpZD1tZW1iZXJzPi8qbWVtYmVycyAnO2w9MTA7Zm9yKGk9MDtpPGEubGVuZ3RoO2krPTEpe2s9YVtpXTtuPWsubmFtZSgpO2lmKGwrbi5sZW5ndGg+NzIpe28ucHVzaChtKyc8YnI+Jyk7bT0nICAgICc7bD0xO30KbCs9bi5sZW5ndGgrMjtpZihkYXRhLm1lbWJlcltrXT09PTEpe249JzxpPicrbisnPC9pPic7fQppZihpPGEubGVuZ3RoLTEpe24rPScsICc7fQptKz1uO30Kby5wdXNoKG0rJzxicj4qLzwvcHJlPicpO30Kby5wdXNoKCc8L2Rpdj4nKTt9fQpyZXR1cm4gby5qb2luKCcnKTt9O2l0c2VsZi5qc2xpbnQ9aXRzZWxmO2l0c2VsZi5lZGl0aW9uPScyMDEwLTAxLTEyJztyZXR1cm4gaXRzZWxmO30oKSk7
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgRnJlZCBDU1MKICovCgouRGV2ZWxGcmVkQ29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMzNweDsKICAgIHJpZ2h0OiAxNnB4OwogICAgei1pbmRleDogNTAwMDsKfQoKCi5EZXZlbEZyZWRDb250YWluZXI6aG92ZXIgewogICAgLXdlYmtpdC1vcGFjaXR5OiAxLjA7CiAgICAtbW96LW9wYWNpdHk6IDEuMDsKICAgIG9wYWNpdHk6IDEuMDsKfQoKLkRldmVsRnJlZEJveCB7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM3Nzc7CiAgICAtbW96LWJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM3Nzc7CiAgICAtbXMtYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1vLWJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM3Nzc7CiAgICBib3gtc2hhZG93OiAxcHggMXB4IDNweCAjNzc3OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIG1hcmdpbi1ib3R0b206IDVweDsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQgewogICAgbWF4LWhlaWdodDogMTUwcHg7CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQgLkZyZWRRdWlja1NlYXJjaCB7CiAgICBkaXNwbGF5OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsKICAgIHBhZGRpbmc6IDVweDsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAzcHggIzc3NywgaW5zZXQgLTFweCAtMXB4IDNweCAjNzc3OwogICAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAxcHggMXB4IDNweCAjNzc3LCBpbnNldCAtMXB4IC0xcHggM3B4ICM3Nzc7CiAgICAtbXMtYm94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAzcHggIzc3NywgaW5zZXQgLTFweCAtMXB4IDNweCAjNzc3OwogICAgLW8tYm94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAzcHggIzc3NywgaW5zZXQgLTFweCAtMXB4IDNweCAjNzc3OwogICAgYm94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAzcHggIzc3NywgaW5zZXQgLTFweCAtMXB4IDNweCAjNzc3OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouRGV2ZWxGcmVkQm94Q29udGVudCAuRnJlZFF1aWNrU2VhcmNoIGlucHV0IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDk4JTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7CiAgICBmb250LXNpemU6IDExcHg7Cn0KCi5EZXZlbEZyZWRCb3hDb250ZW50IC5GcmVkUXVpY2tTZWFyY2ggaSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogMTBweDsKICAgIHRvcDogOXB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgY29sb3I6ICNjY2M7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5EZXZlbEZyZWRCb3hDb250ZW50IC5GcmVkUXVpY2tTZWFyY2g6aG92ZXIgaSB7CiAgICBjb2xvcjogIzMzMzsKfQoKLkRldmVsRnJlZEJveCAuc3Ryb25nLAouRGV2ZWxGcmVkQm94IC5zdHJvbmcgKiB7CiAgICBmb250LXdlaWdodDogYm9sZDsKfQoKLkRldmVsRnJlZEJveCBoMSB7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBiYWNrZ3JvdW5kOiAjMjU1NTY1OwogICAgY29sb3I6ICNmZmY7CiAgICBtYXJnaW46IDBweDsKICAgIHBhZGRpbmc6IDZweCA3cHg7CiAgICBjdXJzb3I6IG1vdmU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwp9CgouRGV2ZWxGcmVkQm94IGgxIC5GcmVkVG9vbEJhciB7CiAgICBmbG9hdDogcmlnaHQ7Cn0KCi5EZXZlbEZyZWRCb3ggaDEgLkZyZWRUb29sQmFyIGkgewogICAgZm9udC1zaXplOiAxM3B4OwogICAgbWFyZ2luLWxlZnQ6IDVweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cn0KCiNGcmVkSlNMaW50U2NyaXB0cyB7CiAgICBwYWRkaW5nOiA1cHg7Cn0KCi5GcmVkSlNMaW50U3VjY2Vzc2Z1bGwgewogICAgY29sb3I6IGdyZWVuOwp9CgouRnJlZEpTTGludEVycm9yIHsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIGZvbnQtc2l6ZTogMTFweDsKfQoKYm9keSAjRnJlZEpTTGludFNjcmlwdHMgcCAsCmJvZHkgI0ZyZWRKU0xpbnRTY3JpcHRzIHByZSB7CiAgICBtYXJnaW46IDBweDsKICAgIHBhZGRpbmc6IDBweDsKfQoKLkRldmVsRnJlZFNldHRpbmdzIHsKICAgIHBhZGRpbmc6IDE1cHg7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBoMSB7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBtYXJnaW46IDBweCAwcHggMTBweCAwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyB1bCB7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4Owp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgLkNhbGxGb3JBY3Rpb24gewogICAgbWFyZ2luOiAwcHggYXV0bzsKICAgIGRpc3BsYXk6IGJsb2NrOwp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgbGkgewogICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgbGkgc3BhbiB7CiAgICBjb2xvcjogIzc3Nzc3NzsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgZm9udC1zaXplOiAxMHB4OwogICAgcGFkZGluZy1sZWZ0OiAyM3B4OwogICAgbWFyZ2luLWJvdHRvbTogM3B4OwogICAgbGluZS1oZWlnaHQ6IDEzMCU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSBsYWJlbCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmc6IDNweCAyMHB4IDNweCA1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgbGk6aG92ZXIgbGFiZWwgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGxpIGEgewogICAgY29sb3I6ICMwMDA7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogNnB4OwogICAgdG9wOiA2cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgewogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwp9Cgp0YWJsZS5GcmVkVGFibGVEZWZhdWx0IHRoIHsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9Cgp0YWJsZS5GcmVkVGFibGVEZWZhdWx0IHRkLAp0YWJsZS5GcmVkVGFibGVEZWZhdWx0IHRoIHsKICAgIHBhZGRpbmc6IDVweCA1cHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkZGQ7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2FhYTsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB0cjpudGgtY2hpbGQob2RkKSB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwp9Cgp0YWJsZS5GcmVkVGFibGVEZWZhdWx0IHRyOmxhc3QtY2hpbGQgdGQgewogICAgYm9yZGVyLWJvdHRvbTogMHB4Owp9CgouRGV2ZWxGcmVkQm94IC5GcmVkRWxlbWVudExpc3QgewogICAgcGFkZGluZzogNXB4IDNweCAzcHggNXB4Owp9CgouRnJlZEVsZW1lbnRMaXN0IHNwYW4gewogICAgZm9udC1zaXplOiAxMXB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGluZzogM3B4IDVweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOwogICAgbWFyZ2luOiAwcHggM3B4IDNweCAwcHg7CiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDsKICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW1zLWJvcmRlci1yYWRpdXM6IDNweDsKICAgIC1vLWJvcmRlci1yYWRpdXM6IDNweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKfQoKLkZyZWRNb25vU3BhY2UgewogICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGxpbmUtaGVpZ2h0OiAxMzAlOwogICAgcGFkZGluZzogMTBweDsKICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTsKfQ==
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovUHJvZHVjZXIgKEFwYWNoZSBGT1AgVmVyc2lvbiAwLjk1KQovQ3JlYXRpb25EYXRlIChEOjIwMTQwMzA0MDk0NDA0KzAxJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydlndYU+cex99zTvZgJCFsCHuGpUAAkRGmgAzZohCSAAESICQM90BUsKKoyFIEKYpYsFqG1IkoDori3g1SBJRarOLC0USep/X29t7b2+8f53ye3/v7vef9jfd5DgCkgEyuMBdWAUAokogj/L0ZsXHxDOwAgAEeYIA9ABxubrZXWFgwkCvQl83IlTuBf9GrmwBSvK8xFXuB/0+q3GyxBAAoTM6zePxcrpyL5JyZL8lW2CflTEvOUDCMUrBYfkA5ayg4dYatP/vMsKeCeUIRT86Rcs7mCXkK7pXzhjwpX86IIpfiPAE/X87X5WycKRUK5PxGESvkc+Q5oEgKu4TPTZOznZxJ4sgItpznAIAjpX7ByV+whF8gUSTFzsouFAtS0yQMc64Fw97FhcUI4Odn8iUSZhiHm8ER8xjsLGE2R1QIwEzOn0VR1JYhL7KTvYuTE9PBxv6LQv3Xxb8pRW9n6EX4555B9P4/bH/ll9UAAGtKXpstf9iSqwDoXAeAxt0/bMZ7AFCW963j8hf50BXzkiaRZLva2ubn59sI+FwbRUF/1/90+Bv64ns2iu1+Lw/Dh5/CkWZKGIq6cbMys6RiRm42h8tnMP88xP848K/PYR3BT+GL+SJ5RLR8ygSiVHm7RTyBRJAlYghE/6mJ/zDsT5qZa7mojR8BLdEGqFymAeTnfoCiEgGSsFu+Av3et2B8NFDcvBj90Zm5/yzo33eFyxSPXEHq5zh2RCSDKxXnzawpriVAAwJQBjSgCfSAETAHTOAAnIEb8AS+YB4IBZEgDiwGXJAGhEAM8sEysBoUg1KwBewA1aAONIJm0AoOg05wDJwG58AlcAXcAPeADIyAp2ASvALTEARhITJEhTQhfcgEsoIcIBY0F/KFgqEIKA5KglIhESSFlkFroVKoHKqG6qFm6FvoKHQaugANQnegIWgc+hV6ByMwCabBurApbAuz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v3j+0j8ZOznyXPz806+bXmi+2Pdy9sueqbCph6+Er6Zfl7zRfLP/Lett37uYd6PT+e+x7ys/WHzo/hj08f4n4adPvwHJ4vTiCmVuZHN0cmVhbQplbmRvYmoKNiAwIG9iagpbL0lDQ0Jhc2VkIDUgMCBSXQplbmRvYmoKNyAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDEzIDAgUgo+PgpzdHJlYW0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz48eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHJkZjphYm91dD0iIj4KPGRjOmxhbmd1YWdlPgo8cmRmOkJhZz4KPHJkZjpsaT5lbjwvcmRmOmxpPgo8L3JkZjpCYWc+CjwvZGM6bGFuZ3VhZ2U+CjxkYzpkYXRlPgo8cmRmOlNlcT4KPHJkZjpsaT4yMDE0LTAzLTA0VDA5OjQ0OjA0KzAxOjAwPC9yZGY6bGk+CjwvcmRmOlNlcT4KPC9kYzpkYXRlPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHJkZjphYm91dD0iIj4KPHBkZjpQREZWZXJzaW9uPjEuNDwvcGRmOlBERlZlcnNpb24+CjxwZGY6UHJvZHVjZXI+QXBhY2hlIEZPUCBWZXJzaW9uIDAuOTU8L3BkZjpQcm9kdWNlcj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAzLTA0VDA5OjQ0OjA0KzAxOjAwPC94bXA6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IDY4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA2NjcuNjI5IDE1My42NDkgNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MCAwIFIKL0ggL0kKCj4+CmVuZG9iago1MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDkyIDY2Ny42MjkgNTM5Ljg1MiA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY1NS42MjkgMTc2LjQ5NSA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjEwNCA2NTUuNjI5IDUzOS45MjEgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MyAwIFIKL0ggL0kKCj4+CmVuZG9iago1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDMuNjI5IDE0NS45NDUgNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1NiAwIFIKL0ggL0kKCj4+CmVuZG9iago1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgNjQzLjYyOSA1MzkuOTIgNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1NiAwIFIKL0ggL0kKCj4+CmVuZG9iago2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzEuNjI5IDE3Ni4xMzYgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNjMxLjYyOSA1MzkuOTE5IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjE5LjYyOSAyMDUuMTIyMDEgNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MiAwIFIKL0ggL0kKCj4+CmVuZG9iago2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNjE5LjYyOSA1MzkuOTE5IDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjA3LjYyOSAxNTUuNjY2OTkgNjE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NSAwIFIKL0ggL0kKCj4+CmVuZG9iago2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYxMDQgNjA3LjYyOSA1MzkuOTIxIDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTk1LjYyOSAxNjcuODg5IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDU5NS42MjkgNTM5LjkyMSA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4My42MjkgMTg2LjEyNyA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NiA1ODMuNjI5IDUzOS45MiA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU3MS42MjkgMTY2LjY1MyA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA1NzEuNjI5IDUzOS45MTkgNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDU1OS42MjkgMTQ5LjI4NSA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjM5NiA1NTkuNjI5IDUzOS45MjQgNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NyAwIFIKL0ggL0kKCj4+CmVuZG9iago4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NDcuNjI5IDE5OC43ODUgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MCAwIFIKL0ggL0kKCj4+CmVuZG9iago4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg1IDU0Ny42MjkgNTM5Ljg0NSA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUzNS42MjkgMTk0LjQxOSA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40ODQgNTM1LjYyOSA1MzkuODQ0IDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKODcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1MjMuNjI5IDE2MS42NzkgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NiAwIFIKL0ggL0kKCj4+CmVuZG9iago4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYzOTYgNTIzLjYyOSA1MzkuOTI0IDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTExLjYyOSAyNjEuOTQ5IDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDUxMS42MjkgNTM5LjkyIDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0OTkuNjI5IDEzNi42NjIgNTA5LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjUgNDk5LjYyOSA1MzkuOTI1IDUwOS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MiAwIFIKL0ggL0kKCj4+CmVuZG9iago5NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0ODcuNjI5IDE0OS40NDEwMSA0OTcuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDQ4Ny42MjkgNTM5LjkyIDQ5Ny42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsg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fC7znAplbmRzdHJlYW0KZW5kb2JqCjExMSAwIG9iago8PCAvTGVuZ3RoIDEyNSAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnic+2b5/sv6//8X8P///4dhFFAdNAAAxcAJ6QplbmRzdHJlYW0KZW5kb2JqCjExMiAwIG9iago8PAogIC9UeXBlIC9Gb250CiAgL1N1YnR5cGUgL1R5cGUwCiAgL0Jhc2VGb250IC9FQUFBQUErRGVqYVZ1U2FucwogIC9FbmNvZGluZyAvSWRlbnRpdHktSAogIC9Ub1VuaWNvZGUgMTE0IDAgUgogIC9EZXNjZW5kYW50Rm9udHMgWzExMyAwIFJdCj4+CgplbmRvYmoKMTEzIDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9CYXNlRm9udCAvRUFBQUFBK0RlamFWdVNhbnMgCi9DSURUb0dJRE1hcCAvSWRlbnRpdHkgCi9TdWJ0eXBlIC9DSURGb250VHlwZTIKL0NJRFN5c3RlbUluZm8gPDwgL1JlZ2lzdHJ5IChBZG9iZSkgL09yZGVyaW5nIChVQ1MpIC9TdXBwbGVtZW50IDAgPj4KL0ZvbnREZXNjcmlwdG9yIDEwOSAwIFIKL0RXIDAKL1cgWyAwIFs2MDAgMCAzMzMgMzE3IDM2MCA2MDMgNDExIDYxNSAzNTIgNjEyIDU0OSAzMTcgODYyIDYzNiA1NzUgMzkyIDYzMyA1NTcgMjc3IDUyMCA3NTEgNjEwIDY5OCA2MzMgNTc5IDYzNiAyOTQgNjM0IDYzMyA2MzYgNzcwIDYzMSA2OTQgNjExIDYzNCA2MzYgMjc3IDYzNCA2MzYgNzg3IDYzNiA2MzYgOTc0IDYzNCA2MzYgNTkxIDI5NCA2ODQgNjM0IDMzNiA4MzcgNzg3IDY4NiA1OTEgODE3IDMzNiA1OTEgNjM0IDM5MCAzOTAgMzE3IDc3NCAyNzcgNzMxIDUyNCA1MzAgODM3IDI3NCA0NTkgOTg4IDU4OSA2NTUgNzQ4IF0gXSAKPj4KZW5kb2JqCjExNCAwIG9iago8PCAvTGVuZ3RoIDEyNiAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnicXZTbjpswEIbv8xS+3F6swB4DWWkVqUpVKRc9qGkfgGCTIjWA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aSkgPj4KIDIgPDwgL1AgKGlpaSkgPj4KIDMgPDwgL1AgKDEpID4+CiA0IDw8IC9QICgyKSA+PgogNSA8PCAvUCAoMykgPj4KIDYgPDwgL1AgKDQpID4+CiA3IDw8IC9QICg1KSA+PgogOCA8PCAvUCAoNikgPj4KXSA+PgoKZW5kb2JqCjQ2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzE5IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjUwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI2IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI2IDAgUiAvWFlaIDcyLjAgNzAwLjggbnVsbF0KPj4KZW5kb2JqCjU2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI2IDAgUiAvWFlaIDcyLjAgNjU4LjQgbnVsbF0KPj4KZW5kb2JqCjU5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI2IDAgUiAvWFlaIDcyLjAgNjA0LjAgbnVsbF0KPj4KZW5kb2JqCjYyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI2IDAgUiAvWFlaIDcyLjAgNTYxLjYgbnVsbF0KPj4KZW5kb2JqCjY1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI2IDAgUiAvWFlaIDcyLjAgNTE5LjIgbnVsbF0KPj4KZW5kb2JqCjY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI2IDAgUiAvWFlaIDcyLjAgNDc2LjggbnVsbF0KPj4KZW5kb2JqCjcxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI2IDAgUiAvWFlaIDcyLjAgNDM0LjQgbnVsbF0KPj4KZW5kb2JqCjc0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI2IDAgUiAvWFlaIDcyLjAgMzkyLjAgbnVsbF0KPj4KZW5kb2JqCjc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI5IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjgwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI5IDAgUiAvWFlaIDcyLjAgNjc4LjggbnVsbF0KPj4KZW5kb2JqCjgzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI5IDAgUiAvWFlaIDcyLjAgNjAyLjQgbnVsbF0KPj4KZW5kb2JqCjg2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjg5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNjc4LjggbnVsbF0KPj4KZW5kb2JqCjkyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjk1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNjc5LjA2NSBudWxsXQo+PgplbmRvYmoKOTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKeHJlZgowIDEzMAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAxNzUwMTAgMDAwMDAgbiAKMDAwMDE3NTEyNCAwMDAwMCBuIAowMDAwMTc1MjI5IDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDExMiAwMDAwMCBuIAowMDAwMDAyNzkwIDAwMDAwIG4gCjAwMDAwMDI4MjMgMDAwMDAgbiAKMDAwMDEwNjEwMSAwMDAwMCBuIAowMDAwMTc1NDU2IDAwMDAwIG4gCjAwMDAwMDM2OTIgMDAwMDAgbiAKMDAwMDA1MjIxOSAwMDAwMCBuIAowMDAwMTA1NDgxIDAwMDAwIG4gCjAwMDAxMDU1MDIgMDAwMDAgbiAKMDAwMDEwNTUyMiAwMDAwMCBuIAowMDAwMTA1NTQ0IDAwMDAwIG4gCjAwMDAxMDU1NjYgMDAwMDAgbiAKMDAwMDEwNjI2OCAwMDAwMCBuIAowMDAwMTQ1NzM4IDAwMDAwIG4gCjAwMDAxMjAxODAgMDAwMDAgbiAKMDAwMDEwNjI4OCAwMDAwMCBuIAowMDAwMTEyNDU5IDAwMDAwIG4gCjAwMDAxMTk2MzkgMDAwMDAgbiAKMDAwMDExOTY2MCAwMDAwMCBuIAowMDAwMTE5NjgxIDAwMDAwIG4gCjAwMDAxMjAzNDggMDAwMDAgbiAKMDAwMDEyMTYwMyAwMDAwMCBuIAowMDAwMTIwMzY4IDAwMDAwIG4gCjAwMDAxMjE3NzEgMDAwMDAgbiAKMDAwMDEyMzIzOCAwMDAwMCBuIAowMDAwMTIxNzkyIDAwMDAwIG4gCjAwMDAxMjMyMTEgMDAwMDAgbiAKMDAwMDEyMjAwMiAwMDAwMCBuIAowMDAwMTIzNDIzIDAwMDAwIG4gCjAwMDAxMjQwOTUgMDAwMDAgbiAKMDAwMDEyMzQ0NCAwMDAwMCBuIAowMDAwMTI0MjYzIDAwMDAwIG4gCjAwMDAxMjU1ODIgMDAwMDAgbiAKMDAwMDEyNDI4MyAwMDAwMCBuIAowMDAwMTI1NzUwIDAwMDAwIG4gCjAwMDAxMjY2MjEgMDAwMDAgbiAKMDAwMDEyNTc3MSAwMDAwMCBuIAowMDAwMTI2Nzg5IDAwMDAwIG4gCjAwMDAxMjc0MDUgMDAwMDAgbiAKMDAwMDEyNjgwOSAwMDAwMCBuIAowMDAwMTI3NTczIDAwMDAwIG4gCjAwMDAxNzU2MzMgMDAwMDAgbiAKMDAwMDEyNzU5MyAwMDAwMCBuIAowMDAwMTQ1NDY1IDAwMDAwIG4gCjAwMDAxMjc3MjkgMDAwMDAgbiAKMDAwMDE3NTcxMSAwMDAwMCBuIAowMDAwMTI3ODY5IDAwMDAwIG4gCjAwMDAxMjgwMDYgMDAwMDAgbiAKMDAwMDE3NTc4OSAwMDAwMCBuIAowMDAwMTI4MTQ2IDAwMDAwIG4gCjAwMDAxMjgyODQgMDAwMDAgbiAKMDAwMDE3NTg2NyAwMDAwMCBuIAowMDAwMTI4NDI2IDAwMDAwIG4gCjAwMDAxMjg1NjQgMDAwMDAgbiAKMDAwMDE3NTk0NSAwMDAwMCBuIAowMDAwMTI4NzAyIDAwMDAwIG4gCjAwMDAxMjg4NDAgMDAwMDAgbiAKMDAwMDE3NjAyMyAwMDAwMCBuIAowMDAwMTI4OTgyIDAwMDAwIG4gCjAwMDAxMjkxMjIgMDAwMDAgbiAKMDAwMDE3NjEwMSAwMDAwMCBuIAowMDAwMTI5MjY0IDAwMDAwIG4gCjAwMDAxMjk0MDQgMDAwMDAgbiAKMDAwMDE3NjE3OSAwMDAwMCBuIAowMDAwMTI5NTQ2IDAwMDAwIG4gCjAwMDAxMjk2ODQgMDAwMDAgbiAKMDAwMDE3NjI1NyAwMDAwMCBuIAowMDAwMTI5ODI2IDAwMDAwIG4gCjAwMDAxMjk5NjQgMDAwMDAgbiAKMDAwMDE3NjMzNSAwMDAwMCBuIAowMDAwMTMwMTAyIDAwMDAwIG4gCjAwMDAxMzAyNDAgMDAwMDAgbiAKMDAwMDE3NjQxMyAwMDAwMCBuIAowMDAwMTMwMzgyIDAwMDAwIG4gCjAwMDAxMzA1MTkgMDAwMDAgbiAKMDAwMDE3NjQ5MSAwMDAwMCBuIAowMDAwMTMwNjYxIDAwMDAwIG4gCjAwMDAxMzA3OTkgMDAwMDAgbiAKMDAwMDE3NjU2OSAwMDAwMCBuIAowMDAwMTMwOTM5IDAwMDAwIG4gCjAwMDAxMzEwNzcgMDAwMDAgbiAKMDAwMDE3NjY0NyAwMDAwMCBuIAowMDAwMTMxMjE3IDAwMDAwIG4gCjAwMDAxMzEzNTQgMDAwMDAgbiAKMDAwMDE3NjcyNSAwMDAwMCBuIAowMDAwMTMxNDk2IDAwMDAwIG4gCjAwMDAxMzE2MzQgMDAwMDAgbiAKMDAwMDE3NjgwMyAwMDAwMCBuIAowMDAwMTMxNzcyIDAwMDAwIG4gCjAwMDAxMzE5MTEgMDAwMDAgbiAKMDAwMDE3Njg4MSAwMDAwMCBuIAowMDAwMTMyMDUzIDAwMDAwIG4gCjAwMDAxMzIxOTUgMDAwMDAgbiAKMDAwMDE3Njk2MSAwMDAwMCBuIAowMDAwMTMyMzM1IDAwMDAwIG4gCjAwMDAxMzI0NzQgMDAwMDAgbiAKMDAwMDEzMjYxOSAwMDAwMCBuIAowMDAwMTQ1OTI0IDAwMDAwIG4gCjAwMDAxNDU5NDcgMDAwMDAgbiAKMDAwMDE0NjIxMCAwMDAwMCBuIAowMDAwMTUwNjk2IDAwMDAwIG4gCjAwMDAxNTA3OTQgMDAwMDAgbiAKMDAwMDE1MDk1OSAwMDAwMCBuIAowMDAwMTUxMjkzIDAwMDAwIG4gCjAwMDAxNTE3MjEgMDAwMDAgbiAKMDAwMDE1MTk4MiAwMDAwMCBuIAowMDAwMTYyOTIyIDAwMDAwIG4gCjAwMDAxNjMwMjcgMDAwMDAgbiAKMDAwMDE2MzE4OCAwMDAwMCBuIAowMDAwMTYzNzAyIDAwMDAwIG4gCjAwMDAxNjQzMjMgMDAwMDAgbiAKMDAwMDE2NDU4OSAwMDAwMCBuIAowMDAwMTczNTI4IDAwMDAwIG4gCjAwMDAxNzM2MjggMDAwMDAgbiAKMDAwMDE3Mzc5NCAwMDAwMCBuIAowMDAwMTc0MjU4IDAwMDAwIG4gCjAwMDAxNzQ4MjAgMDAwMDAgbiAKMDAwMDE3NDg0MiAwMDAwMCBuIAowMDAwMTc0ODYyIDAwMDAwIG4gCjAwMDAxNzQ4ODMgMDAwMDAgbiAKMDAwMDE3NDkwNiAwMDAwMCBuIAowMDAwMTc0OTI2IDAwMDAwIG4gCjAwMDAxNzQ5NDcgMDAwMDAgbiAKMDAwMDE3NDk2OSAwMDAwMCBuIAowMDAwMTc0OTg5IDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgMTMwCi9Sb290IDIgMCBSCi9JbmZvIDQgMCBSCi9JRCBbPDVEMkQ0QzAxMTgwRUQwRDY3NzI2NTNFNjA3RDc4Njg2PiA8NUQyRDRDMDExODBFRDBENjc3MjY1M0U2MDdENzg2ODY+XQo+PgpzdGFydHhyZWYKMTc3MDM5CiUlRU9GCg==