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7gAAAFwAAACBAAAAKwAAAGUAAABRAAAAfAAAAIQAAAAAAAAAFAAAAPwAAAAAAAAA9AAAAFIAAADlAAAAzAAAAAAAAAAIAAAAAAAAAJAAAAAACgolczogJXMKAAoKTW92ZSBhcm91bmQgd2l0aCBeUCBhbmQgXk4sIGN1cnNvciBrZXlzLCBpbml0aWFsIGxldHRlcnMsIG9yIGRpZ2l0czsKUHJlc3MgPGVudGVyPiB0byBjb25maXJtIHNlbGVjdGlvbi4gICBeTCByZWRyYXdzIHNjcmVlbi4KCgAKClJlYWQtb25seSBhY2Nlc3M6IG9ubHkgcHJldmlldyBvZiBzZWxlY3Rpb25zIGlzIGF2YWlsYWJsZSEAClByZXNzIDxlbnRlcj4gdG8gY29udGludWUuACAAICAtLSAlZCUlLCBwcmVzcyAAIChhbHBoYWJldGljYWxseSkAIChhdmFpbC4sIHByaW9yaXR5KQAgKGF2YWlsLiwgc2VjdGlvbikAIChieSBhdmFpbGFiaWxpdHkpACAoYnkgcHJpb3JpdHkpACAoYnkgc2VjdGlvbikAIChieSBzdGF0dXMpACAoc3RhdHVzLCBwcmlvcml0eSkAIChzdGF0dXMsIHNlY3Rpb24pACBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYXZhaWxhYmxlCgAgbWFyazorLz0vLSB0ZXJzZTp2IGhlbHA6PwAgbWFyazorLz0vLSB2ZXJib3NlOnYgaGVscDo/ACBvciAAIHRlcnNlOnYgaGVscDo/ACB2ZXJib3NlOnYgaGVscDo/ACFCdWchACUtKnMgJXMlcyVzOyAgJXMgKHdhczogJXMpLiAgJXMAJXMgJXMgcGFja2FnZXMAJXMgJXMgcGFja2FnZXMgaW4gc2VjdGlvbiAlcwAlcyAlcyBwYWNrYWdlcyB3aXRob3V0IGEgc2VjdGlvbgAlcyBmb3IgbW9yZQAlcyBwYWNrYWdlcyBpbiBzZWN0aW9uICVzACVzIHBhY2thZ2VzIHdpdGhvdXQgYSBzZWN0aW9uACVzIHRvIGdvIGJhY2sAKiBIaWdobGlnaHQ6IE9uZSBsaW5lIGluIHRoZSBwYWNrYWdlIGxpc3Qgd2lsbCBiZSBoaWdobGlnaHRlZC4gIEl0IGluZGljYXRlcwogIHdoaWNoIHBhY2thZ2Uocykgd2lsbCBiZSBhZmZlY3RlZCBieSBwcmVzc2VzIG9mIGArJywgYC0nIGFuZCBgXycuCgoqIFRoZSBkaXZpZGluZyBsaW5lIGluIHRoZSBtaWRkbGUgb2YgdGhlIHNjcmVlbiBzaG93cyBhIGJyaWVmIGV4cGxhbmF0aW9uIG9mCiAgdGhlIHN0YXR1cyBvZiB0aGUgY3VycmVudGx5LWhpZ2hsaWdodGVkIHBhY2thZ2UsIG9yIGEgZGVzY3JpcHRpb24gb2Ygd2hpY2gKICBncm91cCBpcyBoaWdobGlnaHRlZCBpZiBhIGdyb3VwIGxpbmUgaXMuICBJZiB5b3UgZG9uJ3QgdW5kZXJzdGFuZCB0aGUKICBtZWFuaW5nIG9mIHNvbWUgb2YgdGhlIHN0YXR1cyBjaGFyYWN0ZXJzIGRpc3BsYXllZCwgZ28gdG8gdGhlIHJlbGV2YW50CiAgcGFja2FnZSBhbmQgbG9vayBhdCB0aGlzIGRpdmlkZXIgbGluZSwgb3IgdXNlIHRoZSBgdicga2V5IGZvciBhIHZlcmJvc2UKICBkaXNwbGF5IChwcmVzcyBgdicgYWdhaW4gdG8gZ28gYmFjayB0byB0aGUgdGVyc2UgZGlzcGxheSkuCgoqIFRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiBzaG93cyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZQogIGN1cnJlbnRseS1oaWdobGlnaHRlZCBwYWNrYWdlIChpZiB0aGVyZSBpcyBvbmx5IG9uZSkuCgogIEl0IGNhbiBzaG93IGFuIGV4dGVuZGVkIGRlc2NyaXB0aW9uIG9mIHRoZSBwYWNrYWdlLCB0aGUgaW50ZXJuYWwgcGFja2FnZQogIGNvbnRyb2wgZGV0YWlscyAoZWl0aGVyIGZvciB0aGUgaW5zdGFsbGVkIG9yIGF2YWlsYWJsZSB2ZXJzaW9uIG9mIHRoZQogIHBhY2thZ2UpLCBvciBpbmZvcm1hdGlvbiBhYm91dCBjb25mbGljdHMgYW5kIGRlcGVuZGVuY2llcyBpbnZvbHZpbmcgdGhlCiAgY3VycmVudCBwYWNrYWdlIChpbiBjb25mbGljdC9kZXBlbmRlbmN5IHJlc29sdXRpb24gc3VibGlzdHMpLgoKICBVc2UgdGhlIGBpJyBrZXkgdG8gY3ljbGUgdGhyb3VnaCB0aGUgZGlzcGxheXMsIGFuZCBgSScgdG8gaGlkZSB0aGUKICBpbmZvcm1hdGlvbiBkaXNwbGF5IG9yIGV4cGFuZCBpdCB0byB1c2UgYWxtb3N0IGFsbCBvZiB0aGUgc2NyZWVuLgoAPwBBYmJyZXYuAEFib3J0IC0gcXVpdCB3aXRob3V0IG1ha2luZyBjaGFuZ2VzAEFjY2VzcyBtZXRob2QgYCVzJy4AQWN0aW9uczoKICBhY2Nlc3MgdXBkYXRlIHNlbGVjdCBpbnN0YWxsIGNvbmZpZyByZW1vdmUgcXVpdAoKAEFsbABBbGwgcGFja2FnZXMAQXR0cmlidXRlczoKAEF2YWlsLnZlcgBBdmFpbGFibGUAQXZhaWxhYmxlIHBhY2thZ2VzIChub3QgY3VycmVudGx5IGluc3RhbGxlZCkAQnJva2VuAEJyb2tlbmx5IGluc3RhbGxlZCBwYWNrYWdlcwBDaG9vc2UgdGhlIGFjY2VzcyBtZXRob2QgdG8gdXNlLgBDb2xvdXJzOgoAQ29uZmlndXJlIGFueSBwYWNrYWdlcyB0aGF0IGFyZSB1bmNvbmZpZ3VyZWQuAENvcHlyaWdodCAoQykgMTk5NC0xOTk2IElhbiBKYWNrc29uLgpDb3B5cmlnaHQgKEMpIDIwMDAsMjAwMSBXaWNoZXJ0IEFra2VybWFuLgoAQ3ljbGUgdGhyb3VnaCBpbmZvcm1hdGlvbiBkaXNwbGF5cwBEZWJpYW4gYCVzJyBwYWNrYWdlIGhhbmRsaW5nIGZyb250ZW5kIHZlcnNpb24gJXMuCgBEZXBlbmRlbmN5L2NvbmZsaWN0IHJlc29sdXRpb24gLSBpbnRyb2R1Y3Rpb24uCgpPbmUgb3IgbW9yZSBvZiB5b3VyIGNob2ljZXMgaGF2ZSByYWlzZWQgYSBjb25mbGljdCBvciBkZXBlbmRlbmN5IHByb2JsZW0gLQpzb21lIHBhY2thZ2VzIHNob3VsZCBvbmx5IGJlIGluc3RhbGxlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGNlcnRhaW4gb3RoZXJzLCBhbmQKc29tZSBjb21iaW5hdGlvbnMgb2YgcGFja2FnZXMgbWF5IG5vdCBiZSBpbnN0YWxsZWQgdG9nZXRoZXIuCgpZb3Ugd2lsbCBzZWUgYSBzdWItbGlzdCBjb250YWluaW5nIHRoZSBwYWNrYWdlcyBpbnZvbHZlZC4gIFRoZSBib3R0b20gaGFsZiBvZgp0aGUgZGlzcGxheSBzaG93cyByZWxldmFudCBjb25mbGljdHMgYW5kIGRlcGVuZGVuY2llczsgdXNlIGBpJyB0byBjeWNsZSBiZXR3ZWVuCnRoYXQsIHRoZSBwYWNrYWdlIGRlc2NyaXB0aW9ucyBhbmQgdGhlIGludGVybmFsIGNvbnRyb2wgaW5mb3JtYXRpb24uCgpBIHNldCBvZiBgc3VnZ2VzdGVkJyBwYWNrYWdlcyBoYXMgYmVlbiBjYWxjdWxhdGVkLCBhbmQgdGhlIGluaXRpYWwgbWFya2luZ3MgaW4KdGhpcyBzdWItbGlzdCBoYXZlIGJlZW4gc2V0IHRvIG1hdGNoIHRob3NlLCBzbyB5b3UgY2FuIGp1c3QgaGl0IFJldHVybiB0bwphY2NlcHQgdGhlIHN1Z2dlc3Rpb25zIGlmIHlvdSB3aXNoLiAgWW91IG1heSBhYm9ydCB0aGUgY2hhbmdlKHMpIHdoaWNoIGNhdXNlZAp0aGUgcHJvYmxlbShzKSwgYW5kIGdvIGJhY2sgdG8gdGhlIG1haW4gbGlzdCwgYnkgcHJlc3NpbmcgY2FwaXRhbCBgWCcuCgpZb3UgY2FuIGFsc28gbW92ZSBhcm91bmQgdGhlIGxpc3QgYW5kIGNoYW5nZSB0aGUgbWFya2luZ3Mgc28gdGhhdCB0aGV5IGFyZSBtb3JlCmxpa2Ugd2hhdCB5b3Ugd2FudCwgYW5kIHlvdSBjYW4gYHJlamVjdCcgbXkgc3VnZ2VzdGlvbnMgYnkgdXNpbmcgdGhlIGNhcGl0YWwKYEQnIG9yIGBSJyBrZXlzIChzZWUgdGhlIGtleWJpbmRpbmdzIGhlbHAgc2NyZWVuKS4gIFlvdSBjYW4gdXNlIGNhcGl0YWwgYFEnIHRvCmZvcmNlIG1lIHRvIGFjY2VwdCB0aGUgc2l0dWF0aW9uIGN1cnJlbnRseSBkaXNwbGF5ZWQsIGluIGNhc2UgeW91IHdhbnQgdG8Kb3ZlcnJpZGUgYSByZWNvbW1lbmRhdGlvbiBvciB0aGluayB0aGF0IHRoZSBwcm9ncmFtIGlzIG1pc3Rha2VuLgoKUHJlc3MgPHNwYWNlPiB0byBsZWF2ZSBoZWxwIGFuZCBlbnRlciB0aGUgc3ViLWxpc3Q7IHJlbWVtYmVyOiBwcmVzcyBgPycgZm9yIGhlbHAuCgBEZXNjcmlwdGlvbgBEaXNwbGF5LCBwYXJ0IDE6IHBhY2thZ2UgbGlzdGluZyBhbmQgc3RhdHVzIGNoYXJzAERpc3BsYXksIHBhcnQgMjogbGlzdCBoaWdobGlnaHQ7IGluZm9ybWF0aW9uIGRpc3BsYXkARUlPTQBFT0YgYmVmb3JlIG9wdGlvbiBuYW1lIHN0YXJ0AEVPRiBiZWZvcmUgc3VtbWFyeQBFT0YgaW4gaW5kZXggc3RyaW5nAEVPRiBpbiBvcHRpb24gbmFtZQBFT0YgaW4gc3VtbWFyeSAtIG1pc3NpbmcgbmV3bGluZQBFcnJvcgBFcnJvcjogAEV4dHJhAEdvIHRvIGVuZCBvZiBsaXN0AEdvIHRvIHRvcCBvZiBsaXN0AEhlbHAgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgdG9waWNzOgBIZWxwOiAASW1wAEltcG9ydGFudABJbnN0LnZlcgBJbnN0YWxsIGFuZCB1cGdyYWRlIHdhbnRlZCBwYWNrYWdlcy4ASW5zdGFsbGVkAEluc3RhbGxlZCBwYWNrYWdlcwBJbnN0YWxsZWQ/AEludHJvZHVjdGlvbiB0byBjb25mbGljdC9kZXBlbmRlbmN5IHJlc29sdXRpb24gc3ViLWxpc3QASW50cm9kdWN0aW9uIHRvIG1ldGhvZCBzZWxlY3Rpb24gZGlzcGxheQBJbnRyb2R1Y3Rpb24gdG8gcGFja2FnZSBzZWxlY3Rpb25zAEludHJvZHVjdGlvbiB0byByZWFkLW9ubHkgcGFja2FnZSBsaXN0IGJyb3dzZXIASW52YWxpZCAlcyBgJXMnCgBLZXlzdHJva2VzAEtleXN0cm9rZXMgZm9yIG1ldGhvZCBzZWxlY3Rpb24ATWFrZSBoaWdobGlnaHQgbGVzcyBzcGVjaWZpYwBNYWtlIGhpZ2hsaWdodCBtb3JlIHNwZWNpZmljAE1hcmsgcGFja2FnZShzKSBmb3IgZGVpbnN0YWxsIGFuZCBwdXJnZQBNYXJrIHBhY2thZ2UocykgZm9yIGRlaW5zdGFsbGF0aW9uAE1hcmsgcGFja2FnZShzKSBmb3IgaW5zdGFsbGF0aW9uAE1hcmtlZCBmb3IATW92ZSBkb3duAE1vdmUgdXAATmV3AE5ld2x5IGF2YWlsYWJsZSBwYWNrYWdlcwBObyBleHBsYW5hdGlvbiBhdmFpbGFibGUuAE51bGwgY29sb3VyIHNwZWNpZmljYXRpb24KAE9ic29sZXRlIGFuZCBsb2NhbCBwYWNrYWdlcyBwcmVzZW50IG9uIHN5c3RlbQBPYnNvbGV0ZS9sb2NhbABPbGQgbWFyawBPcHQAT3B0aW9uYWwAT3B0aW9uczoKICAtLWFkbWluZGlyIDxkaXJlY3Rvcnk+ICAgICBVc2UgPGRpcmVjdG9yeT4gaW5zdGVhZCBvZiAlcy4KICAtLWV4cGVydCAgICAgICAgICAgICAgICAgICBUdXJuIG9uIGV4cGVydCBtb2RlLgogIC0tZGVidWcgPGZpbGU+IHwgLUQ8ZmlsZT4gIFR1cm4gb24gZGVidWdnaW5nLCBzZW5kaW5nIG91dHB1dCB0byA8ZmlsZT4uCiAgLS1jb2xvdXIgfCAtLWNvbG9yIHNjcmVlbnBhcnQ6W2ZvcmVncm91bmRdLFtiYWNrZ3JvdW5kXVs6YXR0clsrYXR0cisuLl1dCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJlIHNjcmVlbiBjb2xvdXJzLgoKAFBhY2thZ2UAUHJlc3MgPGVudGVyPiB0byBjb250aW51ZS4KAFByZXNzID8gZm9yIGhlbHAgbWVudSwgLiBmb3IgbmV4dCB0b3BpYywgPHNwYWNlPiB0byBleGl0IGhlbHAuAFByZXNzIGEga2V5IGZyb20gdGhlIGxpc3QgYWJvdmUsIDxzcGFjZT4gb3IgYHEnIHRvIGV4aXQgaGVscCwKICBvciBgLicgKGZ1bGwgc3RvcCkgdG8gcmVhZCBlYWNoIGhlbHAgcGFnZSBpbiB0dXJuLiAAUHJpb3JpdHkAUHVyZ2VkAFB1cmdlZCBwYWNrYWdlcyBhbmQgdGhvc2UgbmV2ZXIgaW5zdGFsbGVkAFF1aXQgZHNlbGVjdC4AUXVpdCB3aXRob3V0IGNoYW5naW5nIHNlbGVjdGVkIGFjY2VzcyBtZXRob2QAUXVpdCwgY29uZmlybWluZyB3aXRob3V0IGNoZWNrAFF1aXQsIGNvbmZpcm1pbmcsIGFuZCBjaGVja2luZyBkZXBlbmRlbmNpZXMAUXVpdCwgcmVqZWN0aW5nIGNvbmZsaWN0L2RlcGVuZGVuY3kgc3VnZ2VzdGlvbnMAUkVJTlNUQUxMAFJlZHJhdyBkaXNwbGF5AFJlbW92ZSB1bndhbnRlZCBzb2Z0d2FyZS4AUmVtb3ZlZABSZW1vdmVkIGFuZCBubyBsb25nZXIgYXZhaWxhYmxlIHBhY2thZ2VzAFJlbW92ZWQgcGFja2FnZXMgKGNvbmZpZ3VyYXRpb24gc3RpbGwgcHJlc2VudCkAUmVwZWF0IGxhc3Qgc2VhcmNoLgBSZXEAUmVxdWVzdCBoZWxwIChjeWNsZSB0aHJvdWdoIGhlbHAgc2NyZWVucykAUmVxdWVzdCB3aGljaCBwYWNrYWdlcyB5b3Ugd2FudCBvbiB5b3VyIHN5c3RlbS4AUmVxdWlyZWQAUmV2ZXJ0IHRvIGRpcmVjdGx5IHJlcXVlc3RlZCBzdGF0ZSBmb3IgYWxsIHBhY2thZ2VzAFJldmVydCB0byBvbGQgc3RhdGUgZm9yIGFsbCBwYWNrYWdlcwBSZXZlcnQgdG8gc3VnZ2VzdGVkIHN0YXRlIGZvciBhbGwgcGFja2FnZXMAU2NyZWVucGFydHM6CgBTY3JvbGwgYmFja3dhcmRzIHRocm91Z2ggaGVscC9pbmZvcm1hdGlvbgBTY3JvbGwgYmFja3dhcmRzIHRocm91Z2ggaGVscC9pbmZvcm1hdGlvbiBieSAxIGxpbmUAU2Nyb2xsIGJhY2t3YXJkcyB0aHJvdWdoIGxpc3QAU2Nyb2xsIGJhY2t3YXJkcyB0aHJvdWdoIGxpc3QgYnkgMSBsaW5lAFNjcm9sbCBvbndhcmRzIHRocm91Z2ggaGVscC9pbmZvcm1hdGlvbgBTY3JvbGwgb253YXJkcyB0aHJvdWdoIGhlbHAvaW5mb3JtYXRpb24gYnkgMSBsaW5lAFNjcm9sbCBvbndhcmRzIHRocm91Z2ggbGlzdABTY3JvbGwgb253YXJkcyB0aHJvdWdoIGxpc3QgYnkgMSBsaW5lAFNlYXJjaCBmb3IgPyAAU2VhcmNoIGZvciBhIHBhY2thZ2Ugd2hvc2UgbmFtZSBjb250YWlucyBhIHN0cmluZwBTZWN0aW9uAFNlbGVjdCBjdXJyZW50bHktaGlnaGxpZ2h0ZWQgYWNjZXNzIG1ldGhvZABTZXQgeW91ciBURVJNIHZhcmlhYmxlIGNvcnJlY3RseSwgdXNlIGEgYmV0dGVyIHRlcm1pbmFsLApvciBtYWtlIGRvIHdpdGggdGhlIHBlci1wYWNrYWdlIG1hbmFnZW1lbnQgdG9vbCAlcy4KAFN0YW5kYXJkAFN0ZABTd2FwIHNvcnQgb3JkZXIgcHJpb3JpdHkvc2VjdGlvbgBUZXJtaW5hbCBkb2VzIG5vdCBhcHBlYXIgdG8gc3VwcG9ydCBjdXJzb3IgYWRkcmVzc2luZy4KAFRlcm1pbmFsIGRvZXMgbm90IGFwcGVhciB0byBzdXBwb3J0IGhpZ2hsaWdodGluZy4KAFRoZSBsaW5lIHlvdSBoYXZlIGhpZ2hsaWdodGVkIHJlcHJlc2VudHMgbWFueSBwYWNrYWdlczsgaWYgeW91IGFzayB0byBpbnN0YWxsLCByZW1vdmUsIGhvbGQsIGV0Yy4gaXQgeW91IHdpbGwgYWZmZWN0IGFsbCB0aGUgcGFja2FnZXMgd2hpY2ggbWF0Y2ggdGhlIGNyaXRlcmlvbiBzaG93bi4KCklmIHlvdSBtb3ZlIHRoZSBoaWdobGlnaHQgdG8gYSBsaW5lIGZvciBhIHBhcnRpY3VsYXIgcGFja2FnZSB5b3Ugd2lsbCBzZWUgaW5mb3JtYXRpb24gYWJvdXQgdGhhdCBwYWNrYWdlIGRpc3BsYXllZCBoZXJlLgpZb3UgY2FuIHVzZSBgbycgYW5kIGBPJyB0byBjaGFuZ2UgdGhlIHNvcnQgb3JkZXIgYW5kIGdpdmUgeW91cnNlbGYgdGhlIG9wcG9ydHVuaXR5IHRvIG1hcmsgcGFja2FnZXMgaW4gZGlmZmVyZW50IGtpbmRzIG9mIGdyb3Vwcy4AVHlwZSBkc2VsZWN0IC0taGVscCBmb3IgaGVscC4AVW5jbGFzc2lmaWVkAFVwIHRvIGRhdGUgaW5zdGFsbGVkIHBhY2thZ2VzAFVwLXRvLWRhdGUAVXBkYXRlIGxpc3Qgb2YgYXZhaWxhYmxlIHBhY2thZ2VzLCBpZiBwb3NzaWJsZS4AVXBkYXRlZABVcGRhdGVkIHBhY2thZ2VzIChuZXdlciB2ZXJzaW9uIGlzIGF2YWlsYWJsZSkAVXNhZ2U6ICVzIFs8b3B0aW9uPiAuLi5dIFs8YWN0aW9uPiAuLi5dCgoAV2VsY29tZSB0byBkc2VsZWN0J3MgbWFpbiBwYWNrYWdlIGxpc3RpbmcuCgpZb3Ugd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCBhIGxpc3Qgb2YgcGFja2FnZXMgd2hpY2ggYXJlIGluc3RhbGxlZCBvciBhdmFpbGFibGUKZm9yIGluc3RhbGxhdGlvbi4gIFNpbmNlIHlvdSBkbyBub3QgaGF2ZSB0aGUgcHJpdmlsZWdlIG5lY2Vzc2FyeSB0byB1cGRhdGUKcGFja2FnZSBzdGF0ZXMsIHlvdSBhcmUgaW4gYSByZWFkLW9ubHkgbW9kZS4gIFlvdSBjYW4gbmF2aWdhdGUgYXJvdW5kIHRoZQpsaXN0IHVzaW5nIHRoZSBjdXJzb3Iga2V5cyAocGxlYXNlIHNlZSB0aGUgYEtleXN0cm9rZXMnIGhlbHAgc2NyZWVuKSwgb2JzZXJ2ZQp0aGUgc3RhdHVzIG9mIHRoZSBwYWNrYWdlcyBhbmQgcmVhZCBpbmZvcm1hdGlvbiBhYm91dCB0aGVtLgoKWW91IHNob3VsZCByZWFkIHRoZSBsaXN0IG9mIGtleXMgYW5kIHRoZSBleHBsYW5hdGlvbnMgb2YgdGhlIGRpc3BsYXkuCk11Y2ggb24tbGluZSBoZWxwIGlzIGF2YWlsYWJsZSwgcGxlYXNlIG1ha2UgdXNlIG9mIGl0IC0gcHJlc3MgYD8nIGF0CmFueSB0aW1lIGZvciBoZWxwLgoKV2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBicm93c2luZywgcHJlc3MgYFEnIG9yIDxlbnRlcj4gdG8gcXVpdC4KClByZXNzIDxzcGFjZT4gdG8gbGVhdmUgaGVscCBhbmQgZW50ZXIgdGhlIGxpc3Qgbm93LgoAV2VsY29tZSB0byBkc2VsZWN0J3MgbWFpbiBwYWNrYWdlIGxpc3RpbmcuCgpZb3Ugd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCBhIGxpc3Qgb2YgcGFja2FnZXMgd2hpY2ggYXJlIGluc3RhbGxlZCBvciBhdmFpbGFibGUKZm9yIGluc3RhbGxhdGlvbi4gIFlvdSBjYW4gbmF2aWdhdGUgYXJvdW5kIHRoZSBsaXN0IHVzaW5nIHRoZSBjdXJzb3Iga2V5cywKbWFyayBwYWNrYWdlcyBmb3IgaW5zdGFsbGF0aW9uICh1c2luZyBgKycpIG9yIGRlaW5zdGFsbGF0aW9uICh1c2luZyBgLScpLgpQYWNrYWdlcyBjYW4gYmUgbWFya2VkIGVpdGhlciBzaW5nbHkgb3IgaW4gZ3JvdXBzOyBpbml0aWFsbHkgeW91IHdpbGwgc2VlIHRoYXQKdGhlIGxpbmUgYEFsbCBwYWNrYWdlcycgaXMgc2VsZWN0ZWQuICBgKycsIGAtJyBhbmQgc28gb24gd2lsbCBhZmZlY3QgYWxsIHRoZQpwYWNrYWdlcyBkZXNjcmliZWQgYnkgdGhlIGhpZ2hsaWdodGVkIGxpbmUuCgpTb21lIG9mIHlvdXIgY2hvaWNlcyB3aWxsIGNhdXNlIGNvbmZsaWN0cyBvciBkZXBlbmRlbmN5IHByb2JsZW1zOyB5b3Ugd2lsbCBiZQpnaXZlbiBhIHN1Yi1saXN0IG9mIHRoZSByZWxldmFudCBwYWNrYWdlcywgc28gdGhhdCB5b3UgY2FuIHNvbHZlIHRoZSBwcm9ibGVtcy4KCllvdSBzaG91bGQgcmVhZCB0aGUgbGlzdCBvZiBrZXlzIGFuZCB0aGUgZXhwbGFuYXRpb25zIG9mIHRoZSBkaXNwbGF5LgpNdWNoIG9uLWxpbmUgaGVscCBpcyBhdmFpbGFibGUsIHBsZWFzZSBtYWtlIHVzZSBvZiBpdCAtIHByZXNzIGA/JyBhdAphbnkgdGltZSBmb3IgaGVscC4KCldoZW4geW91IGhhdmUgZmluaXNoZWQgc2VsZWN0aW5nIHBhY2thZ2VzLCBwcmVzcyA8ZW50ZXI+IHRvIGNvbmZpcm0gY2hhbmdlcywKb3IgYFgnIHRvIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcy4gQSBmaW5hbCBjaGVjayBvbiBjb25mbGljdHMgYW5kCmRlcGVuZGVuY2llcyB3aWxsIGJlIGRvbmUgLSBoZXJlIHRvbyB5b3UgbWF5IHNlZSBhIHN1Ymxpc3QuCgpQcmVzcyA8c3BhY2U+IHRvIGxlYXZlIGhlbHAgYW5kIGVudGVyIHRoZSBsaXN0IG5vdy4KAFh0cgBbQV1jY2VzcwBbQ11vbmZpZwBbSV1uc3RhbGwAW1FddWl0AFtSXWVtb3ZlAFtTXWVsZWN0AFtVXXBkYXRlAFtub3QgYm91bmRdAFt1bms6ICVkXQBhAGJVRwBjAGNvbG91cgBjb2xvdXIgYXR0cmlidXRlAGNvbmZsaWN0cyB3aXRoAGNvdWxkbid0IG9wZW4gZGVidWcgZmlsZSBgJS4yNTVzJwoAZGVwZW5kcyBvbgBkb3VwZGF0ZSBmYWlsZWQAZG91cGRhdGUgaW4gU0lHV0lOQ0ggaGFuZGxlciBmYWlsZWQAZHNlbGVjdCAtIGluc3BlY3Rpb24gb2YgcGFja2FnZSBzdGF0ZXMAZHNlbGVjdCAtIGxpc3Qgb2YgYWNjZXNzIG1ldGhvZHMAZHNlbGVjdCAtIG1haW4gcGFja2FnZSBsaXN0aW5nAGRzZWxlY3QgLSByZWN1cnNpdmUgcGFja2FnZSBsaXN0aW5nAGRzZWxlY3QgYW5kIGRwa2cgY2FuIGRvIGF1dG9tYXRpYyBpbnN0YWxsYXRpb24sIGxvYWRpbmcgdGhlIHBhY2thZ2UgZmlsZXMgdG8gYmUKaW5zdGFsbGVkIGZyb20gb25lIG9mIGEgbnVtYmVyIG9mIGRpZmZlcmVudCBwb3NzaWJsZSBwbGFjZXMuCgpUaGlzIGxpc3QgYWxsb3dzIHlvdSB0byBzZWxlY3Qgb25lIG9mIHRoZXNlIGluc3RhbGxhdGlvbiBtZXRob2RzLgoKTW92ZSB0aGUgaGlnaGxpZ2h0IHRvIHRoZSBtZXRob2QgeW91IHdpc2ggdG8gdXNlLCBhbmQgaGl0IEVudGVyLiAgWW91IHdpbGwgdGhlbgpiZSBwcm9tcHRlZCBmb3IgdGhlIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGRvIHRoZSBpbnN0YWxsYXRpb24uCgpBcyB5b3UgbW92ZSB0aGUgaGlnaGxpZ2h0IGEgZGVzY3JpcHRpb24gb2YgZWFjaCBtZXRob2QsIHdoZXJlIGF2YWlsYWJsZSwgaXMKZGlzcGxheWVkIGluIHRoZSBib3R0b20gaGFsZiBvZiB0aGUgc2NyZWVuLgoKSWYgeW91IHdpc2ggdG8gcXVpdCB3aXRob3V0IGNoYW5naW5nIGFueXRoaW5nIHVzZSB0aGUgYHgnIGtleSB3aGlsZSBpbiB0aGUgbGlzdApvZiBpbnN0YWxsYXRpb24gbWV0aG9kcy4KCkEgZnVsbCBsaXN0IG9mIGtleXN0cm9rZXMgaXMgYXZhaWxhYmxlIGJ5IHByZXNzaW5nIGBrJyBub3csIG9yIGZyb20gdGhlIGhlbHAKbWVudSByZWFjaGFibGUgYnkgcHJlc3NpbmcgYD8nLgoAZW5oYW5jZXMAZXJyb3IgZHVyaW5nIHJlYWQgb2YgbWV0aG9kIG9wdGlvbnMgZmlsZSBgJS4yNTBzJwBlcnJvciBkdXJpbmcgcmVhZCBvZiBvcHRpb24gZGVzY3JpcHRpb24gZmlsZSBgJS4yNTBzJwBlcnJvciBpbiByZWd1bGFyIGV4cHJlc3Npb24AZXJyb3IgcmVhZGluZyBhY2tub3dsZWRnZW1lbnQgb2YgcHJvZ3JhbSBmYWlsdXJlIG1lc3NhZ2UAZXJyb3IgcmVhZGluZyBrZXlib2FyZCBpbiBoZWxwAGVycm9yIHJlYWRpbmcgb3B0aW9ucyBmaWxlIGAlLjI1MHMnAGZhaWxlZCB0byBhbGxvY2F0ZSBjb2xvdXIgcGFpcgBmYWlsZWQgdG8gYmxvY2sgU0lHV0lOQ0gAZmFpbGVkIHRvIGNyZWF0ZSBiYXNlbGlzdCBwYWQAZmFpbGVkIHRvIGNyZWF0ZSBoZWFkaW5nIHBhZABmYWlsZWQgdG8gY3JlYXRlIGluZm8gcGFkAGZhaWxlZCB0byBjcmVhdGUgcXVlcnkgd2luZG93AGZhaWxlZCB0byBjcmVhdGUgdGhpc3N0YXRlIHBhZABmYWlsZWQgdG8gY3JlYXRlIHRpdGxlIHdpbmRvdwBmYWlsZWQgdG8gY3JlYXRlIHdoYXRpbmZvIHdpbmRvdwBmYWlsZWQgdG8gZ2V0IG9sZCBTSUdXSU5DSCBzaWdhY3QAZmFpbGVkIHRvIGdldCBvbGQgc2lnbmFsIG1hc2sAZmFpbGVkIHRvIGdldGNoIGluIG1haW4gbWVudQBmYWlsZWQgdG8gcmUtYmxvY2sgU0lHV0lOQ0gAZmFpbGVkIHRvIHJlYWQgb3B0aW9uIGRlc2NyaXB0aW9uIGZpbGUgYCUuMjUwcycAZmFpbGVkIHRvIHJlc3RvcmUgb2xkIFNJR1dJTkNIIHNpZ2FjdABmYWlsZWQgdG8gcmVzdG9yZSBvbGQgc2lnbmFsIG1hc2sAZmFpbGVkIHRvIHNldCBuZXcgU0lHV0lOQ0ggc2lnYWN0AGZhaWxlZCB0byB1bmJsb2NrIFNJR1dJTkNIAGdldGNoIGZhaWxlZABoYWxmIGluc3RhbGxlZABob2xkAGkAaW5kZXggc3RyaW5nIHRvbyBsb25nAGluc3RhbGwAaW5zdGFsbGF0aW9uIHNjcmlwdABpbnN0YWxsZWQAaW52YWxpZCBzZWFyY2ggb3B0aW9uIGdpdmVuAGlvY3RsKFRJT0NHV0lOU1opIGZhaWxlZABtZW51AG1ldGhvZCBgJS4yNTBzJyBoYXMgbmFtZSB0aGF0IGlzIHRvbyBsb25nICglZCA+ICVkIGNoYXJhY3RlcnMpAG5ldyBwYWNrYWdlAG5ld2xpbmUgYmVmb3JlIG9wdGlvbiBuYW1lIHN0YXJ0AG5ld2xpbmUgYmVmb3JlIHN1bW1hcnkAbm9uLWFscGhhbnVtIGluIG9wdGlvbiBuYW1lAG5vbi1kaWdpdCB3aGVyZSBkaWdpdCB3YW50ZWQAbm9uYWxwaGEgd2hlcmUgb3B0aW9uIG5hbWUgc3RhcnQgd2FudGVkAG5vdCBpbnN0YWxsZWQAcHJlLWRlcGVuZHMgb24AcHJvdmlkZXMAcHVyZ2UAcQBxdWVyeS9zZXR1cCBzY3JpcHQAcgByZWNvbW1lbmRzAHJlbW92ZQByZW1vdmVkIChjb25maWdzIHJlbWFpbikAcmVwbGFjZXMAcwBzY3JlZW4gcGFydABzdWdnZXN0cwBzeW50YXggZXJyb3IgaW4gbWV0aG9kIG9wdGlvbnMgZmlsZSBgJS4yNTBzJyAtLSAlcwB0ZXJtaW5hbCBsYWNrcyBuZWNlc3NhcnkgZmVhdHVyZXMsIGdpdmluZyB1cAB1AHVuYWJsZSB0byBhY2Nlc3MgbWV0aG9kIHNjcmlwdCBgJS4yNTBzJwB1bmFibGUgdG8gY2xvc2UgbmV3IG9wdGlvbiBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byBpbnN0YWxsIG5ldyBvcHRpb24gYXMgYCUuMjUwcycAdW5hYmxlIHRvIG9wZW4gY3VycmVudCBvcHRpb24gZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gb3BlbiBuZXcgb3B0aW9uIGZpbGUgYCUuMjUwcycAdW5hYmxlIHRvIG9wZW4gb3B0aW9uIGRlc2NyaXB0aW9uIGZpbGUgYCUuMjUwcycAdW5hYmxlIHRvIHJlYWQgYCUuMjUwcycgZGlyZWN0b3J5IGZvciByZWFkaW5nIG1ldGhvZHMAdW5hYmxlIHRvIHJlYWQgbWV0aG9kIG9wdGlvbnMgZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gc3RhdCBvcHRpb24gZGVzY3JpcHRpb24gZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gd3JpdGUgbmV3IG9wdGlvbiB0byBgJS4yNTBzJwB1bmtub3duIGFjdGlvbiBzdHJpbmcgYCUuNTBzJwB1bnBhY2tlZCAobm90IHNldCB1cCkAdXBkYXRlIGF2YWlsYWJsZSBsaXN0IHNjcmlwdABQcm9qZWN0LUlkLVZlcnNpb246IGRwa2cgMS4xMC4yMgpSZXBvcnQtTXNnaWQtQnVncy1UbzogZGViaWFuLWRwa2dAbGlzdHMuZGViaWFuLm9yZwpQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMS0xMC0xNCAwNzoxMSswMjAwClBPLVJldmlzaW9uLURhdGU6IDIwMDYtMTAtMDYgMjI6MDErMDIwMApMYXN0LVRyYW5zbGF0b3I6IFN0ZWZhbm8gQ2FuZXBhIDxzY0BsaW51eC5pdD4KTGFuZ3VhZ2UtVGVhbTogaXRhbGlhbiA8ZGViaWFuLWwxMG4taXRhbGlhbkBkZWJpYW4ub3JnPgpMYW5ndWFnZTogaXQKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKAAoKJXM6ICVzCgAKClNwb3N0YXRpIGNvbiBeUCBlIF5OLCBpIHRhc3RpIGN1cnNvcmUsIGxldHRlcmEgaW5pemlhbGUgbyBudW1lcm8gZGVsbCdvcHppb25lOwpQcmVtaSA8aW52aW8+IHBlciBjb25mZXJtYXJlIGxhIHNlbGV6aW9uZS4gICBeTCByaWRpc2VnbmEgbGEgc2NoZXJtYXRhLgoKAAoKQWNjZXNzbyBpbiBzb2xhIGxldHR1cmE6IMOoIHBvc3NpYmlsZSBzb2xvIHZpc2lvbmFyZSBsZSBzZWxlemlvbmkhAApQcmVtaSA8aW52aW8+IHBlciBjb250aW51YXJlLgAgACAgLS0gJWQlJSwgcHJlbWkgACAoYWxmYWJldGljYW1lbnRlKQAgKGRpc3Bvbi4sIHByaW9yaXTDoCkAIChkaXNwb24uLCBzZXppb25lKQAgKHBlciBkaXNwb25pYmlsaXTDoCkAIChwZXIgcHJpb3JpdMOgKQAgKHBlciBzZXppb25lKQAgKHBlciBzdGF0bykAIChzdGF0bywgcHJpb3JpdMOgKQAgKHN0YXRvLCBzZXppb25lKQAgbm9uIHNlbWJyYSBlc3NlcmUgZGlzcG9uaWJpbGUKACBtYXJjOisvPS8tIGNvbmNpc2E6diBhaXV0bzo/ACBtYXJjOisvPS8tIGVzdGVzYTp2IGFpdXRvOj8AIG8gACBjb25jaXNhOnYgYWl1dG86PwAgZXN0ZXNhOnYgYWl1dG86PwAhQnVnIQAlLSpzICVzJXMlczsgICVzIChlcmE6ICVzKS4gICVzAFBhY2NoZXR0aSAlMiRzICUxJHMAUGFjY2hldHRpICUyJHMgJTEkcyBuZWxsYSBzZXppb25lICUzJHMAUGFjY2hldHRpICUyJHMgJTEkcyBzZW56YSB1bmEgc2V6aW9uZQAlcyBwZXIgdmVkZXJlIGlsIHJlc3RvAFBhY2NoZXR0aSAlcyBuZWxsYSBzZXppb25lICVzAFBhY2NoZXR0aSAlcyBzZW56YSB1bmEgc2V6aW9uZQAlcyBwZXIgdG9ybmFyZSBpbmRpZXRybwAqIEV2aWRlbnppYXR1cmE6IHVuYSBsaW5lYSBkZWxsJ2VsZW5jbyBkZWkgcGFjY2hldHRpIHZlcnLDoCBldmlkZW56aWF0YSwKICBlZCBpbmRpY2EgYSBxdWFsZSBvIGEgcXVhbGkgcGFjY2hldHRpIHZlcnLDoCBhcHBsaWNhdG8gaWwgY29tYW5kbyBgKycsCiAgYC0nIGUgYF8nLgoKKiBMYSBsaW5lYSBkaXZpc29yaWEgbmVsIG1lenpvIGRlbGxvIHNjaGVybW8gbW9zdHJhIHVuYSBicmV2ZSBzcGllZ2F6aW9uZQogIGRlbGxvIHN0YXRvIGRlbCBwYWNjaGV0dG8gZXZpZGVuemlhdG8gYWwgbW9tZW50bywgbyB1bmEgZGVzY3JpemlvbmUgZGkKICBhIHF1YWxlIGdydXBwbyBzaSBhcHBsaWNoaSBpbCBjb21hbmRvIHNlIHZpZW5lIGV2aWRlbnppYXRhIHVuYSBsaW5lYSBkaQogIGdydXBwby4gU2Ugbm9uIGNhcGl0ZSBpbCBzaWduaWZpY2F0byBkaSBhbGN1bmkgZGVpIGNhcmF0dGVyaSBkaSBzdGF0bwogIG1vc3RyYXRpLCBhbmRhdGUgc3VsIHBhY2NoZXR0byBpbiBxdWVzdGlvbmUgZSBndWFyZGF0ZSBsYSBsaW5lYSBkaXZpc29yaWEsCiAgbyB1c2F0ZSBpbCB0YXN0byBgdicgcGVyIGF2ZXJlIHVuYSBzcGllZ2F6aW9uZSBwcm9saXNzYSAocHJlbWV0ZSBkaSBudW92bwogIGB2JyBwZXIgdG9ybmFyZSBhbGxhIHZpc3VhbGl6emF6aW9uZSBzaW50ZXRpY2EpLgoKKiBJbCBmb25kbyBkZWxsbyBzY2hlcm1vIG1vc3RyYSB1bHRlcmlvcmkgaW5mb3JtYXppb25pIHN1bCBwYWNjaGV0dG8KICBjb3JyZW50ZW1lbnRlIGV2aWRlbnppYXRvLCBzZSBjJ8OoLgoKICBQdcOyIG1vc3RyYXJlIHVuYSBkZXNjcml6aW9uZSBlc3Rlc2EgZGVsIHBhY2NoZXR0bywgaSBkZXR0YWdsaSBkaSBjb250cm9sbG8KICBpbnRlcm5pIGRlbCBwYWNjaGV0dG8gKHNpYSBwZXIgbGEgdmVyc2lvbmUgaW5zdGFsbGF0YSBjaGUgcGVyIHF1ZWxsYSAKICBkaXNwb25pYmlsZSksIG8gaW5mb3JtYXppb25pIHN1aSBjb25mbGl0dGkgZSBzdWxsZSBkaXBlbmRlbnplIHJlbGF0aXZlCiAgYWwgcGFjY2hldHRvIHN0ZXNzbyAoaW4gc290dG9lbGVuY2hpIGRpIHJpc29sdXppb25lIGRpIGNvbmZsaXR0aSBlCiAgZGlwZW5kZW56ZSkuCgogIFVzYXRlIGlsIHRhc3RvIGBpJyBwZXIgZmFyZSB1biBjaWNsbyB0cmEgbGUgc2NoZXJtYXRlLCBlIGBJJyBwZXIgCiAgbmFzY29uZGVyZSBsYSBzY2hlcm1hdGEgZGVsbGUgaW5mb3JtYXppb25pIG8gZXNwYW5kZXJsYSBzdSBxdWFzaSAKICB0dXR0byBsbyBzY2hlcm1vLgoAPwBBYmJyZXYuAEFiYmFuZG9uYSAtIGVzY2kgc2VuemEgYXBwb3J0YXJlIGFsY3VuYSBtb2RpZmljYQBNZXRvZG8gZCdhY2Nlc3NvIGAlcycuAEF6aW9uaToKICBhY2Nlc3MgdXBkYXRlIHNlbGVjdCBpbnN0YWxsIGNvbmZpZyByZW1vdmUgcXVpdAoKAFR1dHRpAFR1dHRpIGkgcGFjY2hldHRpAEF0dHJpYnV0aToKAFZlci5kaXNwLgBkaXNwb25pYmlsaQBQYWNjaGV0dGkgZGlzcG9uaWJpbGkgKG5vbiBhdHR1YWxtZW50ZSBpbnN0YWxsYXRpKQBkaWZldHRvc2kAUGFjY2hldHRpIGluc3RhbGxhdGkgY29uIGRpZmV0dGkAU2NlZ2xpIGlsIG1ldG9kbyBkaSBhY2Nlc3NvIGRhIHVzYXJlLgBDb2xvcmk6CgBDb25maWd1cmEgdHV0dGkgaSBwYWNjaGV0dGkgYW5jb3JhIGRhIGNvbmZpZ3VyYXJlLgBDb3B5cmlnaHQgKEMpIDE5OTQtMTk5NiBJYW4gSmFja3Nvbi4KQ29weXJpZ2h0IChDKSAyMDAwLDIwMDEgV2ljaGVydCBBa2tlcm1hbi4KAFZlZGkgbGUgdmFyaWUgcGFnaW5lIGRpIGluZm9ybWF6aW9uZQBEZWJpYW4gYCVzJyBpbnRlcmZhY2NpYSBwZXIgbGEgZ2VzdGlvbmUgZGVpIHBhY2NoZXR0aSB2ZXJzaW9uZSAlcy4KAFJpc29sdXppb25lIHByb2JsZW1pIGNvbiBsZSBkaXBlbmRlbnplL2NvbmZsaXR0aSAtIGludHJvZHV6aW9uZS4KClVuYSBvIHBpw7kgZGVsbGUgc2NlbHRlIGVmZmV0dHVhdGUgaGFubm8gY2F1c2F0byB1biBjb25mbGl0dG8gbyB1biBwcm9ibGVtYSBjb24KbGUgZGlwZW5kZW56ZSAtIHF1YWxjaGUgcGFjY2hldHRvIGRvdnJlYmJlIGVzc2VyZSBpbnN0YWxsYXRvIHNvbG8gaW5zaWVtZSBjb24KcXVhbGNoZSBhbHRybywgZSBwb3RyZWJiZSBlc3NlcmUgaW1wb3NzaWJpbGUgaW5zdGFsbGFyZSBpbnNpZW1lIHF1YWxjaGUKY29tYmluYXppb25lIGRpIHBhY2NoZXR0aS4KClRpIHZpZW5lIG9yYSBwcm9wb3N0YSB1bmEgc290dG8tbGlzdGEgY29udGVuZW50ZSBpIHBhY2NoZXR0aSBjb2ludm9sdGkuIExhIG1ldMOgCmluZmVyaW9yZSBkZWxsbyBzY2hlcm1vIG1vc3RyYSBpIGNvbmZsaXR0aSBlZCBpIHByb2JsZW1pIGNvbiBsZSBkaXBlbmRlbnplOyB1c2EKYGknIHBlciBwYXNzYXJlIGRhIHF1ZXN0YSBpbmZvcm1hemlvbmUsIGFsbGEgZGVzY3JpemlvbmUgZGVsIHBhY2NoZXR0byBlZCBhbGxlCmluZm9ybWF6aW9uaSBkaSBjb250cm9sbG8gaW50ZXJuZS4KClZpZW5lIHN0YWJpbGl0byB1biBpbnNpZW1lIGRpIHBhY2NoZXR0aSBgc3VnZ2VyaXRpJyBlIGxlIG1hcmNhdHVyZSBpbml6aWFsaSBkaQpxdWVzdGEgc290dG8tbGlzdGEgc29ubyBpbXBvc3RhdGUgZGkgY29uc2VndWVuemEsIGluIG1vZG8gdGFsZSBjaGUgY29uIHVuIHNvbG8KPGludmlvPiB0dSBwb3NzYSBjb25mZXJtYXJlIGxhIHNlbGV6aW9uZSwgc2UgdGkgdmEgYmVuZS4gUHVvaSBhbm51bGxhcmUgbGEKbW9kaWZpY2EgY2hlIGhhIGNhdXNhdG8gaWwgcHJvYmxlbWEsIGUgdG9ybmFyZSBpbmRpZXRybyBhbGxhIGxpc3RhIHByaW5jaXBhbGUKcHJlbWVuZG8gYFgnIG1haXVzY29sYS4KClB1b2kgYW5jaGUgc3Bvc3RhcnRpIHBlciBsYSBsaXN0YSBlIGNhbWJpYXJlIGxlIGltcG9zdGF6aW9uaSBhIHR1byBwaWFjaW1lbnRvLAplIHB1b2kgcmlnZXR0YXJlIGkgbWllaSBzdWdnZXJpbWVudGkgdXNhbmRvIGxlIG1haXVzY29sZSBgRCcgbyBgUicgKHZlZGkgYWl1dG8Kc3VsbGUgYXNzb2NpYXppb25pIGRlaSB0YXN0aSkuICBQdW9pIHVzYXJlIGxhIG1haXVzY29sYSBgUScgcGVyIGZvcnphcm1pIGFkCmFjY2V0dGFyZSBsZSBpbXBvc3RhemlvbmkgY29ycmVudGksIG5lbCBjYXNvIHR1IHZvZ2xpYSBpZ25vcmFyZSB1bmEKcmFjY29tYW5kYXppb25lIG8gcGVyY2jDqSBwZW5zaSBpbCBwcm9ncmFtbWEgc2lhIGluIGVycm9yZS4KClByZW1pIDxzcGF6aW8+IHBlciBsYXNjaWFyZSBsJ2FpdXRvIGUgdmlzaXRhcmUgbGEgc290dG8tbGlzdGE7IHJpY29yZGE6YD8nPWFpdXRvCgBEZXNjcml6aW9uZQBWaXN1YWxpenphemlvbmUsIHBhcnRlIDE6IGxpc3RhIGRlaSBwYWNjaGV0dGkgZSBjYXJhdHRlcmkgZGkgc3RhdG8AVmlzdWFsaXp6YXppb25lLCBwYXJ0ZSAyOiBldmlkZW56aWF6aW9uZSBuZWxsYSBsaXN0YTsgdmlzLiBpbmZvcm1hemlvbmkARUlPTQBFT0YgcHJpbWEgZGVsbCdpbml6aW8gZGVsIG5vbWUgZGVsbCdvcHppb25lAEVPRiBwcmltYSBkZWwgc29tbWFyaW8ARU9GIG5lbGxhIHN0cmluZ2EgZGkgaW5kaWNlAEVPRiBuZWwgbm9tZSBkZWxsJ29wemlvbmUARU9GIG5lbCBzb21tYXJpbyAtIG1hbmNhIGwnYS1jYXBvAEVycm9yZQBFcnJvcmU6IABleHRyYQBWYWkgYWxsYSBmaW5lIGRlbGxhIGxpc3RhAFZhaSBhbGwnaW5pemlvIGRlbGxhIGxpc3RhAFNvbm8gZGlzcG9uaWJpbGkgaW5mb3JtYXppb25pIGRpIGFpdXRvIHN1aSBzZWd1ZW50aSBhcmdvbWVudGk6AEFpdXRvOiAASW1wAGltcG9ydGFudGkAVmVyLmluc3QuAEluc3RhbGxhIGVkIGFnZ2lvcm5hIGkgcGFjY2hldHRpIHNjZWx0aS4ASW5zdGFsbGF0bwBQYWNjaGV0dGkgaW5zdGFsbGF0aQBJbnN0YWxsYXRvPwBJbnRyb2R1emlvbmUgYWxsYSBzb3R0by1saXN0YSBwZXIgbGEgcmlzb2x1emlvbmUgZGVpIGNvbmZsaXR0aS9kaXBlbmRlbnplAEludHJvZHV6aW9uZSBhbGxhIHNlbGV6aW9uZSBkZWwgbWV0b2RvAEludHJvZHV6aW9uZSBhbGxhIHNlbGV6aW9uZSBkZWkgcGFjY2hldHRpAEludHJvZHV6aW9uZSBhbGxhIGxpc3RhIGRlaSBwYWNjaGV0dGkgKGluIHNvbGEgbGV0dHVyYSkARWxlbWVudG8gbm9uIHZhbGlkbyBwZXIgdGFiZWxsYSAlczogJyVzJwoARnVuemlvbmFsaXTDoCBkZWkgVGFzdGkAVGFzdGkgcGVyIGxhIHNlbGV6aW9uZSBkZWwgbWV0b2RvAFJlbmRpIGwnZXZpZGVuemlhemlvbmUgbWVubyBzcGVjaWZpY2EAUmVuZGkgbCdldmlkZW56aWF6aW9uZSBwacO5IHNwZWNpZmljYQBDb250cmFzc2VnbmEgaSBwYWNjaGV0dGkgcGVyIGxhIGRpc2luc3RhbGxhemlvbmUgZWQgZWxpbWluYXppb25lAENvbnRyYXNzZWduYSBpIHBhY2NoZXR0aSBwZXIgbGEgZGlzaW5zdGFsbGF6aW9uZQBDb250cmFzc2VnbmEgaSBwYWNjaGV0dGkgcGVyIGwnaW5zdGFsbGF6aW9uZQBBdHR1YWxtLgBTcG9zdGF0aSBpbiBnacO5AFNwb3N0YXRpIGluIHN1AG51b3ZpAE51b3ZpIHBhY2NoZXR0aSBkaXNwb25pYmlsaQBOZXNzdW5hIHNwaWVnYXppb25lIGRpc3BvbmliaWxlAFNwZWNpZmljYXRvIHVuIGNvbG9yZSBudWxsbwoAUGFjY2hldHRpIG9ic29sZXRpIGUgbG9jYWxpIHByZXNlbnRpIG5lbCBzaXN0ZW1hAG9ic29sZXRpIG8gbG9jYWxpAFByZWNlZGVudC4AT3B6AG9wemlvbmFsaQBPcHppb25pOgogIC0tYWRtaW5kaXIgPGRpcmVjdG9yeT4gICAgIFVzYSA8ZGlyZWN0b3J5PiBpbnZlY2UgZGkgJXMuCiAgLS1leHBlcnQgICAgICAgICAgICAgICAgICAgQWJpbGl0YSBpbCBtb2RvIGVzcGVydG8uCiAgLS1kZWJ1ZyA8ZmlsZT4gfCAtRDxmaWxlPiAgQWJpbGl0YSBpbCBkZWJ1Z2dpbmcsIG1hbmRhbmRvIGwnb3V0cHV0IGEgPGZpbGU+LgogIC0tY29sb3VyIHwgLS1jb2xvciBzY3JlZW5wYXJ0Oltmb3JlZ3JvdW5kXSxbYmFja2dyb3VuZF1bOmF0dHJbK2F0dHIrLi5dXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyYSBpIGNvbG9yaSBkZWxsbyBzY2hlcm1vLgoKAFBhY2NoZXR0bwBQcmVtaSA8aW52aW8+IHBlciBjb250aW51YXJlLgoAUHJlbWkgPyBwZXIgbWVudSBhaXV0bywgLiBwcm9zc2ltbyBhcmdvbWVudG8sIDxzcGF6aW8+IHBlciB1c2NpcmUuAFByZW1pIHVuIHRhc3RvIGRlbGxhIGxpc3RhIHNvcHJhLCA8c3BhemlvPiBvICdxJyBwZXIgdXNjaXJlIGRhbGwnYWl1dG8sCiAgbyAnLicgKHB1bnRvKSBwZXIgbGVnZ2VyZSBvZ25pIHBhZ2luYSBkaSBhaXV0byBpbiBzZXF1ZW56YS4gAFByaW9yaXTDoABFbGltaW5hdG8AUGFjY2hldHRpIGVsaW1pbmF0aSBlIHF1ZWxsaSBtYWkgaW5zdGFsbGF0aQBFc2NpIGRhIGRzZWxlY3QuAEVzY2kgc2VuemEgY2FtYmlhcmUgaWwgbWV0b2RvIGRpIGFjY2Vzc28ARXNjaSwgY29uZmVybWFuZG8gc2VuemEgdWx0ZXJpb3JpIGNvbnRyb2xsaQBFc2NpLCBjb25mZXJtYW5kbywgY29uIGNvbnRyb2xsbyBkZWxsZSBkaXBlbmRlbnplAEVzY2ksIHJpZml1dGFuZG8gaSBzdWdnZXJpbWVudGkgc3VpIGNvbmZsaXR0aS9kaXBlbmRlbnplAFJFSU5TVEFMTABSaWRpc2VnbmEgbGEgc2NoZXJtYXRhAFJpbXVvdmkgaWwgc29mdHdhcmUgbm9uIHZvbHV0by4Acmltb3NzaQBQYWNjaGV0dGkgcmltb3NzaSBlIG5vbiBwacO5IGRpc3BvbmliaWxpAFBhY2NoZXR0aSByaW1vc3NpIChsYSBjb25maWd1cmF6aW9uZSDDqCBhbmNvcmEgcHJlc2VudGUpAFJpcGV0aSBsJ3VsdGltYSByaWNlcmNhLgBFc3MAUmljaGllZGkgYWl1dG8gKHZlZGkgbGUgdmFyaWUgcGFnaW5lIGRpIGFpdXRvKQBTY2VnbGkgcXVhbGkgcGFjY2hldHRpIHZ1b2kgbmVsIHR1byBzaXN0ZW1hLgBlc3NlbnppYWxpAFJpcHJpc3RpbmEgbG8gc3RhdG8gZXNwcmVzc2FtZW50ZSByaWNoaWVzdG8gcGVyIHR1dHRpIGkgcGFjY2hldHRpAFJpcHJpc3RpbmEgbG8gc3RhdG8gcHJlY2VkZW50ZSBwZXIgdHV0dGkgaSBwYWNjaGV0dGkAUmlwcmlzdGluYSBsbyBzdGF0byBzdWdnZXJpdG8gcGVyIHR1dHRpIGkgcGFjY2hldHRpAFNldHRvcmkgc2NoZXJtYXRhOgoAU2NvcnJpIGwnYWl1dG8vaW5mb3JtYXppb25lIGluZGlldHJvAFNjb3JyaSBsJ2FpdXRvL2luZm9ybWF6aW9uZSBpbmRpZXRybyBkaSB1bmEgcmlnYQBTY29ycmkgbGEgbGlzdGEgaW5kaWV0cm8AU2NvcnJpIGxhIGxpc3RhIGluZGlldHJvIGRpIHVuYSByaWdhAFNjb3JyaSBsJ2FpdXRvL2luZm9ybWF6aW9uZSBpbiBhdmFudGkAU2NvcnJpIGwnYWl1dG8vaW5mb3JtYXppb25lIGluIGF2YW50aSBkaSB1bmEgcmlnYQBTY29ycmkgbGEgbGlzdGEgaW4gYXZhbnRpAFNjb3JyaSBsYSBsaXN0YSBpbiBhdmFudGkgZGkgdW5hIHJpZ2EAUmljZXJjYSBkaSA/IABSaWNlcmNhIHVuIHBhY2NoZXR0byBpbCBjdWkgbm9tZSBjb250ZW5nYSB1bmEgc3RyaW5nYQBTZXppb25lAFNlbGV6aW9uYSBpbCBtZXRvZG8gZXZpZGVuemlhdG8ASW1wb3N0YSBjb3JyZXR0YW1lbnRlIGxhIHZhcmlhYmlsZSBURVJNLCB1dGlsaXp6YSB1biB0ZXJtaW5hbGUgbWlnbGlvcmUsCm9wcHVyZSB1c2EgbG8gc3RydW1lbnRvIGRpIGJhc2UgcGVyIGxhIGdlc3Rpb25lIGRlaSBwYWNjaGV0dGkgJXMuCgBzdGFuZGFyZABTdGQAU2NhbWJpYSBsJ29yZGluYW1lbnRvIHByaW9yaXTDoC9zZXppb25lAElsIHRlcm1pbmFsZSBub24gc2VtYnJhIGluIGdyYWRvIGRpIGdlc3RpcmUgaWwgcG9zaXppb25hbWVudG8gZGVsIGN1cnNvcmUuCgBJbCB0ZXJtaW5hbGUgbm9uIHNlbWJyYSBpbiBncmFkbyBkaSBnZXN0aXJlIGwnZXZpZGVuemlhemlvbmUuCgBMYSByaWdhIGNoZSBoYWkgZXZpZGVuemlhdG8gcmFwcHJlc2VudGEgZGl2ZXJzaSBwYWNjaGV0dGk7IHNlIG5lIGNoaWVkaSBsJ2luc3RhbGxhemlvbmUsIGxhIHJpbW96aW9uZSwgaWwgYmxvY2NvIGUgY29zw6wgdmlhIHZlcnJhbm5vIGNvaW52b2x0aSB0dXR0aSBpIHBhY2NoZXR0aSBjaGUgY29ycmlzcG9uZG9ubyBhbCBjcml0ZXJpbyBtb3N0cmF0by4KClNlIHNwb3N0aSBsJ2V2aWRlbnppYXppb25lIHN1IHVuIHNpbmdvbG8gcGFjY2hldHRvIHZlZHJhaSBsZSBpbmZvcm1hemlvbmkgcmVsYXRpdmUgYWQgZXNzbyB2aXN1YWxpenphdGUgcXVpLgpQdW9pIHVzYXJlIGBvJyBlIGBPJyBwZXIgY2FtYmlhcmUgbCdvcmRpbmUgZGkgdmlzdWFsaXp6YXppb25lIGVkIGF2ZXJlIGwnb3Bwb3J0dW5pdMOgIGRpIGNvbnRyYXNzZWduYXJlIGkgcGFjY2hldHRpIGluIGRpZmZlcmVudGkgdGlwaSBkaSByYWdncnVwcGFtZW50by4ARXNlZ3VpIGRzZWxlY3QgLS1oZWxwIHBlciB1biBhaXV0by4Abm9uIGNsYXNzaWZpYy4AUGFjY2hldHRpIGFnZ2lvcm5hdGkgZ2nDoCBpbnN0YWxsYXRpAGdpw6AgYWdnaW9ybmF0aQBBZ2dpb3JuYSwgc2UgcG9zc2liaWxlLCBsJ2VsZW5jbyBkZWkgcGFjY2hldHRpIGRpc3BvbmliaWxpLgBkYSBhZ2dpb3JuYXJlAFBhY2NoZXR0aSBhZ2dpb3JuYWJpbGkgKMOoIGRpc3BvbmliaWxlIHVuYSBudW92YSB2ZXJzaW9uZSkAVXNvOiAlcyBbPG9wemlvbmU+IC4uLl0gWzxhemlvbmU+IC4uLl0KCgBCZW52ZW51dG8gbmVsbGEgbGlzdGEgcHJpbmNpcGFsZSBkZWkgcGFjY2hldHRpIGRpIGRzZWxlY3QuCgpUaSBzYXLDoCBwcmVzZW50YXRhIHVuYSBsaXN0YSBkaSBwYWNjaGV0dGkgY2hlIHNvbm8gaW5zdGFsbGF0aSBvIGRpc3BvbmliaWxpCmFkIGVzc2VybG8uIERhbCBtb21lbnRvIGNoZSBub24gaGFpIGkgcHJpdmlsZWdpIG5lY2Vzc2FyaSBhZCBhZ2dpb3JuYXJlIGxvCnN0YXRvIGRlaSBwYWNjaGV0dGksIHNlaSBpbiBtb2RhbGl0w6AgZGkgc29sYSBsZXR0dXJhLiAgUHVvaSBuYXZpZ2FyZSBpbiBnaXJvCnBlciBsYSBsaXN0YSBjb24gaSB0YXN0aSBjdXJzb3JlICh2ZWRpIGwnYWl1dG8gc3VsbGUgYXNzb2NpYXppb25pIGRlaSB0YXN0aSksCm9zc2VydmFyZSBsbyBzdGF0byBkZWkgcGFjY2hldHRpIGUgbGVnZ2VybmUgbGUgcmVsYXRpdmUgaW5mb3JtYXppb25pLgoKRG92cmVzdGkgbGVnZ2VyZSBsYSBsaXN0YSBkZWkgdGFzdGkgZSBsZSBzcGllZ2F6aW9uaSBzdWxsZSB2aWRlYXRlLgpFJyBkaXNwb25pYmlsZSBtb2x0byBhaXV0byBpbiBsaW5lYSwgdXNhbG8gcGVyIGZhdm9yZSEgIFByZW1pIGA/JyBpbiBxdWFsc2lhc2kKbW9tZW50byBwZXIgdmVkZXJsby4KClF1YW5kbyBoYWkgZmluaXRvIGRpIGlzcGV6aW9uYXJlLCBwcmVtaSBgUScgbyA8aW52aW8+IHBlciB1c2NpcmUuCgpBZGVzc28gcHJlbWkgPHNwYXppbz4gcGVyIGxhc2NpYXJlIGwnYWl1dG8gZSB2aXNpdGFyZSBsYSBsaXN0YS4KAEJlbnZlbnV0byBuZWxsYSBsaXN0YSBwcmluY2lwYWxlIGRlaSBwYWNjaGV0dGkuCgpUaSBzYXLDoCBwcmVzZW50YXRhIHVuYSBsaXN0YSBkZWkgcGFjY2hldHRpIGNoZSBzb25vIGluc3RhbGxhdGkgbyBkaXNwb25pYmlsaQphZCBlc3NlcmxvLiBQdW9pIG5hdmlnYXJlIGluIGdpcm8gcGVyIGxhIGxpc3RhIHVzYW5kbyBpIHRhc3RpIGN1cnNvcmUsIG1hcmNhcmUKaSBwYWNjaGV0dGkgcGVyIGwnaW5zdGFsbGF6aW9uZSAodXNhbmRvIGArJykgbyBwZXIgbGEgcmltb3ppb25lICh1c2FuZG8gYC0nKS4KSSBwYWNjaGV0dGkgcG9zc29ubyBlc3NlcmUgbWFyY2F0aSBzaWEgc2luZ29sYXJtZW50ZSBjaGUgaW4gZ3J1cHBvOyBhbGwnaW5pemlvCnJpc3VsdGVyw6AgZXZpZGVuemlhdGEgbGEgcmlnYSBgVHV0dGkgaSBwYWNjaGV0dGknLiBgKycsYC0nIGUgY29zw6wgdmlhIGFnaXNjb25vCnN1IHR1dHRpIGkgcGFjY2hldHRpIGluZGljYXRpIGRhbGxhIHJpZ2EgZXZpZGVuemlhdGEuCgpBbGN1bmUgc2NlbHRlIGNhdXNlcmFubm8gY29uZmxpdHRpIG8gcHJvYmxlbWkgY29uIGxlIGRpcGVuZGVuemU7IHRpIHZlcnLDoApwcm9wb3N0YSB1bmEgc290dG8tbGlzdGEgZGVpIHBhY2NoZXR0aSBpbiBxdWVzdGlvbmUgY29uc2VudGlydGkgZGkgcmlzb2x2ZXJsaS4KCkRvdnJlc3RpIGxlZ2dlcmUgbGEgbGlzdGEgZGVpIHRhc3RpIGUgbGUgc3BpZWdhemlvbmkgc3VsbGUgc2NoZXJtYXRlLiBFJwpkaXNwb25pYmlsZSBzdmFyaWF0byBhaXV0byBpbiBsaW5lYSwgZmFubmUgYnVvbiB1c28gLSBwcmVtaSBgPycgaW4gcXVhbHNpYXNpCm1vbWVudG8gcGVyIG90dGVuZXJsby4KClF1YW5kbyBzZWkgc29kZGlzZmF0dG8gZGVsbGEgc2VsZXppb25lIHByZW1pIDxpbnZpbz4gcGVyIGNvbmZlcm1hcmUgbGUKbW9kaWZpY2hlLCBvIGBYJyBwZXIgdXNjaXJlIHNlbnphIHNhbHZhcmxlLiAgVmVycsOgIGVmZmV0dHVhdG8gdW4gY29udHJvbGxvCmZpbmFsZSBzdWkgY29uZmxpdHRpIGUgc3VsbGUgZGlwZW5kZW56ZSAtIGFuY2hlIHF1aSBwb3RyZXN0aSBvdHRlbmVyZSB1bmEKc290dG8tbGlzdGEuCgpBZGVzc28gcHJlbWkgPHNwYXppbz4gcGVyIHVzY2lyZSBkYWxsJ2FpdXRvIGVkIGVudHJhcmUgbmVsbGEgbGlzdGEuCgBYdHIAW01dZXRvZG8AW0Ndb25maWd1cmEAW0ldbnN0YWxsYQBbVF1lcm1pbmEAW1JdaW11b3ZpAFtTXWVsZXppb25hAFtBXWdnaW9ybmEAW25vbiBhc3NvY2lhdG8gYWQgYWxjdW5hIGZ1bnppb25lXQBbc2Nvbm9zYy46ICVkXQBtAGJVRwBjAGNvbG9yZQBhdHRyaWJ1dG8gY29sb3JlAMOoIGluIGNvbmZsaXR0byBjb24AaW1wb3NzaWJpbGUgYXByaXJlIGlsIGZpbGUgZGkgZGVidWcgYCUuMjU1cycKAGRpcGVuZGUgZGEAZG91cGRhdGUgZmFsbGl0YQBmYWxsaXRhIGRvdXBkYXRlIG5lbCBnZXN0b3JlIFNJR1dJTkNIAGRzZWxlY3QgLSBpc3BlemlvbmUgZGVsbG8gc3RhdG8gZGVsIHBhY2NoZXR0bwBkc2VsZWN0IC0gbGlzdGEgZGVpIG1ldG9kaSBkaSBhY2Nlc3NvAGRzZWxlY3QgLSBsaXN0YSBwcmluY2lwYWxlAGRzZWxlY3QgLSBsaXN0YSByaWNvcnNpdmEgZGVpIHBhY2NoZXR0aSAAZHNlbGVjdCBlIGRwa2cgcG9zc29ubyBlc2VndWlyZSB1bmEgaW5zdGFsbGF6aW9uZSBhdXRvbWF0aWNhLCBjYXJpY2FuZG8gaQpmaWxlIGRlaSBwYWNjaGV0dGkgZGEgaW5zdGFsbGFyZSBpbiB1bmEgZGVsbGUgc3ZhcmlhdGUgbWFuaWVyZSBwb3NzaWJpbGkuCgpRdWVzdGEgbGlzdGEgdGkgY29uc2VudGUgZGkgc2VsZXppb25hcmUgdW5vIGRpIHF1ZXN0aSBtZXRvZGkgZGkgaW5zdGFsbGF6aW9uZS4KClNwb3N0YSBsJ2V2aWRlbnppYXppb25lIHN1bCBtZXRvZG8gY2hlIGRlc2lkZXJpIHVzYXJlIGUgcHJlbWkgSW52aW8uICBQb2kgdGkKc2FyYW5ubyByaWNoaWVzdGUgbGUgaW5mb3JtYXppb25pIG5lY2Vzc2FyaWUgYWxsJ2luc3RhbGxhemlvbmUuCgpTcG9zdGFuZG8gbCdldmlkZW56aWF6aW9uZSB2aWVuZSB2aXN1YWxpenphdGEgdW5hIGRlc2NyaXppb25lIGRpCmNpYXNjdW4gbWV0b2RvLCBzZSDDqCBkaXNwb25pYmlsZSwgc3VsbGEgbWV0w6AgaW5mZXJpb3JlIGRlbGxvIHNjaGVybW8uCgpTZSBkZXNpZGVyaSB1c2NpcmUgc2VuemEgY2FtYmlhcmUgbnVsbGEsIHVzYSBpbCB0YXN0byBgeCcgbWVudHJlIHNlaSBuZWxsYQpsaXN0YSBkZWkgbWV0b2RpIGRpIGluc3RhbGxhemlvbmUuCgpVbmEgbGlzdGEgY29tcGxldGEgZGVpIHRhc3RpIMOoIGRpc3BvbmliaWxlIHByZW1lbmRvIGBrJyBhZGVzc28sIG8gZGFsIG1lbsO5CmRpIGFpdXRvIGNoZSDDqCByYWdnaXVuZ2liaWxlIHByZW1lbmRvIGA/Jy4KAGVzdGVuZGUAZXJyb3JlIGxlZ2dlbmRvIGlsIGZpbGUgZGkgb3B6aW9uaSBkZWkgbWV0b2RpIGAlLjI1MHMnAGVycm9yZSBsZWdnZW5kbyBpbCBmaWxlIGNvbiBsZSBkZXNjcml6aW9uaSBkZWxsZSBvcHppb25pIGAlLjI1MHMnAGVycm9yZSBuZWxsJ2VzcHJlc3Npb25lIHJlZ29sYXJlAGVycm9yZSBsZWdnZW5kbyBsJ2FjY2V0dGF6aW9uZSBkZWwgbWVzc2FnZ2lvIGRpIGVycm9yZSBkZWwgcHJvZ3JhbW1hAGVycm9yZSBkaSBsZXR0dXJhIGRlbGxhIHRhc3RpZXJhIG5lbGwnYWl1dG8AZXJyb3JlIGxlZ2dlbmRvIGlsIGZpbGUgZGkgb3B6aW9uaSBgJS4yNTBzJwBpbXBvc3NpYmlsZSBhbGxvY2FyZSBsZSBjb3BwaWUgZGkgY29sb3JpAGltcG9zc2liaWxlIGJsb2NjYXJlIFNJR1dJTkNIAGltcG9zc2liaWxlIGNyZWFyZSBsYSBzY2hlcm1hdGEgcGVyIGxhIGxpc3RhIGRpIGJhc2UAaW1wb3NzaWJpbGUgY3JlYXJlIGxhIHNjaGVybWF0YSBwZXIgbCdpbnRlc3RhemlvbmUAaW1wb3NzaWJpbGUgY3JlYXJlIGxhIHNjaGVybWF0YSBkZWxsZSBpbmZvcm1hemlvbmkAaW1wb3NzaWJpbGUgY3JlYXJlIGxhIGZpbmVzdHJhIGRpIHJpY2VyY2EAaW1wb3NzaWJpbGUgY3JlYXJlIGxhIHNjaGVybWF0YSBwZXIgbG8gc3RhdG8gZGVsIHBhY2NoZXR0bwBpbXBvc3NpYmlsZSBjcmVhcmUgbGEgZmluZXN0cmEgZGVsIHRpdG9sbwBpbXBvc3NpYmlsZSBjcmVhcmUgbGEgZmluZXN0cmEgZGkgZGVzY3JpemlvbmUgZGVsbGUgaW5mb3JtYXppb25pAGltcG9zc2liaWxlIG90dGVuZXJlIGxhIHZlY2NoaWEgInNpZ2FjdCIgc3UgU0lHV0lOQ0gAaW1wb3NzaWJpbGUgb3R0ZW5lcmUgbGEgdmVjY2hpYSBtYXNjaGVyYSBkZWkgc2VnbmFsaQBpbXBvc3NpYmlsZSBlc2VndWlyZSBnZXRjaCBuZWwgbWVuw7kgcHJpbmNpcGFsZQBpbXBvc3NpYmlsZSByaWJsb2NjYXJlIFNJR1dJTkNIAGltcG9zc2liaWxlIGxlZ2dlcmUgaWwgZmlsZSBjb24gbGUgZGVzY3JpemlvbmkgZGVsbGUgb3B6aW9uaSBgJS4yNTBzJwBpbXBvc3NpYmlsZSByaXByaXN0aW5hcmUgbGEgdmVjY2hpYSAic2lnYWN0IiBzdSBTSUdXSU5DSABpbXBvc3NpYmlsZSByaXByaXN0aW5hcmUgbGEgdmVjY2hpYSBtYXNjaGVyYSBkZWkgc2VnbmFsaQBpbXBvc3NpYmlsZSBpbXBvc3RhcmUgbGEgbnVvdmEgInNpZ2FjdCIgc3UgU0lHV0lOQ0gAaW1wb3NzaWJpbGUgc2Jsb2NjYXJlIFNJR1dJTkNIAGdldGNoIGZhbGxpdGEAaW5zdGFsbC4gcGFyei4AYmxvY2NhAGkAc3RyaW5nYSBkaSBpbmRpY2UgdHJvcHBvIGx1bmdhAGluc3RhbGxhAGxvIHNjcmlwdCBkaSBpbnN0YWxsYXppb25lAGluc3RhbGxhdG8Ac3BlY2lmaWNhdGEgb3B6aW9uZSBkaSByaWNlcmNhIGVycmF0YQBpb2N0bChUSU9DR1dJTlNaKSBmYWxsaXRhAG1lbsO5AGlsIG1ldG9kbyBgJS4yNTBzJyBoYSB1biBub21lIHRyb3BwbyBsdW5nbyAoJWQgPiAlZCBjYXJhdHRlcmkpAG51b3ZvAGEtY2FwbyBwcmltYSBkZWxsJ2luaXppbyBkZWwgbm9tZSBkZWxsJ29wemlvbmUAYS1jYXBvIHByaW1hIGRlbCBzb21tYXJpbwBjYXJhdHRlcmUgbm9uIGFsZmFudW1lcmljbyBuZWwgbm9tZSBkZWxsJ29wemlvbmUAdW4gY2FyYXR0ZXJlIGNoZSBub24gw6ggdW5hIGNpZnJhIGRvdmUgcXVlc3RhIMOoIHJpY2hpZXN0YQBjYXJhdHRlcmUgbm9uIGFsZmFiZXRpY28gZG92ZSBkZXZlIGNvbWluY2lhcmUgaWwgbm9tZSBkZWxsJ29wemlvbmUAbm9uIGluc3RhbGxhdG8AcHJlLWRpcGVuZGUgZGEAZm9ybmlzY2UAZWxpbWluYQB0AGxvIHNjcmlwdCBkaSBxdWVyeS9zZXR1cAByAHJhY2NvbWFuZGEAcmltdW92aQByaW1vc3NvIChyaW1hbmUgbGEgY29uZmlnLikAc29zdGl0dWlzY2UAcwBzZXR0b3JlIHNjaGVybWF0YQBzdWdnZXJpc2NlAGVycm9yZSBkaSBzaW50YXNzaSBuZWwgZmlsZSBkaSBvcHppb25pIGRlaSBtZXRvZGkgYCUuMjUwcycgLS0gJXMAaWwgdGVybWluYWxlIG1hbmNhIGRlbGxlIGZ1bnppb25hbGl0w6AgbmVjZXNzYXJpZSwgbGFzY2lvIHBlcmRlcmUAYQBpbXBvc3NpYmlsZSBhY2NlZGVyZSBhbGxvIHNjcmlwdCBkaSBtZXRvZG8gYCUuMjUwcycAaW1wb3NzaWJpbGUgY2hpdWRlcmUgaWwgbnVvdm8gZmlsZSBkaSBvcHppb25pIGAlLjI1MHMnAGltcG9zc2liaWxlIGluc3RhbGxhcmUgbGEgbnVvdmEgb3B6aW9uZSBjb21lIGAlLjI1MHMnAGltcG9zc2liaWxlIGFwcmlyZSBpbCBmaWxlIGRpIG9wemlvbmkgY29ycmVudGUgYCUuMjUwcycAaW1wb3NzaWJpbGUgYXByaXJlIGlsIG51b3ZvIGZpbGUgZGkgb3B6aW9uaSBgJS4yNTBzJwBpbXBvc3NpYmlsZSBhcHJpcmUgaWwgZmlsZSBjb24gbGUgZGVzY3JpemlvbmkgZGVsbGUgb3B6aW9uaSBgJS4yNTBzJwBpbXBvc3NpYmlsZSBsZWdnZXJlIGxhIGRpcmVjdG9yeSBgJS4yNTBzJyBwZXIgbGVnZ2VyZSBpIG1ldG9kaQBpbXBvc3NpYmlsZSBsZWdnZXJlIGlsIGZpbGUgZGkgb3B6aW9uaSBkZWkgbWV0b2RpIGAlLjI1MHMnAGltcG9zc2liaWxlIGVzZWd1aXJlIHN0YXQgc3VsIGZpbGUgY29uIGxlIGRlc2NyaXppb25pIGRlbGxlIG9wemlvbmkgYCUuMjUwcycAaW1wb3NzaWJpbGUgc2NyaXZlcmUgbGEgbnVvdmEgb3B6aW9uZSBpbiBgJS4yNTBzJwBzdHJpbmdhIGRpIGF6aW9uZSBzY29ub3NjaXV0YSBgJS41MHMnAHNwYWNjaGV0dGF0byAobm9uIGNvbmYuKQBsbyBzY3JpcHQgZGkgYWdnaW9ybmFtZW50byBkZWxsYSBkaXNwb25pYmlsaXTDoAA=