Fred
5.0.1
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Many improvements. First version for OTRS 5.
A tool to support the developer by his development.
Ein Entwicklertool welches dem Entwickler zur Laufzeit bei der Entwicklung unterstützen soll.
6.0.x
5.0.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/>
2016-01-15 12:25:05
opms.otrs.com
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KPCFET0NUWVBFIGJvb2sgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjQvL0VOIgogICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC40L2RvY2Jvb2t4LmR0ZCI+Cgo8Ym9vayBsYW5nPSdlbic+Cgo8Ym9va2luZm8+Cjx0aXRsZT5GcmVkPC90aXRsZT4KPGVkaXRpb24+QSB0b29sIHRvICBzdXBwb3J0IHRoZSBkZXZlbG9wZXIgYnkgaGlzIGRldmVsb3BtZW50LiBWZXJzaW9uIDUuMC4xPC9lZGl0aW9uPgoKPGNvcHlyaWdodD4KPHllYXI+MjAxNjwveWVhcj4KPGhvbGRlcj5PVFJTIEFHLCBodHRwOi8vb3Rycy5vcmcvPC9ob2xkZXI+CjwvY29weXJpZ2h0PgoKPGRhdGU+MjAxNi0wMS0xNTwvZGF0ZT4KCjxsZWdhbG5vdGljZT4KICAgIDxwYXJhPkdOVSBBRkZFUk8gR0VORVJBTCBQVUJMSUMgTElDRU5TRSBWZXJzaW9uIDMsIE5vdmVtYmVyIDIwMDc8L3BhcmE+CiAgICA8cGFyYT5UaGlzIHdvcmsgaXMgY29weXJpZ2h0ZWQgYnkgT1RSUyBBRywgTm9yc2stRGF0YS1TdHIuIDEsIDYxMzUyIEJhZCBIb21idXJnLCBHZXJtYW55LjwvcGFyYT4KICAgIDxwYXJhPkJ1aWxkIERhdGU6IDIwMTYtMDEtMTU8L3BhcmE+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+CnNoZWxsPiBiaW4vb3BtLnBsIC1hIGluc3RhbGwgLXAgL3BhdGgvdG8vRnJlZC01LjAuMS5vcG0KICAgICAgICA8L3NjcmVlbj4KICAgICAgICA8L3BhcmE+CiAgICA8L3NlY3QxPgo8L2NoYXB0ZXI+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5Db25maWd1cmF0aW9uPC90aXRsZT4KICAgIDxwYXJhPlRoZSBmb2xsb3dpbmcgY29uZmlnIG9wdGlvbnMgY2FuIG9yIG5lZWQgdG8gYmUgY2hhbmdlZCB2aWEgU3lzQ29uZmlnLjwvcGFyYT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+RnJlZDo6Q29uZmlnTG9nIyMjT3JkZXJCeTwvdGl0bGU+CiAgICAgICAgPHBhcmE+V2hpY2ggb3JkZXIgc2hvdWxkIHRoZSBjb25maWcgbG9nIGRhdGEgaGF2ZT88L3BhcmE+CiAgICA8L3NlY3QxPgo8L2NoYXB0ZXI+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5NYW5pZmVzdDwvdGl0bGU+CiAgICA8cGFyYT5UaGUgbWFuaWZlc3QgbGlzdHMgYWxsIGluY2x1ZGVkIGZpbGVzIGFuZCB0aGUgcmVmZXJyaW5nIHBlcm1pc3Npb25zLjwvcGFyYT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+RmlsZWxpc3Q8L3RpdGxlPgogICAgICAgIDxwYXJhPgogICAgICAgIDxpdGVtaXplZGxpc3Q+PGxpc3RpdGVtPjxwYXJhPig2NDApIGRvYy9lbi9GcmVkLnhtbDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvQ29uZmlnL0ZpbGVzL0FBQUZyZWQucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL0NvbmZpZy9GaWxlcy9GcmVkLnhtbDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvTW9kdWxlcy9EZXZlbEZyZWQucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL091dHB1dC9IVE1ML0ZpbHRlckNvbnRlbnQvRnJlZC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZC9Db25maWdMb2cucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWQvQ29uZmlnU3dpdGNoLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkL0NvbnNvbGUucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWQvRW52RHVtcC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZC9IVE1MQ2hlY2sucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWQvSlNMaW50LnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkL1Nlc3Npb25EdW1wLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkL1NUREVSUkxvZy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZC9TUUxMb2cucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWQvVHJhbnNsYXRpb25EZWJ1Zy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0RldmVsRnJlZENvbmZpZ0xvZy50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0RldmVsRnJlZENvbmZpZ1N3aXRjaC50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0RldmVsRnJlZENvbnNvbGUudHQ8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9EZXZlbEZyZWRDb250YWluZXIudHQ8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9EZXZlbEZyZWRFbnZEdW1wLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvRGV2ZWxGcmVkSFRNTENoZWNrLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvRGV2ZWxGcmVkSlNMaW50LnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvRGV2ZWxGcmVkU2Vzc2lvbkR1bXAudHQ8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9EZXZlbEZyZWRTZXR0aW5nLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvRGV2ZWxGcmVkU1FMTG9nLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvRGV2ZWxGcmVkU1RERVJSTG9nLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvRGV2ZWxGcmVkVHJhbnNsYXRpb25EZWJ1Zy50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvU3lzdGVtL0ZyZWQvQ29uZmlnTG9nLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9TeXN0ZW0vRnJlZC9Db25maWdTd2l0Y2gucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL1N5c3RlbS9GcmVkL0NvbnNvbGUucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL1N5c3RlbS9GcmVkL0VudkR1bXAucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL1N5c3RlbS9GcmVkL0hUTUxDaGVjay5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvU3lzdGVtL0ZyZWQvSlNMaW50LnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9TeXN0ZW0vRnJlZC9TZXNzaW9uRHVtcC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSBLZXJuZWwvU3lzdGVtL0ZyZWQvU1FMTG9nLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIEtlcm5lbC9TeXN0ZW0vRnJlZC9TVERFUlJMb2cucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgS2VybmVsL1N5c3RlbS9GcmVkL1RyYW5zbGF0aW9uRGVidWcucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgdmFyL2h0dHBkL2h0ZG9jcy9qcy9Db3JlLkZyZWQuanM8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgdmFyL2h0dHBkL2h0ZG9jcy9qcy9Db3JlLkZyZWQuSFRNTENoZWNrLmpzPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDApIHZhci9odHRwZC9odGRvY3MvanMvQ29yZS5GcmVkLkpTTGludC5qczwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSB2YXIvaHR0cGQvaHRkb2NzL2pzL3RoaXJkcGFydHkvanNsaW50L2pzbGludC5qczwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQwKSB2YXIvaHR0cGQvaHRkb2NzL3NraW5zL0FnZW50L2RlZmF1bHQvY3NzL0NvcmUuRnJlZC5jc3M8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0MCkgdmFyL2h0dHBkL2h0ZG9jcy9za2lucy9DdXN0b21lci9kZWZhdWx0L2Nzcy9Db3JlLkZyZWQuY3NzPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CgogICAgICAgIDwvcGFyYT4KICAgIDwvc2VjdDE+CjwvY2hhcHRlcj4KCjxjaGFwdGVyPgogICAgPHRpdGxlPkNoYW5nZUxvZzwvdGl0bGU+CiAgICA8cGFyYT4KICAgIDxpdGVtaXplZGxpc3Q+PHRpdGxlPjUuMC4xIC8gMjAxNi0wMS0xNSAxMjoyNTowMTwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPk1hbnkgaW1wcm92ZW1lbnRzLiBGaXJzdCB2ZXJzaW9uIGZvciBPVFJTIDUuPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CgogICAgPC9wYXJhPgo8L2NoYXB0ZXI+Cgo8L2Jvb2s+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDA5IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzo6RGVmYXVsdHM7CnVzZSBLZXJuZWw6Okxhbmd1YWdlOwp1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ0xvZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTUUxMb2c7CnVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6VHJhbnNsYXRpb25EZWJ1ZzsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCmlmICggJEVOVntIVFRQX1VTRVJfQUdFTlR9ICkgewoKICAgICMgY2hlY2sgaWYgdGhlIG5lZWRlZCBwYXRoIGlzIGF2YWlsYWJsZQogICAgbXkgJFBhdGggPSAkU2VsZi0+e0hvbWV9IC4gJy92YXIvZnJlZCc7CiAgICBpZiAoICEtZSAkUGF0aCApIHsKICAgICAgICBta2RpciAkUGF0aDsKICAgIH0KCiAgICBteSAkRmlsZSA9ICRTZWxmLT57SG9tZX0gLiAnL3Zhci9mcmVkL1NUREVSUi5sb2cnOwoKICAgICMgY2hlY2sgbG9nIGZpbGUgc2l6ZQogICAgaWYgKCAtcyAkRmlsZSA+IDIwICogMTAyNCAqIDEwMjQgKSB7CiAgICAgICAgdW5saW5rICRGaWxlOwogICAgfQoKICAgICMgbW92ZSBTVERPVVQgdG8gdG1wIGZpbGUKICAgIGlmICggIW9wZW4gU1RERVJSLCAnPj4nLCAkRmlsZSApIHsgIyMgbm8gY3JpdGljCiAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUjogQ2FuJ3Qgd3JpdGUgJEZpbGUhIjsKICAgIH0KfQoKIyBkaXNhYmxlIHJlZGVmaW5lIHdhcm5pbmdzIGluIHRoaXMgc2NvcGUKewogICAgbm8gd2FybmluZ3MgJ3JlZGVmaW5lJzsKCiAgICAjIE92ZXJyaWRlIEtlcm5lbDo6TGFuZ3VhZ2U6OkdldCgpIG1ldGhvZCB0byBpbnRlcmNlcHQgbWlzc2luZyB0cmFuc2xhdGlvbnMKICAgIGlmICggS2VybmVsOjpMYW5ndWFnZS0+Y2FuKCdHZXQnKSAmJiAhS2VybmVsOjpMYW5ndWFnZS0+Y2FuKCdHZXRPcmlnaW5hbCcpICkgewogICAgICAgICpLZXJuZWw6Okxhbmd1YWdlOjpHZXRPcmlnaW5hbCA9IFwmS2VybmVsOjpMYW5ndWFnZTo6R2V0OwogICAgICAgICpLZXJuZWw6Okxhbmd1YWdlOjpHZXQgPSBzdWIgewogICAgICAgICAgICBteSAoJFNlbGYsICRXaGF0KSA9IEBfOwoKICAgICAgICAgICAgcmV0dXJuIGlmICFkZWZpbmVkICRXaGF0OwogICAgICAgICAgICByZXR1cm4gJycgaWYgJFdoYXQgZXEgJyc7CgogICAgICAgICAgICBteSAkUmVzdWx0ID0gJFNlbGYtPkdldE9yaWdpbmFsKCRXaGF0KTsKCiAgICAgICAgICAgIGlmICggJFdoYXQgJiYgJFdoYXQgPX4gL14oLis/KSIsXHN7MCwxfSIoLio/KSQvICkgewogICAgICAgICAgICAgICAgJFdoYXQgPSAkMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCEkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyRXaGF0fSkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fSB8fD0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWctPm5ldygpOwogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fS0+SW5zZXJ0V29yZChXaGF0ID0+ICRXaGF0KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICAgICAgfTsKICAgIH0KCiAgICAjIE92ZXJyaWRlIEtlcm5lbDo6TGFuZ3VhZ2U6OlRyYW5zbGF0ZSgpIG1ldGhvZCB0byBpbnRlcmNlcHQgbWlzc2luZyB0cmFuc2xhdGlvbnMKICAgIGlmICggS2VybmVsOjpMYW5ndWFnZS0+Y2FuKCdUcmFuc2xhdGUnKSAmJiAhS2VybmVsOjpMYW5ndWFnZS0+Y2FuKCdUcmFuc2xhdGVPcmlnaW5hbCcpICkgewogICAgICAgICpLZXJuZWw6Okxhbmd1YWdlOjpUcmFuc2xhdGVPcmlnaW5hbCA9IFwmS2VybmVsOjpMYW5ndWFnZTo6VHJhbnNsYXRlOwogICAgICAgICpLZXJuZWw6Okxhbmd1YWdlOjpUcmFuc2xhdGUgPSBzdWIgewogICAgICAgICAgICBteSAoICRTZWxmLCAkVGV4dCwgQFBhcmFtZXRlcnMgKSA9IEBfOwoKICAgICAgICAgICAgaWYgKCRUZXh0ICYmICEkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyRUZXh0fSkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fSB8fD0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWctPm5ldygpOwogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fS0+SW5zZXJ0V29yZChXaGF0ID0+ICRUZXh0KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5UcmFuc2xhdGVPcmlnaW5hbCgkVGV4dCwgQFBhcmFtZXRlcnMpOwogICAgICAgIH07CiAgICB9CgogICAgIyBPdmVycmlkZSBLZXJuZWw6OlN5c3RlbTo6REI6OlByZXBhcmUoKSBtZXRob2QgdG8gaW50ZXJjZXB0IGRhdGFiYXNlIGNhbGxzCiAgICBpZiAoIEtlcm5lbDo6U3lzdGVtOjpEQi0+Y2FuKCdQcmVwYXJlJykgJiYgIUtlcm5lbDo6U3lzdGVtOjpEQi0+Y2FuKCdQcmVwYXJlT3JpZ2luYWwnKSApIHsKICAgICAgICAqS2VybmVsOjpTeXN0ZW06OkRCOjpQcmVwYXJlT3JpZ2luYWwgPSBcJktlcm5lbDo6U3lzdGVtOjpEQjo6UHJlcGFyZTsKICAgICAgICAqS2VybmVsOjpTeXN0ZW06OkRCOjpQcmVwYXJlID0gc3ViIHsKICAgICAgICAgICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAgICAgICAgICRTZWxmLT57U1FMTG9nT2JqZWN0fSB8fD0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNRTExvZy0+bmV3KCk7CiAgICAgICAgICAgICRTZWxmLT57U1FMTG9nT2JqZWN0fS0+UHJlU3RhdGVtZW50KCVQYXJhbSk7CiAgICAgICAgICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+UHJlcGFyZU9yaWdpbmFsKCVQYXJhbSk7CiAgICAgICAgICAgICRTZWxmLT57U1FMTG9nT2JqZWN0fS0+UG9zdFN0YXRlbWVudCglUGFyYW0pOwoKICAgICAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICAgICB9OwogICAgfQoKICAgICMgT3ZlcnJpZGUgS2VybmVsOjpTeXN0ZW06OkRCOjpEbygpIG1ldGhvZCB0byBpbnRlcmNlcHQgZGF0YWJhc2UgY2FsbHMKICAgIGlmICggS2VybmVsOjpTeXN0ZW06OkRCLT5jYW4oJ0RvJykgJiYgIUtlcm5lbDo6U3lzdGVtOjpEQi0+Y2FuKCdEb09yaWdpbmFsJykgKSB7CiAgICAgICAgKktlcm5lbDo6U3lzdGVtOjpEQjo6RG9PcmlnaW5hbCA9IFwmS2VybmVsOjpTeXN0ZW06OkRCOjpEbzsKICAgICAgICAqS2VybmVsOjpTeXN0ZW06OkRCOjpEbyA9IHN1YiB7CiAgICAgICAgICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgICAgICAgICAkU2VsZi0+e1NRTExvZ09iamVjdH0gfHw9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTUUxMb2ctPm5ldygpOwogICAgICAgICAgICAkU2VsZi0+e1NRTExvZ09iamVjdH0tPlByZVN0YXRlbWVudCglUGFyYW0pOwogICAgICAgICAgICBteSAkUmVzdWx0ID0gJFNlbGYtPkRvT3JpZ2luYWwoJVBhcmFtKTsKICAgICAgICAgICAgJFNlbGYtPntTUUxMb2dPYmplY3R9LT5Qb3N0U3RhdGVtZW50KCVQYXJhbSk7CgogICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgIH07CiAgICB9CgogICAgIyBPdmVycmlkZSBLZXJuZWw6OkNvbmZpZzo6R2V0KCkgbWV0aG9kIHRvIGludGVyY2VwdCBjb25maWcgc3RyaW5ncwogICAgaWYgKCBLZXJuZWw6OkNvbmZpZzo6RGVmYXVsdHMtPmNhbignR2V0JykgJiYgIUtlcm5lbDo6Q29uZmlnOjpEZWZhdWx0cy0+Y2FuKCdHZXRPcmlnaW5hbCcpICkgewogICAgICAgICpLZXJuZWw6OkNvbmZpZzo6RGVmYXVsdHM6OkdldE9yaWdpbmFsID0gXCZLZXJuZWw6OkNvbmZpZzo6RGVmYXVsdHM6OkdldDsKICAgICAgICAqS2VybmVsOjpDb25maWc6OkRlZmF1bHRzOjpHZXQgPSBzdWIgewogICAgICAgICAgICBteSAoICRTZWxmLCAkV2hhdCApID0gQF87CgogICAgICAgICAgICAkU2VsZi0+e0NvbmZpZ0xvZ09iamVjdH0gfHw9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpDb25maWdMb2ctPm5ldygpOwogICAgICAgICAgICBteSAkQ2FsbGVyID0gY2FsbGVyKCk7CiAgICAgICAgICAgIGlmICgkU2VsZi0+eyRXaGF0fSkgewogICAgICAgICAgICAgICAgJFNlbGYtPntDb25maWdMb2dPYmplY3R9LT5JbnNlcnRXb3JkKFdoYXQgPT4gIiRXaGF0O1RydWU7JENhbGxlcjsiLCBIb21lID0+ICRTZWxmLT57SG9tZX0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFNlbGYtPntDb25maWdMb2dPYmplY3R9LT5JbnNlcnRXb3JkKFdoYXQgPT4gIiRXaGF0O0ZhbHNlOyRDYWxsZXI7IiwgSG9tZSA9PiAkU2VsZi0+e0hvbWV9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5HZXRPcmlnaW5hbCgkV2hhdCk7CiAgICAgICB9OwogICAgfQoKfQoKMTsK
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIxLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpPdXRwdXQ6OkZpbHRlckNvbnRlbnQjIyNGcmVkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlN1YnNjcmliZSB0aGUgb3V0cHV0IGZpbHRlciBhdCB0aGUgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZpbHRlckNvbnRlbnQ6OkZyZWQ8L0l0ZW0+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+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6Q29uc29sZUhlaWdodCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoZWlnaHQgb2YgdGhlIEZyZWQgY29uc29sZSBpbiBwaXhlbC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MjAwcHg8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpDb25zb2xlT3BhY2l0eSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGFjaXR5IG9mIHRoZSBGcmVkIGNvbnNvbGUsIGUuZy4gMC45IGZvciAxMCUgdHJhbnNwYXJlbmN5LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4wLjk8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpBY3RpdmUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiBmcmVkIGlzIHZpc2libGUgb3IgaGlkZGVuLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSIgVHJhbnNsYXRhYmxlPSIxIj5TaG93PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIiBUcmFuc2xhdGFibGU9IjEiPkhpZGU8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI0NvbnNvbGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGZyZWQgY29uc29sZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpNb2R1bGUjIyNTUUxMb2ciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCBhbiByZWFsdGltZSBTUUwgc3RhdGVtZW50IGxvZyBmdW5jdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5TaG93cyBhIGxpc3Qgb2YgYWxsIFNRTCBzdGF0ZW1lbnRzIGV4ZWN1dGVkIGluIHRoaXMgY2FsbC48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpNb2R1bGUjIyNIVE1MQ2hlY2siIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCBhbiByZWFsdGltZSBIVE1MLWNoZWNrZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+VmFsaWRhdGVzIHRoZSBIVE1MIGluIHRoaXMgY2FsbC48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpNb2R1bGUjIyNKU0xpbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCBhIEphdmFTY3JpcHQgY29kZSBxdWFsaXR5IGNoZWNrZXIuIE9ubHkgd29ya3MgaW4gQ1ZTIEhlYWQgLyBPVFJTIDMgd2l0aCBqUXVlcnkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+VmFsaWRhdGVzIHRoZSBKUyBpbiB0aGlzIGNhbGwgYW5kIHNob3dzIGVycm9ycyBhbmQgbm90aWNlcy48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpNb2R1bGUjIyNUcmFuc2xhdGlvbkRlYnVnIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgdGhlIHRyYW5zbGF0aW9uIGRlYnVnZ2VyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlNob3dzIGEgbGlzdCBvZiB1bnRyYW5zbGF0ZWQgc3RyaW5ncy4gUGxlYXNlIG5vdGUgdGhhdCBzdHJpbmdzIGZyb20gZnJhbWV3b3JrIEFORCBjdXN0b20gbW9kdWxlcyB3aWxsIGJlIHNob3duLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI0NvbmZpZ0xvZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgY29uZmlnIGxvZyBtZWNoYW5pc20uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+TGlzdHMgYWxsIGNvbmZpZ3VyYXRpb24gaXRlbXMgd2hpY2ggd2VyZSB1c2VkIGluIHRoaXMgY2FsbCAoYW5kIGhvdyBvZnRlbiB0aGV5IHdlcmUgY2FsbGVkKS48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpNb2R1bGUjIyNDb25maWdTd2l0Y2giIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGNvbmZpZyBzd2l0Y2ggbWVjaGFuaXNtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlN3aXRjaCBvbiBvciBvZmYgc29tZSBvZnRlbiBuZWVkZWQgY29uZmlnIGl0ZW1zIGRpcmVjdGx5IGluIEZyZWQuPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjU1RERVJSTG9nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgdG8gc2VlIHRoZSBTVERFUlJMb2cuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+TGlzdHMgZW50cmllcyBmcm9tIHRoZSBTVERFUlIgbG9nLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6OlNUREVSUkxvZ0ZpbHRlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRvIGZpbHRlciB0aGUgb3V0cHV0IG9mIHRoZSBTVERFUlJMb2cuIFlvdSBjYW4gYWRkIGEgcmVndWxhciBleHByZXNzaW9uIHRvIGZpbHRlciB0aGUgb3V0cHV0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj46IFsgXSBTdWJyb3V0aW5lIFsgXSBbX2EtekEtWjAtOV0rIFsgXSByZWRlZmluZWQgWyBdIGF0IFsgXSAuKyBbIF0gbGluZSBbIF0gXGQrIFwuPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjU2Vzc2lvbkR1bXAiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCB0byBzZWUgdGhlIGRhdGEgaW4gdGhlIHNlcnZlcnNpZGUgc2Vzc2lvbiBvYmplY3QuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+RHVtcHMgb3V0IGFsbCBzZXNzaW9uIHZhcmlhYmxlcy48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpNb2R1bGUjIyNFbnZEdW1wIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgdG8gc2VlIHRoZSBkYXRhIGluIHRoZSBlbnZpcm9ubWVudCBvZiB0aGUgbGF5b3V0IG9iamVjdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5EdW1wcyBvdXQgYWxsIGVudmlyb25tZW50IHZhcmlhYmxlcy48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjRGV2ZWxGcmVkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBkZXZlbCBmcmVkIG9iamVjdCBpbiB0aGUgYWRtaW4gYXJlYS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24+QWRtaW48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPFRpdGxlPkZyZWQtRGV2ZWxvcGVydG9vbHM8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhck5hbWU+QWRtaW48L05hdkJhck5hbWU+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iQ3VzdG9tZXJGcm9udGVuZDo6TW9kdWxlIyMjRGV2ZWxGcmVkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpDdXN0b21lcjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uPkFkbWluPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxUaXRsZT5GcmVkLURldmVsb3BlcnRvb2xzPC9UaXRsZT4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPkFkbWluPC9OYXZCYXJOYW1lPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlB1YmxpY0Zyb250ZW5kOjpNb2R1bGUjIyNEZXZlbEZyZWQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpQdWJsaWM6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxGcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbj5BZG1pbjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8VGl0bGU+RnJlZC1EZXZlbG9wZXJ0b29sczwvVGl0bGU+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5BZG1pbjwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpDb25maWdMb2cjIyNPcmRlckJ5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPldoaWNoIG9yZGVyIHNob3VsZCB0aGUgY29uZmlnIGxvZyBkYXRhIGhhdmU/PC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvbmZpZ0xvZzwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMyI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjMiPkNhbGxzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5Db25maWc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjIiPlBhY2thZ2U8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6OkNvbmZpZ1N3aXRjaCMjI1NldHRpbmdzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2YgY29uZmlnIHNldHRpbmdzIHdoaWNoIHNob3VsZCBiZSBhdmFpbGFibGUgZm9yIHF1aWNrIHN3aXRjaC4gUGxlYXNlIGFkZCBvbmx5IHNldHRpbmdzIHdpdGggcG9zc2libGUgdmFsdWVzIDAgb3IgMSAoTm8vWWVzKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29uZmlnU3dpdGNoPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+RnJvbnRlbmQ6OlJpY2hUZXh0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+RnJvbnRlbmQ6OkRlYnVnTW9kZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkZyb250ZW5kOjpUZW1wbGF0ZUNhY2hlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+RnJvbnRlbmQ6Ok1lbnVEcmFnRHJvcEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5UaWNrZXRBQ0w6OkRlYnVnOjpFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+VGlja2V0OjpGcm9udGVuZDo6TmVlZFNwZWxsQ2hlY2s8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5UaWNrZXQ6OlJlc3BvbnNpYmxlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+VGlja2V0OjpUeXBlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+VGlja2V0OjpTZXJ2aWNlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+VGlja2V0OjpXYXRjaGVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+VGlja2V0OjpVc2VBcnRpY2xlQ29sb3JzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q2hlY2tNWFJlY29yZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNoZWNrRW1haWxBZGRyZXNzZXM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5TZXNzaW9uVXNlQ29va2llPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+TG9hZGVyOjpFbmFibGVkOjpDU1M8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5Mb2FkZXI6OkVuYWJsZWQ6OkpTPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+T3Blbk1haW5NZW51T25Ib3ZlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPlNlY3VyZU1vZGU8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6U3lzdGVtTmFtZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5DdXN0b21pemFibGUgc3lzdGVtIG5hbWUuIElmIGVtcHR5LCBjb25maWcgaXRlbSAnSG9tZScgaXMgYmVpbmcgdXNlZCBmb3IgZGlzcGxheS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6QmFja2dyb3VuZENvbG9yIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgb3B0aW9uIGRlZmluZXMgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzeXRlbSBuYW1lIGJveC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+I0Q2MzUzNTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCjwvb3Ryc19jb25maWc+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpEZXZlbEZyZWQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICRTZWxmLT57U3ViYWN0aW9ufSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJhY3Rpb24nICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzaG93IHRoZSBvdmVydmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICBpZiAoICEkU2VsZi0+e1N1YmFjdGlvbn0gKSB7CiAgICAgICAgbXkgJFZlcnNpb24gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ZlcnNpb24nKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAnU29ycnksIHRoaXMgcGFnZSBpcyBjdXJyZW50bHkgdW5kZXIgZGV2ZWxvcG1lbnQhJywKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGZhc3QgaGFuZGxlIGZvciBmcmVkIHNldHRpbmdzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NldHRpbmcnICkgewoKICAgICAgICAjIGdldCBoYXNocmVmIHdpdGggYWxsIEZyZWQtcGx1Z2lucwogICAgICAgIG15ICRNb2R1bGVGb3JSZWYgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpOwoKICAgICAgICAjIFRoZSBDb25zb2xlIGNhbid0IGJlIGRlYWN0aXZhdGVkCiAgICAgICAgZGVsZXRlICRNb2R1bGVGb3JSZWYtPntDb25zb2xlfTsKCiAgICAgICAgIyBsb29wIG92ZXIgTW9kdWxlcyB3aGljaCBjYW4gYmUgYWN0aXZhdGVkIGFuZCBkZWFjdGl2YXRlZAogICAgICAgIGZvciBteSAkTW9kdWxlICggc29ydCBrZXlzICV7JE1vZHVsZUZvclJlZn0gKSB7CiAgICAgICAgICAgIG15ICRDaGVja2VkID0gJE1vZHVsZUZvclJlZi0+eyRNb2R1bGV9LT57QWN0aXZlfSA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdGcmVkTW9kdWxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEZyZWRNb2R1bGUgID0+ICRNb2R1bGUsCiAgICAgICAgICAgICAgICAgICAgQ2hlY2tlZCAgICAgPT4gJENoZWNrZWQsCiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJE1vZHVsZUZvclJlZi0+eyRNb2R1bGV9LT57RGVzY3JpcHRpb259IHx8ICcnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgUHJvdmlkZSBhIGxpbmsgdG8gdGhlIFN5c0NvbmZpZyBvbmx5IGZvciBwbHVnaW5zIHRoYXQgaGF2ZSBjb25maWcgb3B0aW9ucwogICAgICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgiRnJlZDo6JE1vZHVsZSIpICkgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29uZmlnJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTW9kdWxlTmFtZSA9PiAkTW9kdWxlLAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGJ1aWxkIG91dHB1dAogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgICAgIFRpdGxlID0+ICdGcmVkLVNldHRpbmcnLAogICAgICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdEZXZlbEZyZWRTZXR0aW5nJywKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKAogICAgICAgICAgICBUeXBlID0+ICdTbWFsbCcsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZmFzdCBoYW5kbGUgZm9yIGZyZWQgc2V0dGluZ3MKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2V0dGluZ0FjdGlvbicgKSB7CiAgICAgICAgbXkgJE1vZHVsZUZvclJlZiAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpOwogICAgICAgIG15IEBTZWxlY3RlZEZyZWRNb2R1bGVzID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ0ZyZWRNb2R1bGUnICk7CiAgICAgICAgbXkgJVNlbGVjdGVkTW9kdWxlcyAgICAgPSBtYXAgeyAkXyA9PiAxOyB9IEBTZWxlY3RlZEZyZWRNb2R1bGVzOwogICAgICAgIG15ICRVcGRhdGVGbGFnOwogICAgICAgIGRlbGV0ZSAkTW9kdWxlRm9yUmVmLT57Q29uc29sZX07CgogICAgICAgIGZvciBteSAkTW9kdWxlICggc29ydCBrZXlzICV7JE1vZHVsZUZvclJlZn0gKSB7CgogICAgICAgICAgICAjIHVwZGF0ZSB0aGUgc3lzY29uZmlnIHNldHRpbmdzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfS0+e0FjdGl2ZX0gJiYgISRTZWxlY3RlZE1vZHVsZXN7JE1vZHVsZX0KICAgICAgICAgICAgICAgIHx8CiAgICAgICAgICAgICAgICAhJE1vZHVsZUZvclJlZi0+eyRNb2R1bGV9LT57QWN0aXZlfSAmJiAkU2VsZWN0ZWRNb2R1bGVzeyRNb2R1bGV9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICMgdXBkYXRlIGNlcnRhaW4gdmFsdWVzCiAgICAgICAgICAgICAgICAkTW9kdWxlRm9yUmVmLT57JE1vZHVsZX0tPntBY3RpdmV9ID0gJFNlbGVjdGVkTW9kdWxlc3skTW9kdWxlfSB8fCAwOwoKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKS0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICJGcmVkOjpNb2R1bGUjIyMkTW9kdWxlIiwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkTW9kdWxlRm9yUmVmLT57JE1vZHVsZX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFVwZGF0ZUZsYWcgPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UG9wdXBDbG9zZSgKICAgICAgICAgICAgUmVsb2FkID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBoYW5kbGUgZm9yIGNvbmZpZyBzd2l0Y2gKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ29uZmlnU3dpdGNoQUpBWCcgKSB7CgogICAgICAgIG15ICRJdGVtS2V5ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnS2V5JyApOwogICAgICAgIG15ICRJdGVtVmFsdWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmFsdWUnICk7CgogICAgICAgIG15ICRTdWNjZXNzID0gMDsKCiAgICAgICAgaWYgKCRJdGVtS2V5KSB7CgogICAgICAgICAgICAjIHRoZSB2YWx1ZSB3aGljaCBpcyBwYXNzZWQgaXMgdGhlIGN1cnJlbnQgdmFsdWUsIHNvIHdlCiAgICAgICAgICAgICMgbmVlZCB0byBzd2l0Y2ggaXQuCiAgICAgICAgICAgIGlmICggJEl0ZW1WYWx1ZSA9PSAxICkgewogICAgICAgICAgICAgICAgJEl0ZW1WYWx1ZSA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkSXRlbVZhbHVlID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgICAgIEtleSAgID0+ICRJdGVtS2V5LAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJEl0ZW1WYWx1ZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRTdWNjZXNzLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZpbHRlckNvbnRlbnQ6OkZyZWQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSBVUkk6OkVzY2FwZTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6RnJlZCcsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok91dHB1dEZpbHRlckZyZWQKCj1oZWFkMSBTWU5PUFNJUwoKYSBvdXRwdXQgZmlsdGVyIG1vZHVsZSBzcGVjaWFsbHkgZm9yIGRldmVsb3BlcgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBwZXJoYXBzIG5vIG91dHB1dCBpcyBnZW5lcmF0ZWQKICAgIGRpZSAnRnJlZDogQXQgdGhlIG1vbWVudCwgeW91ciBjb2RlIGdlbmVyYXRlcyBubyBvdXRwdXQhJyBpZiAhJFBhcmFte0RhdGF9OwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGRvIG5vdCBzaG93IHRoZSBkZWJ1ZyBiYXIgaW4gRnJlZCdzIHNldHRpbmcgd2luZG93CiAgICBpZiAoICRMYXlvdXRPYmplY3QtPntBY3Rpb259ICYmICRMYXlvdXRPYmplY3QtPntBY3Rpb259IGVxICdEZXZlbEZyZWQnICkgewogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgZG8gbm90aGluZyBpZiBvdXRwdXQgaXMgYW4gYXR0YWNobWVudCBkb3dubG9hZCBvciBBSkFYIHJlcXVlc3QKICAgIGlmICgKICAgICAgICAkeyAkUGFyYW17RGF0YX0gfSA9fiAvXkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7L21pCiAgICAgICAgfHwgJHsgJFBhcmFte0RhdGF9IH0gPX4gL15Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7L21pCiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgZG8gbm90aGluZyBpZiBpdCBpcyBhIHJlZGlyZWN0CiAgICBpZiAoCiAgICAgICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gL15TdGF0dXM6IDMwMiBNb3ZlZC9taQogICAgICAgICYmICR7ICRQYXJhbXtEYXRhfSB9ID1+IC9ebG9jYXRpb246L21pCiAgICAgICAgJiYgbGVuZ3RoKCAkeyAkUGFyYW17RGF0YX0gfSApIDwgODAwCiAgICAgICAgKQogICAgewogICAgICAgIHByaW50IFNUREVSUiAiUkVESVJFQ1RcbiI7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBkbyBub3RoaW5nIGlmIGl0IGlzIGZyZWQgaXQgc2VsZgogICAgaWYgKCAkeyAkUGFyYW17RGF0YX0gfSA9fiBte0ZyZWQtU2V0dGluZzxcL3RpdGxlPn1tc3ggKSB7CiAgICAgICAgcHJpbnQgU1RERVJSICJDSEFOR0UgRlJFRCBTRVRUSU5HXG4iOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgZG8gbm90aGluZyBpZiBpdCBkb2VzIG5vdCBjb250YWluIHRoZSA8aHRtbD4gZWxlbWVudCwgbWlnaHQgYmUKICAgICMgYW4gZW1iZWRkZWQgbGF5b3V0IHJlbmRlcmluZwogICAgaWYgKCAkeyAkUGFyYW17RGF0YX0gfSAhfiBtezxodG1sW14+XSo+fW1zeCApIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGdldCBkYXRhIG9mIHRoZSBhY3RpdmF0ZWQgbW9kdWxlcwogICAgbXkgJE1vZHVsZUZvclJlZiAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcmVkOjpNb2R1bGUnKTsKICAgIG15ICRNb2R1bGVzRGF0YVJlZiA9IHt9OwogICAgZm9yIG15ICRNb2R1bGUgKCBzb3J0IGtleXMgJXskTW9kdWxlRm9yUmVmfSApIHsKICAgICAgICBpZiAoICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfS0+e0FjdGl2ZX0gKSB7CiAgICAgICAgICAgICRNb2R1bGVzRGF0YVJlZi0+eyRNb2R1bGV9ID0ge307CiAgICAgICAgfQogICAgfQoKICAgIGZvciBteSAkTW9kdWxlTmFtZSAoIHNvcnQga2V5cyAleyRNb2R1bGVzRGF0YVJlZn0gKSB7CgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoICdLZXJuZWw6OlN5c3RlbTo6RnJlZDo6JyAuICRNb2R1bGVOYW1lICktPkRhdGFHZXQoCiAgICAgICAgICAgIE1vZHVsZVJlZiAgICAgID0+ICRNb2R1bGVzRGF0YVJlZi0+eyRNb2R1bGVOYW1lfSwKICAgICAgICAgICAgSFRNTERhdGFSZWYgICAgPT4gJFBhcmFte0RhdGF9LAogICAgICAgICAgICBGcmVkTW9kdWxlc1JlZiA9PiAkTW9kdWxlc0RhdGFSZWYsCiAgICAgICAgKTsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCggJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkOjonIC4gJE1vZHVsZU5hbWUgKS0+Q3JlYXRlRnJlZE91dHB1dCgKICAgICAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVzRGF0YVJlZi0+eyRNb2R1bGVOYW1lfSwKICAgICAgICApOwogICAgfQoKICAgICMgYnVpbGQgdGhlIGNvbnRlbnQgc3RyaW5nCiAgICBteSAkT3V0cHV0ID0gJyc7CiAgICBpZiAoICRNb2R1bGVzRGF0YVJlZi0+e0NvbnNvbGV9LT57T3V0cHV0fSApIHsKICAgICAgICAkT3V0cHV0IC49ICRNb2R1bGVzRGF0YVJlZi0+e0NvbnNvbGV9LT57T3V0cHV0fTsKICAgICAgICBkZWxldGUgJE1vZHVsZXNEYXRhUmVmLT57Q29uc29sZX07CiAgICB9CiAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAleyRNb2R1bGVzRGF0YVJlZn0gKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTW9kdWxlc0RhdGFSZWYtPnskTW9kdWxlfS0+e091dHB1dH0gfHwgJyc7CiAgICB9CgogICAgbXkgJEpTT3V0cHV0ID0gJyc7CiAgICAkT3V0cHV0ID1+IHN7KDxzY3JpcHQuKz8vc2NyaXB0Pil9ewogICAgICAgICRKU091dHB1dCAuPSAkMTsKICAgICAgICAiIjsKICAgIH1zbXhlZzsKCiAgICAjIFB1dCBvdXRwdXQgaW4gdGhlIEZyZWQgQ29udGFpbmVyCiAgICAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkQ29udGFpbmVyJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBEYXRhID0+ICRPdXRwdXQKICAgICAgICB9LAogICAgKTsKCiAgICAjIGluY2x1ZGUgdGhlIGZyZWQgb3V0cHV0IGluIHRoZSBvcmlnaW5hbCBvdXRwdXQKICAgIGlmICggJHsgJFBhcmFte0RhdGF9IH0gIX4gcy8oXDxib2R5KHwuKz8pXD4pLyQxXG4kT3V0cHV0XG5cblxuXG4vbXggKSB7CiAgICAgICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gcy9eKC4pL1xuJE91dHB1dFxuXG5cblxuJDEvbXg7CiAgICB9CgogICAgcmV0dXJuIGlmICEkTGF5b3V0T2JqZWN0LT57VXNlcklEfTsKCiAgICAjIGFkZCBmcmVkIGljb24gdG8gaGVhZGVyCiAgICBteSAkQWN0aXZlID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcmVkOjpBY3RpdmUnKSB8fCAwOwogICAgbXkgJENsYXNzID0gJEFjdGl2ZSA/ICdGcmVkQWN0aXZlJyA6ICcnOwogICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gc3sgPGRpdiBbXj5dKiBpZD0iaGVhZGVyIiBbXj5dKj4gfXsKICAgICAgICAkJgoKICAgICAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRUb2dnbGVDb250YWluZXIiPgogICAgICAgICAgICA8YSBpZD0iRGV2ZWxGcmVkVG9nZ2xlQ29udGFpbmVyTGluayIgY2xhc3M9IiRDbGFzcyIgaHJlZj0iIyI+RjwvYT4KICAgICAgICA8L2Rpdj4KICAgIH14bXNpZzsKICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IHN7ICg8Ym9keSBbXj5dKiBjbGFzcz0iIFteIl0qKSAoICIgW14+XSo+ICkgfXsgJDEgJENsYXNzICQyIH14bXNpZzsKCiAgICAjIEluamVjdCBKUyBhdCB0aGUgZW5kIG9mIHRoZSBib2R5CiAgICAkeyAkUGFyYW17RGF0YX0gfSA9fiBzezwvYm9keT59eyRKU091dHB1dFxuXHQ8L2JvZHk+fXNteDsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkNvbmZpZ0xvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnTG9nIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBjb25maWcgbG9nIG1vZHVsZQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnTG9nLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSB0cmFuc2xhdGlvbmRlYnVnZ2luZyBsb2cKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZVJlZn0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE1vZHVsZVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJEhUTUxMaW5lcyA9ICcnOwogICAgZm9yIG15ICRMaW5lICggQHsgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSB9ICkgewoKICAgICAgICBmb3IgbXkgJFREICggQHskTGluZX0gKSB7CiAgICAgICAgICAgICRURCA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFREICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICRMaW5lLT5bMV0gZXEgJ1RydWUnICkgewogICAgICAgICAgICAkTGluZS0+WzFdID0gJyc7CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJENvdW50ICggMCAuLiAzICkgewogICAgICAgICAgICAkTGluZS0+WyRDb3VudF0gfHw9ICcnOwogICAgICAgIH0KCiAgICAgICAgJEhUTUxMaW5lcyAuPSAiICAgICAgICA8dHI+XG4iCiAgICAgICAgICAgIC4gIiAgICAgICAgICA8dGQgYWxpZ249XCJyaWdodFwiPiRMaW5lLT5bM108L3RkPlxuIgogICAgICAgICAgICAuICIgICAgICAgICAgPHRkPiRMaW5lLT5bMF08L3RkPlxuIgogICAgICAgICAgICAuICIgICAgICAgICAgPHRkPiRMaW5lLT5bMV08L3RkPlxuIgogICAgICAgICAgICAuICIgICAgICAgICAgPHRkPiRMaW5lLT5bMl08L3RkPlxuIgogICAgICAgICAgICAuICIgICAgICAgIDwvdHI+IjsKICAgIH0KCiAgICByZXR1cm4gaWYgISRIVE1MTGluZXM7CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkQ29uZmlnTG9nJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBIVE1MTGluZXMgPT4gJEhUTUxMaW5lcywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkNvbmZpZ1N3aXRjaDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnU3dpdGNoIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBjb25maWcgc3dpdGNoIG1vZHVsZQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnU3dpdGNoLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSBjb25maWcgc3dpdGNoIG1vZHVsZQoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuIGlmICEkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9OwoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkQ29uZmlnU3dpdGNoJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBDb25maWdJdGVtcyA9PiAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9LAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkNvbnNvbGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgp1c2UgQ3dkOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uc29sZSAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgbGF5b3V0IGZ1bmN0aW9ucyBvZiBjb25zb2xlIG9iamVjdAoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uc29sZS0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgU1RERVJSIGxvZwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjcmVhdGUgdGhlIGNvbnNvbGUgdGFibGUKICAgIG15ICRDb25zb2xlID0gJ0FjdGl2YXRlZCBtb2R1bGVzOiA8c3Ryb25nPicKICAgICAgICAuICggam9pbiAnIC0gJywgQHsgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSB9ICkKICAgICAgICAuICc8L3N0cm9uZz4nOwoKICAgIHJldHVybiAxIGlmICEkUGFyYW17TW9kdWxlUmVmfS0+e1N0YXR1c307CgogICAgaWYgKCAkUGFyYW17TW9kdWxlUmVmfS0+e1NldHRpbmd9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1NldHRpbmcnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJFN5c3RlbU5hbWUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6OlN5c3RlbU5hbWUnKQogICAgICAgIHx8ICRDb25maWdPYmplY3QtPkdldCgnSG9tZScpOwogICAgbXkgJEJhY2tncm91bmRDb2xvciA9ICRDb25maWdPYmplY3QtPkdldCgnRnJlZDo6QmFja2dyb3VuZENvbG9yJykKICAgICAgICB8fCAncmVkJzsKICAgIG15ICRCcmFuY2hOYW1lID0gJ2NvdWxkIG5vdCBiZSBkZXRlY3RlZCc7CgogICAgIyBBZGQgY3VycmVudCBnaXQgYnJhbmNoIHRvIG91dHB1dAogICAgbXkgJEhvbWUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0hvbWUnKTsKICAgIGlmICggLWQgIiRIb21lLy5naXQiICkgewogICAgICAgIG15ICRPbGRXb3JraW5nRGlyID0gZ2V0Y3dkKCk7CiAgICAgICAgY2hkaXIoJEhvbWUpOwogICAgICAgIG15ICRHaXRSZXN1bHQgPSBgZ2l0IGJyYW5jaGA7CiAgICAgICAgY2hkaXIoJE9sZFdvcmtpbmdEaXIpOwoKICAgICAgICBpZiAoJEdpdFJlc3VsdCkgewogICAgICAgICAgICAoJEJyYW5jaE5hbWUpID0gJEdpdFJlc3VsdCA9fiBtL15bKl0gXHMrIChcUyspL3htczsKICAgICAgICB9CiAgICB9CgogICAgbXkgJEJyYW5jaENsYXNzOwogICAgbXkgJEJ1Z051bWJlcjsKCiAgICBpZiAoICRCcmFuY2hOYW1lIGVxICdtYXN0ZXInICkgewogICAgICAgICRCcmFuY2hDbGFzcyA9ICdXYXJuaW5nJzsKICAgIH0KICAgIGVsc2lmICggJEJyYW5jaE5hbWUgPX4gbXtidWctKChcZCl7MSw2fSkuKn0gKSB7CiAgICAgICAgJEJ1Z051bWJlciA9ICQxOwogICAgfQoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkQ29uc29sZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgVGV4dCAgICAgICAgICAgID0+ICRDb25zb2xlLAogICAgICAgICAgICBNb2RQZXJsICAgICAgICAgPT4gX01vZFBlcmwoKSwKICAgICAgICAgICAgUGVybCAgICAgICAgICAgID0+IHNwcmludGYoICIldmQiLCAkXlYgKSwKICAgICAgICAgICAgU3lzdGVtTmFtZSAgICAgID0+ICRTeXN0ZW1OYW1lLAogICAgICAgICAgICBCcmFuY2hOYW1lICAgICAgPT4gJEJyYW5jaE5hbWUsCiAgICAgICAgICAgIEJyYW5jaENsYXNzICAgICA9PiAkQnJhbmNoQ2xhc3MsCiAgICAgICAgICAgIEJhY2tncm91bmRDb2xvciA9PiAkQmFja2dyb3VuZENvbG9yLAogICAgICAgICAgICBCdWdOdW1iZXIgICAgICAgPT4gJEJ1Z051bWJlciwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9Nb2RQZXJsIHsKCiAgICAjIGZpbmQgb3V0LCBpZiBtb2RwZXJsIGlzIHVzZWQKICAgIG15ICRNb2RQZXJsID0gJ25vdCBhY3RpdmUnOwoKICAgICMjIG5vIGNyaXRpYwogICAgaWYgKCBleGlzdHMgJEVOVntNT0RfUEVSTH0gJiYgZGVmaW5lZCAkbW9kX3Blcmw6OlZFUlNJT04gKSB7CiAgICAgICAgJE1vZFBlcmwgPSAkbW9kX3Blcmw6OlZFUlNJT047CiAgICB9CiAgICAjIyB1c2UgY3JpdGljCgogICAgcmV0dXJuICRNb2RQZXJsOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkVudkR1bXA7CiMjIG5vZmlsdGVyKFRpZHlBbGw6OlBsdWdpbjo6T1RSUzo6UGVybDo6RHVtcGVyKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIERhdGE6OkR1bXBlcjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkRW52RHVtcCAtIHNob3cgZHVtcCBvZiB0aGUgZW52aXJvbm1lbnQgcmVmLCBkYXRhIGZvciAkRW52IGluIGR0bAoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgbGF5b3V0IGZ1bmN0aW9ucyBvZiB0aGUgbGF5b3V0IGVudiBkdW1wIG9iamVjdAoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkRW52RHVtcC0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpHZXQgdGhlIHNlc3Npb24gZGF0YSBhbmQgY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIHNlc3Npb24gZHVtcAoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpFbnZEdW1wOjpEYXRhR2V0KCkgaXMgbm90IHVzZWQsCiAgICAjIGFzIHRoZSBkYXRhIG9mIGludGVyZXN0IGlzIG5vdCBlYXNpbHkgYXZhaWxhYmxlIHRoZXJlLgogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXsgJExheW91dE9iamVjdC0+e0VudlJlZn0gfSApIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0VudkRhdGFSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICRLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkTGF5b3V0T2JqZWN0LT57RW52UmVmfS0+eyRLZXl9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBvdXRwdXQgdGhlIGh0bWwKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZEVudkR1bXAnLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkhUTUxDaGVjazsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSFRNTENoZWNrIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIEhUTUwgY2hlY2sgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTVERFUlJMb2ctPm5ldygKICAgICAgICAlUGFyYW0sCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENyZWF0ZUZyZWRPdXRwdXQoKQoKY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIFNUREVSUiBsb2cKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkSFRNTExpbmVzID0gJyc7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtNb2R1bGVSZWZ9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBNb2R1bGVSZWYhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZEhUTUxDaGVjaycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgSFRNTExpbmVzID0+ICRIVE1MTGluZXMsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkpTTGludDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSlNMaW50IC0gRnJlZCBtb2R1bGUgZm9yIEpTTGludCBjaGVja3MKCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGxheW91dCBmdW5jdGlvbnMgb2YgSlNMaW50IG9iamVjdAoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSlNMaW50LT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSBKU0xpbnQgbW9kdWxlCgogICAgJExheW91dE9iamVjdC0+Q3JlYXRlRnJlZE91dHB1dCgKICAgICAgICBNb2R1bGVzUmVmID0+ICRNb2R1bGVzUmVmLAogICAgKTsKCj1jdXQKCnN1YiBDcmVhdGVGcmVkT3V0cHV0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtNb2R1bGVSZWZ9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBNb2R1bGVSZWYhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZEpTTGludCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHt9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OlNlc3Npb25EdW1wOwojIyBub2ZpbHRlcihUaWR5QWxsOjpQbHVnaW46Ok9UUlM6OlBlcmw6OkR1bXBlcikKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgp1c2UgRGF0YTo6RHVtcGVyOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkU2Vzc2lvbkR1bXAgLSBsYXlvdXQgYmFja2VuZCBtb2R1bGUKCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGxheW91dCBmdW5jdGlvbnMgb2YgdGhlIHNlc3Npb24gZHVtcCBvYmplY3QKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgJEJhY2tlbmRPYmplY3QgPSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNlc3Npb25EdW1wLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCkdldCB0aGUgc2Vzc2lvbiBkYXRhIGFuZCBjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgc2Vzc2lvbiBkdW1wCgogICAgJExheW91dE9iamVjdC0+Q3JlYXRlRnJlZE91dHB1dCgKICAgICAgICBNb2R1bGVzUmVmID0+ICRNb2R1bGVzUmVmLAogICAgKTsKCj1jdXQKCnN1YiBDcmVhdGVGcmVkT3V0cHV0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtNb2R1bGVSZWZ9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBNb2R1bGVSZWYhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkTGF5b3V0T2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRTZXNzaW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyk7CgogICAgIyBEYXRhIGlzIGdlbmVyYXRlZCBoZXJlLCBhcyBpdCBpcyBub3QgYXZhaWxhYmxlIGluIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTZXNzaW9uRHVtcAogICAgbXkgJFNlc3Npb25JRCA9ICRMYXlvdXRPYmplY3QtPntFbnZSZWZ9LT57U2Vzc2lvbklEfTsKICAgIG15ICVTZXNzaW9uRGF0YTsKICAgIGlmICgkU2Vzc2lvbklEKSB7CiAgICAgICAgJVNlc3Npb25EYXRhID0gJFNlc3Npb25PYmplY3QtPkdldFNlc3Npb25JRERhdGEoIFNlc3Npb25JRCA9PiAkU2Vzc2lvbklEICk7CiAgICB9CgogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJVNlc3Npb25EYXRhICkgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2Vzc2lvbkRhdGFSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICRLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkU2Vzc2lvbkRhdGF7JEtleX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG91dHB1dCB0aGUgaHRtbAogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkU2Vzc2lvbkR1bXAnLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OlNUREVSUkxvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNUREVSUkxvZyAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgbGF5b3V0IGZ1bmN0aW9ucyBvZiBTVERFUlIgbG9nIG9iamVjdHMKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgJEJhY2tlbmRPYmplY3QgPSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNUREVSUkxvZy0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgU1RERVJSIGxvZwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuIGlmICEkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9OwogICAgcmV0dXJuIGlmIHJlZiAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IG5lICdBUlJBWSc7CgogICAgIyBjcmVhdGUgaHRtbCBzdHJpbmcKICAgIG15ICRIVE1MTGluZXM7CiAgICBteSAkSFRNTExpbmVzRmlsdGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGcmVkOjpTVERFUlJMb2dGaWx0ZXInKTsKCiAgICBMSU5FOgogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSBAeyAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IH0gKSB7CgogICAgICAgICMgZmlsdGVyIGNvbnRlbnQgaWYgbmVlZGVkCiAgICAgICAgaWYgKCRIVE1MTGluZXNGaWx0ZXIpIHsKICAgICAgICAgICAgbmV4dCBMSU5FIGlmICRMaW5lID1+IC8kSFRNTExpbmVzRmlsdGVyL3NteDsKICAgICAgICB9CgogICAgICAgICRIVE1MTGluZXMgLj0gJExpbmU7CiAgICB9CgogICAgcmV0dXJuIGlmICEkSFRNTExpbmVzOwoKICAgICMgb3V0cHV0IHRoZSBodG1sCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZFNUREVSUkxvZycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgSFRNTExpbmVzID0+ICRIVE1MTGluZXMsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OlNRTExvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkU1FMTG9nIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIFNRTCBsb2cgbW9kdWxlCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTUUxMb2ctPm5ldygKICAgICAgICAlUGFyYW0sCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENyZWF0ZUZyZWRPdXRwdXQoKQoKY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIHRyYW5zbGF0aW9uZGVidWdnaW5nIGxvZwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBmb3IgbXkgJExpbmUgKCBAeyAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IH0gKSB7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFRpbWUgICAgICAgICAgICA9PiAkTGluZS0+WzRdICogMTAwMCwKICAgICAgICAgICAgICAgIEVxdWFsU3RhdGVtZW50cyA9PiAkTGluZS0+WzVdIHx8ICcnLAogICAgICAgICAgICAgICAgU3RhdGVtZW50ICAgICAgID0+ICRMaW5lLT5bMV0sCiAgICAgICAgICAgICAgICBQYWNrYWdlICAgICAgICAgPT4gJExpbmUtPlszXSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJExpbmUgKCBzcGxpdCggLzsvLCAkTGluZS0+WzNdICkgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhY2tUcmFjZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBTdGFja1RyYWNlID0+ICRMaW5lLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggJExpbmUtPlsyXSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdSb3dCaW5kUGFyYW1ldGVycycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBCaW5kUGFyYW1ldGVycyA9PiAkTGluZS0+WzJdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgfQogICAgfQoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZFNRTExvZycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgQWxsU3RhdGVtZW50cyAgICA9PiAkUGFyYW17TW9kdWxlUmVmfS0+e0FsbFN0YXRlbWVudHN9LAogICAgICAgICAgICBEb1N0YXRlbWVudHMgICAgID0+ICRQYXJhbXtNb2R1bGVSZWZ9LT57RG9TdGF0ZW1lbnRzfSwKICAgICAgICAgICAgU2VsZWN0U3RhdGVtZW50cyA9PiAkUGFyYW17TW9kdWxlUmVmfS0+e1NlbGVjdFN0YXRlbWVudHN9LAogICAgICAgICAgICBUaW1lICAgICAgICAgICAgID0+ICRQYXJhbXtNb2R1bGVSZWZ9LT57VGltZX0sCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFRyYW5zbGF0aW9uRGVidWcgLSBsYXlvdXQgYmFja2VuZCBtb2R1bGUKCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGxheW91dCBmdW5jdGlvbnMgb2YgdHJhbnNsYXRpb24gZGVidWcgbW9kdWxlCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRUcmFuc2xhdGlvbkRlYnVnLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSB0cmFuc2xhdGlvbmRlYnVnZ2luZyBsb2cKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZVJlZn0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE1vZHVsZVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRIVE1MTGluZXMgPSAnJzsKICAgIGZvciBteSAkTGluZSAoIEB7ICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gfSApIHsKICAgICAgICAkSFRNTExpbmVzIC49ICI8c3Bhbj4kTGluZTwvc3Bhbj4iOwogICAgfQoKICAgIHJldHVybiAxIGlmICEkSFRNTExpbmVzOwoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkVHJhbnNsYXRpb25EZWJ1ZycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgSFRNTExpbmVzID0+ICRIVE1MTGluZXMsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgQ29uZmlndXJhdGlvbiBMb2cKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc2VhcmNoIEZyZWRTZWFyY2giIHRpdGxlPSJUb2dnbGUgU2VhcmNoIEJhciI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiIGlkPSJEZXZlbEZyZWRDb25maWdMb2ciPgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0Ij4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0aD5DYWxsczwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPkNvbmZpZzwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlBhY2thZ2U8L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90aGVhZD4KWyUgRGF0YS5IVE1MTGluZXMgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgQ29uZmlndXJhdGlvbiBTd2l0Y2gKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc2VhcmNoIEZyZWRTZWFyY2giIHRpdGxlPSJUb2dnbGUgU2VhcmNoIEJhciI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiIGlkPSJEZXZlbEZyZWRDb25maWdTd2l0Y2giPgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0IEZyZWRTd2l0Y2hUYWJsZSI+CiAgICAgICAgWyUgRk9SRUFDSCBJdGVtIElOIERhdGEuQ29uZmlnSXRlbXMgJV0KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGcmVkU3dpdGNoIFslIElGIEl0ZW0uVmFsdWUgPT0gMSAlXU9uWyUgRU5EICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBkYXRhLWtleT0iWyUgSXRlbS5LZXkgfCBodG1sICVdIiBkYXRhLXZhbHVlPSJbJSBJdGVtLlZhbHVlIHwgaHRtbCAlXSIgdGl0bGU9IlN3aXRjaCB0aGlzIHNldHRpbmciPjxzcGFuPjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPlslIEl0ZW0uS2V5IHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgIDx0ciBjbGFzcz0iSGlkZGVuIEZpbHRlck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPk5vIEl0ZW1zIGZvdW5kLjwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90YWJsZT4KICAgIDwvZGl2Pgo8L2Rpdj4KCjwhLS0ganNfb25fZG9jdW1lbnRfY29tcGxldGUgLS0+CjxzY3JpcHQ+Cid1c2Ugc3RyaWN0JzsKJCgnLkZyZWRTd2l0Y2ggYScpLnVuYmluZCgnY2xpY2snKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKEV2ZW50KSB7CgogICAgdmFyIEtleSA9ICQodGhpcykuZGF0YSgna2V5JyksCiAgICAgICAgVmFsdWUgPSBwYXJzZUludCgkKHRoaXMpLmRhdGEoJ3ZhbHVlJyksIDEwKSwKICAgICAgICBEYXRhID0ge307CgogICAgaWYgKCFLZXkpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgJCh0aGlzKQogICAgICAgIC5wYXJlbnQoKQogICAgICAgIC50b2dnbGVDbGFzcygnT24nKTsKCiAgICAkKHRoaXMpCiAgICAgICAgLnBhcmVudCgpCiAgICAgICAgLm5leHQoJ3RkJykKICAgICAgICAucHJlcGVuZCgnPGkgY2xhc3M9ImZhIGZhLWNpcmNsZS1vLW5vdGNoIGZhLXNwaW4iPjwvaT4mbmJzcDsnKTsKCiAgICBEYXRhID0gewogICAgICAgIEFjdGlvbjogJ0RldmVsRnJlZCcsCiAgICAgICAgU3ViYWN0aW9uOiAnQ29uZmlnU3dpdGNoQUpBWCcsCiAgICAgICAgJ0tleSc6IEtleSwKICAgICAgICAnVmFsdWUnOiBWYWx1ZQogICAgfTsKCiAgICBDb3JlLkFKQVguRnVuY3Rpb25DYWxsKAogICAgICAgIENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSwKICAgICAgICBEYXRhLAogICAgICAgIGZ1bmN0aW9uKFJlc3BvbnNlKSB7CiAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCh0cnVlKTsKICAgICAgICB9LAogICAgICAgICdqc29uJwogICAgKTsKCiAgICByZXR1cm4gZmFsc2U7Cgp9KTsKPC9zY3JpcHQ+CjwhLS0ganNfb25fZG9jdW1lbnRfY29tcGxldGUgLS0+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc2NvcGVkPSIiPgouRGV2ZWxGcmVkQ29udGFpbmVyIHsKICAgIHdpZHRoOiBbJSBDb25maWcoIkZyZWQ6OkNvbnNvbGVXaWR0aCIpICVdOwogICAgLW1vei1vcGFjaXR5OiBbJSBDb25maWcoIkZyZWQ6OkNvbnNvbGVPcGFjaXR5IikgJV07CiAgICAtd2Via2l0LW9wYWNpdHk6IFslIENvbmZpZygiRnJlZDo6Q29uc29sZU9wYWNpdHkiKSAlXTsKICAgIG9wYWNpdHk6IFslIENvbmZpZygiRnJlZDo6Q29uc29sZU9wYWNpdHkiKSAlXTsKfQoKLkRldmVsRnJlZEJveCBoMSwgLkRldmVsRnJlZEJveC5FeHBhbmRlZCBoMSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBbJSBEYXRhLkJhY2tncm91bmRDb2xvciB8IGh0bWwgJV07Cn0KClslIElGIENvbmZpZygiRnJlZDo6Q29uc29sZUhlaWdodCIpICVdCi5EZXZlbEZyZWRCb3hDb250ZW50IHsKICAgIG1heC1oZWlnaHQ6IFslIENvbmZpZygiRnJlZDo6Q29uc29sZUhlaWdodCIpICVdOwp9ClslIEVORCAlXQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Ij4KICAgIDxoMT4KICAgICAgICBGcmVkIENvbnNvbGUKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZXR0aW5nIikgJV0KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNvZyBGcmVkU2V0dGluZ3MiIGRhdGEtdXJsPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249RGV2ZWxGcmVkO1N1YmFjdGlvbj1TZXR0aW5nIj48L2k+ClslIFJlbmRlckJsb2NrRW5kKCJTZXR0aW5nIikgJV0KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aW1lcyBGcmVkQ2xvc2VBbGwiIHRpdGxlPSJDbG9zZSBhbGwiPjwvaT4KICAgICAgICA8L3NwYW4+CiAgICA8L2gxPgogICAgPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Q29udGVudCBGcmVkRWxlbWVudExpc3QiIGlkPSJEZXZlbEZyZWRDb25zb2xlIj4KICAgICAgICA8c3Bhbj5TeXN0ZW0gPHN0cm9uZz5bJSBEYXRhLlN5c3RlbU5hbWUgfCBodG1sICVdPC9zdHJvbmc+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJbJSBEYXRhLkJyYW5jaENsYXNzIHwgaHRtbCAlXSI+QnJhbmNoIDxzdHJvbmc+WyUgRGF0YS5CcmFuY2hOYW1lIHwgaHRtbCAlXTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICA8c3Bhbj5tb2RfcGVybCA8c3Ryb25nPlslIERhdGEuTW9kUGVybCB8IGh0bWwgJV08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgPHNwYW4+UGVybCA8c3Ryb25nPlslIERhdGEuUGVybCB8IGh0bWwgJV08L3N0cm9uZz48L3NwYW4+CiAgICBbJSBJRiBEYXRhLkJ1Z051bWJlciAlXQogICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1leHRlcm5hbC1saW5rIj48L2k+IE9wZW4gPGEgaHJlZj0iaHR0cDovL2J1Z3Mub3Rycy5vcmcvc2hvd19idWcuY2dpP2lkPVslIERhdGEuQnVnTnVtYmVyIHwgdXJpICVdIiB0YXJnZXQ9Il9ibGFuayI+QnVnI1slIERhdGEuQnVnTnVtYmVyIHwgaHRtbCAlXTwvYT4gaW4gQnVnWmlsbGE8L3NwYW4+CiAgICBbJSBFTkQgJV0KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQ29udGFpbmVyIiBpZD0iRGV2ZWxGcmVkQ29udGFpbmVyIj4KICAgIFslIERhdGEuRGF0YSAlXQo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Ij4KICAgIDxoMT4KICAgICAgICBFbnZpcm9ubWVudCBWYXJpYWJsZXMKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc2VhcmNoIEZyZWRTZWFyY2giIHRpdGxlPSJTZWFyY2giPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aW1lcyBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50IiBpZD0iRGV2ZWxGcmVkRW52RHVtcCI+CiAgICAgICAgPGRpdiBjbGFzcz0iRnJlZFF1aWNrU2VhcmNoIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2ggZm9yLi4uIiAvPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdGltZXMiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGFibGUgY2xhc3M9IkZyZWRUYWJsZURlZmF1bHQiPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRoPktleTwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlZhbHVlPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVudkRhdGFSb3ciKSAlXQogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5LZXkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlZhbHVlIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJFbnZEYXRhUm93IikgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgSFRNTENoZWNrCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aW1lcyBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgInVzZSBzdHJpY3QiOwogICAgICAgIENvcmUuQXBwLlJlYWR5KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIENvcmUuRnJlZC5IVE1MQ2hlY2suQ2hlY2tGb3JTdGFydCgpOwogICAgICAgIH0pOwogICAgPC9zY3JpcHQ+CiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOjVweDsiIGlkPSJGcmVkSFRNTENoZWNrUmVzdWx0cyIgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiPgogICAgICAgIDxkaXYgaWQ9IkZyZWRIVE1MQ2hlY2tSdW5uaW5nIj48aSBjbGFzcz0iZmEgZmEtc3Bpbm5lciBmYSBmYS1zcGluIj48L2k+Jm5ic3A7IENoZWNrcyBhcmUgcnVubmluZy4uLjwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgSlNMaW50CiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aW1lcyBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgInVzZSBzdHJpY3QiOwogICAgICAgIENvcmUuQXBwLlJlYWR5KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIENvcmUuRnJlZC5KU0xpbnQuSW5pdCgpOwogICAgICAgIH0pOwogICAgPC9zY3JpcHQ+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50IiBpZD0iRnJlZEpTTGludFNjcmlwdHMiPgogICAgICAgIDxkaXYgaWQ9IkZyZWRKU0xpbnRSdW5uaW5nIj4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXNwaW5uZXIgZmEgZmEtc3BpbiI+PC9pPiZuYnNwOyBDaGVja3MgYXJlIHJ1bm5pbmcuLi4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Ij4KICAgIDxoMT4KICAgICAgICBTZXNzaW9uRHVtcAogICAgICAgIDxzcGFuIGNsYXNzPSJGcmVkVG9vbEJhciI+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1zZWFyY2ggRnJlZFNlYXJjaCIgdGl0bGU9IlNlYXJjaCI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiIGlkPSJEZXZlbEZyZWRTZXNzaW9uRHVtcCI+CiAgICAgICAgPGRpdiBjbGFzcz0iRnJlZFF1aWNrU2VhcmNoIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2ggZm9yLi4uIiAvPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdGltZXMiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGFibGUgY2xhc3M9IkZyZWRUYWJsZURlZmF1bHQiPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRoPktleTwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlZhbHVlPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIlNlc3Npb25EYXRhUm93IikgJV0KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPlslIERhdGEuS2V5IHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPHByZT5bJSBEYXRhLlZhbHVlIHwgaHRtbCAlXTwvcHJlPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlNlc3Npb25EYXRhUm93IikgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZFNldHRpbmdzIj4KICAgIDxoMT5GcmVkIFNldHRpbmdzPC9oMT4KICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJEZXZlbEZyZWRTZXR0aW5nIj4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJEZXZlbEZyZWQiIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU2V0dGluZ0FjdGlvbiIgLz4KICAgICAgICA8dWwgY2xhc3M9IkZyZWRTZXR0aW5ncyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZyZWRNb2R1bGUiKSAlXQogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLkZyZWRNb2R1bGUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IkZyZWRNb2R1bGUiIGlkPSJbJSBEYXRhLkZyZWRNb2R1bGUgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5GcmVkTW9kdWxlIHwgaHRtbCAlXSIgWyUgRGF0YS5DaGVja2VkICVdLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZyZWRNb2R1bGUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRGVzY3JpcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb25maWciKSAlXQogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluU3lzQ29uZmlnO1N1YmFjdGlvbj1FZGl0O1N5c0NvbmZpZ1N1Ykdyb3VwPVslIERhdGEuTW9kdWxlTmFtZSAlXTtTeXNDb25maWdHcm91cD1GcmVkIiB0aXRsZT0iU2V0dGluZ3MiIGNsYXNzPSJGcmVkU2V0dGluZ3NMaW5rIiB0YXJnZXQ9Il9ibGFuayI+PGkgY2xhc3M9ImZhIGZhLWNvZyI+PC9pPjwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbmZpZyIpICVdCiAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJGcmVkTW9kdWxlIikgJV0KICAgICAgICA8L3VsPgogICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgPC9mb3JtPgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCIgaWQ9IkRldmVsRnJlZEJveFNRTExvZyI+CiAgICA8aDE+CiAgICAgICAgU1FMIExvZwogICAgICAgIDxzcGFuIGNsYXNzPSJGcmVkVG9vbEJhciI+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1zZWFyY2ggRnJlZFNlYXJjaCIgdGl0bGU9IlNlYXJjaCI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiIGlkPSJEZXZlbEZyZWRTUUxMb2ciPgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRFbGVtZW50TGlzdCI+CiAgICAgICAgICAgIDxzcGFuPkV4ZWN1dGVkIDxzdHJvbmc+WyUgRGF0YS5BbGxTdGF0ZW1lbnRzICVdPC9zdHJvbmc+IFN0YXRlbWVudHM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPjxzdHJvbmc+WyUgRGF0YS5TZWxlY3RTdGF0ZW1lbnRzIHwgaHRtbCAlXTwvc3Ryb25nPiBTRUxFQ1RzICsgPHN0cm9uZz5bJSBEYXRhLkRvU3RhdGVtZW50cyB8IGh0bWwgJV08L3N0cm9uZz4gRE9zPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EdXJhdGlvbjogPHN0cm9uZz5bJSBEYXRhLlRpbWUgfCBodG1sICVdPC9zdHJvbmc+IHMuPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0Ij4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0aCB0aXRsZT0iVGltZSAobXMpIj5tczwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIHRpdGxlPSJFcXVhbCBTdGF0ZW1lbnRzIj5FcXVhbDwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlN0YXRlbWVudDwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIHRpdGxlPSJCaW5kIHBhcmFtZXRlcnMiPkJpbmQ8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aD5QYWNrYWdlPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUm93IikgJV0KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlRpbWUiIHRpdGxlPSJbJSBEYXRhLlRpbWUgfCBodG1sICVdIG1zIj5bJSBEYXRhLlRpbWUgfCB0cnVuY2F0ZSg2KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRXF1YWxTdGF0ZW1lbnRzIj5bJSBEYXRhLkVxdWFsU3RhdGVtZW50cyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iU1FMU3RhdGVtZW50Ij5bJSBEYXRhLlN0YXRlbWVudCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iQmluZFBhcmFtZXRlcnMiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb3dCaW5kUGFyYW1ldGVycyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJTaG93QmluZFBhcmFtZXRlcnMiIGhyZWY9IiMiIHRpdGxlPSJbJSBEYXRhLkJpbmRQYXJhbWV0ZXJzIHwgaHRtbCAlXSI+U2hvdzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGlkZGVuIj5bJSBEYXRhLkJpbmRQYXJhbWV0ZXJzIHwgaHRtbCAlXTwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUm93QmluZFBhcmFtZXRlcnMiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJTdGFja1RyYWNlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhY2tUcmFjZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhY2tUcmFjZSB8IGh0bWwgJV08YnIvPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhY2tUcmFjZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGJvZHk+ClslIFJlbmRlckJsb2NrRW5kKCJSb3ciKSAlXQogICAgICAgICAgICA8dHIgY2xhc3M9IkhpZGRlbiBGaWx0ZXJNZXNzYWdlIj4KICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI1Ij5ObyBJdGVtcyBmb3VuZC48L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8IS0tIGpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo8c2NyaXB0PgondXNlIHN0cmljdCc7CiQoJ2EuU2hvd0JpbmRQYXJhbWV0ZXJzJykudW5iaW5kKCdjbGljaycpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oRXZlbnQpIHsKICAgICQodGhpcykuaGlkZSgpLnBhcmVudCgpLmZpbmQoJ2RpdicpLnNob3coKTsKfSk7Cjwvc2NyaXB0Pgo8IS0tIGpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgU1RERVJSTG9nCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aW1lcyBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50IiBpZD0iRGV2ZWxGcmVkU1RERVJSTG9nIj4KICAgICAgICA8cHJlIGNsYXNzPSJGcmVkTW9ub1NwYWNlIj5bJSBEYXRhLkhUTUxMaW5lcyB8IGh0bWwgJV08L3ByZT4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgTWlzc2luZyBUcmFuc2xhdGlvbnMKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQgRnJlZEVsZW1lbnRMaXN0IiBpZD0iRGV2ZWxGcmVkVHJhbnNsYXRpb25EZWJ1ZyI+ClslIERhdGEuSFRNTExpbmVzICVdCiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ0xvZzsKIyMgbm8gY3JpdGljKFBlcmw6OkNyaXRpYzo6UG9saWN5OjpPVFJTOjpQcm9oaWJpdE9wZW4pCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ0xvZwoKPWhlYWQxIFNZTk9QU0lTCgpoYW5kbGUgdGhlIGNvbmZpZyBsb2cgZGF0YQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQExvZ01lc3NhZ2VzOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgb3BlbiB0aGUgVHJhbnNsYXRpb25EZWJ1Zy5sb2cgZmlsZSB0byBnZXQgdGhlIHVudHJhbnNsYXRlZCB3b3JkcwogICAgbXkgJEZpbGUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvQ29uZmlnLmxvZyc7CiAgICBteSAkRmlsZWhhbmRsZTsKICAgIGlmICggIW9wZW4gJEZpbGVoYW5kbGUsICc8JywgJEZpbGUgKSB7CiAgICAgICAgcHJpbnQgU1RERVJSICJQZXJoYXBzIHlvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gYXQgL3Zhci9mcmVkL1xuIiAuCiAgICAgICAgICAgICJDYW4ndCByZWFkIC92YXIvZnJlZC9Db25maWcubG9nIjsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgdGhlIHdob2xlIGluZm9ybWF0aW9uCiAgICBMSU5FOgogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSA8JEZpbGVoYW5kbGU+ICkgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSA9fiAvRlJFRC87CiAgICAgICAgcHVzaCBATG9nTWVzc2FnZXMsICRMaW5lOwogICAgfQoKICAgIGNsb3NlICRGaWxlaGFuZGxlOwogICAgcG9wIEBMb2dNZXNzYWdlczsKICAgICRTZWxmLT5JbnNlcnRXb3JkKCBXaGF0ID0+ICJGUkVEXG4iICk7CgogICAgbXkgJUluZGl2aWR1YWxDb25maWcgPSAoKTsKCiAgICBmb3IgbXkgJExpbmUgKEBMb2dNZXNzYWdlcykgewogICAgICAgICRMaW5lID1+IHMvXG4vLzsKICAgICAgICAkSW5kaXZpZHVhbENvbmZpZ3skTGluZX0rKzsKICAgIH0KCiAgICBATG9nTWVzc2FnZXMgPSAoKTsKICAgIGZvciBteSAkTGluZSAoIHNvcnQga2V5cyAlSW5kaXZpZHVhbENvbmZpZyApIHsKICAgICAgICBteSBAU3BsaXRlZExpbmUgPSBzcGxpdCAvOy8sICRMaW5lOwogICAgICAgIHB1c2ggQFNwbGl0ZWRMaW5lLCAkSW5kaXZpZHVhbENvbmZpZ3skTGluZX07CiAgICAgICAgcHVzaCBATG9nTWVzc2FnZXMsIFxAU3BsaXRlZExpbmU7CiAgICB9CgogICAgIyBzb3J0IHRoZSBkYXRhCiAgICBteSAkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcmVkOjpDb25maWdMb2cnKTsKICAgIG15ICRPcmRlckJ5ID0gZGVmaW5lZCggJENvbmZpZy0+e09yZGVyQnl9ICkgPyAkQ29uZmlnLT57T3JkZXJCeX0gOiAzOwogICAgaWYgKCAkT3JkZXJCeSA9PSAzICkgewogICAgICAgIEBMb2dNZXNzYWdlcyA9IHNvcnQgeyAkYi0+WyRPcmRlckJ5XSA8PT4gJGEtPlskT3JkZXJCeV0gfSBATG9nTWVzc2FnZXM7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBATG9nTWVzc2FnZXMgPSBzb3J0IHsgJGEtPlskT3JkZXJCeV0gY21wICRiLT5bJE9yZGVyQnldIH0gQExvZ01lc3NhZ2VzOwogICAgfQoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gPSBcQExvZ01lc3NhZ2VzOwogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIEluc2VydFdvcmQoKQoKU2F2ZSBhIHdvcmQgaW4gdGhlIHRyYW5zbGF0aW9uIGRlYnVnIGxvZwoKICAgICRCYWNrZW5kT2JqZWN0LT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gJ2Egd29yZCcsCiAgICApOwoKPWN1dAoKc3ViIEluc2VydFdvcmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkRnJlZFNldHRpbmdzID0gJENvbmZpZ09iamVjdC0+R2V0T3JpZ2luYWwoJ0ZyZWQ6Ok1vZHVsZScpOwoKICAgIGlmICggISRGcmVkU2V0dGluZ3MgfHwgISRGcmVkU2V0dGluZ3MtPntDb25maWdMb2d9IHx8ICEkRnJlZFNldHRpbmdzLT57Q29uZmlnTG9nfS0+e0FjdGl2ZX0gKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmICggISRQYXJhbXtIb21lfSApIHsKICAgICAgICAkUGFyYW17SG9tZX0gPSAkQ29uZmlnT2JqZWN0LT5HZXRPcmlnaW5hbCgnSG9tZScpOwogICAgfQoKICAgICMgc2F2ZSB0aGUgd29yZCBpbiBsb2cgZmlsZQogICAgbXkgJEZpbGUgPSAkUGFyYW17SG9tZX0gLiAnL3Zhci9mcmVkL0NvbmZpZy5sb2cnOwogICAgb3BlbiBteSAkRmlsZWhhbmRsZSwgJz4+JywgJEZpbGUgfHwgZGllICJDYW4ndCB3cml0ZSAkRmlsZSAhXG4iOwogICAgcHJpbnQgJEZpbGVoYW5kbGUgJFBhcmFte1doYXR9IC4gIlxuIjsKICAgIGNsb3NlICRGaWxlaGFuZGxlOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ1N3aXRjaDsKIyMgbm8gY3JpdGljKFBlcmw6OkNyaXRpYzo6UG9saWN5OjpPVFJTOjpQcm9oaWJpdE9wZW4pCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ1N3aXRjaAoKPWhlYWQxIFNZTk9QU0lTCgpoYW5kbGUgdGhlIGNvbmZpZyBsb2cgZGF0YQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJlZDo6Q29uZmlnU3dpdGNoJyk7CgogICAgcmV0dXJuIGlmICEkQ29uZmlnLT57U2V0dGluZ3N9OwoKICAgIG15IEBDb25maWdJdGVtczsKICAgIGZvciBteSAkSXRlbSAoIHNvcnQgQHsgJENvbmZpZy0+e1NldHRpbmdzfSB9ICkgewogICAgICAgIHB1c2ggQENvbmZpZ0l0ZW1zLCB7CiAgICAgICAgICAgIEtleSAgID0+ICRJdGVtLAogICAgICAgICAgICBWYWx1ZSA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJEl0ZW0pLAogICAgICAgIH07CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFxAQ29uZmlnSXRlbXM7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbnNvbGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6Q29uc29sZQoKPWhlYWQxIFNZTk9QU0lTCgpnaXZlcyB5b3UgYWxsIGZ1bmN0aW9ucyB3aGljaCBhcmUgbmVlZGVkIGZvciB0aGUgRlJFRC1jb25zb2xlCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIERhdGFHZXQoKQoKR2V0IHRoZSBkYXRhIGZvciB0aGlzIGZyZWQgbW9kdWxlLiBSZXR1cm5zIHRydWUgb3IgZmFsc2UuCkFuZCBhZGRzIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkUmVmIChxdyhNb2R1bGVSZWYgSFRNTERhdGFSZWYgRnJlZE1vZHVsZXNSZWYpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRSZWZ9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkUmVmISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgQE1vZHVsZXM7CiAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAleyAkUGFyYW17RnJlZE1vZHVsZXNSZWZ9IH0gKSB7CiAgICAgICAgaWYgKCAkTW9kdWxlIG5lICdDb25zb2xlJyApIHsKICAgICAgICAgICAgcHVzaCBATW9kdWxlcywgJE1vZHVsZTsKICAgICAgICB9CiAgICB9CiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9ID0gXEBNb2R1bGVzOwoKICAgIGlmICggJHsgJFBhcmFte0hUTUxEYXRhUmVmfSB9ICF+IG0vRnJlZC1TZXR0aW5nLyAmJiAkeyAkUGFyYW17SFRNTERhdGFSZWZ9IH0gPX4gL1w8Ym9keS4qP1w+LyApCiAgICB7CiAgICAgICAgJFBhcmFte01vZHVsZVJlZn0tPntTdGF0dXN9ID0gMTsKICAgIH0KCiAgICBpZiAoICR7ICRQYXJhbXtIVE1MRGF0YVJlZn0gfSAhfiBtL25hbWU9IkFjdGlvbiIgdmFsdWU9IkxvZ2luIi8gKSB7CiAgICAgICAgJFBhcmFte01vZHVsZVJlZn0tPntTZXR0aW5nfSA9IDE7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkVudkR1bXA7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6RW52RHVtcAoKPWhlYWQxIFNZTk9QU0lTCgpkb2VzIGVzc2VudGlhbGx5IG5vdGhpbmcKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gRGF0YUdldCgpCgpUaGlzIG1ldGhvZCBpcyBqdXN0IGZvciBjb21wYXRiaWxpdHkuIE5vIGRhdGEgaXMgc2V0IGhlcmUsCmFzIHRoZSBuZWVkZWQgc2Vzc2lvbiBvYmplY3QgaXMgbm90IGVhc2lseSBhdmFpbGFibGUgaGVyZS4KCiAgICBteSAkRGF0YUdldE9rID0gJEJhY2tlbmRPYmplY3QtPkRhdGFHZXQoCiAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KCBNb2R1bGVSZWYgKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkhUTUxDaGVjazsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpIVE1MQ2hlY2sKCj1oZWFkMSBTWU5PUFNJUwoKUGVyZm9ybSBIVE1MIFFBLgoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgRGF0YUdldCB7CiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkpTTGludDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkpTTGludAoKPWhlYWQxIFNZTk9QU0lTCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIERhdGFHZXQoKQoKR2V0IHRoZSBkYXRhIGZvciB0aGlzIGZyZWQgbW9kdWxlLiBSZXR1cm5zIHRydWUgb3IgZmFsc2UuCkFuZCBhZGQgdGhlIGRhdGEgdG8gdGhlIG1vZHVsZSByZWYuCgogICAgJEJhY2tlbmRPYmplY3QtPkRhdGFHZXQoCiAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNlc3Npb25EdW1wOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNlc3Npb25EdW1wCgo9aGVhZDEgU1lOT1BTSVMKCmRvZXMgZXNzZW50aWFsbHkgbm90aGluZwoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKClRoaXMgbWV0aG9kIGlzIGp1c3QgZm9yIGNvbXBhdGJpbGl0eS4gTm8gZGF0YSBpcyBzZXQgaGVyZSwKYXMgdGhlIG5lZWRlZCBzZXNzaW9uIG9iamVjdCBpcyBub3QgZWFzaWx5IGF2YWlsYWJsZSBoZXJlLgoKICAgIG15ICREYXRhR2V0T2sgPSAkQmFja2VuZE9iamVjdC0+RGF0YUdldCgKICAgICAgICBNb2R1bGVSZWYgPT4gJE1vZHVsZVJlZiwKICAgICk7Cgo9Y3V0CgpzdWIgRGF0YUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoIE1vZHVsZVJlZiApKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNRTExvZzsKIyMgbm8gY3JpdGljKFBlcmw6OkNyaXRpYzo6UG9saWN5OjpPVFJTOjpQcm9oaWJpdE9wZW4pCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgVGltZTo6SGlSZXMgcXcoZ2V0dGltZW9mZGF5IHR2X2ludGVydmFsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1FMTG9nCgo9aGVhZDEgU1lOT1BTSVMKClNob3cgYSBsb2cgb2YgdGhlIFNRTCBzdGF0ZW1lbnRzIGV4ZWN1dGVkIHNpbmNlIHRoZSBsYXN0IHZpZXcgb2YgdGhlIGxvZy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBpZiAoCiAgICAgICAgcmVmICRDb25maWdPYmplY3QtPkdldCgnRnJlZDo6TW9kdWxlJykKICAgICAgICAmJiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpLT57U1FMTG9nfQogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+e0FjdGl2ZX0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpLT57U1FMTG9nfS0+e0FjdGl2ZX07CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBvcGVuIHRoZSBmaWxlIFNRTC5sb2cKICAgIG15ICRGaWxlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdIb21lJykgLiAnL3Zhci9mcmVkL1NRTC5sb2cnOwoKICAgIG15ICRGaWxlaGFuZGxlOwogICAgaWYgKCAhb3BlbiAkRmlsZWhhbmRsZSwgJzwnLCAkRmlsZSApIHsKICAgICAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9ID0gWwogICAgICAgICAgICAiUGVyaGFwcyB5b3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIGF0IC92YXIvZnJlZC8iLAogICAgICAgICAgICAiQ2FuJ3QgcmVhZCAvdmFyL2ZyZWQvU1FMLmxvZyIsCiAgICAgICAgXTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgQExvZ01lc3NhZ2VzOwogICAgbXkgJERvU3RhdGVtZW50cyAgICAgPSAwOwogICAgbXkgJFNlbGVjdFN0YXRlbWVudHMgPSAwOwoKICAgICMgc2x1cnAgaW4gdGhlIHdob2xlIGxvZ2ZpbGUsIGluIG9yZGVyIHRvIGFjY2VzcyB0aGUgbGluZXMgYXQgdGhlIGVuZAogICAgTElORToKICAgIGZvciBteSAkTGluZSAoIHJldmVyc2UgPCRGaWxlaGFuZGxlPiApIHsKCiAgICAgICAgIyBkbyBub3Qgc2hvdyB0aGUgbG9nIGZyb20gdGhlIHByZXZpb3VzIHJlcXVlc3QKICAgICAgICBsYXN0IExJTkUgaWYgJExpbmUgPX4gL0ZSRUQvOwoKICAgICAjIGEgdHlwaWNhbCBsaW5lIGZyb20gU1FMLmxvZyBsb29rcyBsaWtlOgogICAgICMgU1FMLVNFTEVDVCMjISMjU0VMRUNUIDEgKyAxIEZST00gZHVhbCBXSEVSRSBpZCA9ID8gQU5EIHVzZXJfaWQgPSA/IyMhIyMxLCAyIyMhIyNLZXJuZWw6OlN5c3RlbTo6VXNlciMjISMjMC4wMDQzOTcKICAgICAgICBteSBAU3BsaXRMb2dMaW5lID0gc3BsaXQgLyMjISMjLywgJExpbmU7CiAgICAgICAgaWYgKCAkU3BsaXRMb2dMaW5lWzBdIGVxICdTUUwtRE8nICYmICRTcGxpdExvZ0xpbmVbMV0gPX4gbXsgXEEgU0VMRUNUIH14bXMgKSB7CiAgICAgICAgICAgICRTcGxpdExvZ0xpbmVbMF0gLj0gJyAtIFBlcmhhcHMgeW91IGhhdmUgYW4gZXJyb3IgeW91IHVzZSBETyBmb3IgYSBTRUxFQ1QtU3RhdGVtZW50Oic7CiAgICAgICAgfQogICAgICAgIHB1c2ggQExvZ01lc3NhZ2VzLCBcQFNwbGl0TG9nTGluZTsKCiAgICAgICAgaWYgKCAkU3BsaXRMb2dMaW5lWzBdIGVxICdTUUwtRE8nICkgewogICAgICAgICAgICAkRG9TdGF0ZW1lbnRzKys7CiAgICAgICAgfQoKICAgICAgICBpZiAoICRTcGxpdExvZ0xpbmVbNF0gKSB7CiAgICAgICAgICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57VGltZX0gKz0gJFNwbGl0TG9nTGluZVs0XTsKICAgICAgICB9CiAgICB9CgogICAgcG9wIEBMb2dNZXNzYWdlczsKICAgIGNsb3NlICRGaWxlaGFuZGxlOwoKICAgICMgZmluZCBTUUwtc3RhdGVtZW50cyB1c2VkIG11bHRpcGxlIHRpbWVzCiAgICBteSAlTXVsdGlVc2VkOwogICAgZm9yIG15ICRTdGF0ZW1lbnRSZWYgKEBMb2dNZXNzYWdlcykgewogICAgICAgICRNdWx0aVVzZWR7ICRTdGF0ZW1lbnRSZWYtPlsxXSB9Kys7CiAgICB9CiAgICBmb3IgbXkgJFN0YXRlbWVudFJlZiAoQExvZ01lc3NhZ2VzKSB7CiAgICAgICAgcHVzaCBAeyRTdGF0ZW1lbnRSZWZ9LCAoICRNdWx0aVVzZWR7ICRTdGF0ZW1lbnRSZWYtPlsxXSB9IC0gMSApOwogICAgfQoKICAgICMgQWRkIG1hcmtlciBmb3IgdGhlIG5leHQgdmlldwogICAgJFNlbGYtPkluc2VydFdvcmQoIFdoYXQgPT4gIkZSRURcbiIgKTsKCiAgICAjIHNldCB0aGUgZGF0YSBmb3IgdGhlIG91dHB1dCB0ZW1wbGF0ZQogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSAgICAgICAgICAgICA9IFxATG9nTWVzc2FnZXM7CiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0FsbFN0YXRlbWVudHN9ICAgID0gc2NhbGFyIEBMb2dNZXNzYWdlczsKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RG9TdGF0ZW1lbnRzfSAgICAgPSAkRG9TdGF0ZW1lbnRzOwogICAgJFBhcmFte01vZHVsZVJlZn0tPntTZWxlY3RTdGF0ZW1lbnRzfSA9ICRQYXJhbXtNb2R1bGVSZWZ9LT57QWxsU3RhdGVtZW50c30gLSAkRG9TdGF0ZW1lbnRzOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBJbnNlcnRXb3JkKCkKCkFwcGVuZCBhIHNlbWljb2xvbiBzZXBlcmF0ZWQgcmVjb3JkIGxpbmUgdG8gdGhlIHRoZSBTUUwgbG9nLgoKICAgICRCYWNrZW5kT2JqZWN0LT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gJ1NRTC1TRUxFQ1Q7U0VMRUNUIDEgKyAxIEZST00gZHVhbDtLZXJuZWw6OlN5c3RlbTo6VXNlcjswLjAwNDM5NycsCiAgICApOwoKPWN1dAoKc3ViIEluc2VydFdvcmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1doYXR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXaGF0IScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBGaXh1cCBtdWx0aWxpbmUgU1FMIHN0YXRlbWVudHMKICAgIGlmICggJFBhcmFte1doYXR9ID1+IG0vXlNRTC9zbXggKSB7CiAgICAgICAgbXkgQFdoYXQgPSBzcGxpdCAnIyMhIyMnLCAkUGFyYW17V2hhdH07CgogICAgICAgICMgaGlkZSB3aGl0ZSBzcGFjZQogICAgICAgICRXaGF0WzFdID1+IHMvXHI/XG4vIC9zbXhnOwogICAgICAgICRXaGF0WzFdID1+IHMvXHMrLyAvc214ZzsKICAgICAgICAkUGFyYW17V2hhdH0gPSBqb2luICcjIyEjIycsIEBXaGF0OwogICAgfQoKICAgICMgYXBwcGVuZCB0aGUgbGluZSB0byBsb2cgZmlsZQogICAgbXkgJEZpbGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvU1FMLmxvZyc7CiAgICBvcGVuIG15ICRGaWxlaGFuZGxlLCAnPj4nLCAkRmlsZSB8fCBkaWUgIkNhbid0IHdyaXRlICRGaWxlICFcbiI7CiAgICBwcmludCAkRmlsZWhhbmRsZSAkUGFyYW17V2hhdH0sICJcbiI7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIFByZVN0YXRlbWVudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpZiAoICEkU2VsZi0+e0FjdGl2ZX0gKTsKCiAgICAkU2VsZi0+e1ByZXBhcmVTdGFydH0gPSBbZ2V0dGltZW9mZGF5XTsKfQoKc3ViIFBvc3RTdGF0ZW1lbnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgKCAhJFNlbGYtPntBY3RpdmV9ICk7CgogICAgbXkgJERpZmZUaW1lID0gdHZfaW50ZXJ2YWwoICRTZWxmLT57UHJlcGFyZVN0YXJ0fSApOwoKICAgIG15IEBTdGFja1RyYWNlOwoKICAgIENPVU5UOgogICAgZm9yICggbXkgJENvdW50ID0gMTsgJENvdW50IDwgMzA7ICRDb3VudCsrICkgewogICAgICAgIG15ICggJFBhY2thZ2UxLCAkRmlsZW5hbWUxLCAkTGluZTEsICRTdWJyb3V0aW5lMSApID0gY2FsbGVyKCRDb3VudCk7CiAgICAgICAgbGFzdCBDT1VOVCBpZiAhJExpbmUxOwogICAgICAgIG15ICggJFBhY2thZ2UyLCAkRmlsZW5hbWUyLCAkTGluZTIsICRTdWJyb3V0aW5lMiApID0gY2FsbGVyKCAxICsgJENvdW50ICk7CiAgICAgICAgJFN1YnJvdXRpbmUyIHx8PSAkMDsgICAgIyBpZiB0aGVyZSBpcyBubyBjYWxsZXIgbW9kdWxlIHVzZSB0aGUgZmlsZSBuYW1lCiAgICAgICAgJFN1YnJvdXRpbmUyID1+IHMvS2VybmVsOjpTeXN0ZW0vSzo6Uy87CiAgICAgICAgJFN1YnJvdXRpbmUyID1+IHMvS2VybmVsOjpNb2R1bGVzL0s6Ok0vOwogICAgICAgICRTdWJyb3V0aW5lMiA9fiBzL0tlcm5lbDo6T3V0cHV0L0s6Ok8vOwogICAgICAgIHB1c2ggQFN0YWNrVHJhY2UsICIkU3Vicm91dGluZTI6JExpbmUxIjsKICAgIH0KCiAgICBteSBAQXJyYXkgPSBtYXAgeyBkZWZpbmVkICRfID8gJHskX30gOiAndW5kZWYnIH0gQHsgJFBhcmFte0JpbmR9IHx8IFtdIH07CgogICAgIyBSZXBsYWNlIG5ld2xpbmVzCiAgICBAQXJyYXkgPSBtYXAgeyAkXyA9fiBze1xyP1xufXtbXFxuXX1zbXhnOyAkXzsgfSBAQXJyYXk7ICAgICMjIG5vIGNyaXRpYwoKICAgICMgTGltaXQgYmluZCBwYXJhbSBsZW5ndGgKICAgIEBBcnJheSA9IG1hcCB7IGxlbmd0aCgkXykgPiAxMDAgPyAoIHN1YnN0ciggJF8sIDAsIDEwMCApIC4gJ1suLi5dJyApIDogJF8gfSBAQXJyYXk7CiAgICBteSAkQmluZFN0cmluZyA9IEBBcnJheSA/IGpvaW4gJywgJywgQEFycmF5IDogJyc7CgogICAgbXkgJFByZWZpeCA9ICRQYXJhbXtTUUx9ID1+IG17XlNFTEVDVH1peG1zID8gJ1NFTEVDVCcgOiAnRE8nOwoKICAgICRTZWxmLT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gIlNRTC0kUHJlZml4IyMhIyMkUGFyYW17U1FMfSMjISMjJEJpbmRTdHJpbmcjIyEjIyIKICAgICAgICAgICAgLiBqb2luKCAnOycsIEBTdGFja1RyYWNlICkKICAgICAgICAgICAgLiAiIyMhIyMkRGlmZlRpbWUiLAogICAgKTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNUREVSUkxvZzsKIyMgbm8gY3JpdGljKFBlcmw6OkNyaXRpYzo6UG9saWN5OjpPVFJTOjpQcm9oaWJpdE9wZW4pCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgSU86OkhhbmRsZTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1RERVJSTG9nCgo9aGVhZDEgU1lOT1BTSVMKCmhhbmRsZSB0aGUgU1RERVJSIGxvZyBkYXRhCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIERhdGFHZXQoKQoKR2V0IHRoZSBkYXRhIGZvciB0aGlzIGZyZWQgbW9kdWxlLiBSZXR1cm5zIHRydWUgb3IgZmFsc2UuCkFuZCBhZGQgdGhlIGRhdGEgdG8gdGhlIG1vZHVsZSByZWYuCgogICAgJEJhY2tlbmRPYmplY3QtPkRhdGFHZXQoCiAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KE1vZHVsZVJlZikpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIGdldCBldmVyeXRoaW5nIHRvIGRpc2sgYmVmb3JlIHRyeWluZyB0byByZWFkIGl0IChvdGhlcndpc2UgY29udGVudCBjb3VsZCBiZSBsb3N0KS4KICAgIFNUREVSUi0+Zmx1c2goKTsKCiAgICAjIG9wZW4gdGhlIFNUREVSUi5sb2cgZmlsZSB0byBnZXQgdGhlIFNUREVSUiBtZXNzYWdlcwogICAgbXkgJEZpbGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvU1RERVJSLmxvZyc7CiAgICBteSAkRmlsZWhhbmRsZTsKCiAgICBpZiAoICFvcGVuICRGaWxlaGFuZGxlLCAnPDplbmNvZGluZyhVVEYtOCknLCAkRmlsZSApIHsKICAgICAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9ID0gWwogICAgICAgICAgICAiUGVyaGFwcyB5b3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIGF0IC92YXIvZnJlZC8gb3IgL0tlcm5lbC9Db25maWcvRmlsZXMvQUFBRnJlZC5wbS4iLAogICAgICAgICAgICAiQ2FuJ3QgcmVhZCAvdmFyL2ZyZWQvU1RERVJSLmxvZyIsCiAgICAgICAgXTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBSZWFkIGxvZyB1bnRpbCBsYXN0ICJGUkVEIiBtYXJrZXIuCiAgICBteSBATG9nTWVzc2FnZXM7CiAgICBMSU5FOgogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSA8JEZpbGVoYW5kbGU+ICkgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSA9fiBteyBcQSBccyogRlJFRCBccyogXHp9eG1zOwogICAgICAgIHB1c2ggQExvZ01lc3NhZ2VzLCAkTGluZTsKICAgIH0KICAgIGNsb3NlICRGaWxlaGFuZGxlOwoKICAgIHByaW50IFNUREVSUiAiXG5GUkVEXG4iOwoKICAgICMgdHJpbSB0aGUgbG9nIG1lc3NhZ2UgYXJyYXkKICAgIExJTkU6CiAgICBmb3IgbXkgJExpbmUgKEBMb2dNZXNzYWdlcykgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSAhfiBteyBcQSBccyogXHogfXhtczsKICAgICAgICBzaGlmdCBATG9nTWVzc2FnZXM7CiAgICB9CgogICAgIyB0cmltIHRoZSBsb2cgbWVzc2FnZSBhcnJheQogICAgTElORToKICAgIGZvciBteSAkTGluZSAoIHJldmVyc2UgQExvZ01lc3NhZ2VzICkgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSAhfiBteyBcQSBccyogXHogfXhtczsKICAgICAgICBzaGlmdCBATG9nTWVzc2FnZXM7CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFxATG9nTWVzc2FnZXM7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWc7CiMjIG5vIGNyaXRpYyhQZXJsOjpDcml0aWM6OlBvbGljeTo6T1RSUzo6UHJvaGliaXRPcGVuKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpUcmFuc2xhdGlvbkRlYnVnCgo9aGVhZDEgU1lOT1BTSVMKCmhhbmRsZSB0aGUgdHJhbnNsYXRpb24gZGVidWcgZGF0YQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgaWYgKAogICAgICAgIHJlZiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpCiAgICAgICAgJiYgJENvbmZpZ09iamVjdC0+R2V0KCdGcmVkOjpNb2R1bGUnKS0+e1RyYW5zbGF0aW9uRGVidWd9CiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57QWN0aXZlfSA9ICRDb25maWdPYmplY3QtPkdldCgnRnJlZDo6TW9kdWxlJyktPntUcmFuc2xhdGlvbkRlYnVnfS0+e0FjdGl2ZX07CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBvcGVuIHRoZSBUcmFuc2xhdGlvbkRlYnVnLmxvZyBmaWxlIHRvIGdldCB0aGUgdW50cmFuc2xhdGVkIHdvcmRzCiAgICBteSAkRmlsZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSG9tZScpIC4gJy92YXIvZnJlZC9UcmFuc2xhdGlvbkRlYnVnLmxvZyc7CiAgICBteSAkRmlsZWhhbmRsZTsKICAgIGlmICggIW9wZW4gJEZpbGVoYW5kbGUsICc8OmVuY29kaW5nKFVURi04KScsICRGaWxlICkgewogICAgICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gPSBbCiAgICAgICAgICAgICJQZXJoYXBzIHlvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gYXQgL3Zhci9mcmVkLyIsCiAgICAgICAgICAgICJDYW4ndCByZWFkIC92YXIvZnJlZC9UcmFuc2xhdGlvbkRlYnVnLmxvZyIKICAgICAgICBdOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkaXN0aW5jdCBlbnRyaWVzIGZyb20gVHJhbnNsYXRpb25EZWJ1Zy5sb2cKICAgICMgdGlsbCB0aGUgbGFzdCAnRlJFRCcgZW50cnkKICAgIG15ICVMb2dMaW5lczsKICAgIExJTkU6CiAgICBmb3IgbXkgJExpbmUgKCByZXZlcnNlIDwkRmlsZWhhbmRsZT4gKSB7CiAgICAgICAgbGFzdCBMSU5FIGlmICRMaW5lID1+IC9GUkVELzsKCiAgICAgICAgY2hvbXAgJExpbmU7CiAgICAgICAgbmV4dCBMSU5FIGlmICRMaW5lIGVxICcnOwoKICAgICAgICAjIHNraXAgZHVwbGljYXRlIGVudHJpZXMKICAgICAgICBuZXh0IExJTkUgaWYgJExvZ0xpbmVzeyRMaW5lfTsKCiAgICAgICAgJExvZ0xpbmVzeyRMaW5lfSA9IDE7CiAgICB9CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICAkU2VsZi0+SW5zZXJ0V29yZCggV2hhdCA9PiAiRlJFRFxuIiApOwoKICAgIG15IEBMb2dMaW5lcyA9IHNvcnQgeyAkYSBjbXAgJGIgfSBrZXlzICVMb2dMaW5lczsKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gPSBcQExvZ0xpbmVzOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBJbnNlcnRXb3JkKCkKClNhdmUgYSB3b3JkIGluIHRoZSB0cmFuc2xhdGlvbiBkZWJ1ZyBsb2cKCiAgICAkQmFja2VuZE9iamVjdC0+SW5zZXJ0V29yZCgKICAgICAgICBXaGF0ID0+ICdhIHdvcmQnLAogICAgKTsKCj1jdXQKCnN1YiBJbnNlcnRXb3JkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICggISRTZWxmLT57QWN0aXZlfSApOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICFkZWZpbmVkKCAkUGFyYW17V2hhdH0gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgV2hhdCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2F2ZSB0aGUgd29yZCBpbiBsb2cgZmlsZQogICAgbXkgJEZpbGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvVHJhbnNsYXRpb25EZWJ1Zy5sb2cnOwogICAgb3BlbiBteSAkRmlsZWhhbmRsZSwgJz4+OmVuY29kaW5nKFVURi04KScsICRGaWxlIHx8IGRpZSAiQ2FuJ3Qgd3JpdGUgJEZpbGUgIVxuIjsKICAgIHByaW50ICRGaWxlaGFuZGxlICRQYXJhbXtXaGF0fSAuICJcbiI7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTYgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgovKiBlc2xpbnQgbm8td2luZG93OjAgKi8KCiJ1c2Ugc3RyaWN0IjsKCnZhciBDb3JlID0gQ29yZSB8fCB7fTsKQ29yZS5GcmVkID0gQ29yZS5GcmVkIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgYWxsIGxvZ2ljIGZvciBGcmVkCiAqLwpDb3JlLkZyZWQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgdmFyIERldmVsRnJlZFRvZ2dsZUNvbnRhaW5lckxpbmtQcm9jY2VzcyA9IDA7CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRzIGdlbmVyaWMgZnJlZCBmdW5jdGlvbnMKICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgdmFyIFdpZGdldFN0YXR1cyA9IHt9LAogICAgICAgICAgICBLZXk7CgogICAgICAgIC8vIGdldCBzdGF0dXMgb2YgRnJlZCB3aWRnZXRzCiAgICAgICAgaWYgKHdpbmRvdyAmJiB3aW5kb3cubG9jYWxTdG9yYWdlKSB7CiAgICAgICAgICAgIFdpZGdldFN0YXR1cyA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnRlJFRF93aWRnZXRfc3RhdHVzJyk7CgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgV2lkZ2V0U3RhdHVzID0gSlNPTi5wYXJzZShXaWRnZXRTdGF0dXMpOwogICAgICAgICAgICAgICAgaWYgKFdpZGdldFN0YXR1cyA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIFdpZGdldFN0YXR1cyA9IHt9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24pIHsKICAgICAgICAgICAgICAgIFdpZGdldFN0YXR1cyA9IHt9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBmb3IgKEtleSBpbiBXaWRnZXRTdGF0dXMpIHsKICAgICAgICAgICAgICAgIGlmIChXaWRnZXRTdGF0dXMuaGFzT3duUHJvcGVydHkoS2V5KSkgewogICAgICAgICAgICAgICAgICAgICQoJy5EZXZlbEZyZWRCb3hDb250ZW50IycgKyBLZXkpLnJlbW92ZUNsYXNzKCdFeHBhbmRlZCBDb2xsYXBzZWQnKTsKICAgICAgICAgICAgICAgICAgICBpZiAoV2lkZ2V0U3RhdHVzW0tleV0gPT09ICdDb2xsYXBzZWQnIHx8IFdpZGdldFN0YXR1c1tLZXldID09PSAnRXhwYW5kZWQnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyMnICsgS2V5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKFdpZGdldFN0YXR1c1tLZXldKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNsb3Nlc3QoJy5EZXZlbEZyZWRCb3gnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKFdpZGdldFN0YXR1c1tLZXldKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGFsbCBGcmVkIHdpZGdldHMgd2l0aG91dCBhIHNhdmVkIHdpZGdldCBzdGF0dXMgYXJlIG5vdyBleHBhbmRlZAogICAgICAgICQoJy5EZXZlbEZyZWRCb3hDb250ZW50JykuZmlsdGVyKCc6bm90KC5Db2xsYXBzZWQsIC5FeHBhbmRlZCknKS5hZGRDbGFzcygnRXhwYW5kZWQnKTsKCiAgICAgICAgLy8gVG9vbGJhciBpdGVtcwogICAgICAgICQoJy5GcmVkU2VhcmNoJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcuRGV2ZWxGcmVkQm94JykuZmluZCgnLkZyZWRRdWlja1NlYXJjaCcpLnRvZ2dsZSgpOwogICAgICAgIH0pOwogICAgICAgICQoJy5GcmVkTWluaW1pemUnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgJFdpZGdldEVsZW1lbnQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5EZXZlbEZyZWRCb3gnKS5maW5kKCcuRGV2ZWxGcmVkQm94Q29udGVudCcpOwoKICAgICAgICAgICAgJFdpZGdldEVsZW1lbnQKICAgICAgICAgICAgICAgIC5zbGlkZVRvZ2dsZSgnZmFzdCcpCiAgICAgICAgICAgICAgICAudG9nZ2xlQ2xhc3MoJ0NvbGxhcHNlZCcpCiAgICAgICAgICAgICAgICAudG9nZ2xlQ2xhc3MoJ0V4cGFuZGVkJyk7CgogICAgICAgICAgICAkV2lkZ2V0RWxlbWVudAogICAgICAgICAgICAgICAgLmNsb3Nlc3QoJy5EZXZlbEZyZWRCb3gnKQogICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdFeHBhbmRlZCBDb2xsYXBzZWQnKQogICAgICAgICAgICAgICAgLmFkZENsYXNzKCRXaWRnZXRFbGVtZW50Lmhhc0NsYXNzKCdFeHBhbmRlZCcpID8gJ0V4cGFuZGVkJyA6ICdDb2xsYXBzZWQnKTsKCiAgICAgICAgICAgIFdpZGdldFN0YXR1c1skV2lkZ2V0RWxlbWVudC5hdHRyKCdpZCcpXSA9ICRXaWRnZXRFbGVtZW50Lmhhc0NsYXNzKCdDb2xsYXBzZWQnKSA/ICdDb2xsYXBzZWQnIDogJ0V4cGFuZGVkJzsKICAgICAgICAgICAgaWYgKHdpbmRvdyAmJiB3aW5kb3cubG9jYWxTdG9yYWdlKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ0ZSRURfd2lkZ2V0X3N0YXR1cycsIEpTT04uc3RyaW5naWZ5KFdpZGdldFN0YXR1cykpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgJCgnLkZyZWRDbG9zZScpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnLkRldmVsRnJlZEJveCcpLmhpZGUoKTsKICAgICAgICB9KTsKICAgICAgICAkKCcuRnJlZENsb3NlQWxsJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCgnLkRldmVsRnJlZEJveCcpLmhpZGUoKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gZW1wdHkgdGhlIHNlYXJjaCBmaWVsZAogICAgICAgICQoJy5GcmVkUXVpY2tTZWFyY2ggaScpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQodGhpcykucHJldignaW5wdXQnKS52YWwoJycpLnRyaWdnZXIoJ2tleWRvd24nKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gcmVnaXN0ZXIgdGhlIHRhYmxlIGZpbHRlciBvbiB0aGUgcXVpY2tzZWFyY2ggZmllbGRzIChvbmx5IGlmIENvcmUuVUkuVGFibGUgaXMgYXZhaWxhYmxlKQogICAgICAgIGlmIChDb3JlLkRlYnVnLkNoZWNrRGVwZW5kZW5jeSgnRnJlZCcsICdDb3JlLlVJLlRhYmxlJywgJ0NvcmUuVUkuVGFibGUnLCB0cnVlKSkgewogICAgICAgICAgICAkKCcuRnJlZFF1aWNrU2VhcmNoIGlucHV0JykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIENvcmUuVUkuVGFibGUuSW5pdFRhYmxlRmlsdGVyKCQodGhpcyksICQodGhpcykuY2xvc2VzdCgnLkRldmVsRnJlZEJveCcpLmZpbmQoJy5GcmVkVGFibGVEZWZhdWx0JykpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICQoJy5GcmVkUXVpY2tTZWFyY2gsIC5GcmVkU2VhcmNoJykuaGlkZSgpOwogICAgICAgIH0KCiAgICAgICAgLy8gcmVnaXN0ZXIgbmV3IHBvcHVwIHByb2ZpbGUgYXMgbmVlZGVkIGJ5IGZyZWQKICAgICAgICBDb3JlLlVJLlBvcHVwLlByb2ZpbGVBZGQoJ0ZyZWRTZXR0aW5ncycsIHsKICAgICAgICAgICAgV2luZG93VVJMUGFyYW1zOiAiZGVwZW5kZW50PXllcyxsb2NhdGlvbj1ubyxtZW51YmFyPW5vLHJlc2l6YWJsZT15ZXMsc2Nyb2xsYmFycz15ZXMsc3RhdHVzPW5vLHRvb2xiYXI9bm8iLAogICAgICAgICAgICBMZWZ0OiAxMDAsCiAgICAgICAgICAgIFRvcDogMTAwLAogICAgICAgICAgICBXaWR0aDogNDAwLAogICAgICAgICAgICBIZWlnaHQ6IDUwMAogICAgICAgIH0pOwoKICAgICAgICAvLyBvcGVuIHRoZSBzZXR0aW5ncyBwb3B1cAogICAgICAgICQoJy5GcmVkU2V0dGluZ3MnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBDb3JlLlVJLlBvcHVwLk9wZW5Qb3B1cCgkKHRoaXMpLmRhdGEoJ3VybCcpLCAnRnJlZFNldHRpbmdzJywgJ0ZyZWRTZXR0aW5ncycpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBTUUwgbG9nOiBTaG93IGJpbmQgcGFyYW1ldGVycyBvbiBjbGljayBvZiAnc2hvdycgbGluawogICAgICAgICQoJy5TaG93QmluZFBhcmFtZXRlcnMnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAkKHRoaXMpLm5leHQoJy5IaWRkZW4nKS50b2dnbGUoKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0pOwoKICAgICAgICAkKCcuRnJlZFNldHRpbmdzTGluaycpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHdpbmRvdy5jbG9zZSgpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBtYWtlIHRoZSBmcmVkIGJveCBkcmFnZ2FibGUKICAgICAgICAkKCcjRGV2ZWxGcmVkQ29udGFpbmVyJykuZHJhZ2dhYmxlKHsKICAgICAgICAgICAgaGFuZGxlOiAnaDEnLAogICAgICAgICAgICBzdG9wOiBmdW5jdGlvbihldmVudCwgdWkpIHsKICAgICAgICAgICAgICAgIHZhciBUb3AgPSB1aS5vZmZzZXQudG9wLAogICAgICAgICAgICAgICAgICAgIExlZnQgPSB1aS5vZmZzZXQubGVmdDsKCiAgICAgICAgICAgICAgICBpZiAod2luZG93ICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlKi8KICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV9sZWZ0ID0gTGVmdDsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV90b3AgPSBUb3A7CiAgICAgICAgICAgICAgICAgICAgLyplc2xpbnQtZW5hYmxlIGNhbWVsY2FzZSovCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gc2F2ZSBmcmVkJ3Mgd2luZG93IHBvc2l0aW9uCiAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBTYXZlZExlZnQsIFNhdmVkVG9wLCBGcmVkV2lkdGgsIEZyZWRIZWlnaHQ7CgogICAgICAgICAgICBpZiAod2luZG93ICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UgIT09IHVuZGVmaW5lZCAmJiB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV9sZWZ0ICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UuRlJFRF9jb25zb2xlX3RvcCkgewoKICAgICAgICAgICAgICAgIFNhdmVkTGVmdCA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuRlJFRF9jb25zb2xlX2xlZnQ7CiAgICAgICAgICAgICAgICBTYXZlZFRvcCA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuRlJFRF9jb25zb2xlX3RvcDsKICAgICAgICAgICAgICAgIEZyZWRXaWR0aCA9ICQoJyNEZXZlbEZyZWRDb250YWluZXInKS53aWR0aCgpOwogICAgICAgICAgICAgICAgRnJlZEhlaWdodCA9ICQoJyNEZXZlbEZyZWRDb250YWluZXInKS5oZWlnaHQoKTsKCiAgICAgICAgICAgICAgICBpZiAoU2F2ZWRMZWZ0ID4gJCgnYm9keScpLndpZHRoKCkpIHsKICAgICAgICAgICAgICAgICAgICBTYXZlZExlZnQgPSAkKCdib2R5Jykud2lkdGgoKSAtIEZyZWRXaWR0aDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChTYXZlZFRvcCA+ICQoJ2JvZHknKS5oZWlnaHQoKSkgewogICAgICAgICAgICAgICAgICAgIFNhdmVkVG9wID0gJCgnYm9keScpLmhlaWdodCgpIC0gRnJlZEhlaWdodDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoU2F2ZWRMZWZ0ICYmIFNhdmVkVG9wKSB7CiAgICAgICAgICAgICAgICAgICAgJCgnI0RldmVsRnJlZENvbnRhaW5lcicpLmNzcygnbGVmdCcsIFNhdmVkTGVmdCArICdweCcpOwogICAgICAgICAgICAgICAgICAgICQoJyNEZXZlbEZyZWRDb250YWluZXInKS5jc3MoJ3RvcCcsIFNhdmVkVG9wICsgJ3B4Jyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KCkpOwoKICAgICAgICBpZiAoISQoJ2JvZHknKS5oYXNDbGFzcygnRnJlZEFjdGl2ZScpKSB7CiAgICAgICAgICAgICQoJy5EZXZlbEZyZWRCb3gnKS5oaWRlKCk7CiAgICAgICAgfQoKICAgICAgICAkKCcjRGV2ZWxGcmVkVG9nZ2xlQ29udGFpbmVyTGluaycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgRGF0YSA9IHsKICAgICAgICAgICAgICAgIEFjdGlvbjogJ0RldmVsRnJlZCcsCiAgICAgICAgICAgICAgICBTdWJhY3Rpb246ICdDb25maWdTd2l0Y2hBSkFYJywKICAgICAgICAgICAgICAgIEtleTogJ0ZyZWQ6OkFjdGl2ZScsCiAgICAgICAgICAgICAgICBWYWx1ZTogJCgnYm9keScpLmhhc0NsYXNzKCdGcmVkQWN0aXZlJykgPyAxIDogMAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgaWYgKERldmVsRnJlZFRvZ2dsZUNvbnRhaW5lckxpbmtQcm9jY2VzcykgcmV0dXJuOwoKICAgICAgICAgICAgRGV2ZWxGcmVkVG9nZ2xlQ29udGFpbmVyTGlua1Byb2NjZXNzID0gMTsKCiAgICAgICAgICAgICQoJ2JvZHknKS50b2dnbGVDbGFzcygnRnJlZEFjdGl2ZScpOwogICAgICAgICAgICAkKCcjRGV2ZWxGcmVkVG9nZ2xlQ29udGFpbmVyTGluaycpLnRvZ2dsZUNsYXNzKCdGcmVkQWN0aXZlJyk7CgogICAgICAgICAgICBpZiAoISQoJy5EZXZlbEZyZWRCb3gnKS5pcygiOnZpc2libGUiKSAmJiAkKCdib2R5JykuaGFzQ2xhc3MoJ0ZyZWRBY3RpdmUnKSkgewogICAgICAgICAgICAgICAgJCgnLkRldmVsRnJlZEJveCcpLnNob3coKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICQoJy5EZXZlbEZyZWRCb3gnKS5oaWRlKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIENvcmUuQUpBWC5GdW5jdGlvbkNhbGwoQ29yZS5Db25maWcuR2V0KCdDR0lIYW5kbGUnKSwgRGF0YSwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgRGV2ZWxGcmVkVG9nZ2xlQ29udGFpbmVyTGlua1Byb2NjZXNzID0gMDsKICAgICAgICAgICAgfSwgJ2pzb24nKTsKICAgICAgICB9KTsKICAgIH07CgogICAgVGFyZ2V0TlMuSW5pdCgpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShDb3JlLkZyZWQuSlNMaW50IHx8IHt9KSk7Cg==
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTYgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Ci8qZ2xvYmFsICQ6IGZhbHNlLCBqUXVlcnk6IGZhbHNlICovCgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuRnJlZCA9IENvcmUuRnJlZCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBleHBvcnRzIFRhcmdldE5TIGFzIENvcmUuRnJlZC5IVE1MQ2hlY2sKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgYWxsIGxvZ2ljIGZvciB0aGUgRnJlZCBtb2R1bGUgSFRNTENIZWNrCiAqLwpDb3JlLkZyZWQuSFRNTENoZWNrID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIHZhciBDaGVja0Z1bmN0aW9ucyA9IFtdLAogICAgICAgIEVycm9yc0ZvdW5kID0gZmFsc2U7CgogICAgZnVuY3Rpb24gaHRtbEVuY29kZShUZXh0KXsKICAgICAgICByZXR1cm4gVGV4dC5yZXBsYWNlKC8mL2csICcmYW1wOycpLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7CiAgICB9CgogICAgZnVuY3Rpb24gZXNjYXBlU2VsZWN0b3IgKFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIFNlbGVjdG9yLnJlcGxhY2UoLygjfDp8XC58XFt8XF0pL2csICdcXCQxJyk7CiAgICB9CgogICAgZnVuY3Rpb24gb3V0cHV0RXJyb3IoJEVsZW1lbnQsIEVycm9yVHlwZSwgRXJyb3JEZXNjcmlwdGlvbiwgSGludCl7CiAgICAgICAgdmFyICRDb250YWluZXIsCiAgICAgICAgICAgIENvZGUsCiAgICAgICAgICAgIE1lc3NhZ2U7CgogICAgICAgICQoJyNGcmVkSFRNTENoZWNrUnVubmluZycpLnJlbW92ZSgpOwogICAgICAgIEVycm9yc0ZvdW5kID0gdHJ1ZTsKCiAgICAgICAgLy8gR2V0IGVsZW1lbnQgSFRNTCBieSB3cmFwcGluZyBpdCBpbiBhIGRpdiBhbmQgY2FsbGluZyAuaHRtbCgpIG9uIHRoYXQKICAgICAgICAkQ29udGFpbmVyID0gJCgnPGRpdj48L2Rpdj4nKTsKICAgICAgICAkQ29udGFpbmVyLmFwcGVuZCgkRWxlbWVudC5jbG9uZSgpKTsKCiAgICAgICAgQ29kZSA9ICRDb250YWluZXIuaHRtbCgpOwogICAgICAgIGlmIChDb2RlLmxlbmd0aCA+IDE2MCkgewogICAgICAgICAgICBDb2RlID0gQ29kZS5zdWJzdHJpbmcoMCwgMTYwKSArICcuLi4nOwogICAgICAgIH0KCiAgICAgICAgTWVzc2FnZSA9ICQoJzxwIGNsYXNzPSJTbWFsbCI+PC9wPicpOwogICAgICAgIE1lc3NhZ2UuYXBwZW5kKCc8c3BhbiBjbGFzcz0iRXJyb3IiPkVycm9yOjwvc3Bhbj4gPHN0cm9uZz4nICsgRXJyb3JEZXNjcmlwdGlvbiArICc8L3N0cm9uZz48ZGl2PicgKyBIaW50ICsgJzwvZGl2PjxkaXY+PGNvZGU+JyArIGh0bWxFbmNvZGUoQ29kZSkgKyAnPC9jb2RlPjwvZGl2PicpOwogICAgICAgICQoJyNGcmVkSFRNTENoZWNrUmVzdWx0cycpLmFwcGVuZChNZXNzYWdlKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBmdW5jdGlvbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFBlcmZvcm1zIHZhcmlvdXMgYWNjZXNzaWJpbGl0eSBjaGVja3MgdG8gc2VlIGlmIHRoZSBIVE1MIGNvZGUKICAgICAqICAgICAgdmlvbGF0ZXMgc29tZSBvZiBvdXIgZ3VpZGVsaW5lcy4KICAgICAqICAgICAgUmV0dXJucyBub3RoaW5nLCBidXQgY2FsbHMgT3V0cHV0RXJyb3IgaWYgYW4gZXJyb3Igd2FzIGZvdW5kLgogICAgICovCgogICAgZnVuY3Rpb24gQ2hlY2tBY2Nlc3NpYmlsaXR5KCkgewogICAgICAgIC8qCiAgICAgICAgICogY2hlY2sgaWYgaW5wdXQgZWxlbWVudHMgZWl0aGVyIGhhdmUgYSBsYWJlbCBvciBhbiBhc3NpZ25lZCB0aXRsZSB0ZXh0CiAgICAgICAgICovCiAgICAgICAgJCgnaW5wdXQ6dGV4dDp2aXNpYmxlLCBpbnB1dDpwYXNzd29yZDp2aXNpYmxlLCBpbnB1dDpjaGVja2JveDp2aXNpYmxlLCBpbnB1dDpyYWRpbzp2aXNpYmxlLCBzZWxlY3Q6dmlzaWJsZSwgdGV4dGFyZWE6dmlzaWJsZScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwKICAgICAgICAgICAgICAgICRMYWJlbCA9ICQoW10pLAogICAgICAgICAgICAgICAgVGl0bGU7CgogICAgICAgICAgICAvLyBJZ25vcmUgZWxlbWVudHMgd2hpY2ggaGF2ZSBhIHBsYWNlaG9sZGVyIHRleHQKICAgICAgICAgICAgaWYgKCR0aGlzLmF0dHIoJ3BsYWNlaG9sZGVyJykgJiYgJHRoaXMuYXR0cigncGxhY2Vob2xkZXInKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gZmlyc3QgbG9vayBmb3IgbGFiZWxzIHdoaWNoIHJlZmVyIHRvIHRoaXMgZWxlbWVudCBieSBpZAogICAgICAgICAgICBpZiAoJHRoaXMuYXR0cignaWQnKSAmJiAkdGhpcy5hdHRyKCdpZCcpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgJExhYmVsID0gJCgnbGFiZWxbZm9yPScgKyBlc2NhcGVTZWxlY3RvcigkdGhpcy5hdHRyKCdpZCcpKSArICddJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gdGhlbiBsb29rIGZvciBsYWJlbHMgd2hpY2ggc3Vycm91bmQgdGhlIGN1cnJlbnQgZWxlbWVudAogICAgICAgICAgICBpZiAoISRMYWJlbC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICRMYWJlbCA9ICR0aGlzLnBhcmVudHMoJ2xhYmVsJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkTGFiZWwubGVuZ3RoID4gMSkgewogICAgICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgJ0FjY2Vzc2liaWxpdHlNdWx0aXBsZUxhYmVsJywKICAgICAgICAgICAgICAgICAgICAnSW5wdXQgZWxlbWVudCB3aXRoIG1vcmUgdGhhbiBvbmUgYXNzaWduZWQgbGFiZWxzJywKICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IG9ubHkgb25lIGxhYmVsIGlzIHByZXNlbnQgZm9yIHRoaXMgaW5wdXQgZWxlbWVudC4nCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBmaXJzdCBjaGVjayBpZiBhIHRpdGxlIGF0dHJpYnV0ZSBpcyBwcmVzZW50LCB0aGF0IGlzIGFsc28gb2sgZm9yIGFjY2Vzc2liaWxpdHkKICAgICAgICAgICAgVGl0bGUgPSAkdGhpcy5hdHRyKCd0aXRsZScpOwogICAgICAgICAgICBpZiAoVGl0bGUgJiYgVGl0bGUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIG9rLCBubyB0aXRsZSBhdmFpbGFibGUsIG5vdyBsb29rIGZvciBhbiBhc3NpZ25lZCBsYWJlbCBlbGVtZW50CiAgICAgICAgICAgIGlmICghJExhYmVsIHx8ICEkTGFiZWwubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICAgICAnQWNjZXNzaWJpbGl0eU1pc3NpbmdMYWJlbCcsCiAgICAgICAgICAgICAgICAgICAgJ0lucHV0IGVsZW1lbnQgd2l0aG91dCBhIGRlc2NyaWJpbmcgbGFiZWwsIHBsYWNlaG9sZGVyIG9yIHRpdGxlIGF0dHJpYnV0ZScsCiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBhZGQgYSBwbGFjZWhvbGRlciBvciB0aXRsZSBhdHRyaWJ1dGUgb3IgYSBsYWJlbCBlbGVtZW50IHdpdGggYSAic3BlYWtpbmciIGRlc2NyaXB0aW9uIGZvciB0aGlzIGVsZW1lbnQuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvKgogICAgICAgICAqIGNoZWNrIGlmIGxpbmtzIGhhdmUgZWl0aGVyIGEgdGV4dCBvciBhIHRpdGxlCiAgICAgICAgICovCiAgICAgICAgJCgnYScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsKCiAgICAgICAgICAgIC8vIGlnbm9yZSBpZiBpdCdzIGEgImEgbmFtZSIgYW5kIG5vICJhIGhyZWYiCiAgICAgICAgICAgIGlmICgkdGhpcy5hdHRyKCduYW1lJykgJiYgISR0aGlzLmF0dHIoJ2hyZWYnKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBsb2cgaWYgYW4gYXR0cmlidXRlIHRpdGxlIGV4dGlzdHMgYnV0IG5vdGhpbmcgaXMgaW4gdGhlcmUsIHNvbWV0aGluZyBtaXNzZWQgc29tZWJvZHkgKGUuIGcuIHRpdGxlPSIiKQogICAgICAgICAgICAkLmVhY2goJHRoaXNbMF0uYXR0cmlidXRlcywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMubmFtZSA9PT0gJ3RpdGxlJyAmJiAhdGhpcy52YWx1ZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgICAgICdBY2Nlc3NpYmlsaXR5SW5hY2Nlc3NpYmxlTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgICdMaW5rIHdpdGggdGl0bGUgYnV0IHdpdGhvdXQgdmFsdWUnLAogICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5IGxpbmsgaGFzIGEgdGl0bGUgYXR0cmlidXRlIG5vdCBlbXB0eS4nCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBldmVyeXRoaW5nIGlzIG9rLCBpZiB0ZXh0IGluIGEgaHJlZiBleGlzdHMKICAgICAgICAgICAgaWYgKCR0aGlzLnRleHQoKSAmJiAkdGhpcy50ZXh0KCkubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgaXMgb2ssIGlmIHRpdGxlIGluIGEgaHJlZiBleGlzdHMKICAgICAgICAgICAgaWYgKCR0aGlzLmF0dHIoJ3RpdGxlJykgJiYgJHRoaXMuYXR0cigndGl0bGUnKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICdBY2Nlc3NpYmlsaXR5SW5hY2Nlc3NpYmxlTGluaycsCiAgICAgICAgICAgICAgICAnTGluayB3aXRob3V0IHRleHQgb3IgdGl0bGUnLAogICAgICAgICAgICAgICAgJ1BsZWFzZSBtYWtlIHN1cmUgdGhhdCBldmVyeSBsaW5rIGhhcyBlaXRoZXIgYSB0ZXh0IGNvbnRlbnQgb3IgYSB0aXRsZSBhdHRyaWJ1dGUgdGhhdCBjYW4gYmUgdXNlZCBieSBhIHNjcmVlbnJlYWRlciB0byBpZGVudGlmeSB0aGUgbGluay4nCiAgICAgICAgICAgICk7CgogICAgICAgIH0pOwogICAgfQogICAgQ2hlY2tGdW5jdGlvbnMucHVzaChDaGVja0FjY2Vzc2liaWxpdHkpOwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgUGVyZm9ybXMgdmFyaW91cyBjaGVja3MgZm9yIGJhZCBIVE1MIHByYWN0aWNlLgogICAgICogICAgICBSZXR1cm5zIG5vdGhpbmcsIGJ1dCBjYWxscyBPdXRwdXRFcnJvciBpZiBhbiBlcnJvciB3YXMgZm91bmQuCiAgICAgKi8KCiAgICBmdW5jdGlvbiBDaGVja0JhZFByYWN0aWNlKCkgewogICAgICAgIHZhciBPYnNvbGV0ZUVsZW1lbnQyUmVwbGFjZW1lbnQsCiAgICAgICAgICAgIFVzZWRJRHMgPSBbXTsKCiAgICAgICAgLy8gY2hlY2sgZm9yIGlucHV0cyB3aGljaCBzaG91bGQgYmUgYnV0dG9ucwogICAgICAgICQoJ2lucHV0OmJ1dHRvbiwgaW5wdXQ6c3VibWl0LCBpbnB1dDpyZXNldCcpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsKICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICdCYWRQcmFjdGljZUlucHV0QnV0dG9uJywKICAgICAgICAgICAgICAgICdPbGQgaW5wdXQgd2l0aCB0eXBlIGJ1dHRvbiwgc3VibWl0IG9yIHJlc2V0IGRldGVjdGVkJywKICAgICAgICAgICAgICAgICdQbGVhc2UgcmVwbGFjZSB0aGlzIGVsZW1lbnQgd2l0aCBhIDxjb2RlPiZsdDtidXR0b24mZ3Q7PC9jb2RlPiB3aXRoIHRoZSBzYW1lIHR5cGUuIElucHV0IGZpZWxkcyBtdXN0IG5vdCBiZSB1c2VkIGZvciB0aGlzIHB1cnBvc2UgYW55IG1vcmUuJwogICAgICAgICAgICApOwogICAgICAgIH0pOwoKICAgICAgICAvKgogICAgICAgIFRPRE86IGxvb2sgZm9yIGEgZml4IGZvciBjaHJvbWUuIEluIENocm9tZSwgdGhlIHNpemUgYXR0cmlidXRlIGhhcyBhIHZhbHVlIG9mIDIwIGlmCiAgICAgICAgICAgIGl0IHdhcyBub3Qgc3BlY2lmaWVkLgogICAgICAgIC8vIGNoZWNrIGZvciBpbnB1dHMgd2l0aCBzaXplIGF0dHJpYnV0ZXMKICAgICAgICAkKCdpbnB1dDpub3QoOmZpbGUpJykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOwogICAgICAgICAgICBpZiAoJHRoaXMuYXR0cignc2l6ZScpICYmICR0aGlzLmF0dHIoJ3NpemUnKSA+IDApIHsKICAgICAgICAgICAgICAgIG91dHB1dEVycm9yKAogICAgICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgICAgICdCYWRQcmFjdGljZUlucHV0U2l6ZScsCiAgICAgICAgICAgICAgICAgICAgJ0lucHV0IGVsZW1lbnQgd2l0aCBzaXplIGF0dHJpYnV0ZScsCiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSByZW1vdmUgdGhlIHNpemUgYXR0cmlidXRlICh0aGlzIGlzIG9ubHkgYWxsb3dlZCBmb3IgZmlsZSB1cGxvYWQgZmllbGRzKS4gTWF5YmUgYSBjbGFzcyBsaWtlIFcyNXBjLCBXMzNwYyBvciBXNTBwYyB3b3VsZCBhY2hpZXZlIGEgc2ltaWxhciBlZmZlY3QuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgICovCgogICAgICAgIC8vIGNoZWNrIGZvciBvYnNvbGV0ZSBlbGVtZW50cwogICAgICAgIE9ic29sZXRlRWxlbWVudDJSZXBsYWNlbWVudCA9IHsKICAgICAgICAgICAgYjogJzxjb2RlPiZsdDtzdHJvbmcmZ3Q7PC9jb2RlPicsCiAgICAgICAgICAgIGk6ICc8Y29kZT4mbHQ7ZW0mZ3Q7PC9jb2RlPicsCiAgICAgICAgICAgIGZvbnQ6ICc8Y29kZT4mbHQ7c3BhbiZndDs8L2NvZGU+IHdpdGggYSBDU1MgY2xhc3MnLAogICAgICAgICAgICBub2JyOiAnYSBwcm9wZXIgc3Vic3RpdHV0ZSAoZGVwZW5kcyBvbiBjb250ZXh0KScKICAgICAgICB9OwoKICAgICAgICAvLyBjaGVjayBmb3IgaW5wdXRzIHdpdGggc2l6ZSBhdHRyaWJ1dGVzCiAgICAgICAgJCgnZm9udCwgbm9icicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsKICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgJ0JhZFByYWN0aWNlT2Jzb2xldGVFbGVtZW50JywKICAgICAgICAgICAgICAgICAgICAnT2Jzb2xldGUgZWxlbWVudCA8Y29kZT4mbHQ7JyArIHRoaXMudGFnTmFtZSArICcmZ3Q7PC9jb2RlPiB1c2VkJywKICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHJlcGxhY2UgaXQgd2l0aDogJyArIE9ic29sZXRlRWxlbWVudDJSZXBsYWNlbWVudFt0aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKV0gKyAnLicKICAgICAgICAgICAgKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gY2hlY2sgZm9yIG11bHRpcGxlIHVzYWdlIG9mIG9uZSBJRAogICAgICAgICQoJ2Rpdiwgc3BhbiwgdWwsIG9sLCBsaSwgYSwgaDEsIGgyLCBoMywgaDQsIGg1LCBpbnB1dCwgc2VsZWN0JykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwKICAgICAgICAgICAgICAgIElEID0gJHRoaXMuYXR0cignaWQnKSB8fCAnJzsKCiAgICAgICAgICAgIGlmIChJRCkgewogICAgICAgICAgICAgICAgaWYgKCQuaW5BcnJheShJRCwgVXNlZElEcykgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCYWRQcmFjdGljZU11bHRpcGxlSURVc2FnZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSUQgdXNlZCBtdWx0aXBsZSB0aW1lczogJyArIElELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBtYWtlIHN1cmUgdG8gdXNlIGFuIElEIG9ubHkgb25jZSEnCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIFVzZWRJRHMucHVzaCgkKHRoaXMpLmF0dHIoJ2lkJykpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIGZ1bmN0aW9uIG9ic29sZXRlQ2xhc3NFcnJvcihDbGFzc05hbWUpIHsKICAgICAgICAgICAgLy8gUmV0dXJuIGEgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBhcyBhIGNhbGxiYWNrIGJ5IGVhY2goKS4KICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsKICAgICAgICAgICAgICAgIG91dHB1dEVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICAgICAgICAgJ0JhZFByYWN0aWNlT2Jzb2xldGVDbGFzcycsCiAgICAgICAgICAgICAgICAgICAgICAgICdPYnNvbGV0ZSBjbGFzcyA8Y29kZT4iJyArIENsYXNzTmFtZSArICciPC9jb2RlPiB1c2VkJywKICAgICAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSByZW1vdmUgaXQgYW5kIHJlcGxhY2UgaXQgd2l0aCBhIHByb3BlciBzdWJzdGl0dXRlLicKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAvLyBjaGVjayBmb3IgaW5wdXRzIHdpdGggc2l6ZSBhdHRyaWJ1dGVzCiAgICAgICAgJCgnLm1haW5ib2R5JykuZWFjaChvYnNvbGV0ZUNsYXNzRXJyb3IoJ21haW5ib2R5JykpOwogICAgICAgICQoJy5jb250ZW50a2V5JykuZWFjaChvYnNvbGV0ZUNsYXNzRXJyb3IoJ2NvbnRlbnRrZXknKSk7CiAgICAgICAgJCgnLmNvbnRlbnR2YWx1ZScpLmVhY2gob2Jzb2xldGVDbGFzc0Vycm9yKCdjb250ZW50dmFsdWUnKSk7CiAgICAgICAgJCgnLnNlYXJjaGFjdGl2ZScpLmVhY2gob2Jzb2xldGVDbGFzc0Vycm9yKCdzZWFyY2hhY3RpdmUnKSk7CiAgICAgICAgJCgnLnNlYXJjaHBhc3NpdmUnKS5lYWNoKG9ic29sZXRlQ2xhc3NFcnJvcignc2VhcmNocGFzc2l2ZScpKTsKCiAgICAgICAgLy8gY2hlY2sgZm9yIGV2ZW50cwogICAgICAgICQoImRpdiIpLmVhY2goZnVuY3Rpb24oKXsKCiAgICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyksCiAgICAgICAgICAgICAgICAkQ29udGFpbmVyLAogICAgICAgICAgICAgICAgQ29kZSwKICAgICAgICAgICAgICAgIEV2ZW50cywKICAgICAgICAgICAgICAgIEV2ZW50OwoKICAgICAgICAgICAgLy8gRG9uJ3Qgb3V0cHV0IHRoaXMgZXJyb3IgZm9yIGZyZWQgaXRzZWxmLgogICAgICAgICAgICAvLyBXZSBhbHNvIGN1cnJlbnRseSBuZWVkIG9uY2xpY2sgZXZlbnRzIGluIHRoZSBtYWluIG1lbnUuCiAgICAgICAgICAgIGlmICgkdGhpcy5jbG9zZXN0KCcuRGV2ZWxGcmVkQ29udGFpbmVyLCAjTmF2aWdhdGlvbkNvbnRhaW5lcicpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBHZXQgZWxlbWVudCBIVE1MIGJ5IHdyYXBwaW5nIGl0IGluIGEgZGl2IGFuZCBjYWxsaW5nIC5odG1sKCkgb24gdGhhdAogICAgICAgICAgICAkQ29udGFpbmVyID0gJCgnPGRpdj48L2Rpdj4nKTsKICAgICAgICAgICAgJENvbnRhaW5lci5hcHBlbmQoJHRoaXMuY2xvbmUoKSk7CgogICAgICAgICAgICAvLyBvbmxvYWQgYXR0cmlidXRlIGlzIHNvbWV0aW1lcyBuZWVkZWQgZm9yIGlmcmFtZXMsIHNvIHdlIGp1c3QgcmVtb3ZlIGl0IGZvciB0aGUgY2hlY2sKICAgICAgICAgICAgJENvbnRhaW5lci5maW5kKCdpZnJhbWUnKS5yZW1vdmVBdHRyKCdvbmxvYWQnKTsKCiAgICAgICAgICAgIENvZGUgPSAkQ29udGFpbmVyLmh0bWwoKTsKCiAgICAgICAgICAgIC8vIHNlYXJjaCBmb3IgZXZlbnRzIGluIGh0bWwgZWxlbWVudCBjb2RlCiAgICAgICAgICAgIEV2ZW50cyA9IENvZGUubWF0Y2goL1xzK29uXHcrPS9pZyk7CgogICAgICAgICAgICAvLyBzZW5kIGVycm9yIHRvIG91dHB1dAogICAgICAgICAgICBpZiAoRXZlbnRzICE9PSBudWxsKXsKICAgICAgICAgICAgICAgIC8vIGNsZWFuIGxlYWRpbmcgc3BhY2UgYW5kIGVxdWFscyBzaWduIGZyb20gdGhlIFJlZ0V4IG1hdGNoaW5nCiAgICAgICAgICAgICAgICBmb3IgKEV2ZW50IGluIEV2ZW50cyl7CiAgICAgICAgICAgICAgICAgICAgaWYgKEV2ZW50cy5oYXNPd25Qcm9wZXJ0eShFdmVudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRzW0V2ZW50XSA9IEV2ZW50c1tFdmVudF0udG9TdHJpbmcoKS5tYXRjaCgvb25cdysvKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICAgICAnQmFkUHJhY3RpY2VFdmVudCcsCiAgICAgICAgICAgICAgICAgICAgJ0V2ZW50IDxjb2RlPiInICsgRXZlbnRzICsgJyI8L2NvZGU+IHVzZWQnLAogICAgICAgICAgICAgICAgICAgICdQbGVhc2UgcmVtb3ZlIGl0IGFuZCByZXBsYWNlIGl0IHdpdGggYSBwcm9wZXIgc3Vic3RpdHV0ZS4nCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgfQogICAgQ2hlY2tGdW5jdGlvbnMucHVzaChDaGVja0JhZFByYWN0aWNlKTsKCiAgICAvKioKICAgICAqIEBmdW5jdGlvbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIEhUTUxDaGVjayBjYW4gYmUgc3RhcnRlZCAoalF1ZXJ5IGlzIGxvYWRlZCkuCiAgICAgKi8KICAgIFRhcmdldE5TLkNoZWNrRm9yU3RhcnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGpRdWVyeSkgewogICAgICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICAgICAgICAgICAgICAgQ29yZS5GcmVkLkhUTUxDaGVjay5SdW4oKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBDb3JlLkZyZWQuSFRNTENoZWNrLkNoZWNrRm9yU3RhcnQoKTsKICAgICAgICAgICAgfSwgMjUwKTsKICAgICAgICB9CiAgICB9OwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgUnVucyBhbGwgYXZhaWxhYmxlIGNoZWNrIGZ1bmN0aW9ucwogICAgICovCiAgICBUYXJnZXROUy5SdW4gPSBmdW5jdGlvbigpewogICAgICAgICQuZWFjaChDaGVja0Z1bmN0aW9ucywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgdGhpcygpOwogICAgICAgIH0pOwogICAgICAgICQoJyNGcmVkSFRNTENoZWNrUnVubmluZycpLnJlbW92ZSgpOwogICAgICAgIGlmICghRXJyb3JzRm91bmQpIHsKICAgICAgICAgICAgJCgnI0ZyZWRIVE1MQ2hlY2tSZXN1bHRzJykuaHRtbCgnPHAgY2xhc3M9IkZyZWRKU0xpbnRTdWNjZXNzZnVsIj5BbGwgY2hlY2tzIG9rLjwvcD4nKTsKICAgICAgICB9CiAgICB9OwoKICAgIHJldHVybiBUYXJnZXROUzsKfShDb3JlLkZyZWQuSFRNTENoZWNrIHx8IHt9KSk7Cg==
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTYgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Ci8qZ2xvYmFsIEpTTElOVDogZmFsc2UsICQ6IGZhbHNlLCBqUXVlcnk6IGZhbHNlICovCgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuRnJlZCA9IENvcmUuRnJlZCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIGFsbCBsb2dpYyBmb3IgdGhlIEZyZWQgbW9kdWxlIEpTTGludAogKi8KQ29yZS5GcmVkLkpTTGludCA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBmdW5jdGlvbiBodG1sRXNjYXBlKHN0cikgewogICAgICAgIHJldHVybiBTdHJpbmcoc3RyKQogICAgICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKQogICAgICAgICAgICAucmVwbGFjZSgvIi9nLCAnJnF1b3Q7JykKICAgICAgICAgICAgLnJlcGxhY2UoLycvZywgJyYjMzk7JykKICAgICAgICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKQogICAgICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpOwogICAgfQoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcHJpdmF0ZQogICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IEpTTGludCBjaGVjay4KICAgICAqLwogICAgZnVuY3Rpb24gc3RhcnRKU0xpbnQoKSB7CiAgICAgICAgdmFyIFJlc3VsdCwKICAgICAgICAgICAgRXJyb3JzRm91bmQgPSBmYWxzZTsKCiAgICAgICAgLy8gVGhpcyBmdW5jIHNob3VsZCBub3QgYmUgc3RhcnRlZCBtb3JlIHRoYW4gb25lIHRpbWUuLi4KICAgICAgICBpZiAoVGFyZ2V0TlMuU3RhcnRlZCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIFRhcmdldE5TLlN0YXJ0ZWQrKzsKCiAgICAgICAgLy8gU3RhcnQgSlNMaW50IGZvciBldmVyeSBzY3JpcHQgd2UgZm91bmQgYW5kIG91dHB1dCB0aGUgcmVzdWx0CiAgICAgICAgJC5lYWNoKFRhcmdldE5TLkFsbFNjcmlwdHMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIEVycm9yT2JqZWN0LCBPdXRwdXQsIGk7CgogICAgICAgICAgICAvLyBJZ25vcmUgaW52YWxpZCBjb2RlIHRoYXQgaXMgaW5qZWN0ZWQgYnkgdGhlIGdvb2dsZSBhbmFseXRpY3Mgb3B0LW91dCBwbHVnaW4gZm9yIGJyb3dzZXJzLgogICAgICAgICAgICBpZiAodGhpcy5TcmMgPT09ICdpbmxpbmUnICYmIHRoaXMuU2NyaXB0Lm1hdGNoKC9fZ2FVc2VyUHJlZnMvKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXN1bHQgPSBKU0xJTlQodGhpcy5TY3JpcHQsICh0aGlzLlNyYyA9PT0gJ2lubGluZScpID8gVGFyZ2V0TlMuSW5saW5lT3B0aW9ucyA6IFRhcmdldE5TLlJlbW90ZU9wdGlvbnMpOwogICAgICAgICAgICBpZiAoIVJlc3VsdCkgewogICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IEpTTElOVC5lcnJvcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICBFcnJvck9iamVjdCA9IEpTTElOVC5lcnJvcnNbaV07CiAgICAgICAgICAgICAgICAgICAgaWYgKEVycm9yT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNGcmVkSlNMaW50UnVubmluZycpLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQgPSAnPGRpdiBjbGFzcz0iRnJlZEpTTGludEVycm9yIj4nOwogICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQgKz0gJzxwPjxzcGFuIGNsYXNzPSJFcnJvciI+RXJyb3I6IDwvc3Bhbj48c3Ryb25nPicgKyBFcnJvck9iamVjdC5yZWFzb24gKyAnPC9zdHJvbmc+IFNvdXJjZTogICAgICcgKyB0aGlzLlNyYyArICc6JyArIEVycm9yT2JqZWN0LmxpbmUgKyAnOicgKyBFcnJvck9iamVjdC5jaGFyYWN0ZXIgKyAnPC9wPic7CiAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dCArPSAnPGNvZGU+JyArIGh0bWxFc2NhcGUoRXJyb3JPYmplY3QuZXZpZGVuY2UpICsgJzwvY29kZT4nOwogICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQgKz0gJzwvZGl2Pic7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNGcmVkSlNMaW50U2NyaXB0cycpLmFwcGVuZChPdXRwdXQpOwogICAgICAgICAgICAgICAgICAgICAgICBFcnJvcnNGb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGFjdGl2YXRlIGVsc2UgYnJhbmNoIHRvIHNlZSBwb3NpdGl2ZSBjaGVjayByZXN1bHRzIHBlciBmaWxlIGZvciBmcmVkIGRlYnVnZ2luZwogICAgICAgICAgICAvL2Vsc2UgewogICAgICAgICAgICAvLyAgICAkKCcjRnJlZEpTTGludFJ1bm5pbmcnKS5yZW1vdmUoKTsKICAgICAgICAgICAgLy8gICAgJCgnI0ZyZWRKU0xpbnRTY3JpcHRzJykuYXBwZW5kKCc8cCBjbGFzcz0iRnJlZEpTTGludFN1Y2Nlc3NmdWwiPicgKyB0aGlzLlNyYyArICcgb2s8L3A+Jyk7CiAgICAgICAgICAgIC8vfQogICAgICAgIH0pOwogICAgICAgIGlmICghRXJyb3JzRm91bmQpIHsKICAgICAgICAgICAgJCgnI0ZyZWRKU0xpbnRSdW5uaW5nJykucmVtb3ZlKCk7CiAgICAgICAgICAgICQoJyNGcmVkSlNMaW50U2NyaXB0cycpLmFwcGVuZCgnPHAgY2xhc3M9IkZyZWRKU0xpbnRTdWNjZXNzZnVsIj5BbGwgY2hlY2tzIG9rLjwvcD4nKTsKICAgICAgICB9CgogICAgICAgIGlmIChUYXJnZXROUy5BbGxTY3JpcHRzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAkKCcjRnJlZEpTTGludFNjcmlwdHMnKS5hcHBlbmQoJzxwPk5vIHNjcmlwdHMgZm91bmQhPC9wPicpLmNzcygnaGVpZ2h0JywgJzE1cHgnKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBAZmllbGQKICAgICAqIEBkZXNjcmlwdGlvbiBBbGwgb3B0aW9ucyBmb3IgSlNMaW50LgogICAgICovCiAgICBUYXJnZXROUy5Db21tb25PcHRpb25zID0gewogICAgICAgIGJyb3dzZXI6IHRydWUsCiAgICAgICAgd2hpdGU6IHRydWUsCiAgICAgICAgaW5kZW50OiA0LAogICAgICAgIGRldmVsOiB0cnVlLAogICAgICAgIG9uZXZhcjogdHJ1ZSwKICAgICAgICB1bmRlZjogdHJ1ZSwKICAgICAgICBub21lbjogdHJ1ZSwKICAgICAgICBlcWVxZXE6IHRydWUsCiAgICAgICAgcGx1c3BsdXM6IGZhbHNlLAogICAgICAgIGJpdHdpc2U6IHRydWUsCiAgICAgICAgc3RyaWN0OiB0cnVlLAogICAgICAgIGltbWVkOiB0cnVlLAogICAgICAgIHByZWRlZjogWydDb3JlJywgJ2lzSlF1ZXJ5T2JqZWN0JywgJyQnLCAnalF1ZXJ5JywgJ0NLRURJVE9SJywgJ3dpbmRvdycsICdkb2N1bWVudCcsICdwcmludFN0YWNrVHJhY2UnXQogICAgfTsKICAgIFRhcmdldE5TLlJlbW90ZU9wdGlvbnMgPSAkLmV4dGVuZChUYXJnZXROUy5Db21tb25PcHRpb25zLCB7fSk7CiAgICBUYXJnZXROUy5JbmxpbmVPcHRpb25zID0gJC5leHRlbmQoVGFyZ2V0TlMuQ29tbW9uT3B0aW9ucywgewogICAgICAgIHdoaXRlOiBmYWxzZQogICAgfSk7CgogICAgVGFyZ2V0TlMuQWxsU2NyaXB0cyA9IFRhcmdldE5TLkFsbFNjcmlwdHMgfHwgW107CiAgICBUYXJnZXROUy5XYWl0aW5nID0gMDsKICAgIFRhcmdldE5TLlN0YXJ0ZWQgPSAwOwogICAgVGFyZ2V0TlMuU291cmNlcyA9IHt9OwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBpcyB0aGUgaW5pdCBmdW5jdGlvbiBmb3IgSlNMaW50LgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewogICAgICAgIC8vIHRoaXMgbW9kdWxlIG5lZWRzIGpRdWVyeSEKICAgICAgICBpZiAodHlwZW9mIGpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcgfHwgIWpRdWVyeSkgewogICAgICAgICAgICB3aW5kb3cuYWxlcnQoJ0ZyZWQgSlNMaW50IG1vZHVsZSBuZWVkcyBqUXVlcnkgbG9hZGVkJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdGcmVkSlNMaW50U2NyaXB0cycpLnN0eWxlLmhlaWdodCA9ICcxNXB4JzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIENvcmUuRnJlZC5KU0xpbnQuR2V0U2NyaXB0cygpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9OwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IGFsbCBzY3JpcHRzIHRvIGNoZWNrLgogICAgICovCiAgICBUYXJnZXROUy5HZXRTY3JpcHRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIFNjcmlwdHMsIFNvdXJjZTsKCiAgICAgICAgICAgICQoJ3NjcmlwdCcpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgLy8gRXhjbHVkZSB0aGUgRnJlZCBKYXZhU2NyaXB0IDstKQogICAgICAgICAgICAgICAgU2NyaXB0cyA9ICQodGhpcykudGV4dCgpOwoKICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmlzKCdbc3JjXScpKSB7CiAgICAgICAgICAgICAgICAgICAgU291cmNlID0gJCh0aGlzKS5hdHRyKCdzcmMnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIFNvdXJjZSA9ICdpbmxpbmUnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChTb3VyY2UgPT09ICdpbmxpbmUnKSB7CiAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuQWxsU2NyaXB0cy5wdXNoKHtTcmM6IFNvdXJjZSwgU2NyaXB0OiBTY3JpcHRzfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBJZiBleHRlcm5hbCBzb3VyY2UgaXMgbm90IGEgdGhpcmRwYXJ0eSBzY3JpcHQsIGxvYWQgaXQhCiAgICAgICAgICAgICAgICAgICAgaWYgKCFTb3VyY2UubWF0Y2goL3RoaXJkcGFydHkvKSAmJiAhU291cmNlLm1hdGNoKC9jaHJvbWU6XC9cLy8pICYmICFUYXJnZXROUy5Tb3VyY2VzW1NvdXJjZV0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuV2FpdGluZysrOwogICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5Tb3VyY2VzW1NvdXJjZV0gPSAxOwoKICAgICAgICAgICAgICAgICAgICAgICAgJC5nZXQoU291cmNlLCB7fSwgZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldE5TLkFsbFNjcmlwdHMucHVzaCh7U3JjOiB0aGlzLnVybCwgU2NyaXB0OiBkYXRhfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5XYWl0aW5nLS07CiAgICAgICAgICAgICAgICAgICAgICAgIH0sICd0ZXh0Jyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIHN0YXJ0IGpzbGludCwgaWYgYWxsIGFqYXggcmVxdWVzdHMgYXJlIHJlYWR5CiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgQ29yZS5GcmVkLkpTTGludC5DaGVja0ZvclN0YXJ0KCk7CiAgICAgICAgICAgIH0sIDI1MCk7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBjaGVja3MsIGlmIEpTTGludCBjYW4gYmUgc3RhcnRlZCAoYWxsIHNjcmlwdHMgYXJlIGxvYWRlZCkuCiAgICAgKi8KICAgIFRhcmdldE5TLkNoZWNrRm9yU3RhcnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKFRhcmdldE5TLldhaXRpbmcgPD0gMCAmJiBUYXJnZXROUy5TdGFydGVkID09PSAwKSB7CiAgICAgICAgICAgIHN0YXJ0SlNMaW50KCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAoVGFyZ2V0TlMuU3RhcnRlZCA9PT0gMCkgewogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgQ29yZS5GcmVkLkpTTGludC5DaGVja0ZvclN0YXJ0KCk7CiAgICAgICAgICAgICAgICB9LCAyNTApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfTsKICAgIHJldHVybiBUYXJnZXROUzsKfShDb3JlLkZyZWQuSlNMaW50IHx8IHt9KSk7Cg==
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
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgRnJlZCBDU1MKICovCgouRGV2ZWxGcmVkQ29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMzNweDsKICAgIHJpZ2h0OiAxNnB4OwogICAgei1pbmRleDogNTAwMDsKfQoKLkRldmVsRnJlZENvbnRhaW5lcjpob3ZlciB7CiAgICAtd2Via2l0LW9wYWNpdHk6IDEuMCAhaW1wb3J0YW50OwogICAgLW1vei1vcGFjaXR5OiAxLjAgIWltcG9ydGFudDsKICAgIG9wYWNpdHk6IDEuMCAhaW1wb3J0YW50Owp9CgouRGV2ZWxGcmVkQm94IHsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1tb3otYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1tcy1ib3gtc2hhZG93OiAxcHggMXB4IDNweCAjNzc3OwogICAgLW8tYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM3Nzc7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgbWFyZ2luLWJvdHRvbTogNXB4Owp9CgouRGV2ZWxGcmVkQm94Q29udGVudCB7CiAgICBtYXgtaGVpZ2h0OiAxNTBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhOwogICAgYm9yZGVyLXRvcDogMHB4OwogICAgZGlzcGxheTogbm9uZTsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQuRXhwYW5kZWQgewogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5EZXZlbEZyZWRCb3hDb250ZW50IC5GcmVkUXVpY2tTZWFyY2ggewogICAgZGlzcGxheTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7CiAgICBwYWRkaW5nOiA1cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAzcHggIzc3NywgaW5zZXQgLTFweCAtMXB4IDNweCAjNzc3OwogICAgLW1zLWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIC1vLWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIGJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQgLkZyZWRRdWlja1NlYXJjaCBpbnB1dCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiA5OCU7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhOwogICAgZm9udC1zaXplOiAxMXB4Owp9CgouRGV2ZWxGcmVkQm94Q29udGVudCAuRnJlZFF1aWNrU2VhcmNoIGkgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDIuNSU7CiAgICB0b3A6IDlweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGNvbG9yOiAjY2NjOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgouRGV2ZWxGcmVkQm94Q29udGVudCAuRnJlZFF1aWNrU2VhcmNoOmhvdmVyIGkgewogICAgY29sb3I6ICMzMzM7Cn0KCi5EZXZlbEZyZWRCb3ggLnN0cm9uZywKLkRldmVsRnJlZEJveCAuc3Ryb25nICogewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi5EZXZlbEZyZWRCb3ggaDEgewogICAgZm9udC1zaXplOiAxMnB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzI1NTU2NTsKICAgIGNvbG9yOiAjZmZmOwogICAgbWFyZ2luOiAwcHg7CiAgICBwYWRkaW5nOiA2cHggN3B4OwogICAgY3Vyc29yOiBtb3ZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLkRldmVsRnJlZEJveC5FeHBhbmRlZCBoMSB7CiAgICBiYWNrZ3JvdW5kOiAjMjU1NTY1Owp9CgouRGV2ZWxGcmVkQm94LkNvbGxhcHNlZCBoMSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4Owp9CgouRGV2ZWxGcmVkQm94IGgxIC5GcmVkVG9vbEJhciB7CiAgICBmbG9hdDogcmlnaHQ7Cn0KCi5EZXZlbEZyZWRCb3ggaDEgLkZyZWRUb29sQmFyIGkgewogICAgZm9udC1zaXplOiAxM3B4OwogICAgbWFyZ2luLWxlZnQ6IDVweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cn0KCiNGcmVkSlNMaW50U2NyaXB0cyB7CiAgICBwYWRkaW5nOiA1cHg7Cn0KCi5GcmVkSlNMaW50U3VjY2Vzc2Z1bCB7CiAgICBjb2xvcjogZ3JlZW47Cn0KCi5GcmVkSlNMaW50RXJyb3IgewogICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgZm9udC1zaXplOiAxMXB4Owp9Cgpib2R5ICNGcmVkSFRNTENoZWNrUmVzdWx0cyBwICwKYm9keSAjRnJlZEhUTUxDaGVja1Jlc3VsdHMgcHJlLApib2R5ICNGcmVkSlNMaW50U2NyaXB0cyBwICwKYm9keSAjRnJlZEpTTGludFNjcmlwdHMgcHJlIHsKICAgIG1hcmdpbjogMHB4OwogICAgcGFkZGluZzogMHB4Owp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgewogICAgcGFkZGluZzogMTVweDsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGgxIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIG1hcmdpbjogMHB4IDBweCAxMHB4IDBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLkRldmVsRnJlZFNldHRpbmdzIHVsIHsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyAuQ2FsbEZvckFjdGlvbiB7CiAgICBtYXJnaW46IDBweCBhdXRvOwogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSBzcGFuIHsKICAgIGNvbG9yOiAjNzc3Nzc3OwogICAgZGlzcGxheTogYmxvY2s7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDIzcHg7CiAgICBtYXJnaW4tYm90dG9tOiAzcHg7CiAgICBsaW5lLWhlaWdodDogMTMwJTsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGxpIGxhYmVsIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcGFkZGluZzogM3B4IDIwcHggM3B4IDVweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaTpob3ZlciBsYWJlbCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgbGkgYSB7CiAgICBjb2xvcjogIzAwMDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiA2cHg7CiAgICB0b3A6IDZweDsKICAgIGZvbnQtc2l6ZTogMTNweDsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGQsCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgcGFkZGluZzogNXB4IDVweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB0aCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwogICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjYWFhOwp9Cgp0YWJsZS5GcmVkVGFibGVEZWZhdWx0IHRyOm50aC1jaGlsZChvZGQpIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdHI6bGFzdC1jaGlsZCB0ZCB7CiAgICBib3JkZXItYm90dG9tOiAwcHg7Cn0KCi5EZXZlbEZyZWRCb3ggLkZyZWRFbGVtZW50TGlzdCB7CiAgICBwYWRkaW5nOiA1cHggM3B4IDBweCA1cHg7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAzcHggNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CiAgICBtYXJnaW46IDBweCAzcHggNXB4IDBweDsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7CiAgICAtbXMtYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW8tYm9yZGVyLXJhZGl1czogM3B4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLkZyZWRFbGVtZW50TGlzdCBzcGFuIGkgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdG9wOiAxcHg7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiBhIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgY29sb3I6ICMwMDA7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiBhOmhvdmVyIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoKLkZyZWRFbGVtZW50TGlzdCBzcGFuLldhcm5pbmcgewogICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogICAgY29sb3I6ICNmZmY7CiAgICBib3JkZXItY29sb3I6ICNDRTAwMDA7Cn0KCi5GcmVkTW9ub1NwYWNlIHsKICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBsaW5lLWhlaWdodDogMTMwJTsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICB3aGl0ZS1zcGFjZTogcHJlOwp9Cgp0YWJsZS5GcmVkU3dpdGNoVGFibGUgdGQgewogICAgcGFkZGluZzogM3B4OwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQoKdGFibGUuRnJlZFN3aXRjaFRhYmxlIHRkOmZpcnN0LWNoaWxkIHsKICAgIHdpZHRoOiA0MHB4Owp9Cgp0YWJsZS5GcmVkU3dpdGNoVGFibGUgdGQ6bGFzdC1jaGlsZCB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7Cn0KCi5GcmVkU3dpdGNoIGEgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogMzBweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM4ODg7CiAgICBoZWlnaHQ6IDE2cHg7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgbWFyZ2luOiAwcHggYXV0bzsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWUKfQoKLkZyZWRTd2l0Y2ggYSBzcGFuIHsKICAgIHdpZHRoOiAxNXB4OwogICAgaGVpZ2h0OiAxNHB4OwogICAgYm9yZGVyLXJhZGl1czogMTNweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IC0xcHg7CiAgICB0b3A6IDBweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47CiAgICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluOwogICAgICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47Cn0KCi5GcmVkU3dpdGNoLk9uIGEgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzc3NzsKICAgIGJvcmRlci1jb2xvcjogIzMzMzsKfQoKLkZyZWRTd2l0Y2guT24gc3BhbiB7CiAgICByaWdodDogLTFweDsKICAgIGxlZnQ6IGF1dG87Cn0KCi5EZXZlbEZyZWRUb2dnbGVDb250YWluZXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDVweDsKfQoKYSNEZXZlbEZyZWRUb2dnbGVDb250YWluZXJMaW5rIHsKICAgIGZvbnQtc2l6ZTogMzVweDsKICAgIGZvbnQtd2VpZ2h0OmJvbGQ7CiAgICBjb2xvcjogIzgwODA4MDsKfQoKYSNEZXZlbEZyZWRUb2dnbGVDb250YWluZXJMaW5rLkZyZWRBY3RpdmUgewogICAgZm9udC1zaXplOiAzNXB4OwogICAgZm9udC13ZWlnaHQ6Ym9sZDsKICAgIGNvbG9yOiAjMDA2ZWE1Owp9
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgRnJlZCBDU1MKICovCgouRGV2ZWxGcmVkQ29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMzNweDsKICAgIHJpZ2h0OiAxNnB4OwogICAgei1pbmRleDogNTAwMDsKfQoKLkRldmVsRnJlZENvbnRhaW5lcjpob3ZlciB7CiAgICAtd2Via2l0LW9wYWNpdHk6IDEuMCAhaW1wb3J0YW50OwogICAgLW1vei1vcGFjaXR5OiAxLjAgIWltcG9ydGFudDsKICAgIG9wYWNpdHk6IDEuMCAhaW1wb3J0YW50Owp9CgouRGV2ZWxGcmVkQm94IHsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1tb3otYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1tcy1ib3gtc2hhZG93OiAxcHggMXB4IDNweCAjNzc3OwogICAgLW8tYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM3Nzc7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgbWFyZ2luLWJvdHRvbTogNXB4Owp9CgouRGV2ZWxGcmVkQm94Q29udGVudCB7CiAgICBtYXgtaGVpZ2h0OiAxNTBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhOwogICAgYm9yZGVyLXRvcDogMHB4OwogICAgZGlzcGxheTogbm9uZTsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQuRXhwYW5kZWQgewogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5EZXZlbEZyZWRCb3hDb250ZW50IC5GcmVkUXVpY2tTZWFyY2ggewogICAgZGlzcGxheTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7CiAgICBwYWRkaW5nOiA1cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAzcHggIzc3NywgaW5zZXQgLTFweCAtMXB4IDNweCAjNzc3OwogICAgLW1zLWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIC1vLWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIGJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQgLkZyZWRRdWlja1NlYXJjaCBpbnB1dCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiA5OCU7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhOwogICAgZm9udC1zaXplOiAxMXB4Owp9CgouRGV2ZWxGcmVkQm94Q29udGVudCAuRnJlZFF1aWNrU2VhcmNoIGkgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDIuNSU7CiAgICB0b3A6IDlweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGNvbG9yOiAjY2NjOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgouRGV2ZWxGcmVkQm94Q29udGVudCAuRnJlZFF1aWNrU2VhcmNoOmhvdmVyIGkgewogICAgY29sb3I6ICMzMzM7Cn0KCi5EZXZlbEZyZWRCb3ggLnN0cm9uZywKLkRldmVsRnJlZEJveCAuc3Ryb25nICogewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi5EZXZlbEZyZWRCb3ggaDEgewogICAgZm9udC1zaXplOiAxMnB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzI1NTU2NTsKICAgIGNvbG9yOiAjZmZmOwogICAgbWFyZ2luOiAwcHg7CiAgICBwYWRkaW5nOiA2cHggN3B4OwogICAgY3Vyc29yOiBtb3ZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLkRldmVsRnJlZEJveC5FeHBhbmRlZCBoMSB7CiAgICBiYWNrZ3JvdW5kOiAjMjU1NTY1Owp9CgouRGV2ZWxGcmVkQm94LkNvbGxhcHNlZCBoMSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4Owp9CgouRGV2ZWxGcmVkQm94IGgxIC5GcmVkVG9vbEJhciB7CiAgICBmbG9hdDogcmlnaHQ7Cn0KCi5EZXZlbEZyZWRCb3ggaDEgLkZyZWRUb29sQmFyIGkgewogICAgZm9udC1zaXplOiAxM3B4OwogICAgbWFyZ2luLWxlZnQ6IDVweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cn0KCiNGcmVkSlNMaW50U2NyaXB0cyB7CiAgICBwYWRkaW5nOiA1cHg7Cn0KCi5GcmVkSlNMaW50U3VjY2Vzc2Z1bCB7CiAgICBjb2xvcjogZ3JlZW47Cn0KCi5GcmVkSlNMaW50RXJyb3IgewogICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgZm9udC1zaXplOiAxMXB4Owp9Cgpib2R5ICNGcmVkSFRNTENoZWNrUmVzdWx0cyBwICwKYm9keSAjRnJlZEhUTUxDaGVja1Jlc3VsdHMgcHJlLApib2R5ICNGcmVkSlNMaW50U2NyaXB0cyBwICwKYm9keSAjRnJlZEpTTGludFNjcmlwdHMgcHJlIHsKICAgIG1hcmdpbjogMHB4OwogICAgcGFkZGluZzogMHB4Owp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgewogICAgcGFkZGluZzogMTVweDsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGgxIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIG1hcmdpbjogMHB4IDBweCAxMHB4IDBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLkRldmVsRnJlZFNldHRpbmdzIHVsIHsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyAuQ2FsbEZvckFjdGlvbiB7CiAgICBtYXJnaW46IDBweCBhdXRvOwogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSBzcGFuIHsKICAgIGNvbG9yOiAjNzc3Nzc3OwogICAgZGlzcGxheTogYmxvY2s7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDIzcHg7CiAgICBtYXJnaW4tYm90dG9tOiAzcHg7CiAgICBsaW5lLWhlaWdodDogMTMwJTsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGxpIGxhYmVsIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcGFkZGluZzogM3B4IDIwcHggM3B4IDVweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaTpob3ZlciBsYWJlbCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgbGkgYSB7CiAgICBjb2xvcjogIzAwMDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiA2cHg7CiAgICB0b3A6IDZweDsKICAgIGZvbnQtc2l6ZTogMTNweDsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGQsCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgcGFkZGluZzogNXB4IDVweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB0aCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwogICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjYWFhOwp9Cgp0YWJsZS5GcmVkVGFibGVEZWZhdWx0IHRyOm50aC1jaGlsZChvZGQpIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdHI6bGFzdC1jaGlsZCB0ZCB7CiAgICBib3JkZXItYm90dG9tOiAwcHg7Cn0KCi5EZXZlbEZyZWRCb3ggLkZyZWRFbGVtZW50TGlzdCB7CiAgICBwYWRkaW5nOiA1cHggM3B4IDBweCA1cHg7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAzcHggNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CiAgICBtYXJnaW46IDBweCAzcHggNXB4IDBweDsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7CiAgICAtbXMtYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW8tYm9yZGVyLXJhZGl1czogM3B4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLkZyZWRFbGVtZW50TGlzdCBzcGFuIGkgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdG9wOiAxcHg7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiBhIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgY29sb3I6ICMwMDA7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiBhOmhvdmVyIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoKLkZyZWRFbGVtZW50TGlzdCBzcGFuLldhcm5pbmcgewogICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogICAgY29sb3I6ICNmZmY7CiAgICBib3JkZXItY29sb3I6ICNDRTAwMDA7Cn0KCi5GcmVkTW9ub1NwYWNlIHsKICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBsaW5lLWhlaWdodDogMTMwJTsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7Cn0KCnRhYmxlLkZyZWRTd2l0Y2hUYWJsZSB0ZCB7CiAgICBwYWRkaW5nOiAzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwp9Cgp0YWJsZS5GcmVkU3dpdGNoVGFibGUgdGQ6Zmlyc3QtY2hpbGQgewogICAgd2lkdGg6IDQwcHg7Cn0KCnRhYmxlLkZyZWRTd2l0Y2hUYWJsZSB0ZDpsYXN0LWNoaWxkIHsKICAgIHBhZGRpbmctbGVmdDogMTBweDsKfQoKLkZyZWRTd2l0Y2ggYSB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHdpZHRoOiAzMHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODsKICAgIGhlaWdodDogMTZweDsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBtYXJnaW46IDBweCBhdXRvOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZQp9CgouRnJlZFN3aXRjaCBhIHNwYW4gewogICAgd2lkdGg6IDE1cHg7CiAgICBoZWlnaHQ6IDE0cHg7CiAgICBib3JkZXItcmFkaXVzOiAxM3B4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogLTFweDsKICAgIHRvcDogMHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjsKICAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47CiAgICAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjsKfQoKLkZyZWRTd2l0Y2guT24gYSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3OwogICAgYm9yZGVyLWNvbG9yOiAjMzMzOwp9CgouRnJlZFN3aXRjaC5PbiBzcGFuIHsKICAgIHJpZ2h0OiAtMXB4OwogICAgbGVmdDogYXV0bzsKfQoKLkRldmVsRnJlZFRvZ2dsZUNvbnRhaW5lciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogNXB4Owp9CgphI0RldmVsRnJlZFRvZ2dsZUNvbnRhaW5lckxpbmsgewogICAgZm9udC1zaXplOiAzNXB4OwogICAgZm9udC13ZWlnaHQ6Ym9sZDsKICAgIGNvbG9yOiAjODA4MDgwOwp9CgphI0RldmVsRnJlZFRvZ2dsZUNvbnRhaW5lckxpbmsuRnJlZEFjdGl2ZSB7CiAgICBmb250LXNpemU6IDM1cHg7CiAgICBmb250LXdlaWdodDpib2xkOwogICAgY29sb3I6ICMwMDZlYTU7Cn0=
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDEuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMS4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTYwMTE1MTIyNTAyKzAxJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydlndYU+cex99zTvZgJCFsCHuGpUAAkRGmgAzZohCSAAESICQM90BUsKKoyFIEKYpYsFqG1IkoDori3g1SBJRarOLC0USep/X29t7b2+8f53ye3/v7vef9jfd5DgCkgEyuMBdWAUAokogj/L0ZsXHxDOwAgAEeYIA9ABxubrZXWFgwkCvQl83IlTuBf9GrmwBSvK8xFXuB/0+q3GyxBAAoTM6zePxcrpyL5JyZL8lW2CflTEvOUDCMUrBYfkA5ayg4dYatP/vMsKeCeUIRT86Rcs7mCXkK7pXzhjwpX86IIpfiPAE/X87X5WycKRUK5PxGESvkc+Q5oEgKu4TPTZOznZxJ4sgItpznAIAjpX7ByV+whF8gUSTFzsouFAtS0yQMc64Fw97FhcUI4Odn8iUSZhiHm8ER8xjsLGE2R1QIwEzOn0VR1JYhL7KTvYuTE9PBxv6LQv3Xxb8pRW9n6EX4555B9P4/bH/ll9UAAGtKXpstf9iSqwDoXAeAxt0/bMZ7AFCW963j8hf50BXzkiaRZLva2ubn59sI+FwbRUF/1/90+Bv64ns2iu1+Lw/Dh5/CkWZKGIq6cbMys6RiRm42h8tnMP88xP848K/PYR3BT+GL+SJ5RLR8ygSiVHm7RTyBRJAlYghE/6mJ/zDsT5qZa7mojR8BLdEGqFymAeTnfoCiEgGSsFu+Av3et2B8NFDcvBj90Zm5/yzo33eFyxSPXEHq5zh2RCSDKxXnzawpriVAAwJQBjSgCfSAETAHTOAAnIEb8AS+YB4IBZEgDiwGXJAGhEAM8sEysBoUg1KwBewA1aAONIJm0AoOg05wDJwG58AlcAXcAPeADIyAp2ASvALTEARhITJEhTQhfcgEsoIcIBY0F/KFgqEIKA5KglIhESSFlkFroVKoHKqG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K0b1R5vHHMaOjfuNX3my8MnI0+yn0xPFP6v+XPvM/Nl3v3j+0j8ZOznyXPz806+bXmi+2Pdy9sueqbCph6+Er6Zfl7zRfLP/Lett37uYd6PT+e+x7ys/WHzo/hj08f4n4adPvwHJ4vTiCmVuZHN0cmVhbQplbmRvYmoKNiAwIG9iagpbL0lDQ0Jhc2VkIDUgMCBSXQplbmRvYmoKNyAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDEzIDAgUgo+PgpzdHJlYW0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz48eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHJkZjphYm91dD0iIj4KPGRjOmxhbmd1YWdlPmVuPC9kYzpsYW5ndWFnZT4KPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KPGRjOmRhdGU+MjAxNi0wMS0xNVQxMjoyNTowMiswMTowMDwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8cGRmOlByb2R1Y2VyPkFwYWNoZSBGT1AgVmVyc2lvbiAxLjE8L3BkZjpQcm9kdWNlcj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTAxLTE1VDEyOjI1OjAyKzAxOjAwPC94bXA6Q3JlYXRlRGF0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WzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0NvbnRlbnRzIDQ0IDAgUgo+PgoKZW5kb2JqCjQ1IDAgb2JqCjUxMAplbmRvYmoKNDcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMTggMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA2NzkuNjI5IDExNy4xOSA2ODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC42NSA2NzkuNjI5IDU0Mi45NiA2ODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjUxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjY3LjYyOSAxNTMuODExIDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjMzOCA2NjcuNjI5IDU0Mi42OTggNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MSAwIFIKL0ggL0kKCj4+CmVuZG9iago1NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NTUuNjI5IDE3Ni41ODEgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1NCAwIFIKL0ggL0kKCj4+CmVuZG9iago1NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMzE5IDY1NS42MjkgNTQyLjY3OSA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjU3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgNjU4LjQgbnVsbF0KPj4KZW5kb2JqCjU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY0My42MjkgMTQ2LjAzMiA2NTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi41NjIgNjQzLjYyOSA1NDIuOTIyIDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjUgMCBSIC9YWVogNzIuMCA2MDQuMCBudWxsXQo+PgplbmRvYmoKNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjMxLjYyOSAxNzYuMjIyIDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjMyMSA2MzEuNjI5IDU0Mi42ODEgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MCAwIFIKL0ggL0kKCj4+CmVuZG9iago2MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDU2MS42IG51bGxdCj4+CmVuZG9iago2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MTkuNjI5IDIwNS4yMDcgNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MyAwIFIKL0ggL0kKCj4+CmVuZG9iago2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMDkyIDYxOS42MjkgNTQyLjQ1MiA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjY2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgNTE5LjIgbnVsbF0KPj4KZW5kb2JqCjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYwNy42MjkgMTU1Ljc1MyA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi40ODQgNjA3LjYyOSA1NDIuODQ0IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjUgMCBSIC9YWVogNzIuMCA0NzYuOCBudWxsXQo+PgplbmRvYmoKNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTk1LjYyOSAxNjcuOTc1IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjM4NyA1OTUuNjI5IDU0Mi43NDcgNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2OSAwIFIKL0ggL0kKCj4+CmVuZG9iago3MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDQzNC40IG51bGxdCj4+CmVuZG9iago3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODMuNjI5IDE4Ni4yMTMgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MiAwIFIKL0ggL0kKCj4+CmVuZG9iago3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMjQzIDU4My42MjkgNTQyLjYwMyA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjc1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgMzkyLjAgbnVsbF0KPj4KZW5kb2JqCjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU3MS42MjkgMTY2Ljc0IDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjM5NyA1NzEuNjI5IDU0Mi43NTcgNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NSAwIFIKL0ggL0kKCj4+CmVuZG9iago3OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDU1OS42MjkgMTQ5LjM2NyA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjgwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4zNzIgNTU5LjYyOSA1NDIuNzMyIDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzggMCBSCi9IIC9JCgo+PgplbmRvYmoKODEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA2NzguOCBudWxsXQo+PgplbmRvYmoKODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTQ3LjYyOSAxOTguOTU2IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODEgMCBSCi9IIC9JCgo+PgplbmRvYmoKODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjE0MiA1NDcuNjI5IDU0Mi41MDIgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MSAwIFIKL0ggL0kKCj4+CmVuZG9iago4NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDYwMi40IG51bGxdCj4+CmVuZG9iago4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MzUuNjI5IDE5NC41OTEgNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NCAwIFIKL0ggL0kKCj4+CmVuZG9iago4NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMTc4IDUzNS42MjkgNTQyLjUzOCA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjg4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTIzLjYyOSAxNjEuNzYgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NyAwIFIKL0ggL0kKCj4+CmVuZG9iago4OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMjc4IDUyMy42MjkgNTQyLjYzOCA1MzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNjc4LjggbnVsbF0KPj4KZW5kb2JqCjkxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxMS42MjkgMjYyLjAzMiA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjkyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS42NDIgNTExLjYyOSA1NDIuMDAyIDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKOTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0OTkuNjI5IDEzNi43NDQgNTA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MyAwIFIKL0ggL0kKCj4+CmVuZG9iago5NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuNDY2IDQ5OS42MjkgNTQyLjgyNiA1MDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNjc5LjA2NSBudWxsXQo+PgplbmRvYmoKOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDg3LjYyOSAxNDkuNTI4IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjUzNCA0ODcuNjI5IDU0Mi44OTQgNDk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NiAwIFIKL0ggL0kKCj4+CmVuZG9iago5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMDAgMCBvYmoKPDwgL1R5cGUgL0Fu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CjUzIDAgUgo1NSAwIFIKNTYgMCBSCjU4IDAgUgo1OSAwIFIKNjEgMCBSCjYyIDAgUgo2NCAwIFIKNjUgMCBSCjY3IDAgUgo2OCAwIFIKNzAgMCBSCjcxIDAgUgo3MyAwIFIKNzQgMCBSCjc2IDAgUgo3NyAwIFIKNzkgMCBSCjgwIDAgUgo4MiAwIFIKODMgMCBSCjg1IDAgUgo4NiAwIFIKODggMCBSCjg5IDAgUgo5MSAwIFIKOTIgMCBSCjk0IDAgUgo5NSAwIFIKOTcgMCBSCjk4IDAgUgoxMDAgMCBSCjEwMSAwIFIKXQplbmRvYmoKNDYgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0Fubm90cyA0OSAwIFIKICAvQ29udGVudHMgMTAyIDAgUgo+PgoKZW5kb2JqCjEwMyAwIG9iagoxNDAzNAplbmRvYmoKMTA0IDAgb2JqCjw8CiAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCiAgL0ZvbnROYW1lIC9FQUFBQUErRGVqYVZ1U2Fuc01vbm8KICAvRm9udEJCb3ggWy01NTcgLTM3NCA3MTcgMTA0MV0KICAvRmxhZ3MgMzUKICAvQ2FwSGVpZ2h0IDcyOQogIC9Bc2NlbnQgMTA0MQogIC9EZXNjZW50IC0zNzQKICAvSXRhbGljQW5nbGUgMAogIC9TdGVtViAwCiAgL01pc3NpbmdXaWR0aCA1MDAKICAvRm9udEZpbGUyIDEwNSAwIFIKICAvQ0lEU2V0IDEwNiAwIFIKPj4KCmVuZG9iagoxMDUgMCBvYmoKPDwKICAvTGVuZ3RoMSAxNDg4OAogIC9MZW5ndGggMTIyIDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nN16C3xU1bnvWvvbeyaZJJOZkEAgJOwkBlAnDxIegtjMJJmEkbzMhJeKMMlMkoHMozMTAlI0lqIoweBRQZRbqLVqqUc4HotRbEDEU5/X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v1q6xq9pIfGja4tfzRpZHDr6tOLA07U4GGaw4sAetDik0uvGlx2+7fftfGha1tKrzKL/PmFFJUqQtB6j9XWwnVF3jzEdz/w2yOdyPZHDGLbXyjzNa1b+/AHP5RpWCmVuZHN0cmVhbQplbmRvYmoKMTIyIDAgb2JqCjgwMTEKZW5kb2JqCjEyMyAwIG9iagoyMAplbmRvYmoKMTI0IDAgb2JqCjM0NAplbmRvYmoKMTI1IDAgb2JqCjE1MTk1CmVuZG9iagoxMjYgMCBvYmoKMjcKZW5kb2JqCjEyNyAwIG9iago1MzgKZW5kb2JqCjEyOCAwIG9iagoxMzA2OAplbmRvYmoKMTI5IDAgb2JqCjIyCmVuZG9iagoxMzAgMCBvYmoKNDc1CmVuZG9iagoxIDAgb2JqCjw8IC9UeXBlIC9QYWdlcwovQ291bnQgOQovS2lkcyBbOCAwIFIgNDYgMCBSIDE4IDAgUiAyNSAwIFIgMjggMCBSIDM0IDAgUiAzNyAwIFIgNDAgMCBSIDQzIDAgUiBdID4+CmVuZG9iagoyIDAgb2JqCjw8CiAgL1R5cGUgL0NhdGFsb2cKICAvUGFnZXMgMSAwIFIKICAvTGFuZyAoZW4pCiAgL01ldGFkYXRhIDcgMCBSCiAgL1BhZ2VMYWJlbHMgOSAwIFIKPj4KCmVuZG9iagozIDAgb2JqCjw8CiAgL0ZvbnQgPDwKICAvRjE5IDEwNyAwIFIKICAvRjE1IDExMyAwIFIKICAvRjE2IDExOSAwIFIKPj4KCiAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQiAvSW1hZ2VDIC9UZXh0XQogIC9YT2JqZWN0IDw8CiAgL0ltMSAxMCAwIFIKICAvSW0yIDExIDAgUgogIC9JbTMgMTkgMCBSCiAgL0ltNCAyMCAwIFIKPj4KCiAgL0NvbG9yU3BhY2UgPDwgL0RlZmF1bHRSR0IgNiAwIFIgPj4KCj4+CgplbmRvYmoKOSAwIG9iago8PCAvTnVtcyBbMCA8PCAvUCAoMSkgPj4KIDEgPDwgL1AgKGlpKSA+PgogMiA8PCAvUCAoaWlpKSA+PgogMyA8PCAvUCAoMSkgPj4KIDQgPDwgL1AgKDIpID4+CiA1IDw8IC9QICgzKSA+PgogNiA8PCAvUCAoNCkgPj4KIDcgPDwgL1AgKDUpID4+CiA4IDw8IC9QICg2KSA+PgpdID4+CgplbmRvYmoKeHJlZgowIDEzMQowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAxOTAyMDIgMDAwMDAgbiAKMDAwMDE5MDMxNiAwMDAwMCBuIAowMDAwMTkwNDIxIDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDE0NSAwMDAwMCBuIAowMDAwMDAyODIzIDAwMDAwIG4gCjAwMDAwMDI4NTYgMDAwMDAgbiAKMDAwMDEwNjIyMiAwMDAwMCBuIAowMDAwMTkwNjU2IDAwMDAwIG4gCjAwMDAwMDM4MDQgMDAwMDAgbiAKMDAwMDA1MjMzMSAwMDAwMCBuIAowMDAwMTA1NTkzIDAwMDAwIG4gCjAwMDAxMDU2MTQgMDAwMDAgbiAKMDAwMDEwNTYzNCAwMDAwMCBuIAowMDAwMTA1NjU2IDAwMDAwIG4gCjAwMDAxMDU2NzggMDAwMDAgbiAKMDAwMDEwNjQxNCAwMDAwMCBuIAowMDAwMTIwMzM2IDAwMDAwIG4gCjAwMDAxMDY0MzQgMDAwMDAgbiAKMDAwMDExMjYwNSAwMDAwMCBuIAowMDAwMTE5Nzg1IDAwMDAwIG4gCjAwMDAxMTk4MDYgMDAwMDAgbiAKMDAwMDExOTgyNyAwMDAwMCBuIAowMDAwMTIwNTI5IDAwMDAwIG4gCjAwMDAxMjE3ODMgMDAwMDAgbiAKMDAwMDEyMDU0OSAwMDAwMCBuIAowMDAwMTIxOTc2IDAwMDAwIG4gCjAwMDAxMjM0NTAgMDAwMDAgbiAKMDAwMDEyMTk5NyAwMDAwMCBuIAowMDAwMTIyMDkyIDAwMDAwIG4gCjAwMDAxMjM0MjMgMDAwMDAgbiAKMDAwMDEyMjIyOCAwMDAwMCBuIAowMDAwMTIzNjYwIDAwMDAwIG4gCjAwMDAxMjQzMzcgMDAwMDAgbiAKMDAwMDEyMzY4MSAwMDAwMCBuIAowMDAwMTI0NTMwIDAwMDAwIG4gCjAwMDAxMjU4NjMgMDAwMDAgbiAKMDAwMDEyNDU1MCAwMDAwMCBuIAowMDAwMTI2MDU2IDAwMDAwIG4gCjAwMDAxMjY5NDQgMDAwMDAgbiAKMDAwMDEyNjA3NyAwMDAwMCBuIAowMDAwMTI3MTM3IDAwMDAwIG4gCjAwMDAxMjc3NDMgMDAwMDAgbiAKMDAwMDEyNzE1NyAwMDAwMCBuIAowMDAwMTI3OTM2IDAwMDAwIG4gCjAwMDAxNDg3NDMgMDAwMDAgbiAKMDAwMDEyNzk1NiAwMDAwMCBuIAowMDAwMTI4MDM0IDAwMDAwIG4gCjAwMDAxNDg0NjkgMDAwMDAgbiAKMDAwMDEyODE3MCAwMDAwMCBuIAowMDAwMTI4MzA4IDAwMDAwIG4gCjAwMDAxMjgzODYgMDAwMDAgbiAKMDAwMDEyODUyMyAwMDAwMCBuIAowMDAwMTI4NjYzIDAwMDAwIG4gCjAwMDAxMjg3NDEgMDAwMDAgbiAKMDAwMDEyODg3OSAwMDAwMCBuIAowMDAwMTI5MDE5IDAwMDAwIG4gCjAwMDAxMjkwOTcgMDAwMDAgbiAKMDAwMDEyOTIzNSAwMDAwMCBuIAowMDAwMTI5Mzc1IDAwMDAwIG4gCjAwMDAxMjk0NTMgMDAwMDAgbiAKMDAwMDEyOTU5MSAwMDAwMCBuIAowMDAwMTI5NzMxIDAwMDAwIG4gCjAwMDAxMjk4MDkgMDAwMDAgbiAKMDAwMDEyOTk0NyAwMDAwMCBuIAowMDAwMTMwMDg3IDAwMDAwIG4gCjAwMDAxMzAxNjUgMDAwMDAgbiAKMDAwMDEzMDMwMyAwMDAwMCBuIAowMDAwMTMwNDQzIDAwMDAwIG4gCjAwMDAxMzA1MjEgMDAwMDAgbiAKMDAwMDEzMDY1OSAwMDAwMCBuIAowMDAwMTMwNzk5IDAwMDAwIG4gCjAwMDAxMzA4NzcgMDAwMDAgbiAKMDAwMDEzMTAxNSAwMDAwMCBuIAowMDAwMTMxMTU1IDAwMDAwIG4gCjAwMDAxMzEyMzMgMDAwMDAgbiAKMDAwMDEzMTM3MCAwMDAwMCBuIAowMDAwMTMxNTEwIDAwMDAwIG4gCjAwMDAxMzE1ODggMDAwMDAgbiAKMDAwMDEzMTcyNSAwMDAwMCBuIAowMDAwMTMxODY1IDAwMDAwIG4gCjAwMDAxMzE5NDMgMDAwMDAgbiAKMDAwMDEzMjA4MSAwMDAwMCBuIAowMDAwMTMyMjIxIDAwMDAwIG4gCjAwMDAxMzIyOTkgMDAwMDAgbiAKMDAwMDEzMjQzNyAwMDAwMCBuIAowMDAwMTMyNTc3IDAwMDAwIG4gCjAwMDAxMzI2NTUgMDAwMDAgbiAKMDAwMDEzMjc5MSAwMDAwMCBuIAowMDAwMTMyOTMxIDAwMDAwIG4gCjAwMDAxMzMwMDkgMDAwMDAgbiAKMDAwMDEzMzE0NyAwMDAwMCBuIAowMDAwMTMzMjg3IDAwMDAwIG4gCjAwMDAxMzMzNjUgMDAwMDAgbiAKMDAwMDEzMzUwMiAwMDAwMCBuIAowMDAwMTMzNjQyIDAwMDAwIG4gCjAwMDAxMzM3MjIgMDAwMDAgbiAKMDAwMDEzMzg2MCAwMDAwMCBuIAowMDAwMTM0MDAwIDAwMDAwIG4gCjAwMDAxMzQwNzggMDAwMDAgbiAKMDAwMDEzNDIxNiAwMDAwMCBuIAowMDAwMTM0MzU3IDAwMDAwIG4gCjAwMDAxNDg5NTQgMDAwMDAgbiAKMDAwMDE0ODk3NyAwMDAwMCBuIAowMDAwMTQ5MjQwIDAwMDAwIG4gCjAwMDAxNTczNTAgMDAwMDAgbiAKMDAwMDE1NzQ0OCAwMDAwMCBuIAowMDAwMTU3NjEzIDAwMDAwIG4gCjAwMDAxNTc5NDAgMDAwMDAgbiAKMDAwMDE1ODM2MiAwMDAwMCBuIAowMDAwMTU4NjIzIDAwMDAwIG4gCjAwMDAxNzM5MTcgMDAwMDAgbiAKMDAwMDE3NDAyMiAwMDAwMCBuIAowMDAwMTc0MTgzIDAwMDAwIG4gCjAwMDAxNzQ2OTAgMDAwMDAgbiAKMDAwMDE3NTMwNiAwMDAwMCBuIAowMDAwMTc1NTcyIDAwMDAwIG4gCjAwMDAxODg3MzkgMDAwMDAgbiAKMDAwMDE4ODgzOSAwMDAwMCBuIAowMDAwMTg5MDA1IDAwMDAwIG4gCjAwMDAxODk0NTggMDAwMDAgbiAKMDAwMDE5MDAxMSAwMDAwMCBuIAowMDAwMTkwMDMzIDAwMDAwIG4gCjAwMDAxOTAwNTMgMDAwMDAgbiAKMDAwMDE5MDA3NCAwMDAwMCBuIAowMDAwMTkwMDk3IDAwMDAwIG4gCjAwMDAxOTAxMTcgMDAwMDAgbiAKMDAwMDE5MDEzOCAwMDAwMCBuIAowMDAwMTkwMTYxIDAwMDAwIG4gCjAwMDAxOTAxODEgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9Sb290IDIgMCBSCiAgL0luZm8gNCAwIFIKICAvSUQgWzxGMTg3NzdGQ0Y0RUMyMTRDRDc2RjM4NkIyNkVDMzQyNj4gPEYxODc3N0ZDRjRFQzIxNENENzZGMzg2QjI2RUMzNDI2Pl0KICAvU2l6ZSAxMzEKPj4Kc3RhcnR4cmVmCjE5MDgzMwolJUVPRgo=