#FILE text/x-emacs-lisp OzsgbWVzc2VuZ2VyLmVsIC0tLSBNU04gTWVzc2VuZ2VyIG9uIEVtYWNzCgo7OyBDb3B5cmlnaHQg KEMpIDIwMDIgY3RsYWx0ZGVsIDxjdGxhbHRkZWxAZ2VvY2l0aWVzLmNvLmpwPgoKOzsgQXV0aG9y OiBjdGxhbHRkZWwgPGN0bGFsdGRlbEBnZW9jaXRpZXMuY28uanA+LCBMYW1iZGEgPGxhbWJkYV9s aXN0QGhvdG1haWwuY29tPgoKOzsgVHJhbnNsYXRpb246IEV2YW4gPGV2YW4ubW9ucm9pZ0BnbWFp bC5jb20+Cgo7OyBUaGlzIGZpbGUgaXMgKk5PVCogcGFydCBvZiBHTlUgRW1hY3MuCjs7Cjs7IFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5Cjs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cjs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKOzsgYW55IGxhdGVyIHZlcnNp b24uCjs7Cjs7IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAo7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCjs7IEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCjs7Cjs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCjs7IGFsb25nIHdpdGggR05V IEVtYWNzOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8gdGhlCjs7IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMw LAo7OyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KCgo7OyBbTGF0ZXN0IFZlcnNpb25dCjs7 ICAgICAgVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBNU04gTWVzc2VuZ2VyIGluIGVsaXNw LiBQbGVhc2UKOzsgICAgICB1c2UgaXQgb25seSBpZiB5b3UgYXJlIGRldGVybWluZWQgdG8gbWFr ZSBzYWNyaWZpY2VzCjs7ICAgICAgVGhlIGxhdGVzdCB2ZXJzaW9uIGNhbiBiZSBmb3VuZCBhdAo7 OyAgICAgIDxodHRwOi8vd3d3Lmdlb2NpdGllcy5jby5qcC9TaWxpY29uVmFsbGV5LVNhbkpvc2Uv NzQ3NC8+Cjs7ICAgICAgPGh0dHA6Ly9tZW1iZXJzLnRyaXBvZC5jby5qcC9sYW1iZGFfbGlzdC9F bWFjc01lc3Nlbmdlci5odG1sPgo7OyAgICAgIFRoZSB0d28gbGlua3MgYXJlIG5vdCBuZWNlc3Nh cmlseSBzeW5jaHJvbml6ZWQsIHNvIHBsZWFzZSB1c2UKOzsgICAgICB0aGUgb25lIHRoYXQgbG9v a3MgbW9yZSByZWNlbnQuCgo7OyBbV2hhdCB5b3Ugd2lsbCBuZWVkIHRvIG1ha2UgaXQgd29ya10K OzsgICAgICBHTlUgRW1hY3MyMS4yICsgTXVsZS1VQ1MgMC44NO+8iHByb2JhYmx577yJCjs7ICAg ICAgSG93ZXZlciwgYnkgdXNpbmcgTXVsZS1VQ1MgMC44NCBhbmQgRW1hY3MyMS4yIHRvZ2V0aGVy LCBpdAo7OyAgICAgIHdpbGwgYmUgdmVyeSBzbG93LiBZb3UgY2FuIHVzZSB0aGUgZm9sbG93aW5n IHBhdGNoIHRvIGNvcnJlY3QKOzsgICAgICB0aGF0Ogo7OyAgICAgIDxodHRwOi8vdHN1a3ViYS5t MTduLm9yZy9tdWxlLWFyY2hpdmUvMjAwMi0zL21zZzAwMDAwLmh0bWw+IAo7Owo7OyAgICAgIG1l c3Nlbmdlci5lbCB3YXMgcmVwb3J0ZWQgdG8gd29yayB1bmRlciB0aGUgZm9sbG93aW5nCjs7ICAg ICAgY29uZmlndXJhdGlvbnMgCjs7Cjs7CS0gRnJlZUJTRCA0LjcgUkVMRUFTRSArIEVtYWNzMjEu MiArIE11bGUtVUNTIDAuODQKOzsJLSBXaW5kb3dzWFAgUHJvZmVzc2lvbmFsIChTUDEpICsgRW1h Y3MyMS4yICsgTXVsZS1VQ1MgMC44NAo7OwktIFhFbWFjczIxCjs7CS0gRW1hY3MyMSArIG11bGUt dWNzIG9uIERlYmlhbih1bnN0YWJsZSkKOzsJLSBNZWFkb3cxLjE1ICsgTXVsZS1VQ1MgMC44NAo7 Owo7OyAgICAgSWYgeW91IG1hbmFnZSB0byBtYWtlIGl0IHdvcmsgb24gYW5vdGhlciBjb25maWd1 cmF0aW9uLCBwbGVhc2UKOzsgICAgIHNlbmQgYSBtYWlsIHRvIGxhbWJkYV9saXN0QGhvdG1haWwu Y29tCjs7ICAgICAKOzsgICAgIFRoZSBjb21tYW5kICdtc25mdHAnIGlzIG5lY2Vzc2FyeSBmb3Ig ZmlsZSB0cmFuc2ZlcnMuIFRoZSBmaWxlCjs7ICAgICAnbXNuZnRwLmMnIGNhbiBiZSBmb3VuZCBh dAo7OyAgICAgPGh0dHA6Ly93d3cuZ2VvY2l0aWVzLmNvLmpwL1NpbGljb25WYWxsZXktU2FuSm9z ZS83NDc0Lz4KOzsgICAgIEl0IGhhcyBiZWVuIHRlc3RlZCBvbmx5IG9uIEZyZWVCU0QgNC43IFJF TEVBU0UsIGJ1dCBhbHNvCjs7ICAgICBjb21waWxlZCBvbiAKOzsgICAgICAgIC0gRnJlZUJTRCA0 LjcgUkVMRUFTRQo7OyAgICAgICAgLSBXaW5kb3dzWFAgUHJvZmVzc2lvbmFsICsgbWluZ3cKOzsg ICAgIEFmdGVyIGNvbXBpbGluZyBpdCwgZmlyc3QgdHJ5IHRvIHVzZSB0aGUgY29tbWFuZCAnbXNu ZnRwJyB0bwo7OyAgICAgdHJ5IHRvIHNlbmQgYSBmaWxlIGZyb20gdGhlIGNvbnNvbGUuCgo7OyBb a25vd24gcHJvYmxlbXNdCjs7Cjs7IC0gKGVuY29kZS1jb2Rpbmctc3lzdGVtICJcbiIgJ3V0Zi04 LWRvcykgLT4gIl5NXk1cbiIKOzsgICAoZW5jb2RlLWNvZGluZy1zeXN0ZW0gIlxuIiAndXRmLTgp IC0+ICJcbiIKOzsgICBJbiBzdWNoIGVudmlyb25tZW50cywgaXQgd2lsbCBub3Qgd29yay4gKHdo YXQncyB0aGF0PykKOzsgICBSaWdodCBrbm93LCB0aGlzIHByb2JsZW0gYXBwZWFyZWQgb25seSB3 aXRoIE1lYWRvdzEuOTlhbHBoYSBhbmQKOzsgICBFbWFjczIxLjEuMiwgYnV0IHRoZXJlIG1heSBi ZSBvdGhlciBjYXNlcyBhcyB3ZWxsCjs7Cjs7IC0gVGhlcmUgYXJlIGNhc2VzIHdoZW4gbWVzc2Fn ZXMgY29tZSBjb25zZWN1dGl2ZWx5LCBzbyBJIGRlY2lkZWQgdG8KOzsgICBwYXJzZSB0aGVtIGxv b3NlbHkgYW5kIGl0IHJvdWdobHkgd29ya3MuIEhvd2V2ZXIsIGJ5IG5lZ2xpZ2VuY2UsCjs7ICAg aWYgdGhlcmUgYXJlIHNlcXVlbmNlcyBsaWtlICdNU0cgaG9nZUBob3RtYWlsLmNvbSBob2dlIDE5 XG4nLCBpdAo7OyAgIG1pZ2h0IG5vdCB3b3JrIGNvcnJlY3RseS4gbXNuLXNob3ctbWVzc2FnZSBp cyB0aGUgc291cmNlIG9mIHRoZQo7OyAgIHByb2JsZW0gCgo7OyBbSG93IHRvIHVzZSBpdF0KOzsg ICAgICBJbiB5b3VyIC5lbWFjcyBmaWxlLCBhZGQKOzsgICAgICAobG9hZCAibWVzc2VuZ2VyLmVs IikKOzsgICAgICBPciBwdXQgbWVzc2VuZ2VyLmVsIGluIGEgZGlyZWN0b3J5IHRoYXQgbG9hZC1w YXRoIGNhbiBmaW5kIGFuZAo7OyAgICAgIGFkZCB0aGUgZm9sbG93aW5nIHRvIHlvdXIgLmVtYWNz IGZpbGUKOzsgICAgICAocmVxdWlyZSAnbWVzc2VuZ2VyKQo7Owo7OyAgICAgIFRoZW4sIHVzZSBN LXggbXNuLW1vZGUgYW5kIHlvdSdyZSBkb25lLgo7Owo7OyAgICAgIEFmdGVyIGxvZ2luLCB0aGUg Zm9sbG93aW5nIGNvbW1hbmRzIGNhbiBiZSB1c2VkCjs7ICAgICAgKiB0cmFkdWN0aW9uIG5vdGU6 IEkgdGhpbmsgJ3Nlc3Npb24nIG1lYW5zICdjaGF0IHNlc3Npb24nCjs7Cjs7CSBDLWNDLW8gTkxO ICA8LSBjaGFuZ2Ugc3RhdHVzIHRvIG9ubGluZQo7OwkgQy1jQy1uICAgICAgPC0gY3JlYXRlIGEg c2Vzc2lvbgo7OwkgQy1jQy10ICAgICAgPC0gY2hvb3NlIGEgc2Vzc2lvbiAoYnkgbnVtYmVyKQo7 OwkgQy1jQy1yICAgICAgPC0gY2FsbCBzb21lb25lIHRvIHRoZSBjdXJyZW50IGNoYXQgc2Vzc2lv bgo7OwkgQy1jQy1jICAgICAgPC0gc2VuZCB0aGUgbWVzc2FnZSBpbiB0aGUgZmllbGQgW3NlbmRd Cjs7CSBDLWNDLXEgICAgICA8LSBraWxsIGFsbCBidWZmZXJzIHJlbGF0ZWQgdG8gTWVzc2VuZ2Vy Cjs7ICAgICAgICAgICAgICAgICAgICAgIGJld2FyZSwgbm90aGluZyBpcyBzYXZlZCAhCjs7CSBt c24tcmVuYW1lICA8LSBjaGFuZ2UgeW91ciBuYW1lCjs7CSBDLWNDLXMgICAgICA8LSBzeW5jaHJv bml6ZSB5b3VyIGNvbnRhY3QgbGlzdAo7OwkgbXNuLXJlY2VpdmUtZmlsZSA8LSByZWNlaXZlIGEg ZmlsZQo7Owo7OwlIb3cgYWJvdXQgdGhlIGZvbGxvd2luZyBzaG9ydGN1dHM/Cjs7Cjs7CSBDLWND LXYgICAgICA8LSBjaG9vc2UgYSBzZXNzaW9uIChmcm9tIHRoZSBsaW5lICdzZXNzaW9uOicpCjs7 CSBtb3VzZS0xICAgICA8LSBjaG9vc2UgYSBzZXNzaW9uIChmcm9tIHRoZSBsaW5lICdzZXNzaW9u OicpCgo7OyBbaGlzdG9yeV0KOzsgUmV2aXNpb24gMC4wLjEuMSAgMjAwMi8xMS8xNAo7OyAqIHVy bC1kZWNvZGUvZW5jb2RlIG5vdyBraW5kb2Ygc3VwcG9ydGVkIChqYXBhbmVzZSBjaGFyYWN0ZXJz Ogo7OyB7ZGUvZW59Y29kZS4uLikKOzsgUmV2aXNpb24gMC4wLjEuMCAgMjAwMi8xMS8xNAo7OyAq IEkgdGVudGF0aXZlbHkgYWRkZWQgYSBmYWNlIHRvIHRoZSBjb250YWN0IGxpc3QgZGlzcGxheQo7 OyAqIFVzZSB0aGUgbW91c2UgdG8gc2VsZWN0IGEgc2Vzc2lvbgo7OyAqIE1TTkZUUCB3YXMgaGFy ZGNvZGVkOiBub3cgY29ycmVjdGVkCjs7IFJldmlzaW9uIDAuMC4wLjkgIDIwMDIvMTEvMTMKOzsg KiBhZGRlZCBzdXBwb3J0IGZvciBhZGRyZXNzZXMgb3RoZXIgdGhhbiBAaG90bWFpbC5jb20KOzsg UmV2aXNpb24gMC4wLjAuOCAgMjAwMi8xMS8xMQo7OyAqIGJlaW5nIGZydXN0cmF0ZWQgYnkgdGVo IGNoYW5nZSBqdXN0IGJlbG93LCBJIGltcGxlbWVudGVkIGFuIG1kNQo7OyAgIGZ1bmN0aW9uIGJh c2VkIG9uIFJGQyAxMzIxLiBOb3cgTWVhZG93IDEuMTUgYWxzby4uCjs7ICogZm9yIGVudmlyb25t ZW50cyB0aGF0IGRvbid0IGhhdmUgYSBtZDUgZnVuY3Rpb24gKE1lYWRvdyAxLjE1KSwgSQo7OyAg IGRlY2lkZWQgdG8gY2FsbCBhbiBleHRlcm5hbCBtZDUgcHJvY2VzcyB0byBjb21wdXRlCjs7ICAg aXQuIEJ1dC4uLi4gZG9lcyBXaW5kb3dzIGhhdmUgbWQ1Pwo7OyAqIGltcGxlbWVudCBhIGZpbGUg dHJhbnNmZXIgZnVuY3Rpb24gYmFzZWQgb24gYW4gZXh0ZXJuYWwgcHJvY2Vzcwo7OyAgIGNvbXBp bGUgbXNuZnRwLmMsIHVzZSB0aGUgY29tbWFuZCBtc25mdHAuIElmIGl0IGlzIGluIFBBVEgsIHRo ZW4KOzsgICBmaWxlIHJlY2VwdGlvbiBzaG91bGQgd29yay4gRW52aXJvbm1lbnQ6IAo7OyAgIEZy ZWVCU0QgNC43IFJFTEVBU0XvvI4gCjs7ICogYWRkZWQgYSAocmVxdWlyZSAnY2wpIG5lY2Vzc2Fy eSBmb3IgY29weS10cmVlCjs7IFJldmlzaW9uIDAuMC4wLjcgIDIwMDIvMTEvMDgKOzsgKiBjaGFu Z2VkIHRoZSBsaWNlbnNlIHRvIEdQTAo7OyBSZXZpc2lvbiAwLjAuMC42ICAyMDAyLzExLzA4Cjs7 ICogc3RhcnRlZCB0byBidWlsZCBNU05GVFAgZm9yIGZpbGUgcmVjZXB0aW9uLiBCbG9jayBFbWFj cyBmb3IgdGhpcwo7OyAgIGlzIGEgbGl0dGxlIHRvbyBtdWNoLCBzbyBhZnRlciBhbGwgaXQgaXMg aW1wb3NzaWJsZSB3aXRoIG9ubHkKOzsgICBlbGlzcCBjb2RlLi4/IEkgY2Fubm90IHRoaW5rIG9m IGEgcG9ydGFibGUgd2F5IHRvIGRvIHRoYXQuLgo7OyAqIGZpeGVkIGJ1ZyBpbiBtc24tY29ubmVj dCB3aGVyZSB0aGUgcHJldmlvdXMgY29udGFjdCBsaXN0IHdvdWxkCjs7ICAgbm90IGRpc2FwcGVh cgo7OyBSZXZpc2lvbiAwLjAuMC41ICAyMDAyLzExLzA4Cjs7ICogY2hhbmdlIHN0YXRlIHRvIElE TCB3aGVuIEVtYWNzIGlzIG5vdCB1c2VkIGZvciA1IG1pbnV0ZXMKOzsgKiB3aGVuIG1zbi1zeW5j IGlzIGNhbGxlZCwgdGhlIGRpc3BsYXkgaXMgbm93IGF1dG9tYXRpY2FsbHkgdXBkYXRlZAo7OyAq IGFkZGVkIGEgcHJlZml4ICdtc24tJyB0byB2YXJpYWJsZXMgYW5kIGZ1bmN0aW9uc++8jk5vdyBp dCBpcyAoYQo7OyAgIGxpdHRsZSkgdG8gdXNlIGl0IHdpdGggb3RoZXIgZWxpc3AgY29kZQo7OyAq IGRlbGV0ZWQgdW5uZWVkZWQgdmFyaWFibGVzIGxpa2UgcXVldWXvvI5Ob3cgdGhlcmUgaXMgbm8g bmVlZCBmb3IKOzsgICAocmVxdWlyZSAnY2wpPwo7OyBSZXZpc2lvbiAwLjAuMC40ICAyMDAyLzEx LzA3Cjs7ICogcGFzc3dvcmQgaXMgbm93IGRlbGV0ZWQgYXMgc29vbiBhcyBwb3NzaWJsZSBhZnRl ciB1c2UKOzsgKiBub3cgbXNuLXN5bmMga2luZCBvZiB3b3Jrc++8jlRoZSBkaXNwbGF5IGlzIGhv d2V2ZXIgbm90Cjs7ICAgYXV0b21hdGljYWxseSB1cGRhdGVkLCBzbyB3YWl0IGEgbGl0dGxlIGFu ZCB0eXBlIHNvbWV0aGluZyBsaWtlIAo7OyAgIEMtY0MtbyBOTE4KOzsgKiBjaGFuZ2VkIHRoZSBl bmNvZGluZyBmb3IgbWQ1IHRvIHRoYXQgb2YgbWlzdGVyIDgwNgo7OyAgICh0cmFuc2xhdGlvbiBu b3RlOiBub3Qgc3VyZSBhYm91dCB0aGUgbWVhbmluZykKOzsgKiBwcmVwYXJlZCBhIGhvb2vvvI5J ZiB5b3UgcHV0IHNvbWUgY29kZSBsaWtlIHRoZSBmb2xsb3dpbmcgaW4KOzsgICAuZW1hY3MsIHRo ZXJlIGlzIGEgYmVlcCB3aGVuIGEgbmV3IG1lc3NhZ2UgY29tZXMgaWYgdGhlIGJ1ZmZlciBpcwo7 OyAgIG5vdCBzZWxlY3RlZC4gU2luY2UgaXQgaXMgYSBsaXR0bGUgbm9pc3ksIHRoZXJlIGlzIG5v IGJlZXAgYnkgZGVmYXVsdC4KOzsgICAoYWRkLWhvb2sgJ21zbi1zd2l0Y2hib2FyZC1tZXNzYWdl LWhvb2sKOzsJICAobGFtYmRhICgpCjs7CSAgICAobGV0ICgodmlzaWJsZS1iZWxsIG5pbCkpCjs7 CSAgICAgIChiZWVwKSkpKQo7OyAgIAo7OyBSZXZpc2lvbiAwLjAuMC4zICAyMDAyLzExLzA3Cjs7 ICogV2l0aCBFbWFjczIxICsgTXVsZVVDUyAoRGViaWFuKSwgdGhlIGZvbGxvd2luZyBlcnJvciBp cyBub3cgZml4ZWQKOzsgICBmb3Igc29tZSByZWFzb24uIE1heWJlIGl0IHdhcyBhIGRlcGVuZGVu Y2UgcHJvYmxlbS4KOzsgICBXcm9uZyB0eXBlIGFyZ3VtZW50OiBzeW1ib2xwLCAobXNuLWdldC1x dWV1ZSAqZGlzcGF0Y2gqKQo7OyAqIG1lc3NhZ2VzIGZyb20gdGhlIHNlcnZlciBhcmUgbm93IGRp c3BsYXllZCB3aXRoIGEgdGltZXN0YW1wCjs7ICogRm91bmQgd2h5IHRoZXJlIHdhcyBhIDkxMSBl cnJvciBldmVuIHdpdGggYSBjb3JyZWN0IHBhc3N3b3JkLiBUaGUKOzsgICByZWFzb24gd2FzIHRo YXQgYmVjYXVzZSBvZiB0aGUgY29kaW5nLXN5c3RlbSBvZiB0aGUgc3RyaW5nLCB0aGUKOzsgICBt ZDUgdmFsdWUgd2FzIHdyb25nLiBGaXhlZCAoPykgYnkgdXNpbmcgZW5jb2RlLWNvZGluZy1zdHJp bmcuIEkKOzsgICB0aGluayB0aGF0IHRoZSBwcm9ibGVtIGNhbWUgb3V0IHdoZW4gb25lIG9mIHRo ZSAqLWNvZGluZy1zeXN0ZW0KOzsgICB2YXJpYWJsZXMgd2FzIG5vdCBwcm9wZXJseSBzZXQuCjs7 ICogZml4ZWQgdGhlIGJ1Z3MgZm91bmQgYnkgTS4gTGFtYmRhIGFuZCBNLiA3OTcKOzsgKiBjb3Jy ZWN0ZWQgZGVwZW5kZW5jZSBwcm9ibGVtIHdoZXJlIEkgZm9yZ290IHRvIHB1dCAnY2wnCjs7ICog ZGVsZXRlZCB1bnVzZWQgdmFyaWFibGVzCjs7IFJldmlzaW9uIDAuMC4wLjIgIDIwMDIvMTEvMDYK OzsgKiBlcnJvcnMgYXJlIG5vdyBkaXNwbGF5ZWQKOzsgKiBmaXhlZCBidWcgd2hlcmUgbXNuLWFk ZCBjb3VsZCBub3QgYmUgdXNlZAo7OyAqIGZpeGVkIGJ1ZyB3aGVyZSBcblxuIGRpc2FwcGVhcmVk IGluIG1lc3NhZ2VzCjs7ICogZml4ZWQgYnVnIGp1c3QgYmVsb3cKOzsgKiByZXNwb25kIHByb3Bl cmx5IHdoZW4gTVNHIGNvbWUgY29uc2VjdXRpdmVseSAoYnV0IHRoZXJlIGlzIGEgcmlzawo7OyAg IG9mIGRlc3Ryb3lpbmcgdGhlIG1lc3NhZ2VzISkKOzsgKiBkZWxldGVkIHVudXNlZnVsIGNvbW1h bmRzIGxpa2Ugc2F2ZS1zZWxlY3RlZC13aW5kb3cKOzsgKiB3aGVuIHRoZSBhY2NvdW50IGFuZCBw YXNzd29yZCBpcyBzZXQgdG8gbmlsLCB0aGUgdXNlciBpcyBub3cKOzsgICBhc2tlZCBmb3IgdGhl bSBvbiBzdGFydHVwCjs7ICogZml4ZWQgYnVnIHdoZXJlIGNvbW1hbmRzIGxpa2UgbXNuLXNlbGVj dC1zZXNzaW9uIGRpc3BsYXllZCB0b28KOzsgICBsb25nIG1lc3NhZ2VzIGluIHRoZSBtaW5pYnVm ZmVyCjs7ICAgKHRyYW5zbGF0aW9uIG5vdGU6IG5vdCBzdXJlIGlmIHRoZSBtZWFuaW5nIGlzIHRo ZXJlKQo7OyBSZXZpc2lvbiAwLjAuMC4xICAyMDAyLzExLzA0Cjs7ICogcmV3cml0dGVuIHdpdGgg ZWxpc3AgY29kZSBvbmx5Cgo7OyBbVG9kb10KOzsgKiB0cmFjayBhbmQgZml4IHByb2JsZW1zIHJl bGF0ZWQgdG8gY2hhcmFjdGVyIGNvZGVzCjs7ICogZmluZCBzb21lIHdheSB0byBzaWduYWwgbmV3 IG1lc3NhZ2VzIGluIHRoZSBtb2RlLWxpbmUKOzsgKiBicmluZyB1cCBhbmQgZml4IHRoZSBzdGF0 dXMgYXJlYSAod2hlcmUgd2Ugc2VlICdqb2huIHdlbnQgb25saW5lJykKOzsgICBJIHdhbnQgdG8g ZGlzcGxheSBhbGwgc3RhdGVzIHRoZXJlCjs7ICogSSB3YW50IHRvIGhpZ2hsaWdodCB0aGUgbGlu ZSB3aXRoIHRoZSBuYW1lIGluIHRoZSBjb252ZXJzYXRpb24gYXJlYQo7OyAqIEkgd2FudCB0byBk aXZpZGUgYnVmZmVycyBmb3IgZWFjaCBjb252ZXJzYXRpb24gKGxpa2UgQy14IDIpCjs7ICogaXQg d291bGQgYmUgc2ltcGxlciB0byBzdGFydCBhIGNvbnZlcnNhdGlvbiBub3QgYnkgCjs7ICAgJ0Mt YyBuIEMtYyB0IEMtYyByJywgYnV0IG9ubHkgd2l0aCBvbmUgc2hvcnRjdXQgQy1jIHIKOzsgKiB0 aGUgc3RhdHVzIGFyZWEgc2hvdWxkIGJlIHJlc2l6ZWQgZGVwZW5kaW5nIG9uIGl0cyBjb250ZW50 Cjs7ICogdGhlIGNvbnRhY3QgbGlzdCBkb2Vzbid0IGxvb2sgZ29vZCwgYnV0IEkgY2FuJ3QgdGhp bmsgb2YgYWx0ZXJuYXRpdmVzCjs7ICogYmV0dGVyIHVzZSBvZiBzZXNzaW9uIG51bWJlcnM/Cjs7 ICogaW1wcm92ZSB0aGUgaW50ZXJmYWNlIChzdGFydGluZyB3aXRoIGRpZmZlcmVudCBjb2xvcnMg Zm9yIGVhY2gKOzsgICBzZXNzaW9uLCBldGMpCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOzsgICAg ICAgICAgICAgICBwYWNrYWdlcyB3ZSBkZXBlbmQgb24gKGJlY2F1c2Ugd2UgdXNlIFVURi04ICAg ICAgICAgOzsKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cgood2hlbiAobm90IChmZWF0dXJlcCAnbWVh ZG93KSkKICAocmVxdWlyZSAndW4tZGVmaW5lKQogIChyZXF1aXJlICd1bi10b29scykpCihyZXF1 aXJlICdjbCkKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7OyAgICAgICAgICAgICAgICAgIFNldHVw IChub3JtYWxseSBkb24ndCBuZWVkIGl0KSAgICAgICAgICAgICAgICAgICAgICAgICAgOzsKOzs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CgooZGVmdmFyICptc24tdXNlci1hY2NvdW50KiAnKChtYWlsIC4g bmlsKQoJCQkgICAgIChwYXNzIC4gbmlsKQoJCQkgICAgIChuYW1lIC4gIiIpCgkJCSAgICAgKHN0 YXQgLiAiRkxOIikpKQoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7ICAgICAgICAgICAgICAobm9y bWFsbHkpIHRoZXJlIGlzIG5vIG5lZWQgZm9yIHNldHVwICAgICAgICAgICAgICAgICAgICAgICA7 Owo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKCihkZWZ2YXIgKm1zbi12ZXJzaW9uKiAiTVNOIE1lc3Nl bmdlciBvbiBFbWFjcyB2ZXJzaW9uIDAuMC4xLjEiKQooZGVmdmFyICptc24tY3VycmVudC1zZXNz aW9uKiBuaWwpCihkZWZ2YXIgKm1zbi1jb250YWN0LWxpc3QqICcoKEZMIC4gKCkpCgkJCSAgICAg KFJMIC4gKCkpCgkJCSAgICAgKEFMIC4gKCkpCgkJCSAgICAgKEJMIC4gKCkpKSkKKGRlZnZhciAq bXNuLW1vZGUtbWFwKiAobWFrZS1rZXltYXApKQooZGVmdmFyICptc24tYnVmZmVyKiAiTVNOIE1l c3NlbmdlciIpCgooZGVmdmFyICptc24tZXhwZXJpbWVudGFsKiB0ICJleHBlcmltZW50YWwgZnVu Y3Rpb24gKGhhcyBwcm9ibGVtcykiKQooZGVmdmFyICptc24tb3V0cHV0LWxvZyogbmlsKQoKKGRl ZnZhciAqbXNuLWRpc3BhdGNoKiBuaWwpCihkZWZ2YXIgKm1zbi1kaXNwYXRjaC1idWZmZXIqICIg RGlzcGF0Y2giKQooZGVmdmFyICptc24tbm90aWZpY2F0aW9uKiBuaWwpCihkZWZ2YXIgKm1zbi1u b3RpZmljYXRpb24tYnVmZmVyKiAiIE5vdGlmaWNhdGlvbiIpCihkZWZ2YXIgKm1zbi1zd2l0Y2hi b2FyZHMqIG5pbCkKCihkZWZ2YXIgKm1zbi1pZCogbmlsKQooZGVmdmFyICptc24tc3dpdGNoYm9h cmQtaWQqIG5pbCkKKGRlZnZhciAqbXNuLWlkLWFuZC1hZGRyZXNzKiBuaWwpCgooZGVmdmFyICpt c24tc3luYy1mcmFnbWVudCogbmlsKQoKKGRlZnZhciBtc24tbG9hZC1ob29rIG5pbCkKKGRlZnZh ciBtc24tY29ubmVjdC1ob29rIG5pbCkKKGRlZnZhciBtc24tc3dpdGNoYm9hcmQtbWVzc2FnZS1o b29rIG5pbCkKCihkZWZ2YXIgKm1zbi10aW1lLWZvcm1hdCogIiAlSDolTTolUyIpCihkZWZ2YXIg Km1zbi1pZGxlLXRpbWVyKiBuaWwpCgooZGVmdmFyICptc24tcmVjZWl2ZWQtZmlsZS1kaXJlY3Rv cnkqICJ+L3RtcCIpCihkZWZ2YXIgKm1zbmZ0cC1jb21tYW5kKiAibXNuZnRwIikKKGRlZnZhciAq bXNuZnRwKiBuaWwpCjs7KGRlZnZhciAqbXNuZnRwLWF1dGgqIG5pbCkKKGRlZnZhciAqbXNuLXJl Y2VpdmluZy1maWxlKiBuaWwpCihkZWZ2YXIgKm1zbi1yZWNlaXZlLWZpbGUqIG5pbCkKCihkZWZ2 YXIgKm1zbi1zZW5kaW5nLWZpbGUqIG5pbCkKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7OyAgICAg ICAgICAgICAgICAgICAgICAgIFVzZXIgaW50ZXJhY3Rpb24gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOzsKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CgooZGVmdW4gbXNuLW1vZGUtaW5p dCAoKQogIChkZWZpbmUta2V5ICptc24tbW9kZS1tYXAqICJcQy1jXEMtcSIgJ21zbi1leGl0KQog IChkZWZpbmUta2V5ICptc24tbW9kZS1tYXAqICJcQy1jXEMtYyIgJ21zbi1zZW5kLW1lc3NhZ2Up CiAgKGRlZmluZS1rZXkgKm1zbi1tb2RlLW1hcCogIlxDLWNcQy1vIiAnbXNuLWNoYW5nZS1zdGF0 dXMpCiAgKGRlZmluZS1rZXkgKm1zbi1tb2RlLW1hcCogIlxDLWNcQy1zIiAnbXNuLXN5bmMpCiAg KGRlZmluZS1rZXkgKm1zbi1tb2RlLW1hcCogIlxDLWNcQy10IiAnbXNuLXNlbGVjdC1zZXNzaW9u KQogIChkZWZpbmUta2V5ICptc24tbW9kZS1tYXAqICJcQy1jXEMtdiIgJ21zbi1zZWxlY3Qtc2Vz c2lvbi13aXRoLWN1cnJlbnQtd29yZCkKICAoZGVmaW5lLWtleSAqbXNuLW1vZGUtbWFwKiBbbW91 c2UtMV0gJ21zbi1zZWxlY3Qtc2Vzc2lvbi13aXRoLWN1cnJlbnQtd29yZCkKICAoZGVmaW5lLWtl eSAqbXNuLW1vZGUtbWFwKiAiXEMtY1xDLW4iICdtc24tY3JlYXRlLW5ldy1zZXNzaW9uKQogIChk ZWZpbmUta2V5ICptc24tbW9kZS1tYXAqICJcQy1jXEMtdyIgJ21zbi1jbG9zZS1zZXNzaW9uKQog IChkZWZpbmUta2V5ICptc24tbW9kZS1tYXAqICJcQy1jXEMtciIgJ21zbi1yaW5nKQogIDs7KGRl ZmluZS1rZXkgKm1zbi1tb2RlLW1hcCogIlxDLWNcQy12IiAnbXNuLXZlcnNpb24pCiAgKG1zbi1j b25uZWN0KQogICh3aGVuIChub3QgKG9uZS13aW5kb3ctcCkpIChkZWxldGUtb3RoZXItd2luZG93 cykpCiAgKG1zbi1pbml0aWFsaXplLXNjcmVlbikKICAodXNlLWxvY2FsLW1hcCAqbXNuLW1vZGUt bWFwKikKICAobXNuLXZlcnNpb24pKQoKKGRlZnVuIG1zbi1tb2RlICgpCiAgIk1TTiBNZXNzZW5n ZXIgTW9kZSIKICAoaW50ZXJhY3RpdmUpCiAgKG1zbi1tb2RlLWluaXQpCiAgKHNldHEgbWFqb3It bW9kZSAnbXNuLW1vZGUpCiAgKHNldHEgbW9kZS1uYW1lICJNU04gTWVzc2VuZ2VyIE1vZGUiKSkK CihkZWZ1biBtc24tdmVyc2lvbiAoKQogIChpbnRlcmFjdGl2ZSkKICAobWVzc2FnZSAqbXNuLXZl cnNpb24qKSkKCihkZWZ1biBtc24tZXhpdCAoKQogIChpbnRlcmFjdGl2ZSkKICAod2hlbiAoYW5k ICptc24tbm90aWZpY2F0aW9uKgoJICAgICAoZXEgKHByb2Nlc3Mtc3RhdHVzICptc24tbm90aWZp Y2F0aW9uKikgJ29wZW4pKQogICAgKHByb2Nlc3Mtc2VuZC1zdHJpbmcgKm1zbi1ub3RpZmljYXRp b24qICJPVVRcbiIpCiAgICAoc2V0cSAqbXNuLWRpc3BhdGNoKiBuaWwKCSAgKm1zbi1ub3RpZmlj YXRpb24qIG5pbAoJICAqbXNuLXN3aXRjaGJvYXJkcyogbmlsKSkKICAobGV0KiAoKGxzdCBuaWwp KQogICAgKGRlbGV0ZS1vdGhlci13aW5kb3dzKQogICAgKGRvbGlzdCAoZSAoYnVmZmVyLWxpc3Qp KQogICAgICAod2hlbiAoc3RyaW5nLW1hdGNoIChjb25jYXQgIlxcKCIKCQkJCSAgIl4iICptc24t YnVmZmVyKiAiJFxcfCIKCQkJCSAgIl4iICptc24tZGlzcGF0Y2gtYnVmZmVyKiAiJFxcfCIKCQkJ CSAgIl4iICptc24tbm90aWZpY2F0aW9uLWJ1ZmZlciogIiRcXHwiCgkJCQkgICJTd2l0Y2hib2Fy ZCBcXFtbMC05XStcXF1cXCkiKQoJCQkgIChidWZmZXItbmFtZSBlKSkKCShzZXRxIGxzdCAoY29u cyBlIGxzdCkpKSkKICAgIChkb2xpc3QgKGIgbHN0KQogICAgICAoc2V0LWJ1ZmZlciBiKQogICAg ICAoc2V0LWJ1ZmZlci1tb2RpZmllZC1wIG5pbCkKICAgICAgKGtpbGwtYnVmZmVyIGIpKSkpCgoo ZGVmdW4gbXNuLXNlbmQtbWVzc2FnZSAoKQogIChpbnRlcmFjdGl2ZSkKICAoaWYgKG51bGwgKm1z bi1jdXJyZW50LXNlc3Npb24qKQogICAgICAobWVzc2FnZSAicGxlYXNlIGNob29zZSBhIHNlc3Np b24hIikKICAgIChsZXQgKChzZXNzaW9uIChjZHIgKGFzc29jIChzdHJpbmctdG8taW50ICptc24t Y3VycmVudC1zZXNzaW9uKikgKm1zbi1zd2l0Y2hib2FyZHMqKSkpCgkgIG1lc3NhZ2UpCiAgICAg ICh3aGVuIChhbmQgc2Vzc2lvbgoJCSAoZXEgKHByb2Nlc3Mtc3RhdHVzIHNlc3Npb24pICdvcGVu KSkKCShtc24tcmVkcmF3IG5pbAoJCSAgICAobGFtYmRhICgpCgkJICAgICAgKGxldCogKChpbmhp Yml0LXJlYWQtb25seSB0KQoJCQkgICAgIChib2R5IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3Bl cnRpZXMgKHBvaW50LW1pbikgKHBvaW50LW1heCkpKQoJCQkgICAgIChoZWFkICJNSU1FLVZlcnNp b246IDEuMFxuQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04XG5YLU1NUy1J TS1Gb3JtYXQ6IEZOPU1TJTIwVUklMjBHb3RoaWM7IEVGPTsgQ089MDsgQ1M9ODA7IFBGPTBcblxu IikKCQkJICAgICAobXNnIChjb25jYXQgaGVhZCBib2R5KSkKCQkJICAgICAoc2l6ZSAoaW50LXRv LXN0cmluZyAobGVuZ3RoIChlbmNvZGUtY29kaW5nLXN0cmluZyBtc2cgJ3V0Zi04LWRvcykpKSkK CQkJICAgICAobXNnIChjb25jYXQgKG1ha2UtY29tbWFuZCAiTVNHICVzIFUgIikgc2l6ZSAiXG4i IG1zZykpKQoJCQkocHJvY2Vzcy1zZW5kLXN0cmluZyBzZXNzaW9uIG1zZykKCQkJKGRlbGV0ZS1y ZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkpCgkJCShzZXRxIG9mZnNldCBuaWwpIDs7IG5v IG5lZWQgZm9yIGFuIG9mZnNldC4uCgkJCShzZXQtYnVmZmVyLW1vZGlmaWVkLXAgbmlsKQoJCQko c2V0cSBtZXNzYWdlIG1zZykpKQoJCSAgICBuaWwpCgkobXNuLXNob3ctbWVzc2FnZSAqbXNuLWN1 cnJlbnQtc2Vzc2lvbiogbWVzc2FnZSkpKSkpCgooZGVmdW4gbXNuLWNoYW5nZS1zdGF0dXMgKCkK ICAoaW50ZXJhY3RpdmUpCiAgKHdoZW4gKGFuZCAqbXNuLW5vdGlmaWNhdGlvbioKCSAgICAgKGVx IChwcm9jZXNzLXN0YXR1cyAqbXNuLW5vdGlmaWNhdGlvbiopICdvcGVuKSkKICAgIChsZXQqICgo c3RhdC1saXN0ICcoKCJOTE4iKSAoIkJTWSIpICgiSURMIikgKCJCUkIiKSAoIkFXWSIpICgiUEhO IikgKCJMVU4iKSAoIkZMTiIpKSkKCSAgIChjb21wbGV0aW9uLWlnbm9yZS1jYXNlIG5pbCkKCSAg IChzdGF0IChjb21wbGV0aW5nLXJlYWQgIlN0YXR1cz86ICIgc3RhdC1saXN0IG5pbCB0ICJOTE4i KSkpCiAgICAgIChtc24tcHJvYy1zZW5kICptc24tbm90aWZpY2F0aW9uKiAoY29uY2F0ICJDSEcg JXMgIiBzdGF0ICJcbiIpKSkpKQoKKGRlZnVuIG1zbi1rbm93bi11c2VyLWxpc3QgKCkKICAobGV0 ICgobHN0IG5pbCkpCiAgICAoZG9saXN0IChsICptc24tY29udGFjdC1saXN0KikKICAgICAgKGRv bGlzdCAoZSAoY2RyIGwpKQoJKHdoZW4gKG5vdCAobWVtYmVyIChjYXIgZSkgbHN0KSkKCSAgKHNl dHEgbHN0IChjb25zIChjYXIgZSkgbHN0KSkpKSkKICAgIChtYXBjYXIgIydsaXN0IGxzdCkpKQoK KGRlZnVuIG1zbi1hZGQgKCkKICAoaW50ZXJhY3RpdmUpCiAgKHdoZW4gKGFuZCAqbXNuLW5vdGlm aWNhdGlvbioKCSAgICAgKGVxIChwcm9jZXNzLXN0YXR1cyAqbXNuLW5vdGlmaWNhdGlvbiopICdv cGVuKSkKICAgIChsZXQqICgodHlwZSAnKCgiRkwiKSAoIkFMIikgKCJCTCIpKSkKCSAgIChjb21w bGV0aW9uLWlnbm9yZS1jYXNlIG5pbCkKCSAgICh3aGljaCAoY29tcGxldGluZy1yZWFkICJXaGlj aD86ICIgdHlwZSBuaWwgdCkpCgkgICAod2hvIChjb21wbGV0aW5nLXJlYWQgIldobz86ICIgKG1z bi1rbm93bi11c2VyLWxpc3QpIG5pbCBuaWwpKSkKICAgICAgKG1zbi1wcm9jLXNlbmQgKm1zbi1u b3RpZmljYXRpb24qIChjb25jYXQgIkFERCAlcyAiIHdoaWNoICIgIiB3aG8gIiAiIHdobyAiXG4i KSkpKSkKCihkZWZ1biBtc24tcmVtb3ZlICgpCiAgKGludGVyYWN0aXZlKQogICh3aGVuIChhbmQg Km1zbi1ub3RpZmljYXRpb24qCgkgICAgIChlcSAocHJvY2Vzcy1zdGF0dXMgKm1zbi1ub3RpZmlj YXRpb24qKSAnb3BlbikpCiAgICAobGV0KiAoKHR5cGUgJygoIkZMIikgKCJBTCIpICgiQkwiKSkp CgkgICAoY29tcGxldGlvbi1pZ25vcmUtY2FzZSBuaWwpCgkgICAod2hpY2ggKGNvbXBsZXRpbmct cmVhZCAiV2hpY2g/OiAiIHR5cGUgbmlsIHQpKQoJICAgKHdobyAoY29tcGxldGluZy1yZWFkICJX aG8/OiAiIChtc24ta25vd24tdXNlci1saXN0KSBuaWwgdCkpKQogICAgICAobXNuLXByb2Mtc2Vu ZCAqbXNuLW5vdGlmaWNhdGlvbiogKGNvbmNhdCAiUkVNICVzICIgd2hpY2ggIiAiIHdobyAiXG4i KSkpKSkKCihkZWZ1biBtc24tdXJsLWVuY29kZS1zdHJpbmcgKHN0cikKICAoYXBwbHkgIydjb25j YXQKCSAobWFwY2FyCgkgIChsYW1iZGEgKGUpCgkgICAgKGNvbmQgKChzdHJpbmctbWF0Y2ggIlth LXpBLVowLTk6L10iIGUpIGUpCgkJICAodAoJCSAgIDs7IHNpbmNlICdmb3JtYXQnIHByb2Nlc3Nl cyB0aGUgc3RyaW5nLCBjaGFuZ2UgJyUnIHRvICclJScKCQkgICAoZm9ybWF0ICIlJSUlJTAyWCIg KHN0cmluZy10by1jaGFyIGUpKSkpKQoJICAoc3BsaXQtc3RyaW5nIChlbmNvZGUtY29kaW5nLXN0 cmluZyBzdHIgJ3V0Zi04LWRvcykgIiIpKSkpCgooZGVmdW4gbXNuLXVybC1kZWNvZGUtc3RyaW5n IChzdHIpCiAgKGxldCogKChzdHIgKGVuY29kZS1jb2Rpbmctc3RyaW5nIHN0ciAndXRmLTgtZG9z KSkKCSAoc2l6ZSAobGVuZ3RoIHN0cikpCgkgKGxzdCAoZG8qICgoaSAwICgrIGkgMSkpCgkJICAg IChsc3QgbmlsKSkKCQkgICgoPj0gaSBzaXplKSAobnJldmVyc2UgbHN0KSkKCQkoc2V0cSBsc3QK CQkgICAgICAoY29ucyAoaWYgKG5vdCAoZXEgKGFyZWYgc3RyIGkpID8lKSkKCQkJCShhcmVmIHN0 ciBpKQoJCQkgICAgICAoc2V0cSBpICgrIGkgMikpCgkJCSAgICAgIChzdHJpbmctdG8taW50CgkJ CSAgICAgICAoY29uY2F0CgkJCQkoY2hhci10by1zdHJpbmcgKGFyZWYgc3RyICgtIGkgMSkpKQoJ CQkJKGNoYXItdG8tc3RyaW5nIChhcmVmIHN0ciAoLSBpIDApKSkpCgkJCSAgICAgICAxNikpCgkJ CSAgICBsc3QpKSkpKQogICAgKGRlY29kZS1jb2Rpbmctc3RyaW5nIAogICAgIChhcHBseSAjJ2Nv bmNhdCAobWFwY2FyICMnY2hhci10by1zdHJpbmcgbHN0KSkKICAgICAndXRmLTgtZG9zKSkpCgoo ZGVmdW4gbXNuLXJlbmFtZSAoKQogIChpbnRlcmFjdGl2ZSkKICAod2hlbiAoYW5kICptc24tbm90 aWZpY2F0aW9uKgoJICAgICAoZXEgKHByb2Nlc3Mtc3RhdHVzICptc24tbm90aWZpY2F0aW9uKikg J29wZW4pKQogICAgKG1zbi1wcm9jLXNlbmQgKm1zbi1ub3RpZmljYXRpb24qCgkJICAgKGNvbmNh dCAiUkVBICVzICIgKGNkciAoYXNzb2MgJ21haWwgKm1zbi11c2VyLWFjY291bnQqKSkgIiAiCgkJ CSAgIChtc24tdXJsLWVuY29kZS1zdHJpbmcKCQkJICAgIChyZWFkLWlucHV0ICJOaWNrbmFtZT86 ICIgKGNkciAoYXNzb2MgJ25hbWUgKm1zbi11c2VyLWFjY291bnQqKSkpKQoJCQkgICAiXG4iKSkp KQoKKGRlZnVuIG1zbi1zeW5jICgpCiAgKGludGVyYWN0aXZlKQogICh3aGVuIChhbmQgKm1zbi1u b3RpZmljYXRpb24qCgkgICAgIChlcSAocHJvY2Vzcy1zdGF0dXMgICptc24tbm90aWZpY2F0aW9u KikgJ29wZW4pKQogICAgKG1zbi1wcm9jLXNlbmQgKm1zbi1ub3RpZmljYXRpb24qICJTWU4gJWQg MFxuIikpKQoKKGRlZnVuIG1zbi1zZWxlY3Qtc2Vzc2lvbiAoKQogIChpbnRlcmFjdGl2ZSkKICAo bGV0KiAoKGNvbXBsZXRpb24taWdub3JlLWNhc2UgbmlsKQoJIChzZXNzaW9uIChjb21wbGV0aW5n LXJlYWQgIlNlc3Npb24/OiAiCgkJCQkgICAobWFwY2FyIChsYW1iZGEgKGUpIChsaXN0IChpbnQt dG8tc3RyaW5nIChjYXIgZSkpKSkKCQkJCQkgICAqbXNuLXN3aXRjaGJvYXJkcyopCgkJCQkgICBu aWwgdCAqbXNuLWN1cnJlbnQtc2Vzc2lvbiopKSkKICAgIChzZXRxICptc24tY3VycmVudC1zZXNz aW9uKiBzZXNzaW9uKQogICAgKHdoZW4gKG5vdCAob25lLXdpbmRvdy1wKSkgKGRlbGV0ZS1vdGhl ci13aW5kb3dzKSkKICAgIChzd2l0Y2gtdG8tYnVmZmVyICptc24tYnVmZmVyKikKICAgIChtc24t cmVkcmF3IG5pbCBuaWwgIydtc24tc2hvdy1jb250YWN0LWxpc3QpKSkKCihkZWZ1biBtc24tc2Vs ZWN0LXNlc3Npb24td2l0aC1jdXJyZW50LXdvcmQgKCkKICAoaW50ZXJhY3RpdmUpCiAgKGxldCAo KHBvcyAocG9pbnQpKSkKICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAobGV0KiAoKG51bSAoY3Vy cmVudC13b3JkKSkKCSAgICAgKGhlYWQgKHByb2duCgkJICAgICAoZ290by1jaGFyIChwb2ludC1h dC1ib2wpKQoJCSAgICAgKGN1cnJlbnQtd29yZCkpKSkKCSh3aGVuIChhbmQgKHN0cmluZy1lcXVh bCBoZWFkICJzZXNzaW9ucyIpCgkJICAgKG5vdCAoc3RyaW5nLWVxdWFsIG51bSAic2Vzc2lvbnMi KSkpCgkgIChzZXRxICptc24tY3VycmVudC1zZXNzaW9uKiBudW0pCgkgIChtc24tcmVkcmF3IG5p bCBuaWwgIydtc24tc2hvdy1jb250YWN0LWxpc3QpKSkpCiAgICAoZ290by1jaGFyIHBvcykpKQoK KGRlZnVuIG1zbi1jcmVhdGUtbmV3LXNlc3Npb24gKCkKICAoaW50ZXJhY3RpdmUpCiAgKHdoZW4g KGFuZCAqbXNuLW5vdGlmaWNhdGlvbioKCSAgICAgKGVxIChwcm9jZXNzLXN0YXR1cyAqbXNuLW5v dGlmaWNhdGlvbiopICdvcGVuKSkKICAgIChtc24tcHJvYy1zZW5kICptc24tbm90aWZpY2F0aW9u KiAiWEZSICVzIFNCXG4iKSkpCgooZGVmdW4gbXNuLWNsb3NlLXNlc3Npb24gKCkKICAoaW50ZXJh Y3RpdmUpCiAgKGlmIChudWxsICptc24tY3VycmVudC1zZXNzaW9uKikKICAgICAgKG1lc3NhZ2Ug InBsZWFzZSBjaG9vc2UgYSBzZXNzaW9uISIpCiAgICAobGV0KiAoKHNlc3Npb24gKGNkciAoYXNz b2MgKHN0cmluZy10by1pbnQgKm1zbi1jdXJyZW50LXNlc3Npb24qKSAqbXNuLXN3aXRjaGJvYXJk cyopKSkKCSAgIChidWYgKHByb2Nlc3MtYnVmZmVyIHNlc3Npb24pKSkKICAgICAgKHdoZW4gKGFu ZCBzZXNzaW9uCgkJIChlcSAocHJvY2Vzcy1zdGF0dXMgc2Vzc2lvbikgJ29wZW4pKQoJKG1zbi1w cm9jLXNlbmQgc2Vzc2lvbiAoY29uY2F0ICJPVVRcbiIpKQoJKGRlbGV0ZS1wcm9jZXNzIHNlc3Np b24pKQogICAgICAoc2V0cSAqbXNuLWlkLWFuZC1hZGRyZXNzKiAoZGVsZXRlIChhc3NvYyAoc3Ry aW5nLXRvLWludCAqbXNuLWN1cnJlbnQtc2Vzc2lvbiopCgkJCQkJCSptc24taWQtYW5kLWFkZHJl c3MqKSAqbXNuLWlkLWFuZC1hZGRyZXNzKikpCiAgICAgIChzZXRxICptc24tc3dpdGNoYm9hcmRz KgoJICAgIChkZWxldGUgKGFzc29jIChzdHJpbmctdG8taW50ICptc24tY3VycmVudC1zZXNzaW9u KikgKm1zbi1zd2l0Y2hib2FyZHMqKQoJCSAgICAqbXNuLXN3aXRjaGJvYXJkcyopKQogICAgICAo bXNuLXNob3ctY29tbWFuZCAqbXNuLWN1cnJlbnQtc2Vzc2lvbioKCQkJKGNvbmNhdCAiY2xvc2Vk IHNlc3Npb24gPCIgKm1zbi1jdXJyZW50LXNlc3Npb24qICI+IikpCiAgICAgIChzZXRxICptc24t Y3VycmVudC1zZXNzaW9uKgoJICAgIChpZiAobnVsbCAqbXNuLXN3aXRjaGJvYXJkcyopIG5pbCAo aW50LXRvLXN0cmluZyAoY2FhciAqbXNuLXN3aXRjaGJvYXJkcyopKSkpCiAgICAgIChtc24tcmVk cmF3KSkpKQoKKGRlZnVuIG1zbi1yaW5nICgpCiAgKGludGVyYWN0aXZlKQogIChpZiAobnVsbCAo YW5kICptc24tY3VycmVudC1zZXNzaW9uKgoJCSAoYXNzb2MgKHN0cmluZy10by1pbnQgKm1zbi1j dXJyZW50LXNlc3Npb24qKSAqbXNuLXN3aXRjaGJvYXJkcyopKSkKICAgICAgKG1lc3NhZ2UgInRo ZSBjdXJyZW50IHNlc3Npb24gaXMgaW52YWxpZC4uLiIpCiAgICAobGV0ICgoc2VydmVyIChjZHIg KGFzc29jIChzdHJpbmctdG8taW50ICptc24tY3VycmVudC1zZXNzaW9uKikgKm1zbi1zd2l0Y2hi b2FyZHMqKSkpKQogICAgICAod2hlbiAoZXEgKHByb2Nlc3Mtc3RhdHVzIHNlcnZlcikgJ29wZW4p CgkobGV0ICgod2hvIChjb21wbGV0aW5nLXJlYWQgIldobz86ICIKCQkJCSAgICAoY2RyIChhc3Nv YyAnRkwgKm1zbi1jb250YWN0LWxpc3QqKSkKCQkJCSAgICBuaWwgbmlsKSkpCgkgIChtc24tcHJv Yy1zZW5kIHNlcnZlciAoY29uY2F0ICJDQUwgJXMgIiB3aG8gIlxuIikpKSkpKSkKCgooZGVmdW4g bXNuLXJlY2VpdmUtZmlsZSAoKQogIChpbnRlcmFjdGl2ZSkKICAoaWYgKG51bGwgKm1zbi1jdXJy ZW50LXNlc3Npb24qKQogICAgICAobWVzc2FnZSAicGxlYXNlIGNob29zZSBhIHNlc3Npb24hIikK ICAgIChsZXQgKChzZXNzaW9uIChjZHIgKGFzc29jIChzdHJpbmctdG8taW50ICptc24tY3VycmVu dC1zZXNzaW9uKikgKm1zbi1zd2l0Y2hib2FyZHMqKSkpKQogICAgICAod2hlbiAoYW5kIHNlc3Np b24KCQkgOzsobnVsbCAqbXNuLXJlY2VpdmluZy1maWxlKikKCQkgKm1zbi1yZWNlaXZlLWZpbGUq CgkJIChlcSAocHJvY2Vzcy1zdGF0dXMgc2Vzc2lvbikgJ29wZW4pKQoJKGxldCogKChyZWNlaXZl IChjYXIgKm1zbi1yZWNlaXZlLWZpbGUqKSkKCSAgICAgICAoY29va2llIChjYXIgcmVjZWl2ZSkp KQoJICAoc2V0cSAqbXNuLXJlY2VpdmluZy1maWxlKiByZWNlaXZlKQoJICAoc2V0cSAqbXNuLXJl Y2VpdmUtZmlsZSogKGNkciAqbXNuLXJlY2VpdmUtZmlsZSopKQoJICAobXNuLXJlZHJhdwoJICAg bmlsCgkgICAobGFtYmRhICgpCgkgICAgIChsZXQqICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkKCQkg ICAgKGJvZHkgKGNvbmNhdAoJCQkgICAiSW52aXRhdGlvbi1Db21tYW5kOiBBQ0NFUFRcbiIKCQkJ ICAgIkludml0YXRpb24tQ29va2llOiAiIGNvb2tpZSAiXG4iCgkJCSAgICJMYXVuY2gtQXBwbGlj YXRpb246IEZBTFNFXG4iCgkJCSAgICJSZXF1ZXN0LURhdGE6IElQLUFkZHJlc3NcbiIpKQoJCSAg ICAoaGVhZCAiTUlNRS1WZXJzaW9uOiAxLjBcbkNvbnRlbnQtVHlwZTogdGV4dC94LW1zbXNnc2lu dml0ZTsgY2hhcnNldD1VVEYtOFxuXG4iKQoJCSAgICAobXNnIChjb25jYXQgaGVhZCBib2R5KSkK CQkgICAgKHNpemUgKGludC10by1zdHJpbmcgKGxlbmd0aCAoZW5jb2RlLWNvZGluZy1zdHJpbmcg bXNnICd1dGYtOC1kb3MpKSkpCgkJICAgIChtc2cgKGNvbmNhdCAobWFrZS1jb21tYW5kICJNU0cg JXMgVSAiKSBzaXplICJcbiIgbXNnKSkpCgkgICAgICAgKHByb2Nlc3Mtc2VuZC1zdHJpbmcgc2Vz c2lvbiBtc2cpKSkpKSkpKSkKCihkZWZ1biBtc24tc2VuZC1maWxlICgpCiAgKGludGVyYWN0aXZl KQogIChpZiAobnVsbCAqbXNuLWN1cnJlbnQtc2Vzc2lvbiopCiAgICAgIChtZXNzYWdlICJwbGVh c2UgY2hvb3NlIGEgc2Vzc2lvbiEiKQogICAgKGxldCAoKHNlc3Npb24gKGNkciAoYXNzb2MgKHN0 cmluZy10by1pbnQgKm1zbi1jdXJyZW50LXNlc3Npb24qKSAqbXNuLXN3aXRjaGJvYXJkcyopKSkp CiAgICAgICh3aGVuIChhbmQgc2Vzc2lvbgoJCSA7OyhudWxsICptc24tc2VuZGluZy1maWxlKikK CQkgKGVxIChwcm9jZXNzLXN0YXR1cyBzZXNzaW9uKSAnb3BlbikpCgkobGV0KiAoKGZpbGVuYW1l IChleHBhbmQtZmlsZS1uYW1lIChyZWFkLWZpbGUtbmFtZSAic2VuZCBmaWxlOiAiIChleHBhbmQt ZmlsZS1uYW1lICJ+LyIpIG5pbCB0KSkpCgkgICAgICAgKHNpemUgKGludC10by1zdHJpbmcgKG50 aCA3IChmaWxlLWF0dHJpYnV0ZXMgZmlsZW5hbWUpKSkpCgkgICAgICAgKGNvb2tpZSAoaW50LXRv LXN0cmluZyAocmFuZG9tICgqIDI1NiAyNTYpKSkpCgkgICAgICAgKGJ1ZmZlciAoY29uY2F0ICIg U3dpdGNoYm9hcmQgWyIgKm1zbi1jdXJyZW50LXNlc3Npb24qICJdIikpCgkgICAgICAgKCptc24t b3V0cHV0LWxvZyogYnVmZmVyKSkKCSAgKHNldHEgKm1zbi1zZW5kaW5nLWZpbGUqCgkJKGxpc3Qg KGNvbnMgJ3Nlc3Npb24gc2Vzc2lvbikKCQkgICAgICAoY29ucyAnY29va2llIGNvb2tpZSkKCQkg ICAgICAoY29ucyAnc2l6ZSBzaXplKQoJCSAgICAgIChjb25zICdmaWxlbmFtZSBmaWxlbmFtZSkp KQoJICAoc2F2ZS1leGN1cnNpb24KCSAgICAobXNuLXJlZHJhdwoJICAgICBuaWwKCSAgICAgKGxh bWJkYSAoKQoJICAgICAgIChsZXQqICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkKCQkgICAgICAoYm9k eSAoY29uY2F0CgkJCSAgICAgIkFwcGxpY2F0aW9uLU5hbWU6IEZpbGUgVHJhbnNmZXJcbiIKCQkJ ICAgICAiQXBwbGljYXRpb24tR1VJRDogezVEM0UwMkFCLTYxOTAtMTFkMy1CQkJCLTAwQzA0Rjc5 NTY4M31cbiIKCQkJICAgICAiSW52aXRhdGlvbi1Db21tYW5kOiBJTlZJVEVcbiIKCQkJICAgICAi SW52aXRhdGlvbi1Db29raWU6ICIgY29va2llICJcbiIKCQkJICAgICAiQXBwbGljYXRpb24tRmls ZTogIiAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBmaWxlbmFtZSkgIlxuIgoJCQkgICAgICJBcHBs aWNhdGlvbi1GaWxlU2l6ZTogIiBzaXplICJcbiIpKQoJCSAgICAgIChoZWFkICJNSU1FLVZlcnNp b246IDEuMFxuQ29udGVudC1UeXBlOiB0ZXh0L3gtbXNtc2dzaW52aXRlOyBjaGFyc2V0PVVURi04 XG5cbiIpCgkJICAgICAgKG1zZyAoY29uY2F0IGhlYWQgYm9keSkpCgkJICAgICAgKHNpemUgKGlu dC10by1zdHJpbmcgKGxlbmd0aCAoZW5jb2RlLWNvZGluZy1zdHJpbmcgbXNnICd1dGYtOC1kb3Mp KSkpCgkJICAgICAgKG1zZyAoY29uY2F0IChtYWtlLWNvbW1hbmQgIk1TRyAlcyBVICIpIHNpemUg IlxuIiBtc2cpKSkKCQkgKHNldC1idWZmZXIgKGdldC1idWZmZXIgYnVmZmVyKSkKCQkgKGdvdG8t Y2hhciAocG9pbnQtbWF4KSkKCQkgKG1zbi1wcm9jLXNlbmQgc2Vzc2lvbiBtc2cpKSkpKSkpKSkp Cgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOzsgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIg aW50ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Owo7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7OzsKCihkZWZmYWNlIG1zbi1zZXNzaW9uLWhlYWRlci1mYWNlIAogICcoKCgodHlwZSB0dHkp KSAoOmZvcmVncm91bmQgIndoaXRlIiA6YmFja2dyb3VuZCAiYmxhY2siIDpib2xkIHQpKSkgbmls KQooZGVmZmFjZSBtc24tc2Vzc2lvbi1ib2R5LWZhY2UKICAnKCgoKHR5cGUgdHR5KSkgKDpmb3Jl Z3JvdW5kICJ3aGl0ZSIgOmJhY2tncm91bmQgImJsYWNrIikpKSBuaWwpCgooZGVmZmFjZSBtc24t c2Vzc2lvbi1oZWFkZXItZmFjZS0xCiAgJygoKCh0eXBlIHR0eSkpICg6Zm9yZWdyb3VuZCAiY3lh biIgOmJhY2tncm91bmQgImJsYWNrIiA6Ym9sZCB0KSkpIG5pbCkKKGRlZmZhY2UgbXNuLXNlc3Np b24tYm9keS1mYWNlLTEKICAnKCgoKHR5cGUgdHR5KSkgKDpmb3JlZ3JvdW5kICJjeWFuIiA6YmFj a2dyb3VuZCAiYmxhY2siKSkpIG5pbCkKCihkZWZmYWNlIG1zbi1zZXNzaW9uLWhlYWRlci1mYWNl LTIKICAnKCgoKHR5cGUgdHR5KSkgKDpmb3JlZ3JvdW5kICJ5ZWxsb3ciIDpiYWNrZ3JvdW5kICJi bGFjayIgOmJvbGQgdCkpKSBuaWwpCihkZWZmYWNlIG1zbi1zZXNzaW9uLWJvZHktZmFjZS0yCiAg JygoKCh0eXBlIHR0eSkpICg6Zm9yZWdyb3VuZCAieWVsbG93IiA6YmFja2dyb3VuZCAiYmxhY2si KSkpIG5pbCkKCihkZWZmYWNlIG1zbi1zZXNzaW9uLWhlYWRlci1mYWNlLTMKICAnKCgoKHR5cGUg dHR5KSkgKDpmb3JlZ3JvdW5kICJncmVlbiIgOmJhY2tncm91bmQgImJsYWNrIiA6Ym9sZCB0KSkp IG5pbCkKKGRlZmZhY2UgbXNuLXNlc3Npb24tYm9keS1mYWNlLTMKICAnKCgoKHR5cGUgdHR5KSkg KDpmb3JlZ3JvdW5kICJncmVlbiIgOmJhY2tncm91bmQgImJsYWNrIikpKSBuaWwpCgooZGVmZmFj ZSBtc24tcmVjZWl2aW5nLWRlbGltaXRlci1mYWNlCiAgJygoKCh0eXBlIHR0eSkpICg6Zm9yZWdy b3VuZCAiY3lhbiIgOnVuZGVybGluZSB0IDpib2xkIHQpKQogICAgKHQgKDpmb3JlZ3JvdW5kICJi bHVlIiA6YmFja2dyb3VuZCAiY3lhbiIgOnVuZGVybGluZSB0IDpib2xkIHQpKSkgbmlsKQooZGVm ZmFjZSBtc24td3JpdHRpbmctZGVsaW1pdGVyLWZhY2UKICAnKCgoKHR5cGUgdHR5KSkgKDpmb3Jl Z3JvdW5kICJjeWFuIiA6dW5kZXJsaW5lIHQgOmJvbGQgdCkpCiAgICAodCAoOmZvcmVncm91bmQg ImJsdWUiIDpiYWNrZ3JvdW5kICJjeWFuIiA6dW5kZXJsaW5lIHQgOmJvbGQgdCkpKSBuaWwpCihk ZWZmYWNlIG1zbi1zdGF0dXMtZGVsaW1pdGVyLWZhY2UKICAnKCgoKHR5cGUgdHR5KSkgKDpmb3Jl Z3JvdW5kICJ5ZWxsb3ciIDp1bmRlcmxpbmUgdCA6Ym9sZCB0KSkKICAgICh0ICg6Zm9yZWdyb3Vu ZCAicmVkIiA6YmFja2dyb3VuZCAieWVsbG93IiA6dW5kZXJsaW5lIHQgOmJvbGQgdCkpKSBuaWwp CihkZWZmYWNlIG1zbi1zdGF0dXMtb25saW5lLWZhY2UKICAnKCgoKHR5cGUgdHR5KSkgKDpmb3Jl Z3JvdW5kICJyZWQiIDpib2xkIHQpKQogICAgKHQgKDpmb3JlZ3JvdW5kICJyZWQiIDpib2xkIHQp KSkgbmlsKQooZGVmZmFjZSBtc24tc3RhdHVzLW9mZmxpbmUtZmFjZQogICcoKCgodHlwZSB0dHkp KSAoOmZvcmVncm91bmQgImJsYWNrIiA6Ym9sZCB0KSkKICAgICh0ICg6Zm9yZWdyb3VuZCAiYmx1 ZSIgOmJvbGQgdCkpKSBuaWwpCihkZWZmYWNlIG1zbi1zdGF0dXMtZGVmYXVsdC1mYWNlCiAgJygo KCh0eXBlIHR0eSkpICg6Zm9yZWdyb3VuZCAiZGFya2dyZWVuIiA6Ym9sZCB0KSkKICAgICh0ICg6 Zm9yZWdyb3VuZCAiZGFya2dyZWVuIiA6Ym9sZCB0KSkpIG5pbCkKKGRlZmZhY2UgbXNuLWNvbW1h bmQtZmFjZQogICcoKCgodHlwZSB0dHkpKSAoOmZvcmVncm91bmQgImJsYWNrIiA6YmFja2dyb3Vu ZCAiY3lhbiIgIDpib2xkIHQpKQogICAgKHQgKDpmb3JlZ3JvdW5kICJyZWQiIDpiYWNrZ3JvdW5k ICJ5ZWxsb3ciIDpib2xkIHQpKSkgbmlsKQoKKGRlZnVuIG1zbi1pbnNlcnQtd2l0aC1mYWNlIChm YWNlIHN0cmluZykKICAobGV0KiAoKGJlZyAocG9pbnQpKQoJIChlbmQgKHByb2duIChpbnNlcnQg c3RyaW5nKSAocG9pbnQpKSkKCSAob3ZlcmxheSAobWFrZS1vdmVybGF5IGJlZyBlbmQpKSkKICAg IChvdmVybGF5LXB1dCBvdmVybGF5ICdmYWNlIGZhY2UpCiAgICAoYWRkLXRleHQtcHJvcGVydGll cyBiZWcgZW5kICcocmVhZC1vbmx5IHQpKSkpCgo7OyBOTE58RkxOfEJTWXxJREx8QlJCfEFXWXxQ SE58TFVOIOOBqOOBiwooZGVmdW4gbXNuLXN0YXR1cy1leHBhbmQgKHN0YXR1cykKICAoaW50ZXJh Y3RpdmUpCiAgKGNkciAoYXNzb2Mgc3RhdHVzICcoKCJOTE4iIC4gIk9OTElORSIpICgiRkxOIiAu ICJPRkZMSU5FIikgKCJCU1kiIC4gImJ1c3kiKQoJCSAgICAgICAoIklETCIgLiAiaWRsZSIpICgi QlJCIiAuICJiZSByaWdodCBiYWNrIikgKCJBV1kiIC4gImF3YXkiKQoJCSAgICAgICAoIlBITiIg LiAib24gdGhlIHBob25lIikgKCJMVU4iIC4gImdvbmUgdG8gbHVuY2giKSkpKSkKCihkZWZ1biBt c24taW5pdGlhbGl6ZS1zY3JlZW4gKCkKICAoaW50ZXJhY3RpdmUpCiAgKHN3aXRjaC10by1idWZm ZXIgKm1zbi1idWZmZXIqKQogIChsZXQgKChpbmhpYml0LXJlYWQtb25seSB0KSkKICAgIChlcmFz ZS1idWZmZXIpCiAgICA7OyAncmVjZWl2ZScgIHBhcnQKICAgIChtc24taW5zZXJ0LXdpdGgtZmFj ZSAnbXNuLXJlY2VpdmluZy1kZWxpbWl0ZXItZmFjZSAiDCBbcmVjZWl2ZV0gXG4iKQogICAgOzsg J3NlbmQnIHBhcnQKICAgIChtc24taW5zZXJ0LXdpdGgtZmFjZSAnZGVmYXVsdCAiXG4iKQogICAg KG1zbi1pbnNlcnQtd2l0aC1mYWNlICdtc24td3JpdHRpbmctZGVsaW1pdGVyLWZhY2UKCQkJICAo Y29uY2F0ICIMIFtzZW5kXSIgIiAoIgoJCQkJICAobXNuLXN0YXR1cy1leHBhbmQgKGNkciAoYXNz b2MgJ3N0YXR1cyAqbXNuLXVzZXItYWNjb3VudCopKSkKCQkJCSAgIikiICJcbiIpKQogICAgKGFk ZC10ZXh0LXByb3BlcnRpZXMgKC0gKHBvaW50KSAxKSAocG9pbnQpICcocmVhci1ub25zdGlja3kg dCkpCiAgICA7OyBjb250YWN0IGxpc3QgZGlzcGxheSBwYXJ0CiAgICAobXNuLWluc2VydC13aXRo LWZhY2UgJ2RlZmF1bHQgIlxuIikKICAgIChtc24taW5zZXJ0LXdpdGgtZmFjZSAnbXNuLXN0YXR1 cy1kZWxpbWl0ZXItZmFjZSAgIgwgW2NvbnRhY3QgbGlzdF1cbiIpKSkKCihkZWZ1biBtc24tc2hv dy1jb250YWN0LWxpc3QgKCkKICAobGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkpCiAgICAoZGVs ZXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkKICAgIChtc24taW5zZXJ0LXdpdGgt ZmFjZSAnYm9sZCAic2Vzc2lvbnM6ICIpCiAgICAobWFwY2FyIChsYW1iZGEgKGUpCgkgICAgICAo aWYgKGFuZCAobm90IChudWxsICptc24tY3VycmVudC1zZXNzaW9uKikpCgkJICAgICAgIChzdHJp bmctZXF1YWwgZSAqbXNuLWN1cnJlbnQtc2Vzc2lvbiopKQoJCSAgKG1zbi1pbnNlcnQtd2l0aC1m YWNlICdib2xkIChjb25jYXQgIlsiIGUgIl0iKSkKCQkobXNuLWluc2VydC13aXRoLWZhY2UgJ2Rl ZmF1bHQgKGNvbmNhdCAiWyIgZSAiXSIpKSkpCgkgICAgKG1hcGNhciAobGFtYmRhIChlKSAoaW50 LXRvLXN0cmluZyAoY2FyIGUpKSkgKm1zbi1zd2l0Y2hib2FyZHMqKSkKICAgIChtc24taW5zZXJ0 LXdpdGgtZmFjZSAnZGVmYXVsdCAiXG4iKQogICAgKHdoZW4gKG51bGwgKGNkciAoYXNzb2MgJ0ZM ICptc24tY29udGFjdC1saXN0KikpKQogICAgICAobXNuLWluc2VydC13aXRoLWZhY2UgJ2RlZmF1 bHQgIm5vIG9uZSBvbmxpbmUuLlxuIikpCiAgICAoZG9saXN0IChlIChjZHIgKGFzc29jICdGTCAq bXNuLWNvbnRhY3QtbGlzdCopKSkKICAgICAgKG1zbi1pbnNlcnQtd2l0aC1mYWNlICdkZWZhdWx0 IChjb25jYXQKCQkJCSAgICAgIChjZHIgKGFzc29jICduYW1lIChjZHIgZSkpKQoJCQkJICAgICAg IiA8IiAoY2FyIGUpICI+ICIpKQogICAgICAobGV0KiAoKHN0YXR1cyAobXNuLXN0YXR1cy1leHBh bmQgKGNkciAoYXNzb2MgJ3N0YXQgKGNkciBlKSkpKSkKCSAgICAgKGZhY2UgKG1zbi1nZXQtc3Rh dHVzLWZhY2Ugc3RhdHVzKSkpCgkobXNuLWluc2VydC13aXRoLWZhY2UgZmFjZSAoY29uY2F0ICIo IiBzdGF0dXMgIilcbiIpKSkpKSkKCihkZWZ1biBtc24tZ2V0LXN0YXR1cy1mYWNlIChzdGF0dXMp CiAgKGNvbmQKICAgKChzdHJpbmctZXF1YWwgc3RhdHVzICJPTkxJTkUiKSAgJ21zbi1zdGF0dXMt b25saW5lLWZhY2UpCiAgICgoc3RyaW5nLWVxdWFsIHN0YXR1cyAiT0ZGTElORSIpICdtc24tc3Rh dHVzLW9mZmxpbmUtZmFjZSkKICAgKHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21z bi1zdGF0dXMtZGVmYXVsdC1mYWNlKSkpCgooZGVmdW4gbXNuLWdldC1tZXNzYWdlLWFyZWEgKCkK ICAobGV0IChiZWcgZW5kKQogICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKICAgIChzZWFyY2gt YmFja3dhcmQtcmVnZXhwICJeDCIpCiAgICAoc2V0cSBlbmQgKC0gKHBvaW50KSAxKSkKICAgIChz ZWFyY2gtYmFja3dhcmQtcmVnZXhwICJeDCIpCiAgICAoc2V0cSBiZWcgKHByb2duIChmb3J3YXJk LWxpbmUgMSkgKHBvaW50KSkpCiAgICAoY29ucyBiZWcgZW5kKSkpCgooZGVmdW4gbXNuLWdldC1t ZXNzYWdlLWFyZWEtb2Zmc2V0ICgpCiAgKGxldCogKChjdXJyZW50IChwb2ludCkpCgkgKGxzdCAo bXNuLWdldC1tZXNzYWdlLWFyZWEpKQoJIChiZWcgKGNhciBsc3QpKQoJIChlbmQgKGNkciBsc3Qp KSkKICAgIChpZiAoYW5kICg+PSBjdXJyZW50IGJlZykgKDw9IGN1cnJlbnQgZW5kKSkKCSgtIGN1 cnJlbnQgYmVnKSkpKQoKOzsgZHJhd2luZyBwYXJ0CihkZWZ1biBtc24tcmVkcmF3ICgmb3B0aW9u YWwgYWN0aW9uMSBhY3Rpb24yIGFjdGlvbjMpCiAgKGludGVyYWN0aXZlKQogIChzZXQtYnVmZmVy ICptc24tYnVmZmVyKikKICAobGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkKCShvZmZzZXQgKG1z bi1nZXQtbWVzc2FnZS1hcmVhLW9mZnNldCkpKQogICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkK ICAgIChsZXQqICgoc3RhdHVzLWVuZCAocG9pbnQtbWF4KSkKCSAgIChzdGF0dXMtYmVnIChwcm9n bgoJCQkgKHNlYXJjaC1iYWNrd2FyZC1yZWdleHAgIl4MIikKCQkJIChmb3J3YXJkLWxpbmUgMSkK CQkJIChwb2ludCkpKQoJICAgKG1zZy1lbmQgKHByb2duIChmb3J3YXJkLWxpbmUgLTEpICgtIChw b2ludCkgMSkpKQoJICAgKG1zZy1saW5lLWJlZyAocHJvZ24gKHNlYXJjaC1iYWNrd2FyZC1yZWdl eHAgIl4MIikgKHBvaW50KSkpCgkgICAobXNnLWxpbmUtZW5kIChwcm9nbiAoc2VhcmNoLWZvcndh cmQtcmVnZXhwICIkIikgKHBvaW50KSkpCgkgICAobXNnLWJlZyAocHJvZ24KCQkgICAgICAoZm9y d2FyZC1saW5lIDEpCgkJICAgICAgKHBvaW50KSkpCgkgICAoc2hvdy1lbmQgKHByb2duIChmb3J3 YXJkLWxpbmUgLTIpIChwb2ludCkpKQoJICAgKHNob3ctYmVnIChwb2ludC1taW4pKSkKICAgICAg Ozsgc3RhdHVzCiAgICAgIChzYXZlLWV4Y3Vyc2lvbgoJKHNhdmUtcmVzdHJpY3Rpb24KCSAgKG5h cnJvdy10by1yZWdpb24gc3RhdHVzLWJlZyBzdGF0dXMtZW5kKQoJICAod2hlbiBhY3Rpb24zCgkg ICAgKGZ1bmNhbGwgYWN0aW9uMykpKSkKICAgICAgKHNhdmUtZXhjdXJzaW9uCgkoc2F2ZS1yZXN0 cmljdGlvbgoJICAobmFycm93LXRvLXJlZ2lvbiBtc2ctbGluZS1iZWcgbXNnLWxpbmUtZW5kKQoJ ICAoZGVsZXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkKCSAgKG1zbi1pbnNlcnQt d2l0aC1mYWNlCgkgICAnbXNuLXdyaXR0aW5nLWRlbGltaXRlci1mYWNlCgkgICAoY29uY2F0ICIM IFtzZW5kXSAgWyIgKm1zbi1jdXJyZW50LXNlc3Npb24qICJdICIKCQkgICAoY2RyIChhc3NvYyAn bmFtZSAqbXNuLXVzZXItYWNjb3VudCopKQoJCSAgICIgPCIgKGNkciAoYXNzb2MgJ21haWwgKm1z bi11c2VyLWFjY291bnQqKSkgIj4gKCIKCQkgICAobXNuLXN0YXR1cy1leHBhbmQgKGNkciAoYXNz b2MgJ3N0YXQgKm1zbi11c2VyLWFjY291bnQqKSkpCgkJICAgIikiKSkpKQogICAgICAoc2F2ZS1l eGN1cnNpb24KCShzYXZlLXJlc3RyaWN0aW9uCgkgIChuYXJyb3ctdG8tcmVnaW9uIG1zZy1iZWcg bXNnLWVuZCkKCSAgKHdoZW4gYWN0aW9uMgoJICAgIChmdW5jYWxsIGFjdGlvbjIpKSkpCiAgICAg IChzYXZlLWV4Y3Vyc2lvbgoJKHNhdmUtcmVzdHJpY3Rpb24KCSAgKG5hcnJvdy10by1yZWdpb24g c2hvdy1iZWcgc2hvdy1lbmQpCgkgICh3aGVuIGFjdGlvbjEKCSAgICAoZnVuY2FsbCBhY3Rpb24x KSkpKQogICAgICA7OyBwb2ludCB0byBtZXNzYWdlIGFyZWEKICAgICAgKGxldCogKChiZWcgKGNh ciAobXNuLWdldC1tZXNzYWdlLWFyZWEpKSkpCgkoZ290by1jaGFyIChpZiBvZmZzZXQgKCsgYmVn IG9mZnNldCkgYmVnKSkKCTs7IGRpc3BsYXkgcGxhY2VtZW50IGFkanVzdG1lbnRzCgkod2hlbiAq bXNuLWV4cGVyaW1lbnRhbCoKCSAgKGxldCAoKG9sZCAocG9pbnQpKSkKCSAgICAoZ290by1jaGFy IGJlZykKCSAgICAoZm9yd2FyZC1saW5lIC03KQoJICAgIChyZWNlbnRlcikKCSAgICAoZ290by1j aGFyIG9sZCkpKSkpKSkKCihkZWZ1biBtc24tZ2V0LWxvY2FsLWlwLWFkZHJlc3MgKCkKICAoaW50 ZXJhY3RpdmUpCiAgKGNvbmQKICAgKChzdHJpbmctbWF0Y2ggImZyZWVic2QiICh2ZXJzaW9uKSkK ICAgICh3aXRoLXRlbXAtYnVmZmVyCiAgICAgIChjYWxsLXByb2Nlc3MgImlmY29uZmlnIiBuaWwg dCkKICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgICAgKGlmIChyZS1zZWFyY2gtZm9y d2FyZCAiaW5ldFteMC05XSpcXChbMC05XStcXChcLlswLTldK1xcKStcXCkiIG5pbCB0KQoJICAo bWF0Y2gtc3RyaW5nIDEpCgkidW5rbm93biIpKSkKICAgKChzdHJpbmctbWF0Y2ggIm1zIiAodmVy c2lvbikpCiAgICAod2l0aC10ZW1wLWJ1ZmZlcgogICAgICAoY2FsbC1wcm9jZXNzICJpcGNvbmZp ZyIgbmlsIHQpCiAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgIChpZiAocmUtc2Vh cmNoLWZvcndhcmQgIklQW14wLTldKlxcKFswLTldK1xcKFwuWzAtOV0rXFwpK1xcKSIgbmlsIHQp CgkgIChtYXRjaC1zdHJpbmcgMSkKCSJ1bmtub3duIikpKSkpCgo7OyBJcyB0aGF0IHJlZ2V4cCB0 b28gYnJvYWQgPz8KOzsgIk1TRyBcXChbYS16QS1aMC05LV9dK0BbYS16QS1aMC05LV8uXSsgW14g XG5dK1xcfFswLTldKyBbVUFdXFwpIFswLTldWzAtOV0rXG4iCihkZWZ1biBtc24tc2hvdy1tZXNz YWdlIChzZXNzaW9uIHN0cmluZyAmb3B0aW9uYWwgcmVkcmF3KQogIChsZXQqICgocmVnZXhwICJN U0cgXFwoW2EtekEtWjAtOS1fLi9dK0BbYS16QS1aMC05Ll0rIFteIFxuXStcXHxbMC05XSsgW1VB XVxcKSBbMC05XVswLTldK1xuIikKCSAobHN0IChkbyogKChwb3MgKHN0cmluZy1tYXRjaCByZWdl eHAgc3RyaW5nKQoJCQkgKHN0cmluZy1tYXRjaCByZWdleHAgc3RyaW5nIChtYXRjaC1lbmQgMCkp KQoJCSAgICAocmV0IChjb25zIHBvcyBuaWwpIChjb25zIChpZiBwb3MgcG9zIChsZW5ndGggc3Ry aW5nKSkgcmV0KSkpCgkJICAoKG51bGwgcG9zKSByZXQpKSkKCSAobHN0IChkbyogKChyIChjYXIg bHN0KSAoY2FyIGxzdCkpCgkJICAgIChsIChjYWRyIGxzdCkgKGNhZHIgbHN0KSkKCQkgICAgKGxz dCAoY2RyIGxzdCkgKGNkciBsc3QpKQoJCSAgICAocmV0IChjb25zIChjb25zIGwgcikgbmlsKSAo Y29ucyAoY29ucyBsIHIpIHJldCkpKQoJCSAgKChudWxsIChjYWRyIGxzdCkpIHJldCkpKQoJICh0 eHQgKGRvKiAoKHBvcyAoY2FyIGxzdCkgKGNhciBsc3QpKQoJCSAgICAobHN0IChjZHIgbHN0KSAo Y2RyIGxzdCkpCgkJICAgIChyZXQgKGNvbnMgKHN1YnN0cmluZyBzdHJpbmcgKGNhciBwb3MpIChj ZHIgcG9zKSkgbmlsKQoJCQkgKGNvbnMgKHN1YnN0cmluZyBzdHJpbmcgKGNhciBwb3MpIChjZHIg cG9zKSkgcmV0KSkpCgkJICAoKG51bGwgbHN0KSByZXQpKSkpCiAgICAoZG9saXN0IChtc2cgdHh0 KQogICAgICAobGV0KiAoKHBvcyAoc3RyaW5nLW1hdGNoICJcblxuIiBtc2cpKQoJICAgICAoaGVh ZCAoc3Vic3RyaW5nIG1zZyAwIHBvcykpCgkgICAgIChib2R5IChzdWJzdHJpbmcgbXNnICgrIHBv cyAyKSkpKQoJKHNldC1idWZmZXIgKm1zbi1idWZmZXIqKQoJKGNvbmQgCgkgKChzdHJpbmctbWF0 Y2ggIl5Db250ZW50LVR5cGU6IHRleHQveC1tc21zZ3NpbnZpdGU7IGNoYXJzZXQ9VVRGLTgiIGhl YWQpCgkgIChzdHJpbmctbWF0Y2ggIk1TRyBcXChbYS16QS1aMC05Ll8vXStAW2EtekEtWjAtOS5d K1xcKSBcXChbXiBdK1xcKSBbMC05XStcbiIgaGVhZCkKCSAgKGxldCAoKG1haWwgKHN1YnN0cmlu ZyBoZWFkIChtYXRjaC1iZWdpbm5pbmcgMSkgKG1hdGNoLWVuZCAxKSkpCgkJKG5hbWUgKHN1YnN0 cmluZyBoZWFkIChtYXRjaC1iZWdpbm5pbmcgMikgKG1hdGNoLWVuZCAyKSkpKQoJICAgIChtc24t aW52aXRlZCBzZXNzaW9uIG5hbWUgbWFpbCBib2R5KSkpCgkgKChzdHJpbmctbWF0Y2ggIk1TRyBb MC05XSsgW1VBXSBbMC05XStcbiIgaGVhZCkKCSAgKG1zbi1yZWRyYXcKCSAgIChsYW1iZGEgKCkK CSAgICAgKG1zbi1pbnNlcnQtd2l0aC1mYWNlCgkgICAgICAnbXNuLXNlc3Npb24taGVhZGVyLWZh Y2UKCSAgICAgIChjb25jYXQgIjwiIHNlc3Npb24gIj4gIgoJCSAgICAgIChsZXQgKChyZXQgKGFz c29jICduYW1lICptc24tdXNlci1hY2NvdW50KikpKQoJCQkoaWYgcmV0IChjZHIgcmV0KSAieW91 IikpICIgc2FpZDpcbiIpKQoJICAgICAobXNuLWluc2VydC13aXRoLWZhY2UgJ21zbi1zZXNzaW9u LWJvZHktZmFjZQoJCQkJICAgKGNvbmNhdCBib2R5ICJcbiIpKSkpKQoJICgoc3RyaW5nLW1hdGNo ICJNU0cgXFwoW2EtekEtWjAtOS5fL10rQFthLXpBLVowLTkuXStcXCkgXFwoW14gXStcXCkgWzAt OV0rXG4iIGhlYWQpCgkgIChsZXQqICgobWFpbCAoc3Vic3RyaW5nIGhlYWQgKG1hdGNoLWJlZ2lu bmluZyAxKSAobWF0Y2gtZW5kIDEpKSkKCQkgKG5hbWUgKHN1YnN0cmluZyBoZWFkIChtYXRjaC1i ZWdpbm5pbmcgMikgKG1hdGNoLWVuZCAyKSkpCgkJIChuYW1lIChtc24tdXJsLWRlY29kZS1zdHJp bmcgbmFtZSkpKQoJICAgIChpZiAoc3RyaW5nLW1hdGNoICJeVHlwaW5nVXNlcjogXFwoW2EtekEt WjAtOS5fL10rQFthLXpBLVowLTkuXStcXCkiIGhlYWQpCgkJKG1lc3NhZ2UgKGNvbmNhdCBuYW1l ICIgaXMgdHlwaW5nLi4uIikpCgkgICAgICAobXNuLXJlZHJhdwoJICAgICAgIChsYW1iZGEgKCkK CQkgKG1zbi1pbnNlcnQtd2l0aC1mYWNlICdtc24tc2Vzc2lvbi1oZWFkZXItZmFjZQoJCQkJICAg ICAgIChjb25jYXQgIjwiIHNlc3Npb24gIj4gIiBuYW1lICIgc2FpZDpcbiIpKQoJCSAobXNuLWlu c2VydC13aXRoLWZhY2UgJ21zbi1zZXNzaW9uLWJvZHktZmFjZQoJCQkJICAgICAgIChjb25jYXQg Ym9keSAiXG4iKSkpCgkgICAgICAgbmlsCgkgICAgICAgKGlmIHJlZHJhdyAjJ21zbi1zaG93LWNv bnRhY3QtbGlzdCBuaWwpKSkpKSkpKSkpCgooZGVmdW4gbXNuLXNob3ctY29tbWFuZCAoc2Vzc2lv biBjb21tYW5kKQogIChzZXQtYnVmZmVyICptc24tYnVmZmVyKikKICAobXNuLXJlZHJhdwogICAo bGFtYmRhICgpCiAgICAgKG1zbi1pbnNlcnQtd2l0aC1mYWNlICdtc24tY29tbWFuZC1mYWNlCgkJ CSAgIChjb25jYXQgKG1zbi11cmwtZGVjb2RlLXN0cmluZyBjb21tYW5kKQoJCQkJICAgKHdoZW4g Km1zbi1leHBlcmltZW50YWwqCgkJCQkgICAgIChmb3JtYXQtdGltZS1zdHJpbmcgKm1zbi10aW1l LWZvcm1hdCopKQoJCQkJICAgIlxuIikpKQogICBuaWwKICAgIydtc24tc2hvdy1jb250YWN0LWxp c3QpCiAgKHNldC1idWZmZXItbW9kaWZpZWQtcCBuaWwpKQoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Cjs7ICAgICAgICAgICAgICBjb2RlIHVzZWQgZm9yIGNvbW1pbmljYXRpb24gd2l0aCB0aGUgc2Vy dmVyICAgICAgICAgICAgICAgICA7Owo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKCihkZWZ1biBtYWtl LWNvbW1hbmQgKHN0cikKICAoc2V0cSAqbXNuLWlkKiAoKyAqbXNuLWlkKiAxKSkKICAoZm9ybWF0 IHN0ciAqbXNuLWlkKikpCgooZGVmdW4gbXNuLXByb2Mtc2VuZCAoc2VydmVyIG1zZykKICAoc2F2 ZS1zZWxlY3RlZC13aW5kb3cKICAgIChsZXQgKChjbWQgKG1ha2UtY29tbWFuZCBtc2cpKSkKICAg ICAgKHdoZW4gKm1zbi1vdXRwdXQtbG9nKgoJKGluc2VydCAiLS0tLS0tLS0tLS0tXG48PDwgIikK CShpbnNlcnQgY21kKQoJKGluc2VydCAiLS0tLS0tLS0tLS0tXG4iKSkKICAgICAgKHByb2Nlc3Mt c2VuZC1zdHJpbmcgc2VydmVyIGNtZCkpKSkKCihkZWZ1biBtc24tcmVjb3JkLXNldmVyLW1lc3Nh Z2UgKHN0cmluZykKICAoZ290by1jaGFyIChwb2ludC1tYXgpKQogIChpbnNlcnQgIi0tLS0tLS0t LS0tLS0tLS0tLS0tXG4iKQogIChpbnNlcnQgc3RyaW5nKQogIChpbnNlcnQgIi0tLS0tLS0tLS0t LS0tLS0tLS0tXG4iKSkKCihkZWZ1biBtc24tbG9naW4gKHNlcnZlcikKICAobXNuLXByb2Mtc2Vu ZCBzZXJ2ZXIgIlZFUiAlZCBNU05QNyBNU05QNiBNU05QNSBDVlIwXG4iKSkKCihkZWZ1biBtc24t cG5nICgpCiAgKGludGVyYWN0aXZlKQogICh3aGVuIChhbmQgKm1zbi1ub3RpZmljYXRpb24qCgkg ICAgIChlcSAocHJvY2Vzcy1zdGF0dXMgICptc24tbm90aWZpY2F0aW9uKikgJ29wZW4pKQogICAg KG1zbi1wcm9jLXNlbmQgKm1zbi1ub3RpZmljYXRpb24qICJQTkdcbiIpKSkKCihkZWZ1biBtc24t Y29ubmVjdCAoKQogIChpbnRlcmFjdGl2ZSkKICAoc2V0cSAqbXNuLWRpc3BhdGNoKiBuaWwKCSpt c24tbm90aWZpY2F0aW9uKiBuaWwKCSptc24tc3dpdGNoYm9hcmRzKiBuaWwKCSptc24tY29udGFj dC1saXN0KiAoY29weS10cmVlCgkJCSAgICAnKChGTCAuICgpKQoJCQkgICAgICAoUkwgLiAoKSkK CQkJICAgICAgKEFMIC4gKCkpCgkJCSAgICAgIChCTCAuICgpKSkpCgkqbXNuLWlkLWFuZC1hZGRy ZXNzKiBuaWwKCSptc24tY3VycmVudC1zZXNzaW9uKiBuaWwKCSptc24taWQqIC0xCgkqbXNuLXN3 aXRjaGJvYXJkLWlkKiAtMSkKICAoc2V0cSAqbXNuZnRwKiBuaWwKCSptc25mdHAtYXV0aCogbmls CgkqbXNuZnRwLXJlc3QqIG5pbAoJKm1zbi1yZWNlaXZpbmctZmlsZSogbmlsCgkqbXNuLXJlY2Vp dmUtZmlsZSogbmlsKQogIChzZXRjZHIgKGFzc29jICdzdGF0ICptc24tdXNlci1hY2NvdW50Kikg IkZMTiIpIDs7IGluaXRpYWwgc3RhdGU6IE9GRkxJTkUKICAocnVuLWhvb2tzICdtc24tY29ubmVj dC1ob29rKQogIChsZXQgKChtYWlsIChhc3NvYyAnbWFpbCAqbXNuLXVzZXItYWNjb3VudCopKQoJ KHBhc3MgKGFzc29jICdwYXNzICptc24tdXNlci1hY2NvdW50KikpKQogICAgKHdoZW4gKG51bGwg KGNkciBtYWlsKSkgKHNldGNkciBtYWlsIChyZWFkLXN0cmluZyAiSG90bWFpbCBBY2NvdW50OiAi KSkpCiAgICAod2hlbiAobnVsbCAoY2RyIHBhc3MpKQogICAgICAoc2V0Y2RyIHBhc3MKCSAgICAg IChsZXQgKChpbmhpYml0LWlucHV0LWV2ZW50LXJlY29yZGluZyB0KSkKCQkoY29uZGl0aW9uLWNh c2UgbmlsIChyZWFkLXBhc3N3ZCAiUGFzc3dvcmQ6ICIpKSkpKSkKICA7OyBjb25uZWN0IHRvIGRp c3BhdGNoIHNlcnZlcgogIChzZXRxICptc24tZGlzcGF0Y2gqCgkob3Blbi1uZXR3b3JrLXN0cmVh bSAiRGlzcGF0Y2ggU2VydmVyIiAqbXNuLWRpc3BhdGNoLWJ1ZmZlcioKCQkJICAgICAibWVzc2Vu Z2VyLmhvdG1haWwuY29tIiAxODYzKSkKCQkJICAgICA7OyIxMjcuMC4wLjEiIDE4NjMpKQogIChz ZXQtcHJvY2Vzcy1jb2Rpbmctc3lzdGVtICptc24tZGlzcGF0Y2gqICd1dGYtOC1kb3MgJ3V0Zi04 LWRvcykKICAoc2V0LXByb2Nlc3MtZmlsdGVyICptc24tZGlzcGF0Y2gqICdtc24tZGlzcGF0Y2gt ZmlsdGVyKQogIChtc24tbG9naW4gKm1zbi1kaXNwYXRjaCopKQoKKGRlZnVuIG1zbi1tZXNzYWdl LXBhcnNlIChzdHJpbmcpCiAgKGNvbmQKICAgKChvciAqbXNuLXN5bmMtZnJhZ21lbnQqCgkoc3Ry aW5nLW1hdGNoICJeR1RDIiBzdHJpbmcpKQogICAgKGlmIChub3QgKGVxIChhcmVmIHN0cmluZyAo LSAobGVuZ3RoIHN0cmluZykgMSkpID9cbikpCgkocHJvZ24KCSAgKHNldHEgKm1zbi1zeW5jLWZy YWdtZW50KiAoY29uY2F0ICptc24tc3luYy1mcmFnbWVudCogc3RyaW5nKSkKCSAgbmlsKQogICAg ICAobGV0KiAoKGxzdCAoc3BsaXQtc3RyaW5nCgkJICAgKGlmICptc24tc3luYy1mcmFnbWVudCog KGNvbmNhdCAqbXNuLXN5bmMtZnJhZ21lbnQqIHN0cmluZykgc3RyaW5nKQoJCSAgICJcbiIpKSkK CShzZXRxICptc24tc3luYy1mcmFnbWVudCogbmlsKQoJbHN0KSkpCiAgICgoc3RyaW5nLW1hdGNo ICJeTVNHIiBzdHJpbmcpCiAgICAobGlzdCBzdHJpbmcpKQogICAoKHN0cmluZy1tYXRjaCAiXlVT UiIgc3RyaW5nKQogICAgKGxldCogKChwb3MgKHN0cmluZy1tYXRjaCAiXG4iIHN0cmluZykpCgkg ICAodXNyIChzdWJzdHJpbmcgc3RyaW5nIDAgcG9zKSkKCSAgIChvdGhlciAoc3Vic3RyaW5nIHN0 cmluZyAoKyBwb3MgMSkgKGxlbmd0aCBzdHJpbmcpKSkpCiAgICAgIChpZiAoPiAobGVuZ3RoIG90 aGVyKSA1KQoJICAobGlzdCB1c3Igb3RoZXIpCgkobGlzdCB1c3IpKSkpCiAgICh0IChzcGxpdC1z dHJpbmcgc3RyaW5nICJcbiIpKSkpCgooZGVmdW4gbXNuLWxzdCAoc3RyaW5nKQogIChsZXQgKChs c3QgKHNwbGl0LXN0cmluZyBzdHJpbmcgIiAiKSkpCiAgICAod2hlbiAoPiAobGVuZ3RoIGxzdCkg NikKICAgICAgKGxldCogKCh0eXBlIChudGggMiBsc3QpKQoJICAgICAodHlwZSAoY2RyIChhc3Nv YyB0eXBlICcoKCJGTCIgLiBGTCkgKCJSTCIgLiBGTCkgKCJBTCIgLiBBTCkgKCJCTCIgLiBCTCkp KSkpCgkgICAgIChtYWlsIChudGggNiBsc3QpKQoJICAgICAobmFtZSAobXNuLXVybC1kZWNvZGUt c3RyaW5nIChudGggNyBsc3QpKSkKCSAgICAgKGwgKGFzc29jIHR5cGUgKm1zbi1jb250YWN0LWxp c3QqKSkKCSAgICAgKHUgKGFzc29jIG1haWwgKGNkciBsKSkpKQoJKHdoZW4gKG51bGwgdSkKCSAg KHNldGNkciBsIChjb25zIChjb25zIG1haWwgKGxpc3QgKGNvbnMgJ25hbWUgbmFtZSkgKGNvbnMg J3N0YXQgIkZMTiIpKSkgKGNkciBsKSkpKSkpKSkKCihkZWZ1biBtc24tcGFyc2Utbm90aWZpY2F0 aW9uLW1lc3NhZ2UgKHN0cmluZykKICAobGV0KiAoKG1zZyAoc3BsaXQtc3RyaW5nIHN0cmluZyAi XG5cbiIpKQoJIChoZWFkIChjYXIgbXNnKSkKCSAoYm9keSAoYXBwbHkgJ2NvbmNhdCAoY2RyIG1z ZykpKSkKICAgIChzZXQtYnVmZmVyICptc24tYnVmZmVyKikKICAgIChjb25kCiAgICAgKChlcXVh bCBib2R5ICIiKQogICAgICAobXNuLXJlZHJhdyAobGFtYmRhICgpIChtc24taW5zZXJ0LXdpdGgt ZmFjZSAnYm9sZCAoY29uY2F0ICJbSG90bWFpbF06IExPR0lOIE9LXG4iKSkpKSkKICAgICAoKD4g KGxlbmd0aCBib2R5KSAxMCkKICAgICAgKGNvbmQKICAgICAgICgoc3RyaW5nLW1hdGNoICJeSW5i b3gtVW5yZWFkOiBcXChbMC05XStcXClcbkZvbGRlcnMtVW5yZWFkOiBcXChbMC05XStcXCkiIGJv ZHkpCgkobGV0ICgobmV3IChzdWJzdHJpbmcgYm9keSAobWF0Y2gtYmVnaW5uaW5nIDEpIChtYXRj aC1lbmQgMSkpKQoJICAgICAgKHVucmVhZCAoc3Vic3RyaW5nIGJvZHkgKG1hdGNoLWJlZ2lubmlu ZyAyKSAobWF0Y2gtZW5kIDIpKSkpCgkgIChtc24tcmVkcmF3CgkgICAobGFtYmRhICgpCgkgICAg IChtc24taW5zZXJ0LXdpdGgtZmFjZQoJICAgICAgJ2JvbGQKCSAgICAgIChjb25jYXQgIltIb3Rt YWlsXTpcbiIKCQkgICAgICAibmV3IG1haWw6ICIgbmV3ICJcbiIKCQkgICAgICAidW5yZWFkIG1h aWw6ICIgbmV3ICJcbiIpKSkpKSkKICAgICAgICh0IChtc24tcmVkcmF3IChsYW1iZGEgKCkgKG1z bi1pbnNlcnQtd2l0aC1mYWNlICdib2xkIChjb25jYXQgIltIb3RtYWlsXTpcbiIgYm9keSAiXG4i KSkpKSkpKSkpKQoKKGRlZnVuIG1zbi1zZXQtY29udGFjdC1saXN0IChtYWlsIHN0YXQgbmFtZSkK ICAobGV0KiAoKEZMIChhc3NvYyAnRkwgKm1zbi1jb250YWN0LWxpc3QqKSkKCSAobmFtZSAobXNu LXVybC1kZWNvZGUtc3RyaW5nIG5hbWUpKQoJIChtIChhc3NvYyBtYWlsIChjZHIgRkwpKSkpCiAg ICAoaWYgKG51bGwgbSkKCShzZXRjZHIgRkwgKGNvbnMgKGNvbnMgbWFpbCAobGlzdCAoY29ucyAn c3RhdCBzdGF0KSAoY29ucyAnbmFtZSBuYW1lKSkpIChjZHIgRkwpKSkKICAgICAgKHNldGNkciAo YXNzb2MgJ25hbWUgKGNkciBtKSkgbmFtZSkKICAgICAgKHNldGNkciAoYXNzb2MgJ3N0YXQgKGNk ciBtKSkgc3RhdCkpKSkKCihkZWZ1biBtc24tY2hhbGxlbmdlLWF1dGggKHNlcnZlciBzdHJpbmcp CiAgKG1zbi1wcm9jLXNlbmQgc2VydmVyCgkJIChjb25jYXQgIlFSWSAlcyBtc21zZ3NAbXNubXNn ci5jb20gMzJcbiIKCQkJIChtc24tbWQ1LWRpZ2VzdAoJCQkgICAgKGNvbmNhdCAobnRoIDIgKHNw bGl0LXN0cmluZyBzdHJpbmcgIlsgXG5dIikpCgkJCQkgICAgIlExUDdXMkU0SjlSOFUzUzUiKSkp KSkKCihkZWZ1biBtc24tcm5nIChzdHJpbmcpCiAgKGxldCogKChsc3QgKHNwbGl0LXN0cmluZyBz dHJpbmcgIlsgXG5dIikpCgkgKGFkZHJlc3MgKHNwbGl0LXN0cmluZyAobnRoIDIgbHN0KSAiOiIp KQoJIChhZGRyIChudGggMCBhZGRyZXNzKSkKCSAocG9ydCAobnRoIDEgYWRkcmVzcykpCgkgKHNl c3Npb24taWQgKG50aCAxIGxzdCkpCgkgKHNlY3VyaXR5LXN0cmluZyAobnRoIDQgbHN0KSkpCiAg ICAobXNuLWFuc3dlciBhZGRyIHBvcnQgc2Vzc2lvbi1pZCBzZWN1cml0eS1zdHJpbmcKCQkobGFt YmRhICgpCgkJICAobXNuLXByb2Mtc2VuZCAoY2RyIHNlcnZlcikKCQkJCSAoY29uY2F0ICJBTlMg JXMgIiAoY2RyIChhc3NvYyAnbWFpbCAqbXNuLXVzZXItYWNjb3VudCopKQoJCQkJCSAiICIgc2Vj dXJpdHktc3RyaW5nICIgIiBzZXNzaW9uLWlkICJcbiIpKSkpKSkKCihkZWZ1biBtc24tbm90aWZp Y2F0aW9uLXVzciAoc3RyaW5nKQogIChsZXQqICgobHN0IChzcGxpdC1zdHJpbmcgc3RyaW5nICJb IFxuXSIpKSkKICAgIChjb25kICgoc3RyaW5nLWVxdWFsIChudGggMyBsc3QpICJTIikKCSAgICht c24tcHJvYy1zZW5kCgkgICAgKm1zbi1ub3RpZmljYXRpb24qCgkgICAgKGNvbmNhdCAiVVNSICVz IE1ENSBTICIKCQkgICAgKG1zbi1tZDUtZGlnZXN0IChjb25jYXQgKG50aCA0IGxzdCkKCQkJCQkg ICAgKGNkciAoYXNzb2MgJ3Bhc3MgKm1zbi11c2VyLWFjY291bnQqKSkpKQoJCSAgICAiXG4iKSkK CSAgIChzZXRjZHIgKGFzc29jICdwYXNzICptc24tdXNlci1hY2NvdW50KikgbmlsKSkKCSAgKChz dHJpbmctZXF1YWwgKG50aCAyIGxzdCkgIk9LIikKCSAgIChsZXQqICgobHN0IChzcGxpdC1zdHJp bmcgc3RyaW5nICIgIikpKQoJICAgICAoc2V0Y2RyIChhc3NvYyAnbWFpbCAqbXNuLXVzZXItYWNj b3VudCopIChudGggMyBsc3QpKQoJICAgICAoc2V0Y2RyIChhc3NvYyAnbmFtZSAqbXNuLXVzZXIt YWNjb3VudCopCgkJICAgICAobXNuLXVybC1kZWNvZGUtc3RyaW5nIChudGggNCBsc3QpKSkKCSAg ICAgKG1zbi1zaG93LWNvbW1hbmQgbmlsICJMT0dJTiBPSyIpCgkgICAgIChtZXNzYWdlICJMT0dJ TiBPSyIpKSkpKSkKCihkZWZ1biBtc24teGZyIChzdHJpbmcpCiAgKGxldCogKChsc3QgKHNwbGl0 LXN0cmluZyBzdHJpbmcgIlsgXG5dIikpCgkgKHR5cGUgKG50aCAyIGxzdCkpCgkgKGFkZHJlc3Mg KHNwbGl0LXN0cmluZyAobnRoIDMgbHN0KSAiOiIpKQoJIChhZGRyIChudGggMCBhZGRyZXNzKSkK CSAocG9ydCAobnRoIDEgYWRkcmVzcykpKQogICAgKGNvbmQgKChzdHJpbmctZXF1YWwgdHlwZSAi TlMiKQoJICAgKHNldHEgKm1zbi1ub3RpZmljYXRpb24qCgkJIChvcGVuLW5ldHdvcmstc3RyZWFt ICJOb3RpZmljYXRpb24gU2VydmVyIgoJCQkJICAgICAgKm1zbi1ub3RpZmljYXRpb24tYnVmZmVy KiBhZGRyIChzdHJpbmctdG8taW50IHBvcnQpKSkKCSAgIChzZXQtcHJvY2Vzcy1jb2Rpbmctc3lz dGVtICptc24tbm90aWZpY2F0aW9uKiAndXRmLTgtZG9zICd1dGYtOC1kb3MpCgkgICAoc2V0LXBy b2Nlc3MtZmlsdGVyICptc24tbm90aWZpY2F0aW9uKiAnbXNuLW5vdGlmaWNhdGlvbi1maWx0ZXIp CgkgICAobXNuLWxvZ2luICptc24tbm90aWZpY2F0aW9uKikpCgkgICgoc3RyaW5nLWVxdWFsIHR5 cGUgIlNCIikKCSAgIChsZXQgKChhdXRoIChudGggNCBsc3QpKQoJCSAoc2Vzc2lvbi1pZCAobnRo IDEgbHN0KSkKCQkgKHNlY3VyaXR5LXN0cmluZyAobnRoIDUgbHN0KSkpCgkgICAgIChtc24tYW5z d2VyIGFkZHIgcG9ydCBzZXNzaW9uLWlkIHNlY3VyaXR5LXN0cmluZwoJCQkgKGxhbWJkYSAoKQoJ CQkgICAobXNuLXByb2Mtc2VuZCAoY2RyIHNlcnZlcikKCQkJCQkgIChjb25jYXQgIlVTUiAlcyAi IChjZHIgKGFzc29jICdtYWlsICptc24tdXNlci1hY2NvdW50KikpCgkJCQkJCSAgIiAiIHNlY3Vy aXR5LXN0cmluZyAiXG4iKSkpKSkpKSkpCgooZGVmdW4gbXNuLWFuc3dlciAoYWRkIHBvcnQgc2Vz c2lvbi1pZCBzZWN1cml0eS1zdHJpbmcgZnVuY3Rpb24pCiAgKHNldHEgaWQgKGxldCogKChhZGRy ZXNzIChjb25jYXQgYWRkICI6IiBwb3J0KSkKCQkgIChmb3VuZCAocmFzc29jIGFkZHJlc3MgKm1z bi1pZC1hbmQtYWRkcmVzcyopKSkKCSAgICAgKGlmIGZvdW5kCgkJIChjYXIgZm91bmQpCgkgICAg ICAgKHNldHEgKm1zbi1zd2l0Y2hib2FyZC1pZCogKCsgKm1zbi1zd2l0Y2hib2FyZC1pZCogMSkp CgkgICAgICAgKHNldHEgKm1zbi1pZC1hbmQtYWRkcmVzcyogKGNvbnMgKGNvbnMgKm1zbi1zd2l0 Y2hib2FyZC1pZCogYWRkcmVzcykgKm1zbi1pZC1hbmQtYWRkcmVzcyopKQoJICAgICAgICptc24t c3dpdGNoYm9hcmQtaWQqKSkpCiAgKGxldCAoKHNlcnZlciAoYXNzb2MgaWQgKm1zbi1zd2l0Y2hi b2FyZHMqKSkpCiAgICAod2hlbiAobnVsbCBzZXJ2ZXIpCiAgICAgIChzZXRxICptc24tc3dpdGNo Ym9hcmRzKiAoY29ucyAoY29weS10cmVlIGAoICxpZCBuaWwpKSAqbXNuLXN3aXRjaGJvYXJkcyop KQogICAgICAoc2V0cSBzZXJ2ZXIgKGFzc29jIGlkICptc24tc3dpdGNoYm9hcmRzKikpKQogICAg KHNldGNkciBzZXJ2ZXIKCSAgICAob3Blbi1uZXR3b3JrLXN0cmVhbSAoY29uY2F0ICJTd2l0Y2gg Qm9hcmQgWyIgKGZvcm1hdCAiJWQiIGlkKSAiXSIpCgkJCQkgKGNvbmNhdCAiIFN3aXRjaGJvYXJk IFsiIChmb3JtYXQgIiVkIiBpZCkgIl0iKQoJCQkJIGFkZHIgKHN0cmluZy10by1pbnQgcG9ydCkp KQogICAgKHNldC1wcm9jZXNzLWNvZGluZy1zeXN0ZW0gKGNkciBzZXJ2ZXIpICd1dGYtOC1kb3Mg J3V0Zi04LWRvcykKICAgIChzZXQtcHJvY2Vzcy1maWx0ZXIgKGNkciBzZXJ2ZXIpICdtc24tc3dp dGNoYm9hcmQtZmlsdGVyKQogICAgKHNldC1idWZmZXIgKGdldC1idWZmZXIgKHByb2Nlc3MtYnVm ZmVyIChjZHIgc2VydmVyKSkpKQogICAgKGZ1bmNhbGwgZnVuY3Rpb24pCiAgICAod2hlbiAobnVs bCAqbXNuLWN1cnJlbnQtc2Vzc2lvbiopCiAgICAgIChzZXRxICptc24tY3VycmVudC1zZXNzaW9u KiAoaW50LXRvLXN0cmluZyBpZCkpKQogICAgKG1zbi1yZWRyYXcgbmlsIG5pbCAjJ21zbi1zaG93 LWNvbnRhY3QtbGlzdCkpKQoKKGRlZnVuIG1zbi1ieWUgKHNlc3Npb24gc3RyaW5nKQogIChsZXQq ICgoYnVmIChnZXQtYnVmZmVyIChjb25jYXQgIiBTd2l0Y2hib2FyZCBbIiBzZXNzaW9uICJdIikp KQoJIChtYWlsIChudGggMSAoc3BsaXQtc3RyaW5nIHN0cmluZyAiWyBcbl0iKSkpCgkgKHVzZXIg KGFzc29jIG1haWwgKGNkciAoYXNzb2MgJ0ZMICptc24tY29udGFjdC1saXN0KikpKSkpCiAgICAo bXNuLXNob3ctY29tbWFuZCBzZXNzaW9uIChjb25jYXQgIjwiIHNlc3Npb24gIj4iICIgYnllLi4g IgoJCQkJICAgICAgKGlmIHVzZXIgKGNkciAoYXNzb2MgJ25hbWUgKGNkciB1c2VyKSkpIG1haWwp CgkJCQkgICAgICAiIDwiIG1haWwgIj4iKSkpKQoKKGRlZnVuIG1zbi1lcnJvciAoc3RyaW5nKQog IChsZXQqICgoZXJyb3ItdGFibGUgJygoMjAwIC4gIkVSUl9TWU5UQVhfRVJST1IiKQoJCQkoMjAx IC4gIkVSUl9JTlZBTElEX1BBUkFNRVRFUiIpCgkJCSgyMDUgLiAiRVJSX0lOVkFMSURfVVNFUiIp CgkJCSgyMDYgLiAiRVJSX0ZRRE5fTUlTU0lORyIpCgkJCSgyMDcgLiAiRVJSX0FMUkVBRFlfTE9H SU4iKQoJCQkoMjA4IC4gIkVSUl9JTlZBTElEX1VTRVJOQU1FIikKCQkJKDIwOSAuICJFUlJfSU5W QUxJRF9GUklFTkRMWV9OQU1FIikKCQkJKDIxMCAuICJFUlJfTElTVF9GVUxMIikKCQkJKDIxNSAu ICJFUlJfQUxSRUFEWV9USEVSRSIpCgkJCSgyMTYgLiAiRVJSX05PVF9PTl9MSVNUIikKCQkJKDIx OCAuICJFUlJfQUxSRUFEWV9JTl9USEVfTU9ERSIpCgkJCSgyMTkgLiAiRVJSX0FMUkVBRFlfSU5f T1BQT1NJVEVfTElTVCIpCgkJCSgyODAgLiAiRVJSX1NXSVRDSEJPQVJEX0ZBSUxFRCIpCgkJCSgy ODEgLiAiRVJSX05PVElGWV9YRlJfRkFJTEVEIikKCQkJKDMwMCAuICJFUlJfUkVRVUlSRURfRklF TERTX01JU1NJTkciKQoJCQkoMzAyIC4gIkVSUl9OT1RfTE9HR0VEX0lOIikKCQkJKDUwMCAuICJF UlJfSU5URVJOQUxfU0VSVkVSIikKCQkJKDUwMSAuICJFUlJfREJfU0VSVkVSIikKCQkJKDUxMCAu ICJFUlJfRklMRV9PUEVSQVRJT04iKQoJCQkoNTIwIC4gIkVSUl9NRU1PUllfQUxMT0MiKQoJCQko NjAwIC4gIkVSUl9TRVJWRVJfQlVTWSIpCgkJCSg2MDEgLiAiRVJSX1NFUlZFUl9VTkFWQUlMQUJM RSIpCgkJCSg2MDIgLiAiRVJSX1BFRVJfTlNfRE9XTiIpCgkJCSg2MDMgLiAiRVJSX0RCX0NPTk5F Q1QiKQoJCQkoNjA0IC4gIkVSUl9TRVJWRVJfR09JTkdfRE9XTiIpCgkJCSg3MDcgLiAiRVJSX0NS RUFURV9DT05ORUNUSU9OIikKCQkJKDcxMSAuICJFUlJfQkxPQ0tJTkdfV1JJVEUiKQoJCQkoNzEy IC4gIkVSUl9TRVNTSU9OX09WRVJMT0FEIikKCQkJKDcxMyAuICJFUlJfVVNFUl9UT09fQUNUSVZF IikKCQkJKDcxNCAuICJFUlJfVE9PX01BTllfU0VTU0lPTlMiKQoJCQkoNzE1IC4gIkVSUl9OT1Rf RVhQRUNURUQiKQoJCQkoNzE3IC4gIkVSUl9CQURfRlJJRU5EX0ZJTEUiKQoJCQkoOTExIC4gIkVS Ul9BVVRIRU5USUNBVElPTl9GQUlMRUQiKQoJCQkoOTEzIC4gIkVSUl9OT1RfQUxMT1dFRF9XSEVO X09GRkxJTkUiKQoJCQkoOTIwIC4gIkVSUl9OT1RfQUNDRVBUSU5HX05FV19VU0VSUyIpKSkKCSAo bXNnIChjZHIgKGFzc29jIChzdHJpbmctdG8taW50IChjYXIgKHNwbGl0LXN0cmluZyBzdHJpbmcg IiAiKSkpCgkJCSAgZXJyb3ItdGFibGUpKSkpCiAgICAobXNuLXNob3ctY29tbWFuZCBuaWwgbXNn KSkpCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOzsgICAgICAgICAgICAgICAgICAgICAgICAgIGNv ZGUgZm9yIE1TTkZUUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsKOzs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7CgooZGVmdW4gbXNuLWludml0ZWQgKHNlc3Npb24gbmFtZSBtYWlsIGJvZHkp CiAgKGxldCAoKGxzdCAoc3BsaXQtc3RyaW5nIGJvZHkgIlxuIikpIAoJKGkgYCgoc2Vzc2lvbiAu ICxzZXNzaW9uKSkpCgkoY29va2llIG5pbCkpCiAgICAoZG9saXN0IChlIChtYXBjYXIgIydzcGxp dC1zdHJpbmcgbHN0KSkKICAgICAgKGNvbmQKICAgICAgIDs7IHJlY2VpdmluZzogMQogICAgICAg KChzdHJpbmctZXF1YWwgKGNhciBlKSAiQXBwbGljYXRpb24tTmFtZToiKQoJKHNldHEgaSAoY29u cyAoY29ucyAnYXBwbGljYXRpb24gKGNhZHIgZSkpIGkpKSkKICAgICAgICgoc3RyaW5nLWVxdWFs IChjYXIgZSkiQXBwbGljYXRpb24tR1VJRDoiKQoJKHNldHEgaSAoY29ucyAoY29ucyAnZ3VpZCAo Y2FkciBlKSkgaSkpKQogICAgICAgKChzdHJpbmctZXF1YWwgKGNhciBlKSJJbnZpdGF0aW9uLUNv bW1hbmQ6IikKCShzZXRxIGkgKGNvbnMgKGNvbnMgJ2NvbW1hbmQgKGNhZHIgZSkpIGkpKSkKICAg ICAgICgoc3RyaW5nLWVxdWFsIChjYXIgZSkiSW52aXRhdGlvbi1Db29raWU6IikKCShzZXRxIGkg KGNvbnMgKGNvbnMgJ2Nvb2tpZSAoY2FkciBlKSkgaSkpCgkoc2V0cSBjb29raWUgKGNhZHIgZSkp KQogICAgICAgKChzdHJpbmctZXF1YWwgKGNhciBlKSJBcHBsaWNhdGlvbi1GaWxlOiIpCgkoc2V0 cSBpIChjb25zIChjb25zICdmaWxlbmFtZSAoY2FkciBlKSkgaSkpKQogICAgICAgKChzdHJpbmct ZXF1YWwgKGNhciBlKSJBcHBsaWNhdGlvbi1GaWxlU2l6ZToiKQoJKHNldHEgaSAoY29ucyAoY29u cyAnZmlsZXNpemUgKGNhZHIgZSkpIGkpKSkKICAgICAgIDs7IHJlY2VpdmluZzogMgogICAgICAg KChzdHJpbmctZXF1YWwgKGNhciBlKSJJUC1BZGRyZXNzOiIpCgkoc2V0cSBpIChjb25zIChjb25z ICdpcCAoY2FkciBlKSkgaSkpKQogICAgICAgKChzdHJpbmctZXF1YWwgKGNhciBlKSJQb3J0OiIp Cgkoc2V0cSBpIChjb25zIChjb25zICdwb3J0IChjYWRyIGUpKSBpKSkpCiAgICAgICAoKHN0cmlu Zy1lcXVhbCAoY2FyIGUpIkF1dGhDb29raWU6IikKCShzZXRxIGkgKGNvbnMgKGNvbnMgJ2F1dGgg KGNhZHIgZSkpIGkpKSkKICAgICAgIDs7IHNlbmRpbmcKICAgICAgICgoc3RyaW5nLWVxdWFsIChj YXIgZSkiQ2FuY2VsLUNvZGU6IikKCShzZXRxIGkgKGNvbnMgKGNvbnMgJ2F1dGggKGNhZHIgZSkp IGkpKSkKICAgICAgICgoc3RyaW5nLWVxdWFsIChjYXIgZSkiUmVxdWVzdC1EYXRhOiIpCgkoc2V0 cSBpIChjb25zIChjb25zICdhdXRoIChjYWRyIGUpKSBpKSkpKSkKICAgIChjb25kCiAgICAgKChh bmQgKHN0cmluZy1lcXVhbCAoY2RyIChhc3NvYyAnY29tbWFuZCBpKSkgIkFDQ0VQVCIpCgkgICAo bm90IChudWxsICptc24tc2VuZGluZy1maWxlKikpKQogICAgICAobXNuZnRwLXNlbmQgaSkpCiAg ICAgKChzdHJpbmctZXF1YWwgKGNkciAoYXNzb2MgJ2NvbW1hbmQgaSkpICJBQ0NFUFQiKQogICAg ICAobGV0ICgoaXAgKGNkciAoYXNzb2MgJ2lwIGkpKSkKCSAgICAocG9ydCAoY2RyIChhc3NvYyAn cG9ydCBpKSkpCgkgICAgKGF1dGggKGNkciAoYXNzb2MgJ2F1dGggaSkpKSkKCShtc25mdHAtcmVj diBpcCBwb3J0IGF1dGgpKSkKICAgICAoKHN0cmluZy1lcXVhbCAoY2RyIChhc3NvYyAnY29tbWFu ZCBpKSkgIkNBTkNFTCIpCiAgICAgIChzZXRxICptc24tcmVjZWl2ZS1maWxlKiAoZGVsZXRlIChh c3NvYyBjb29raWUgICptc24tcmVjZWl2ZS1maWxlKikKCQkJCSAgICAgICAqbXNuLXJlY2VpdmUt ZmlsZSopKQogICAgICAobXNuLXJlZHJhdwogICAgICAgKGxhbWJkYSAoKQoJIChtc24taW5zZXJ0 LXdpdGgtZmFjZQoJICAnbXNuLXNlc3Npb24taGVhZGVyLWZhY2UKCSAgKGNvbmNhdCAiPCIgc2Vz c2lvbiAiPiAiIG5hbWUgIiA8IiBtYWlsICI+ICIKCQkgICJjYW5jZWxsZWQgdGhlIHRyYW5zZmVy XG4iKSkpKSkKICAgICAoKHN0cmluZy1lcXVhbCAoY2RyIChhc3NvYyAnY29tbWFuZCBpKSkgIklO VklURSIpCiAgICAgIChzZXRxICptc24tcmVjZWl2ZS1maWxlKiAoY29ucyAoY29ucyBjb29raWUg aSkgKm1zbi1yZWNlaXZlLWZpbGUqKSkKICAgICAgKG1zbi1yZWRyYXcKICAgICAgIChsYW1iZGEg KCkKCSAobXNuLWluc2VydC13aXRoLWZhY2UKCSAgJ21zbi1zZXNzaW9uLWhlYWRlci1mYWNlCgkg IChjb25jYXQgIjwiIHNlc3Npb24gIj4gIiBuYW1lICIgPCIgbWFpbCAiPiAiCgkJICAid2FudHMg dG8gc2VuZCBhIGZpbGVcbiIpKQoJIChtc24taW5zZXJ0LXdpdGgtZmFjZSAKCSAgJ21zbi1zZXNz aW9uLWJvZHktZmFjZQoJICAoY29uY2F0CgkgICAiZmlsZSBuYW1lOiAiIChjZHIgKGFzc29jICdm aWxlbmFtZSBpKSkgIlxuIgoJICAgImZpbGUgc2l6ZTogIiAoY2RyIChhc3NvYyAnZmlsZXNpemUg aSkpICJcbiIpKSkpKSkpKQoKKGRlZnVuIG1zbmZ0cC1zZW50aW5lbCAocHJvY2VzcyBldmVudCkK ICAod2hlbiBldmVudAogICAgKGxldCAoKHN0YXR1cyAocHJvY2Vzcy1leGl0LXN0YXR1cyBwcm9j ZXNzKSkpCiAgICAgIChjb25kCiAgICAgICAoKD0gc3RhdHVzIDApCgkoc2V0cSAqbXNuLXNlbmRp bmctZmlsZSogbmlsKQoJKG1zbi1zaG93LWNvbW1hbmQgbmlsICJ0aGUgZmlsZSB3YXMgY29waWVk IHN1Y2Nlc3NmdWxseSIpKQogICAgICAgKCg9IHN0YXR1cyAxKQoJKHNldHEgKm1zbi1zZW5kaW5n LWZpbGUqIG5pbCkKCShtc24tc2hvdy1jb21tYW5kIG5pbCAidGhlIGZpbGUgY291bGQgbm90IGJl IGNvcGllZCIpKSkpKSkKCihkZWZ1biBtc25mdHAtc2VuZCAoZGF0YSkKICAobGV0ICgobWFpbCAi UyIpCgkoc2Vzc2lvbiAoY2RyIChhc3NvYyAnc2Vzc2lvbiBkYXRhKSkpCgkoY29va2llIChjZHIg KGFzc29jICdjb29raWUgZGF0YSkpKQoJKGF1dGggKGludC10by1zdHJpbmcgKHJhbmRvbSAoKiAy NTYgMjU2KSkpKQoJKGlwIChtc24tZ2V0LWxvY2FsLWlwLWFkZHJlc3MpKQoJKHBvcnQgIjY4OTEi KQoJKGZpbGUgKGNkciAoYXNzb2MgJ2ZpbGVuYW1lICptc24tc2VuZGluZy1maWxlKikpKSkKICAg ICh3aGVuIChub3QgKHN0cmluZy1lcXVhbCBpcCAidW5rbm93biIpKQogICAgICAoc2V0cSAqbXNu ZnRwKgoJICAgIChzdGFydC1wcm9jZXNzCgkgICAgICJNU05GVFAiICIgTVNORlRQIgoJICAgICAo ZXhwYW5kLWZpbGUtbmFtZSAqbXNuZnRwLWNvbW1hbmQqKQoJICAgICBtYWlsIGF1dGggaXAgcG9y dCBmaWxlKSkKICAgICAgKHNldC1wcm9jZXNzLXNlbnRpbmVsICptc25mdHAqICMnbXNuZnRwLXNl bnRpbmVsKQogICAgICAoc2F2ZS1leGN1cnNpb24KCShtc24tcmVkcmF3CgkgbmlsCgkgKGxhbWJk YSAoKQoJICAgKGxldCogKChpbmhpYml0LXJlYWQtb25seSB0KQoJCSAgKGJvZHkgKGNvbmNhdAoJ CQkgIkludml0YXRpb24tQ29tbWFuZDogQUNDRVBUXG4iCgkJCSAiSW52aXRhdGlvbi1Db29raWU6 ICIgY29va2llICJcbiIKCQkJICJJUC1BZGRyZXNzOiAiIGlwICJcbiIKCQkJICJQb3J0OiAiIHBv cnQgIlxuIgoJCQkgIkF1dGhDb29raWU6ICIgYXV0aCAiXG4iCgkJCSAiTGF1bmNoLUFwcGxpY2F0 aW9uOiBGQUxTRVxuIgoJCQkgIlJlcXVlc3QtRGF0YTogSVAtQWRkcmVzczpcbiIpKQoJCSAgKGhl YWQgIk1JTUUtVmVyc2lvbjogMS4wXG5Db250ZW50LVR5cGU6IHRleHQveC1tc21zZ3NpbnZpdGU7 IGNoYXJzZXQ9VVRGLThcblxuIikKCQkgIChtc2cgKGNvbmNhdCBoZWFkIGJvZHkpKQoJCSAgKHNp emUgKGludC10by1zdHJpbmcgKGxlbmd0aCAoZW5jb2RlLWNvZGluZy1zdHJpbmcgbXNnICd1dGYt OC1kb3MpKSkpCgkJICAobXNnIChjb25jYXQgKG1ha2UtY29tbWFuZCAiTVNHICVzIFUgIikgc2l6 ZSAiXG4iIG1zZykpKQoJICAgICAobGV0KiAoKHNlc3Npb24gKGNkciAoYXNzb2MgKHN0cmluZy10 by1pbnQgc2Vzc2lvbikgKm1zbi1zd2l0Y2hib2FyZHMqKSkpCgkJICAgICgqbXNuLW91dHB1dC1s b2cqIChidWZmZXItbmFtZSAocHJvY2Vzcy1idWZmZXIgc2Vzc2lvbikpKSkKCSAgICAgICAoc2V0 LWJ1ZmZlciAocHJvY2Vzcy1idWZmZXIgc2Vzc2lvbikpCgkgICAgICAgKGdvdG8tY2hhciAocG9p bnQtbWF4KSkKCSAgICAgICAobXNuLXByb2Mtc2VuZCBzZXNzaW9uIG1zZykpKSkpKSkpKQoKKGRl ZnVuIG1zbmZ0cC1yZWN2IChpcCBwb3J0IGF1dGgpCiAgKHdoZW4gKG51bGwgKGZpbGUtZGlyZWN0 b3J5LXAgKm1zbi1yZWNlaXZlZC1maWxlLWRpcmVjdG9yeSopKQogICAgKG1ha2UtZGlyZWN0b3J5 ICptc24tcmVjZWl2ZWQtZmlsZS1kaXJlY3RvcnkqKSkKICAoc2V0cSAqbXNuZnRwKgoJKHN0YXJ0 LXByb2Nlc3MKCSAiTVNORlRQIiAiIE1TTkZUUCIKCSAoZXhwYW5kLWZpbGUtbmFtZSAqbXNuZnRw LWNvbW1hbmQqKQoJIChjZHIgKGFzc29jICdtYWlsICptc24tdXNlci1hY2NvdW50KikpCgkgYXV0 aCBpcCBwb3J0CgkgKGV4cGFuZC1maWxlLW5hbWUKCSAgKGNkciAoYXNzb2MgJ2ZpbGVuYW1lIChj ZHIgKm1zbi1yZWNlaXZpbmctZmlsZSopKSkKCSAgKm1zbi1yZWNlaXZlZC1maWxlLWRpcmVjdG9y eSopKSkKICAoc2V0LXByb2Nlc3Mtc2VudGluZWwgKm1zbmZ0cCogIydtc25mdHAtc2VudGluZWwp KQoKOzsgKGRlZnVuIG1zbmZ0cC1yZWN2IChpcCBwb3J0IGF1dGgpCjs7ICAgKHNldHEgKm1zbmZ0 cCoKOzsgCShvcGVuLW5ldHdvcmstc3RyZWFtCjs7IAkgIk1TTkZUUCIgIiBNU05GVFAiIGlwIChz dHJpbmctdG8taW50IHBvcnQpKSkKOzsgICAoc2V0LXByb2Nlc3MtY29kaW5nLXN5c3RlbSAqbXNu ZnRwKiAndXRmLTgtZG9zICd1dGYtOC1kb3MpCjs7ICAgKHNldC1wcm9jZXNzLWZpbHRlciAqbXNu ZnRwKiAnbXNuZnRwLWZpbHRlcikKOzsgICAoc2V0LWJ1ZmZlciAoZ2V0LWJ1ZmZlciAocHJvY2Vz cy1idWZmZXIgKm1zbmZ0cCopKSkKOzsgICAoc2V0LWJ1ZmZlci1maWxlLWNvZGluZy1zeXN0ZW0g J2JpbmFyeSkKOzsgICAoc2V0cSAqbXNuZnRwLWF1dGgqIGF1dGgpCjs7ICAgKHByb2Nlc3Mtc2Vu ZC1zdHJpbmcgKm1zbmZ0cCogIlZFUiBNU05GVFBcbiIpKQoKOzsgKGRlZnVuIG1zbmZ0cC1pbnNl cnQgKGRhdGEpCjs7ICAgKGxldCogKChzdGF0IChhcmVmIHN0cmluZyAwKSkKOzsgCSAobG93IChh cmVmIHN0cmluZyAxKSkKOzsgCSAoaGlnaCAoYXJlZiBzdHJpbmcgMikpCjs7IAkgKGRhdGEgKHN1 YnN0cmluZyBzdHJpbmcgMykpCjs7IAkgOzsoc2l6ZSAobGVuZ3RoIGRhdGEpKSkKOzsgCSAoc2l6 ZSAoKyAoKiBoaWdoIDI1NikgbG93KSkpCjs7ICAgICAoaW5zZXJ0IGRhdGEpCjs7ICAgICAoc2V0 cSAqbXNuZnRwLXJlc3QqICgtICptc25mdHAtcmVzdCogc2l6ZSkpCjs7ICAgICAod2hlbiAoZXEg c3RhdCAxKQo7OyAgICAgICAoZGVsZXRlLXByb2Nlc3MgKm1zbmZ0cCopCjs7ICAgICAgIChzZXRx ICptc25mdHAqIG5pbCkpCjs7ICAgICAod2hlbiAoPCAqbXNuZnRwLXJlc3QqIDEpCjs7ICAgICAg IChzZXQtcHJvY2Vzcy1jb2Rpbmctc3lzdGVtICptc25mdHAqICd1dGYtOC1kb3MgJ3V0Zi04LWRv cykKOzsgICAgICAgKHByb2Nlc3Mtc2VuZC1zdHJpbmcgKm1zbmZ0cCogIkJZRSAxNjc3Nzk4OVxu IikKOzsgICAgICAgKGRlbGV0ZS1wcm9jZXNzICptc25mdHAqKQo7OyAgICAgICAobXNuLXNob3ct Y29tbWFuZCBuaWwgInRoZSBmaWxlIHdhcyB0cmFuc2ZlcnJlZCAocGxlYXNlIHNhdmUgaXTvvIki KQo7OyAgICAgICAoc2V0cSAqbXNuZnRwKiBuaWwpKSkpCgo7OyAoZGVmdW4gbXNuZnRwLWZpbHRl ciAocHJvYyBzdHJpbmcpCjs7ICAgKGxldCAoKG9sZC1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkp Cjs7ICAgICAoc2F2ZS1leGN1cnNpb24KOzsgICAgICAgKGxldCAoKCptc24tb3V0cHV0LWxvZyog KGJ1ZmZlci1uYW1lIChwcm9jZXNzLWJ1ZmZlciBwcm9jKSkpCjs7IAkgICAgKGZpbmFsaXplIG5p bCkpCjs7IAkoc2V0LWJ1ZmZlciAocHJvY2Vzcy1idWZmZXIgKm1zbmZ0cCopKQo7OyAJKGlmIChu dWxsICptc25mdHAtYXV0aCopCjs7IAkgICAgKG1zbmZ0cC1pbnNlcnQgc3RyaW5nKQo7OyAJICAo Y29uZAo7OyAJICAgKChzdHJpbmctbWF0Y2ggIl5WRVIiIHN0cmluZykKOzsgCSAgICAoc2V0cSBm aW5hbGl6ZSAKOzsgCQkgIChsYW1iZGEgKCkKOzsgCQkgICAgKHByb2Nlc3Mtc2VuZC1zdHJpbmcK OzsgCQkgICAgICptc25mdHAqCjs7IAkJICAgICAoY29uY2F0ICJVU1IgIgo7OyAJCQkgICAgIChj ZHIgKGFzc29jICdtYWlsICptc24tdXNlci1hY2NvdW50KikpICIgIgo7OyAJCQkgICAgICptc25m dHAtYXV0aCogIlxuIikpKSkpCjs7IAkgICAoKHN0cmluZy1tYXRjaCAiXkZJTCIgc3RyaW5nKQo7 OyAJICAgIChzZXRxICptc25mdHAtYXV0aCogbmlsKQo7OyAJICAgIChzZXRxICptc25mdHAtcmVz dCogCjs7IAkJICAoc3RyaW5nLXRvLWludCAoY2FkciAoc3BsaXQtc3RyaW5nIHN0cmluZyAiWyBc bl0iKSkpKQo7OyAJICAgIChzZXRxIGZpbmFsaXplIAo7OyAJCSAgKGxhbWJkYSAoKQo7OyAJCSAg ICAocHJvY2Vzcy1zZW5kLXN0cmluZyAqbXNuZnRwKiAiVEZSXG4iKQo7OyAJCSAgICAoc2V0LXBy b2Nlc3MtY29kaW5nLXN5c3RlbSAqbXNuZnRwKiAnYmluYXJ5ICdiaW5hcnkpCjs7IAkJICAgIChz ZXQtYnVmZmVyLWZpbGUtY29kaW5nLXN5c3RlbSAnYmluYXJ5KSkpKSkKOzsgCSAgKHdoZW4gZmlu YWxpemUKOzsgCSAgICAoZnVuY2FsbCBmaW5hbGl6ZSkpKSkpKSkKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Owo7OyAgICAgICAgICAgICAgcHJvY2Vzc2luZyBtZXNzYWdlcyBmcm9tIHRoZSBzZXJ2ZXIg ICAgICAgICAgICAgICAgICAgIDs7Cjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwoKKGRlZnVuIG1zbi1k aXNwYXRjaC1maWx0ZXIgKHByb2Mgc3RyaW5nKQogIChsZXQgKChvbGQtYnVmZmVyIChjdXJyZW50 LWJ1ZmZlcikpKQogICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgIChsZXQgKCgqbXNuLW91dHB1dC1s b2cqICptc24tZGlzcGF0Y2gtYnVmZmVyKikgKGZpbmFsaXplIG5pbCkpCgkoc2V0LWJ1ZmZlciAo cHJvY2Vzcy1idWZmZXIgcHJvYykpCgkobXNuLXJlY29yZC1zZXZlci1tZXNzYWdlIHN0cmluZykK CShjb25kCgkgKChzdHJpbmctbWF0Y2ggIl5WRVIiIHN0cmluZykKCSAgKHNldHEgZmluYWxpemUg KGxhbWJkYSAoKSAobXNuLXByb2Mtc2VuZCAqbXNuLWRpc3BhdGNoKiAiSU5GICVkXG4iKSkpKQoJ ICgoc3RyaW5nLW1hdGNoICJeSU5GIiBzdHJpbmcpCgkgIChzZXRxIGZpbmFsaXplIChsYW1iZGEg KCkKCQkJICAgKG1zbi1wcm9jLXNlbmQgKm1zbi1kaXNwYXRjaCoKCQkJCQkgIChjb25jYXQgIlVT UiAlZCBNRDUgSSAiIChjZHIgKGFzc29jICdtYWlsICptc24tdXNlci1hY2NvdW50KikpICJcbiIp KSkpKQoJICgoc3RyaW5nLW1hdGNoICJeWEZSIiBzdHJpbmcpCgkgIChtc24teGZyIHN0cmluZykp CgkgKHQgbmlsKSkKCSh3aGVuIGZpbmFsaXplIChmdW5jYWxsIGZpbmFsaXplKSkpKSkpCgooZGVm dW4gbXNuLW5vdGlmaWNhdGlvbi1maWx0ZXIgKHByb2Mgc3RyaW5nKQogIChsZXQgKChvbGQtYnVm ZmVyIChjdXJyZW50LWJ1ZmZlcikpKQogICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgIChsZXQgKCgq bXNuLW91dHB1dC1sb2cqICptc24tbm90aWZpY2F0aW9uLWJ1ZmZlciopIChmaW5hbGl6ZSBuaWwp KQoJKHNldC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2MpKQoJKG1zbi1yZWNvcmQtc2V2ZXIt bWVzc2FnZSBzdHJpbmcpCgkoZG9saXN0IChzdHJpbmcgKG1zbi1tZXNzYWdlLXBhcnNlIHN0cmlu ZykpCgkgIChjb25kCgkgICAoKHN0cmluZy1tYXRjaCAiXklMTiIgc3RyaW5nKQoJICAgIChsZXQq ICgobHN0IChzcGxpdC1zdHJpbmcgc3RyaW5nICJbIFxuXSIpKQoJCSAgIChzdGF0IChudGggMiBs c3QpKQoJCSAgIChtYWlsIChudGggMyBsc3QpKQoJCSAgIChuYW1lIChudGggNCBsc3QpKSkKCSAg ICAgIChtc24tc2V0LWNvbnRhY3QtbGlzdCBtYWlsIHN0YXQgbmFtZSkKCSAgICAgIChtc24tc2hv dy1jb21tYW5kIG5pbCAoY29uY2F0IG5hbWUgIiA8IiBtYWlsICI+IGJlY2FtZSAoIiAobXNuLXN0 YXR1cy1leHBhbmQgc3RhdCkgIikiKSkpKQoJICAgKChzdHJpbmctbWF0Y2ggIl5GTE4iIHN0cmlu ZykKCSAgICAobGV0KiAoKGxzdCAoc3BsaXQtc3RyaW5nIHN0cmluZyAiWyBcbl0iKSkKCQkgICAo bWFpbCAobnRoIDEgbHN0KSkKCQkgICAoc3RhdCAiRkxOIikKCQkgICAobmFtZSAoY2RyIChhc3Nv YyAnbmFtZSAoY2RyIChhc3NvYyBtYWlsIChjZHIgKGFzc29jICdGTCAqbXNuLWNvbnRhY3QtbGlz dCopKSkpKSkpKQoJICAgICAgKG1zbi1zZXQtY29udGFjdC1saXN0IG1haWwgc3RhdCBuYW1lKQoJ ICAgICAgKG1zbi1zaG93LWNvbW1hbmQgbmlsIChjb25jYXQgbmFtZSAiIDwiIG1haWwgIj4gYmVj YW1lICgiIChtc24tc3RhdHVzLWV4cGFuZCBzdGF0KSAiKSIpKSkpCgkgICAoKHN0cmluZy1tYXRj aCAiXk5MTiIgc3RyaW5nKQoJICAgIChsZXQqICgobHN0IChzcGxpdC1zdHJpbmcgc3RyaW5nICJb IFxuXSIpKQoJCSAgIChzdGF0IChudGggMSBsc3QpKQoJCSAgIChtYWlsIChudGggMiBsc3QpKQoJ CSAgIChuYW1lIChudGggMyBsc3QpKSkKCSAgICAgIChtc24tc2V0LWNvbnRhY3QtbGlzdCBtYWls IHN0YXQgbmFtZSkKCSAgICAgIChtc24tc2hvdy1jb21tYW5kIG5pbCAoY29uY2F0IG5hbWUgIiA8 IiBtYWlsICI+IGJlY2FtZSAoIiAobXNuLXN0YXR1cy1leHBhbmQgc3RhdCkgIikiKSkpKQoJICAg KChzdHJpbmctbWF0Y2ggIl5DSEciIHN0cmluZykKCSAgICAobGV0KiAoKGxzdCAoc3BsaXQtc3Ry aW5nIHN0cmluZyAiWyBcbl0iKSkKCQkgICAoc3RhdCAobnRoIDIgbHN0KSkpCgkgICAgICA7OyB3 aGVuIEkgYmVjb21lIE5MTiwgc3RhcnQgdGhlIHRpbWVyIGZvciBJREwKCSAgICAgIDs7ICogdHJh bnNsYXRpb24gbm90ZTogSSB3cm90ZSAnSScgYnV0IGl0IG1pZ2h0IGJlCgkgICAgICA7OyBhbm90 aGVyIGNvbnRhY3QKCSAgICAgICh3aGVuIChhbmQgKm1zbi1leHBlcmltZW50YWwqIChzdHJpbmct ZXF1YWwgc3RhdCAiTkxOIikgKG51bGwgKm1zbi1pZGxlLXRpbWVyKikpCgkJKHNldHEgKm1zbi1p ZGxlLXRpbWVyKgoJCSAgICAgIChydW4td2l0aC1pZGxlLXRpbWVyICgqIDYwIDUpIG5pbAoJCQkJ CSAgIChsYW1iZGEgKCkKCQkJCQkgICAgICh3aGVuIChhbmQgKm1zbi1ub3RpZmljYXRpb24qCgkJ CQkJCQkoZXEgKHByb2Nlc3Mtc3RhdHVzICptc24tbm90aWZpY2F0aW9uKikgJ29wZW4pKQoJCQkJ CSAgICAgICAobXNuLXByb2Mtc2VuZCAqbXNuLW5vdGlmaWNhdGlvbiogKGNvbmNhdCAiQ0hHICVz IElETFxuIikpKQoJCQkJCSAgICAgKHNldHEgKm1zbi1pZGxlLXRpbWVyKiBuaWwpKSkpKQoJICAg ICAgKHNldGNkciAoYXNzb2MgJ3N0YXQgKm1zbi11c2VyLWFjY291bnQqKSBzdGF0KQoJICAgICAg KG1zbi1yZWRyYXcgbmlsIG5pbCAjJ21zbi1zaG93LWNvbnRhY3QtbGlzdCkpKQoJICAgKChzdHJp bmctbWF0Y2ggIl5NU0ciIHN0cmluZykgKG1zbi1wYXJzZS1ub3RpZmljYXRpb24tbWVzc2FnZSBz dHJpbmcpKQoJICAgKChzdHJpbmctbWF0Y2ggIl5SRUEiIHN0cmluZykKCSAgICAobGV0KiAoKGxz dCAoc3BsaXQtc3RyaW5nIHN0cmluZyAiWyBcbl0iKSkKCQkgICAobWFpbCAobnRoIDMgbHN0KSkK CQkgICAobmFtZSAobXNuLXVybC1kZWNvZGUtc3RyaW5nIChudGggNCBsc3QpKSkpCgkgICAgICAo c2V0Y2RyIChhc3NvYyAnbmFtZSAqbXNuLXVzZXItYWNjb3VudCopIG5hbWUpCgkgICAgICAobXNu LXJlZHJhdykpKQoJICAgKChzdHJpbmctbWF0Y2ggIl5DSEwiIHN0cmluZykgKG1zbi1jaGFsbGVu Z2UtYXV0aCAqbXNuLW5vdGlmaWNhdGlvbiogc3RyaW5nKSkKCSAgICgoc3RyaW5nLW1hdGNoICJe Uk5HIiBzdHJpbmcpIChtc24tcm5nIHN0cmluZykpCgkgICAoKHN0cmluZy1tYXRjaCAiXlVTUiIg c3RyaW5nKSAobXNuLW5vdGlmaWNhdGlvbi11c3Igc3RyaW5nKSkKCSAgICgoc3RyaW5nLW1hdGNo ICJeWEZSIiBzdHJpbmcpIChtc24teGZyIHN0cmluZykpCgkgICAoKHN0cmluZy1tYXRjaCAiXlsw LTldWzAtOV1bMC05XSIgc3RyaW5nKSAobXNuLWVycm9yIHN0cmluZykpCgkgICAoKHN0cmluZy1t YXRjaCAiXk9VVCIgc3RyaW5nKSAobXNuLXNob3ctY29tbWFuZCBuaWwgImNvbm5leGlvbiB3YXMg Y3V0IGJ5IHRoZSBzZXJ2ZXIiKSkKCSAgIDs7IGZvciBjb250YWN0IGxpc3Qgc3luY2hyb25pemF0 aW9uCgkgICAoKHN0cmluZy1tYXRjaCAiXkdUQyIgc3RyaW5nKQoJICAgIChzZXRxIGZpbmFsaXpl IChsYW1iZGEgKCkgKG1zbi1yZWRyYXcgbmlsIG5pbCAjJ21zbi1zaG93LWNvbnRhY3QtbGlzdCkp KSkKCSAgICgoc3RyaW5nLW1hdGNoICJeTFNUIiBzdHJpbmcpIChtc24tbHN0IHN0cmluZykpCgkg ICA7OyB1c2VkIGF0IGxvZ2luIHRpbWUKCSAgICgoc3RyaW5nLW1hdGNoICJeVkVSIiBzdHJpbmcp CgkgICAgKHNldHEgZmluYWxpemUgKGxhbWJkYSAoKSAobXNuLXByb2Mtc2VuZCAqbXNuLW5vdGlm aWNhdGlvbiogIklORiAlZFxuIikpKSkKCSAgICgoc3RyaW5nLW1hdGNoICJeSU5GIiBzdHJpbmcp CgkgICAgKHNldHEgZmluYWxpemUgKGxhbWJkYSAoKQoJCQkgICAgIChtc24tcHJvYy1zZW5kICpt c24tbm90aWZpY2F0aW9uKgoJCQkJCSAgICAoY29uY2F0ICJVU1IgJWQgTUQ1IEkgIgoJCQkJCQkg ICAgKGNkciAoYXNzb2MgJ21haWwgKm1zbi11c2VyLWFjY291bnQqKSkKCQkJCQkJICAgICJcbiIp KSkpKQoJICAgKHQgbmlsKSkpCgkod2hlbiBmaW5hbGl6ZSAoZnVuY2FsbCBmaW5hbGl6ZSkpKSkp KQoKKGRlZnVuIG1zbi1zd2l0Y2hib2FyZC1maWx0ZXIgKHByb2Mgc3RyaW5nKQogIChsZXQgKChv bGQtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpKQogICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgIChs ZXQgKCgqbXNuLW91dHB1dC1sb2cqIChidWZmZXItbmFtZSAocHJvY2Vzcy1idWZmZXIgcHJvYykp KSAoZmluYWxpemUgbmlsKSkKCShzZXQtYnVmZmVyIChwcm9jZXNzLWJ1ZmZlciBwcm9jKSkKCSht c24tcmVjb3JkLXNldmVyLW1lc3NhZ2Ugc3RyaW5nKQoJKGxldCogKChuYW1lIChidWZmZXItbmFt ZSAocHJvY2Vzcy1idWZmZXIgcHJvYykpKQoJICAgICAgIChyZXQgKHN0cmluZy1tYXRjaCAiXFxb XFwoWzAtOV0rXFwpXFxdIiBuYW1lKSkKCSAgICAgICAoc2Vzc2lvbiAoc3Vic3RyaW5nIG5hbWUg KG1hdGNoLWJlZ2lubmluZyAxKSAobWF0Y2gtZW5kIDEpKSkpCgkgIChkb2xpc3QgKHN0cmluZyAo bXNuLW1lc3NhZ2UtcGFyc2Ugc3RyaW5nKSkKCSAgICAoY29uZAoJICAgICAoKHN0cmluZy1tYXRj aCAiXk1TRyIgc3RyaW5nKQoJICAgICAgKHNldHEgZmluYWxpemUKCQkgICAgKGxhbWJkYSAoKQoJ CSAgICAgICh3aGVuIChub3QgKGdldC1idWZmZXItd2luZG93LWxpc3QgKm1zbi1idWZmZXIqKSkK CQkJKHJ1bi1ob29rcyAnbXNuLXN3aXRjaGJvYXJkLW1lc3NhZ2UtaG9vaykpKSkKCSAgICAgICht c24tc2hvdy1tZXNzYWdlIHNlc3Npb24gc3RyaW5nIHQpKQoJICAgICAoKHN0cmluZy1tYXRjaCAi XklMTiIgc3RyaW5nKQoJICAgICAgKGxldCogKChsc3QgKHNwbGl0LXN0cmluZyBzdHJpbmcgIlsg XG5dIikpCgkJICAgICAoc3RhdCAobnRoIDIgbHN0KSkKCQkgICAgIChtYWlsIChudGggMyBsc3Qp KQoJCSAgICAgKG5hbWUgKG50aCA0IGxzdCkpKQoJCShtc24tc2hvdy1jb21tYW5kIHNlc3Npb24g KGNvbmNhdCAiPCIgc2Vzc2lvbiAiPiAiIG5hbWUgIiA8IiBtYWlsICI+IGpvaW5lZCIpKQoJCSht c24tc2V0LWNvbnRhY3QtbGlzdCBtYWlsIHN0YXQgbmFtZSkpKQoJICAgICAoKHN0cmluZy1tYXRj aCAiXklSTyIgc3RyaW5nKQoJICAgICAgKGxldCogKChsc3QgKHNwbGl0LXN0cmluZyBzdHJpbmcg IlsgXG5dIikpCgkJICAgICAobWFpbCAobnRoIDQgbHN0KSkKCQkgICAgIChuYW1lIChudGggNSBs c3QpKSkKCQkobXNuLXNob3ctY29tbWFuZCBzZXNzaW9uIChjb25jYXQgIjwiIHNlc3Npb24gIj4g IiBuYW1lICIgPCIgbWFpbCAiPiBqb2luZWQiKSkKCQkobXNuLXNldC1jb250YWN0LWxpc3QgbWFp bCAiTkxOIiBuYW1lKSkpCgkgICAgICgoc3RyaW5nLW1hdGNoICJeSk9JIiBzdHJpbmcpCgkgICAg ICAobGV0KiAoKGxzdCAoc3BsaXQtc3RyaW5nIHN0cmluZyAiWyBcbl0iKSkKCQkgICAgIChtYWls IChudGggMSBsc3QpKQoJCSAgICAgKG5hbWUgKG50aCAyIGxzdCkpKQoJCShtc24tc2hvdy1jb21t YW5kIHNlc3Npb24gKGNvbmNhdCAiPCIgc2Vzc2lvbiAiPiAiIG5hbWUgIiA8IiBtYWlsICI+IGpv aW5lZCIpKQoJCShtc24tc2V0LWNvbnRhY3QtbGlzdCBtYWlsICJOTE4iIG5hbWUpKSkKCSAgICAg KChzdHJpbmctbWF0Y2ggIl5DSEwiIHN0cmluZykKCSAgICAgIChtc24tY2hhbGxlbmdlLWF1dGgg Km1zbi1ub3RpZmljYXRpb24qIHN0cmluZykpCgkgICAgICgoc3RyaW5nLW1hdGNoICJeQllFIiBz dHJpbmcpCgkgICAgICAobXNuLWJ5ZSBzZXNzaW9uIHN0cmluZykpCgkgICAgICgoc3RyaW5nLW1h dGNoICJeT1VUIiBzdHJpbmcpCgkgICAgICAobXNuLWJ5ZSBzZXNzaW9uIChjb25jYXQgIk9VVCAi IChjZHIgKGFzc29jICdtYWlsICptc24tdXNlci1hY2NvdW50KikpKSkpCgkgICAgICgoc3RyaW5n LW1hdGNoICJeWzAtOV1bMC05XVswLTldIiBzdHJpbmcpIChtc24tZXJyb3Igc3RyaW5nKSkKCSAg ICAgKHQgbmlsKSkpKQoJKHdoZW4gZmluYWxpemUgKGZ1bmNhbGwgZmluYWxpemUpKSkpKSkKCjs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRDUg RGlnZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsKOzs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Cgo7OyBSZWZlcmVuY2U6IHJmYzEzMjEgVGhlIE1ENSBNZXNzYWdlLURpZ2VzdCBBbGdv cml0aG0KCjs7IENvbXB1dGUgJ1QnIGJlZm9yZWhhbmTvvI5Vc2UgQ01VQ0wgMS44ZAo7Oyhkbyog KChpIDAgKCsgaSAxLjBkMCkpCjs7ICAgICAgKHMgKCogNDI5NDk2NzI5NiAoYWJzIChzaW4gaSkp KSAoKiA0Mjk0OTY3Mjk2IChhYnMgKHNpbiBpKSkpKQo7OyAgICAgIChyIChmbG9vciBzKSAoZmxv b3IgcykpCjs7ICAgICAgKHJldAo7OyAgICAgICAoY29ucyAoY29ucyAoZmxvb3IgKC8gciA2NTUz NikpIChmbG9vciAobG9nYW5kIHIgNjU1MzUpKSkgbmlsKQo7OyAgICAgICAoY29ucyAoY29ucyAo Zmxvb3IgKC8gciA2NTUzNikpIChmbG9vciAobG9nYW5kIHIgNjU1MzUpKSkgcmV0KSkpCjs7ICAg ICgoPj0gaSA2NC4wZDApIChucmV2ZXJzZSByZXQpKSkKOzsgKCgwIC4gMCkKOzsgICg1NTE0NiAu IDQyMTA0KSAoNTk1OTEgLiA0NjkzNCkgKDkyNDggLiAyODg5MSkgKDQ5NTk3IC4gNTI5NzQpCjs7 ICAoNjI4NDQgLiA0MDE1KSAoMTgzMTEgLiA1MDczMCkgKDQzMDU2IC4gMTc5MzkpICg2NDgzOCAu IDM4MTQ1KQo7OyAgKDI3MDA4IC4gMzkxMjgpICgzNTY1MiAuIDYzNDA3KSAoNjU1MzUgLiAyMzQ3 MykgKDM1MTY0IC4gNTUyMzApCjs7ICAoMjc1MzYgLiA0Mzg2KSAoNjQ5MjAgLiAyOTA3NSkgKDQy NjE3IC4gMTcyOTQpICgxODg2OCAuIDIwODEpCjs7ICAoNjMwMDYgLiA5NTcwKSAoNDkyMTYgLiA0 NTg4OCkgKDk4MjIgLiAyMzEyMSkgKDU5ODMwIC4gNTExMTQpCjs7ICAoNTQ4MzEgLiA0MTg5KSAo NTgwIC4gNTIwMykgKDU1NDU3IC4gNTkwMDkpICg1OTM0NyAuIDY0NDU2KQo7OyAgKDg2NzMgLiA1 MjcxMCkgKDQ5OTc1IC4gMjAwNikgKDYyNjc3IC4gMzQ2MykgKDE3NzU0IC4gNTM1NykKOzsgICg0 MzQ5MSAuIDU5NjUzKSAoNjQ3NTEgLiA0MTk3NikgKDI2NDc5IC4gNzI5KSAoMzYxMzggLiAxOTU5 NCkKOzsgICg2NTUzMCAuIDE0NjU4KSAoMzQ2NzMgLiA2MzEwNSkgKDI4MDYxIC4gMjQ4NjYpICg2 NDk5NyAuIDE0MzQ4KQo7OyAgKDQyMTc0IC4gNTk5NzIpICgxOTQyMiAuIDUzMTYxKSAoNjMxNjMg LiAxOTI5NikgKDQ4ODMxIC4gNDgyNDApCjs7ICAoMTAzOTUgLiAzMjQ1NCkgKDYwMDY1IC4gMTAy MzQpICg1NDUxMSAuIDEyNDIxKSAoMTE2MCAuIDc0MjkpCjs7ICAoNTU3NjQgLiA1MzMwNSkgKDU5 MDk5IC4gMzkzOTcpICg4MDk4IC4gMzE5OTIpICg1MDM0OCAuIDIyMTE3KQo7OyAgKDYyNTA1IC4g ODc3MikgKDE3MTk0IC4gNjU0MzEpICg0MzkyNCAuIDkxMjcpICg2NDY1OSAuIDQxMDE3KQo7OyAg KDI1OTQ3IC4gMjI5NzkpICgzNjYyMCAuIDUyMzcwKSAoNjU1MTkgLiA2MjU4OSkgKDM0MTgwIC4g MjQwMTcpCjs7ICAoMjg1ODQgLiAzMjMzNSkgKDY1MDY4IC4gNTkxMDQpICg0MTcyOSAuIDE3MTcy KSAoMTk5NzYgLiA0NTEzKQo7OyAgKDYzMzE1IC4gMzIzODYpICg0ODQ0MiAuIDYyMDA1KSAoMTA5 NjcgLiA1Mzk0NykgKDYwMjk0IC4gNTQxNjEpKQooZGVmY29uc3QgbXNuLW1kNS1UCiAgWygwIC4g MCkKICAgKDU1MTQ2IC4gNDIxMDQpICg1OTU5MSAuIDQ2OTM0KSAoIDkyNDggLiAyODg5MSkgKDQ5 NTk3IC4gNTI5NzQpCiAgICg2Mjg0NCAuICA0MDE1KSAoMTgzMTEgLiA1MDczMCkgKDQzMDU2IC4g MTc5MzkpICg2NDgzOCAuIDM4MTQ1KQogICAoMjcwMDggLiAzOTEyOCkgKDM1NjUyIC4gNjM0MDcp ICg2NTUzNSAuIDIzNDczKSAoMzUxNjQgLiA1NTIzMCkKICAgKDI3NTM2IC4gIDQzODYpICg2NDky MCAuIDI5MDc1KSAoNDI2MTcgLiAxNzI5NCkgKDE4ODY4IC4gIDIwODEpCiAgICg2MzAwNiAuICA5 NTcwKSAoNDkyMTYgLiA0NTg4OCkgKCA5ODIyIC4gMjMxMjEpICg1OTgzMCAuIDUxMTE0KQogICAo NTQ4MzEgLiAgNDE4OSkgKCAgNTgwIC4gIDUyMDMpICg1NTQ1NyAuIDU5MDA5KSAoNTkzNDcgLiA2 NDQ1NikKICAgKCA4NjczIC4gNTI3MTApICg0OTk3NSAuICAyMDA2KSAoNjI2NzcgLiAgMzQ2Mykg KDE3NzU0IC4gIDUzNTcpCiAgICg0MzQ5MSAuIDU5NjUzKSAoNjQ3NTEgLiA0MTk3NikgKDI2NDc5 IC4gICA3MjkpICgzNjEzOCAuIDE5NTk0KQogICAoNjU1MzAgLiAxNDY1OCkgKDM0NjczIC4gNjMx MDUpICgyODA2MSAuIDI0ODY2KSAoNjQ5OTcgLiAxNDM0OCkKICAgKDQyMTc0IC4gNTk5NzIpICgx OTQyMiAuIDUzMTYxKSAoNjMxNjMgLiAxOTI5NikgKDQ4ODMxIC4gNDgyNDApCiAgICgxMDM5NSAu IDMyNDU0KSAoNjAwNjUgLiAxMDIzNCkgKDU0NTExIC4gMTI0MjEpICggMTE2MCAuICA3NDI5KQog ICAoNTU3NjQgLiA1MzMwNSkgKDU5MDk5IC4gMzkzOTcpICggODA5OCAuIDMxOTkyKSAoNTAzNDgg LiAyMjExNykKICAgKDYyNTA1IC4gIDg3NzIpICgxNzE5NCAuIDY1NDMxKSAoNDM5MjQgLiAgOTEy NykgKDY0NjU5IC4gNDEwMTcpCiAgICgyNTk0NyAuIDIyOTc5KSAoMzY2MjAgLiA1MjM3MCkgKDY1 NTE5IC4gNjI1ODkpICgzNDE4MCAuIDI0MDE3KQogICAoMjg1ODQgLiAzMjMzNSkgKDY1MDY4IC4g NTkxMDQpICg0MTcyOSAuIDE3MTcyKSAoMTk5NzYgLiAgNDUxMykKICAgKDYzMzE1IC4gMzIzODYp ICg0ODQ0MiAuIDYyMDA1KSAoMTA5NjcgLiA1Mzk0NykgKDYwMjk0IC4gNTQxNjEpXSkKCjs7IElu aXRpYWwgc3RhdGUKKGRlZmNvbnN0IG1zbi1tZDUtaW5pdGlhbC1idWZmZXIgWygyNjQzNyAuIDg5 NjEpICg2MTM4OSAuIDQzOTEzKSAoMzkwOTggLiA1NjU3NCkgKDQxNDYgLiAyMTYyMildKQoKOzsg RihYLFksWikgPSBYWSB2IG5vdChYKSBaCjs7IEcoWCxZLFopID0gWFogdiBZIG5vdChaKQo7OyBI KFgsWSxaKSA9IFggeG9yIFkgeG9yIFoKOzsgSShYLFksWikgPSBZIHhvciAoWCB2IG5vdChaKSkK KGRlZnVuIG1zbi1tZDUtRiAoWCBZIFopCiAgKGxldCAoKHhoIChjYXIgWCkpICh4bCAoY2RyIFgp KQoJKHloIChjYXIgWSkpICh5bCAoY2RyIFkpKQoJKHpoIChjYXIgWikpICh6bCAoY2RyIFopKSkK ICAgIChjb25zIChsb2dhbmQgKGxvZ2lvciAobG9nYW5kIHhoIHloKSAobG9nYW5kIChsb2dub3Qg eGgpIHpoKSkgNjU1MzUpCgkgIChsb2dhbmQgKGxvZ2lvciAobG9nYW5kIHhsIHlsKSAobG9nYW5k IChsb2dub3QgeGwpIHpsKSkgNjU1MzUpKSkpCgooZGVmdW4gbXNuLW1kNS1HIChYIFkgWikKICAo bGV0ICgoeGggKGNhciBYKSkgKHhsIChjZHIgWCkpCgkoeWggKGNhciBZKSkgKHlsIChjZHIgWSkp CgkoemggKGNhciBaKSkgKHpsIChjZHIgWikpKQogICAgKGNvbnMgKGxvZ2FuZCAobG9naW9yIChs b2dhbmQgeGggemgpIChsb2dhbmQgeWggKGxvZ25vdCB6aCkpKSA2NTUzNSkKCSAgKGxvZ2FuZCAo bG9naW9yIChsb2dhbmQgeGwgemwpIChsb2dhbmQgeWwgKGxvZ25vdCB6bCkpKSA2NTUzNSkpKSkK CihkZWZ1biBtc24tbWQ1LUggKFggWSBaKQogIChsZXQgKCh4aCAoY2FyIFgpKSAoeGwgKGNkciBY KSkKCSh5aCAoY2FyIFkpKSAoeWwgKGNkciBZKSkKCSh6aCAoY2FyIFopKSAoemwgKGNkciBaKSkp CiAgICAoY29ucyAobG9nYW5kIChsb2d4b3IgeGggeWggemgpIDY1NTM1KQoJICAobG9nYW5kIChs b2d4b3IgeGwgeWwgemwpIDY1NTM1KSkpKQoKKGRlZnVuIG1zbi1tZDUtSSAoWCBZIFopCiAgKGxl dCAoKHhoIChjYXIgWCkpICh4bCAoY2RyIFgpKQoJKHloIChjYXIgWSkpICh5bCAoY2RyIFkpKQoJ KHpoIChjYXIgWikpICh6bCAoY2RyIFopKSkKICAgIChjb25zIChsb2dhbmQgKGxvZ3hvciB5aCAo bG9naW9yIHhoIChsb2dub3QgemgpKSkgNjU1MzUpCgkgIChsb2dhbmQgKGxvZ3hvciB5bCAobG9n aW9yIHhsIChsb2dub3QgemwpKSkgNjU1MzUpKSkpCgo7OyBhZGQgJiBzaGlmdAooZGVmdW4gbXNu LW1kNS1hZGQgKCZyZXN0IG4pCiAgKGxldCAoKGhpZ2ggMCkgKGxvdyAwKSkKICAgIChtYXBjYXIg KGxhbWJkYSAoZSkgKHNldHEgaGlnaCAoKyBoaWdoIChjYXIgZSkpKSAoc2V0cSBsb3cgKCsgbG93 IChjZHIgZSkpKSkgbikKICAgIChjb25zIChsb2dhbmQgKCsgaGlnaCAobHNoIGxvdyAtMTYpKSA2 NTUzNSkKCSAgKGxvZ2FuZCBsb3cgNjU1MzUpKSkpCgooZGVmdW4gbXNuLW1kNS1zaGlmdCAobiBz KQogIChsZXQgKChoaWdoIChpZiAoPD0gcyAxNSkgKGNhciBuKSAoY2RyIG4pKSkKCShsb3cgKGlm ICg8PSBzIDE1KSAoY2RyIG4pIChjYXIgbikpKQoJKHNoaWZ0IChpZiAoPD0gcyAxNSkgcyAoLSBz IDE2KSkpKQogICAgKGNvbnMgKGxvZ2FuZCAobG9naW9yIChsc2ggaGlnaCBzaGlmdCkgKGxzaCBs b3cgKC0gc2hpZnQgMTYpKSkgNjU1MzUpCgkgIChsb2dhbmQgKGxvZ2lvciAobHNoIGxvdyBzaGlm dCkgKGxzaCBoaWdoICgtIHNoaWZ0IDE2KSkpIDY1NTM1KSkpKQoKKGRlZnVuIG1zbi1tZDUtcm91 bmQxIChhIGIgYyBkIGsgcyBpIFggVCkKICAobXNuLW1kNS1hZGQgYiAobXNuLW1kNS1zaGlmdCAo bXNuLW1kNS1hZGQgYSAobXNuLW1kNS1GIGIgYyBkKSAoYXJlZiBYIGspIChhcmVmIFQgaSkpIHMp KSkKCihkZWZ1biBtc24tbWQ1LXJvdW5kMiAoYSBiIGMgZCBrIHMgaSBYIFQpCiAgKG1zbi1tZDUt YWRkIGIgKG1zbi1tZDUtc2hpZnQgKG1zbi1tZDUtYWRkIGEgKG1zbi1tZDUtRyBiIGMgZCkgKGFy ZWYgWCBrKSAoYXJlZiBUIGkpKSBzKSkpCgooZGVmdW4gbXNuLW1kNS1yb3VuZDMgKGEgYiBjIGQg ayBzIGkgWCBUKQogIChtc24tbWQ1LWFkZCBiIChtc24tbWQ1LXNoaWZ0IChtc24tbWQ1LWFkZCBh IChtc24tbWQ1LUggYiBjIGQpIChhcmVmIFggaykgKGFyZWYgVCBpKSkgcykpKQoKKGRlZnVuIG1z bi1tZDUtcm91bmQ0IChhIGIgYyBkIGsgcyBpIFggVCkKICAobXNuLW1kNS1hZGQgYiAobXNuLW1k NS1zaGlmdCAobXNuLW1kNS1hZGQgYSAobXNuLW1kNS1JIGIgYyBkKSAoYXJlZiBYIGspIChhcmVm IFQgaSkpIHMpKSkKCgooZGVmdW4gbXNuLW1kNS1jYWxjIChidWYgc3RyIGkpCiAgKGxldCogKChv ZmZzZXQgKCogaSA2NCkpCgkgKFggKGRvICgodiAobWFrZS12ZWN0b3IgMTYgMCkpCgkJIChpIDAg KCsgaSAxKSkKCQkgKGogMCAoKyBqIDQpKSkKCSAgICAgICAoKD49IGkgMTYpIHYpCgkgICAgICAo YXNldCB2IGkKCQkgICAgKGNvbnMgKCsgKCogKGFyZWYgc3RyICgrIG9mZnNldCBqIDMpKSAyNTYp IChhcmVmIHN0ciAoKyBvZmZzZXQgaiAyKSkpCgkJCSAgKCsgKCogKGFyZWYgc3RyICgrIG9mZnNl dCBqIDEpKSAyNTYpIChhcmVmIHN0ciAoKyBvZmZzZXQgaikpKSkpKSkKCSAoVCBtc24tbWQ1LVQp CgkgKEEgKGFyZWYgYnVmIDApKSAoQUEgQSkKCSAoQiAoYXJlZiBidWYgMSkpIChCQiBCKQoJIChD IChhcmVmIGJ1ZiAyKSkgKENDIEMpCgkgKEQgKGFyZWYgYnVmIDMpKSAoREQgRCkpCiAgICA7OyBy b3VuZDEKICAgIChzZXRxIEEgKG1zbi1tZDUtcm91bmQxIEEgQiBDIEQgIDAgIDcgIDEgWCBUKSkK ICAgIChzZXRxIEQgKG1zbi1tZDUtcm91bmQxIEQgQSBCIEMgIDEgMTIgIDIgWCBUKSkKICAgIChz ZXRxIEMgKG1zbi1tZDUtcm91bmQxIEMgRCBBIEIgIDIgMTcgIDMgWCBUKSkKICAgIChzZXRxIEIg KG1zbi1tZDUtcm91bmQxIEIgQyBEIEEgIDMgMjIgIDQgWCBUKSkKICAgIChzZXRxIEEgKG1zbi1t ZDUtcm91bmQxIEEgQiBDIEQgIDQgIDcgIDUgWCBUKSkKICAgIChzZXRxIEQgKG1zbi1tZDUtcm91 bmQxIEQgQSBCIEMgIDUgMTIgIDYgWCBUKSkKICAgIChzZXRxIEMgKG1zbi1tZDUtcm91bmQxIEMg RCBBIEIgIDYgMTcgIDcgWCBUKSkKICAgIChzZXRxIEIgKG1zbi1tZDUtcm91bmQxIEIgQyBEIEEg IDcgMjIgIDggWCBUKSkKICAgIChzZXRxIEEgKG1zbi1tZDUtcm91bmQxIEEgQiBDIEQgIDggIDcg IDkgWCBUKSkKICAgIChzZXRxIEQgKG1zbi1tZDUtcm91bmQxIEQgQSBCIEMgIDkgMTIgMTAgWCBU KSkKICAgIChzZXRxIEMgKG1zbi1tZDUtcm91bmQxIEMgRCBBIEIgMTAgMTcgMTEgWCBUKSkKICAg IChzZXRxIEIgKG1zbi1tZDUtcm91bmQxIEIgQyBEIEEgMTEgMjIgMTIgWCBUKSkKICAgIChzZXRx IEEgKG1zbi1tZDUtcm91bmQxIEEgQiBDIEQgMTIgIDcgMTMgWCBUKSkKICAgIChzZXRxIEQgKG1z bi1tZDUtcm91bmQxIEQgQSBCIEMgMTMgMTIgMTQgWCBUKSkKICAgIChzZXRxIEMgKG1zbi1tZDUt cm91bmQxIEMgRCBBIEIgMTQgMTcgMTUgWCBUKSkKICAgIChzZXRxIEIgKG1zbi1tZDUtcm91bmQx IEIgQyBEIEEgMTUgMjIgMTYgWCBUKSkKICAgIDs7IHJvdW5kMgogICAgKHNldHEgQSAobXNuLW1k NS1yb3VuZDIgQSBCIEMgRCAgMSAgNSAxNyBYIFQpKQogICAgKHNldHEgRCAobXNuLW1kNS1yb3Vu ZDIgRCBBIEIgQyAgNiAgOSAxOCBYIFQpKQogICAgKHNldHEgQyAobXNuLW1kNS1yb3VuZDIgQyBE IEEgQiAxMSAxNCAxOSBYIFQpKQogICAgKHNldHEgQiAobXNuLW1kNS1yb3VuZDIgQiBDIEQgQSAg MCAyMCAyMCBYIFQpKQogICAgKHNldHEgQSAobXNuLW1kNS1yb3VuZDIgQSBCIEMgRCAgNSAgNSAy MSBYIFQpKQogICAgKHNldHEgRCAobXNuLW1kNS1yb3VuZDIgRCBBIEIgQyAxMCAgOSAyMiBYIFQp KQogICAgKHNldHEgQyAobXNuLW1kNS1yb3VuZDIgQyBEIEEgQiAxNSAxNCAyMyBYIFQpKQogICAg KHNldHEgQiAobXNuLW1kNS1yb3VuZDIgQiBDIEQgQSAgNCAyMCAyNCBYIFQpKQogICAgKHNldHEg QSAobXNuLW1kNS1yb3VuZDIgQSBCIEMgRCAgOSAgNSAyNSBYIFQpKQogICAgKHNldHEgRCAobXNu LW1kNS1yb3VuZDIgRCBBIEIgQyAxNCAgOSAyNiBYIFQpKQogICAgKHNldHEgQyAobXNuLW1kNS1y b3VuZDIgQyBEIEEgQiAgMyAxNCAyNyBYIFQpKQogICAgKHNldHEgQiAobXNuLW1kNS1yb3VuZDIg QiBDIEQgQSAgOCAyMCAyOCBYIFQpKQogICAgKHNldHEgQSAobXNuLW1kNS1yb3VuZDIgQSBCIEMg RCAxMyAgNSAyOSBYIFQpKQogICAgKHNldHEgRCAobXNuLW1kNS1yb3VuZDIgRCBBIEIgQyAgMiAg OSAzMCBYIFQpKQogICAgKHNldHEgQyAobXNuLW1kNS1yb3VuZDIgQyBEIEEgQiAgNyAxNCAzMSBY IFQpKQogICAgKHNldHEgQiAobXNuLW1kNS1yb3VuZDIgQiBDIEQgQSAxMiAyMCAzMiBYIFQpKQog ICAgOzsgcm91bmQzCiAgICAoc2V0cSBBIChtc24tbWQ1LXJvdW5kMyBBIEIgQyBEICA1ICA0IDMz IFggVCkpCiAgICAoc2V0cSBEIChtc24tbWQ1LXJvdW5kMyBEIEEgQiBDICA4IDExIDM0IFggVCkp CiAgICAoc2V0cSBDIChtc24tbWQ1LXJvdW5kMyBDIEQgQSBCIDExIDE2IDM1IFggVCkpCiAgICAo c2V0cSBCIChtc24tbWQ1LXJvdW5kMyBCIEMgRCBBIDE0IDIzIDM2IFggVCkpCiAgICAoc2V0cSBB IChtc24tbWQ1LXJvdW5kMyBBIEIgQyBEICAxICA0IDM3IFggVCkpCiAgICAoc2V0cSBEIChtc24t bWQ1LXJvdW5kMyBEIEEgQiBDICA0IDExIDM4IFggVCkpCiAgICAoc2V0cSBDIChtc24tbWQ1LXJv dW5kMyBDIEQgQSBCICA3IDE2IDM5IFggVCkpCiAgICAoc2V0cSBCIChtc24tbWQ1LXJvdW5kMyBC IEMgRCBBIDEwIDIzIDQwIFggVCkpCiAgICAoc2V0cSBBIChtc24tbWQ1LXJvdW5kMyBBIEIgQyBE IDEzICA0IDQxIFggVCkpCiAgICAoc2V0cSBEIChtc24tbWQ1LXJvdW5kMyBEIEEgQiBDICAwIDEx IDQyIFggVCkpCiAgICAoc2V0cSBDIChtc24tbWQ1LXJvdW5kMyBDIEQgQSBCICAzIDE2IDQzIFgg VCkpCiAgICAoc2V0cSBCIChtc24tbWQ1LXJvdW5kMyBCIEMgRCBBICA2IDIzIDQ0IFggVCkpCiAg ICAoc2V0cSBBIChtc24tbWQ1LXJvdW5kMyBBIEIgQyBEICA5ICA0IDQ1IFggVCkpCiAgICAoc2V0 cSBEIChtc24tbWQ1LXJvdW5kMyBEIEEgQiBDIDEyIDExIDQ2IFggVCkpCiAgICAoc2V0cSBDICht c24tbWQ1LXJvdW5kMyBDIEQgQSBCIDE1IDE2IDQ3IFggVCkpCiAgICAoc2V0cSBCIChtc24tbWQ1 LXJvdW5kMyBCIEMgRCBBICAyIDIzIDQ4IFggVCkpCiAgICA7OyByb3VuZDQKICAgIChzZXRxIEEg KG1zbi1tZDUtcm91bmQ0IEEgQiBDIEQgIDAgIDYgNDkgWCBUKSkKICAgIChzZXRxIEQgKG1zbi1t ZDUtcm91bmQ0IEQgQSBCIEMgIDcgMTAgNTAgWCBUKSkKICAgIChzZXRxIEMgKG1zbi1tZDUtcm91 bmQ0IEMgRCBBIEIgMTQgMTUgNTEgWCBUKSkKICAgIChzZXRxIEIgKG1zbi1tZDUtcm91bmQ0IEIg QyBEIEEgIDUgMjEgNTIgWCBUKSkKICAgIChzZXRxIEEgKG1zbi1tZDUtcm91bmQ0IEEgQiBDIEQg MTIgIDYgNTMgWCBUKSkKICAgIChzZXRxIEQgKG1zbi1tZDUtcm91bmQ0IEQgQSBCIEMgIDMgMTAg NTQgWCBUKSkKICAgIChzZXRxIEMgKG1zbi1tZDUtcm91bmQ0IEMgRCBBIEIgMTAgMTUgNTUgWCBU KSkKICAgIChzZXRxIEIgKG1zbi1tZDUtcm91bmQ0IEIgQyBEIEEgIDEgMjEgNTYgWCBUKSkKICAg IChzZXRxIEEgKG1zbi1tZDUtcm91bmQ0IEEgQiBDIEQgIDggIDYgNTcgWCBUKSkKICAgIChzZXRx IEQgKG1zbi1tZDUtcm91bmQ0IEQgQSBCIEMgMTUgMTAgNTggWCBUKSkKICAgIChzZXRxIEMgKG1z bi1tZDUtcm91bmQ0IEMgRCBBIEIgIDYgMTUgNTkgWCBUKSkKICAgIChzZXRxIEIgKG1zbi1tZDUt cm91bmQ0IEIgQyBEIEEgMTMgMjEgNjAgWCBUKSkKICAgIChzZXRxIEEgKG1zbi1tZDUtcm91bmQ0 IEEgQiBDIEQgIDQgIDYgNjEgWCBUKSkKICAgIChzZXRxIEQgKG1zbi1tZDUtcm91bmQ0IEQgQSBC IEMgMTEgMTAgNjIgWCBUKSkKICAgIChzZXRxIEMgKG1zbi1tZDUtcm91bmQ0IEMgRCBBIEIgIDIg MTUgNjMgWCBUKSkKICAgIChzZXRxIEIgKG1zbi1tZDUtcm91bmQ0IEIgQyBEIEEgIDkgMjEgNjQg WCBUKSkKICAgIDs7IGxhc3QKICAgIChhc2V0IGJ1ZiAwIChtc24tbWQ1LWFkZCBBIEFBKSkKICAg IChhc2V0IGJ1ZiAxIChtc24tbWQ1LWFkZCBCIEJCKSkKICAgIChhc2V0IGJ1ZiAyIChtc24tbWQ1 LWFkZCBDIENDKSkKICAgIChhc2V0IGJ1ZiAzIChtc24tbWQ1LWFkZCBEIEREKSkKICAgIGJ1Zikp CgooZGVmdW4gbXNuLW1kNSAoc3RyKQogIChsZXQqICgoYnVmIChjb3B5LXNlcXVlbmNlIG1zbi1t ZDUtaW5pdGlhbC1idWZmZXIpKQoJIChsZW4gKGxlbmd0aCBzdHIpKQoJIChiaXRzICgqIGxlbiA4 KSkKCSAobiAoLyBsZW4gNjQpKQoJIChyICglIGxlbiA2NCkpCgkgKHBhZGRpbmcgKC0gNjQgcikp CgkgOzsgRm9yIHByb2Nlc3NpbmcgcmVhc29ucywgaXQgaXMgYSBtdWx0aXBsZSBvZiA2NCBCeXRl cywgc28KCSA7OyBmb3IgcGFkZGluZyByZW1vdmUgdGhlICJcMjAwInMKCSA7OyBJdCBzb3VsZCBi ZSBlbm91Z2ggaWYgd2UgaGF2ZSA2NCArICg2NC01NikgLSAxID0gNzEgQnl0ZXMKCSAoc3RyIChj b25jYXQgc3RyICh3aGVuICg+IHBhZGRpbmcgMCkgKGNvbmNhdCAiXDIwMCIgKG1ha2Utc3RyaW5n IDcxIDApKSkpKQoJIChuIChpZiAoPD0gciA1NikgbiAoKyBuIDEpKSkKCSA7OyBJdCBpcyBzaW1w bGlmaWVkIGJ5IHRoZXNlIHNwZWNpZmljYXRpb25zCgkgKGJ1ZiAoZG8qICgodG1wIChwcm9nbgoJ CQkgICAoYXNldCBzdHIgKCsgKCogbiA2NCkgNTYpICglIGJpdHMgMjU2KSkKCQkJICAgKGFzZXQg c3RyICgrICgqIG4gNjQpIDU3KSAoLyBiaXRzIDI1NikpKSkKCQkgICAgKGkgMCAoKyBpIDEpKQoJ CSAgICAoYnVmIChtc24tbWQ1LWNhbGMgYnVmIHN0ciBpKSAobXNuLW1kNS1jYWxjIGJ1ZiBzdHIg aSkpKQoJCSAgKCg+PSBpIG4pIGJ1ZikpKQoJIChhaCAoY2FyIChhcmVmIGJ1ZiAwKSkpIChhbCAo Y2RyIChhcmVmIGJ1ZiAwKSkpCgkgKGJoIChjYXIgKGFyZWYgYnVmIDEpKSkgKGJsIChjZHIgKGFy ZWYgYnVmIDEpKSkKCSAoY2ggKGNhciAoYXJlZiBidWYgMikpKSAoY2wgKGNkciAoYXJlZiBidWYg MikpKQoJIChkaCAoY2FyIChhcmVmIGJ1ZiAzKSkpIChkbCAoY2RyIChhcmVmIGJ1ZiAzKSkpKQog ICAgKGZvcm1hdCAiJTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMngl MDJ4JTAyeCUwMnglMDJ4JTAyeCIKCSAgICAoJSBhbCAyNTYpICgvIGFsIDI1NikgKCUgYWggMjU2 KSAoLyBhaCAyNTYpCgkgICAgKCUgYmwgMjU2KSAoLyBibCAyNTYpICglIGJoIDI1NikgKC8gYmgg MjU2KQoJICAgICglIGNsIDI1NikgKC8gY2wgMjU2KSAoJSBjaCAyNTYpICgvIGNoIDI1NikKCSAg ICAoJSBkbCAyNTYpICgvIGRsIDI1NikgKCUgZGggMjU2KSAoLyBkaCAyNTYpKSkpCgo7OyBJZiB0 aGVyZSBpcyBub3QgYnVpbHRpbiBtZDUsIGRvIGl0IG91cnNlbHZlcwooZGVmdW4gbXNuLW1kNS1k aWdlc3QgKHN0cmluZykKICAoaWYgKGZib3VuZHAgJ21kNSkKICAgICAgKG1kNSBzdHJpbmcgbmls IG5pbCAndXRmLTgtZG9zKQogICAgKG1zbi1tZDUgKGVuY29kZS1jb2Rpbmctc3RyaW5nIHN0cmlu ZyAndXRmLTgtZG9zKSkpKQoKKHByb3ZpZGUgJ21lc3NlbmdlcikKKHJ1bi1ob29rcyAnbXNuLWxv YWQtaG9vaykK