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b3JpdHkpACAoYnkgc2VjdGlvbikAIChieSBzdGF0dXMpACAoc3RhdHVzLCBwcmlvcml0eSkAIChzdGF0dXMsIHNlY3Rpb24pACBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYXZhaWxhYmxlCgAgbWFyazorLz0vLSB0ZXJzZTp2IGhlbHA6PwAgbWFyazorLz0vLSB2ZXJib3NlOnYgaGVscDo/ACBvciAAIHRlcnNlOnYgaGVscDo/ACB2ZXJib3NlOnYgaGVscDo/ACFCdWchACUtKnMgJXMlcyVzOyAgJXMgKHdhczogJXMpLiAgJXMAJXMgJXMgcGFja2FnZXMAJXMgJXMgcGFja2FnZXMgaW4gc2VjdGlvbiAlcwAlcyAlcyBwYWNrYWdlcyB3aXRob3V0IGEgc2VjdGlvbgAlcyBmb3IgbW9yZQAlcyBwYWNrYWdlcyBpbiBzZWN0aW9uICVzACVzIHBhY2thZ2VzIHdpdGhvdXQgYSBzZWN0aW9uACVzIHRvIGdvIGJhY2sAKiBIaWdobGlnaHQ6IE9uZSBsaW5lIGluIHRoZSBwYWNrYWdlIGxpc3Qgd2lsbCBiZSBoaWdobGlnaHRlZC4gIEl0IGluZGljYXRlcwogIHdoaWNoIHBhY2thZ2Uocykgd2lsbCBiZSBhZmZlY3RlZCBieSBwcmVzc2VzIG9mIGArJywgYC0nIGFuZCBgXycuCgoqIFRoZSBkaXZpZGluZyBsaW5lIGluIHRoZSBtaWRkbGUgb2YgdGhlIHNjcmVlbiBzaG93cyBhIGJyaWVmIGV4cGxhbmF0aW9uIG9mCiAgdGhlIHN0YXR1cyBvZiB0aGUgY3VycmVudGx5LWhpZ2hsaWdodGVkIHBhY2thZ2UsIG9yIGEgZGVzY3JpcHRpb24gb2Ygd2hpY2gKICBncm91cCBpcyBoaWdobGlnaHRlZCBpZiBhIGdyb3VwIGxpbmUgaXMuICBJZiB5b3UgZG9uJ3QgdW5kZXJzdGFuZCB0aGUKICBtZWFuaW5nIG9mIHNvbWUgb2YgdGhlIHN0YXR1cyBjaGFyYWN0ZXJzIGRpc3BsYXllZCwgZ28gdG8gdGhlIHJlbGV2YW50CiAgcGFja2FnZSBhbmQgbG9vayBhdCB0aGlzIGRpdmlkZXIgbGluZSwgb3IgdXNlIHRoZSBgdicga2V5IGZvciBhIHZlcmJvc2UKICBkaXNwbGF5IChwcmVzcyBgdicgYWdhaW4gdG8gZ28gYmFjayB0byB0aGUgdGVyc2UgZGlzcGxheSkuCgoqIFRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiBzaG93cyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZQogIGN1cnJlbnRseS1oaWdobGlnaHRlZCBwYWNrYWdlIChpZiB0aGVyZSBpcyBvbmx5IG9uZSkuCgogIEl0IGNhbiBzaG93IGFuIGV4dGVuZGVkIGRlc2NyaXB0aW9uIG9mIHRoZSBwYWNrYWdlLCB0aGUgaW50ZXJuYWwgcGFja2FnZQogIGNvbnRyb2wgZGV0YWlscyAoZWl0aGVyIGZvciB0aGUgaW5zdGFsbGVkIG9yIGF2YWlsYWJsZSB2ZXJzaW9uIG9mIHRoZQogIHBhY2thZ2UpLCBvciBpbmZvcm1hdGlvbiBhYm91dCBjb25mbGljdHMgYW5kIGRlcGVuZGVuY2llcyBpbnZvbHZpbmcgdGhlCiAgY3VycmVudCBwYWNrYWdlIChpbiBjb25mbGljdC9kZXBlbmRlbmN5IHJlc29sdXRpb24gc3VibGlzdHMpLgoKICBVc2UgdGhlIGBpJyBrZXkgdG8gY3ljbGUgdGhyb3VnaCB0aGUgZGlzcGxheXMsIGFuZCBgSScgdG8gaGlkZSB0aGUKICBpbmZvcm1hdGlvbiBkaXNwbGF5IG9yIGV4cGFuZCBpdCB0byB1c2UgYWxtb3N0IGFsbCBvZiB0aGUgc2NyZWVuLgoAPHN0YW5kYXJkIGVycm9yPgA8c3RhbmRhcmQgb3V0cHV0PgA/AEFiYnJldi4AQWJvcnQgLSBxdWl0IHdpdGhvdXQgbWFraW5nIGNoYW5nZXMAQWNjZXNzIG1ldGhvZCBgJXMnLgBBY3Rpb25zOgogIGFjY2VzcyB1cGRhdGUgc2VsZWN0IGluc3RhbGwgY29uZmlnIHJlbW92ZSBxdWl0CgoAQWxsAEFsbCBwYWNrYWdlcwBBdHRyaWJ1dGVzOgoAQXZhaWwudmVyAEF2YWlsYWJsZQBBdmFpbGFibGUgY29udHJvbCBmaWxlIGluZm9ybWF0aW9uAEF2YWlsYWJsZSBwYWNrYWdlcyAobm90IGN1cnJlbnRseSBpbnN0YWxsZWQpAEJyb2tlbgBCcm9rZW5seSBpbnN0YWxsZWQgcGFja2FnZXMAQ2hvb3NlIHRoZSBhY2Nlc3MgbWV0aG9kIHRvIHVzZS4AQ29sb3VyczoKAENvbmZpZ3VyZSBhbnkgcGFja2FnZXMgdGhhdCBhcmUgdW5jb25maWd1cmVkLgBDb3B5cmlnaHQgKEMpIDE5OTQtMTk5NiBJYW4gSmFja3Nvbi4KQ29weXJpZ2h0IChDKSAyMDAwLDIwMDEgV2ljaGVydCBBa2tlcm1hbi4KAEN5Y2xlIHRocm91Z2ggaW5mb3JtYXRpb24gZGlzcGxheXMARGViaWFuIGAlcycgcGFja2FnZSBoYW5kbGluZyBmcm9udGVuZCB2ZXJzaW9uICVzLgoARGVwZW5kZW5jeS9jb25mbGljdCByZXNvbHV0aW9uIC0gaW50cm9kdWN0aW9uLgoKT25lIG9yIG1vcmUgb2YgeW91ciBjaG9pY2VzIGhhdmUgcmFpc2VkIGEgY29uZmxpY3Qgb3IgZGVwZW5kZW5jeSBwcm9ibGVtIC0Kc29tZSBwYWNrYWdlcyBzaG91bGQgb25seSBiZSBpbnN0YWxsZWQgaW4gY29uanVuY3Rpb24gd2l0aCBjZXJ0YWluIG90aGVycywgYW5kCnNvbWUgY29tYmluYXRpb25zIG9mIHBhY2thZ2VzIG1heSBub3QgYmUgaW5zdGFsbGVkIHRvZ2V0aGVyLgoKWW91IHdpbGwgc2VlIGEgc3ViLWxpc3QgY29udGFpbmluZyB0aGUgcGFja2FnZXMgaW52b2x2ZWQuICBUaGUgYm90dG9tIGhhbGYgb2YKdGhlIGRpc3BsYXkgc2hvd3MgcmVsZXZhbnQgY29uZmxpY3RzIGFuZCBkZXBlbmRlbmNpZXM7IHVzZSBgaScgdG8gY3ljbGUgYmV0d2Vlbgp0aGF0LCB0aGUgcGFja2FnZSBkZXNjcmlwdGlvbnMgYW5kIHRoZSBpbnRlcm5hbCBjb250cm9sIGluZm9ybWF0aW9uLgoKQSBzZXQgb2YgYHN1Z2dlc3RlZCcgcGFja2FnZXMgaGFzIGJlZW4gY2FsY3VsYXRlZCwgYW5kIHRoZSBpbml0aWFsIG1hcmtpbmdzIGluCnRoaXMgc3ViLWxpc3QgaGF2ZSBiZWVuIHNldCB0byBtYXRjaCB0aG9zZSwgc28geW91IGNhbiBqdXN0IGhpdCBSZXR1cm4gdG8KYWNjZXB0IHRoZSBzdWdnZXN0aW9ucyBpZiB5b3Ugd2lzaC4gIFlvdSBtYXkgYWJvcnQgdGhlIGNoYW5nZShzKSB3aGljaCBjYXVzZWQKdGhlIHByb2JsZW0ocyksIGFuZCBnbyBiYWNrIHRvIHRoZSBtYWluIGxpc3QsIGJ5IHByZXNzaW5nIGNhcGl0YWwgYFgnLgoKWW91IGNhbiBhbHNvIG1vdmUgYXJvdW5kIHRoZSBsaXN0IGFuZCBjaGFuZ2UgdGhlIG1hcmtpbmdzIHNvIHRoYXQgdGhleSBhcmUgbW9yZQpsaWtlIHdoYXQgeW91IHdhbnQsIGFuZCB5b3UgY2FuIGByZWplY3QnIG15IHN1Z2dlc3Rpb25zIGJ5IHVzaW5nIHRoZSBjYXBpdGFsCmBEJyBvciBgUicga2V5cyAoc2VlIHRoZSBrZXliaW5kaW5ncyBoZWxwIHNjcmVlbikuICBZb3UgY2FuIHVzZSBjYXBpdGFsIGBRJyB0bwpmb3JjZSBtZSB0byBhY2NlcHQgdGhlIHNpdHVhdGlvbiBjdXJyZW50bHkgZGlzcGxheWVkLCBpbiBjYXNlIHlvdSB3YW50IHRvCm92ZXJyaWRlIGEgcmVjb21tZW5kYXRpb24gb3IgdGhpbmsgdGhhdCB0aGUgcHJvZ3JhbSBpcyBtaXN0YWtlbi4KClByZXNzIDxzcGFjZT4gdG8gbGVhdmUgaGVscCBhbmQgZW50ZXIgdGhlIHN1Yi1saXN0OyByZW1lbWJlcjogcHJlc3MgYD8nIGZvciBoZWxwLgoARGVzY3JpcHRpb24ARGlzcGxheSwgcGFydCAxOiBwYWNrYWdlIGxpc3RpbmcgYW5kIHN0YXR1cyBjaGFycwBEaXNwbGF5LCBwYXJ0IDI6IGxpc3QgaGlnaGxpZ2h0OyBpbmZvcm1hdGlvbiBkaXNwbGF5AEVJT00ARU9GIGJlZm9yZSBvcHRpb24gbmFtZSBzdGFydABFT0YgYmVmb3JlIHN1bW1hcnkARU9GIGluIGluZGV4IHN0cmluZwBFT0YgaW4gb3B0aW9uIG5hbWUARU9GIGluIHN1bW1hcnkgLSBtaXNzaW5nIG5ld2xpbmUARXJyb3IARXJyb3I6IABFeHBsYW5hdGlvbgBFeHRyYQBHbyB0byBlbmQgb2YgbGlzdABHbyB0byB0b3Agb2YgbGlzdABIZWxwIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIHRvcGljczoASGVscDogAEltcABJbXBvcnRhbnQASW5zdC52ZXIASW5zdGFsbCBhbmQgdXBncmFkZSB3YW50ZWQgcGFja2FnZXMuAEluc3RhbGxlZABJbnN0YWxsZWQgY29udHJvbCBmaWxlIGluZm9ybWF0aW9uAEluc3RhbGxlZCBwYWNrYWdlcwBJbnN0YWxsZWQ/AEludGVycmVsYXRpb25zaGlwcwBJbnRyb2R1Y3Rpb24gdG8gY29uZmxpY3QvZGVwZW5kZW5jeSByZXNvbHV0aW9uIHN1Yi1saXN0AEludHJvZHVjdGlvbiB0byBtZXRob2Qgc2VsZWN0aW9uIGRpc3BsYXkASW50cm9kdWN0aW9uIHRvIHBhY2thZ2Ugc2VsZWN0aW9ucwBJbnRyb2R1Y3Rpb24gdG8gcmVhZC1vbmx5IHBhY2thZ2UgbGlzdCBicm93c2VyAEludmFsaWQgJXMgYCVzJwoAS2V5YmluZGluZ3MAS2V5c3Ryb2tlcwBLZXlzdHJva2VzIGZvciBtZXRob2Qgc2VsZWN0aW9uAE1ha2UgaGlnaGxpZ2h0IGxlc3Mgc3BlY2lmaWMATWFrZSBoaWdobGlnaHQgbW9yZSBzcGVjaWZpYwBNYXJrIHBhY2thZ2UocykgZm9yIGRlaW5zdGFsbCBhbmQgcHVyZ2UATWFyayBwYWNrYWdlKHMpIGZvciBkZWluc3RhbGxhdGlvbgBNYXJrIHBhY2thZ2UocykgZm9yIGluc3RhbGxhdGlvbgBNYXJrZWQgZm9yAE1vdGlvbiBrZXlzOiBOZXh0L1ByZXZpb3VzLCBUb3AvRW5kLCBVcC9Eb3duLCBCYWNrd2FyZHMvRm9yd2FyZHM6CiAgaiwgRG93bi1hcnJvdyAgICAgICAgIGssIFVwLWFycm93ICAgICAgICAgICAgIG1vdmUgaGlnaGxpZ2h0CiAgTiwgUGFnZS1kb3duLCBTcGFjZSAgIFAsIFBhZ2UtdXAsIEJhY2tzcGFjZSAgIHNjcm9sbCBsaXN0IGJ5IDEgcGFnZQogIF5uICAgICAgICAgICAgICAgICAgICBecCAgICAgICAgICAgICAgICAgICAgICBzY3JvbGwgbGlzdCBieSAxIGxpbmUKICB0LCBIb21lICAgICAgICAgICAgICAgZSwgRW5kICAgICAgICAgICAgICAgICAganVtcCB0byB0b3AvZW5kIG9mIGxpc3QKICB1ICAgICAgICAgICAgICAgICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsIGluZm8gYnkgMSBwYWdlCiAgXnUgICAgICAgICAgICAgICAgICAgIF5kICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbCBpbmZvIGJ5IDEgbGluZQogIEIsIExlZnQtYXJyb3cgICAgICAgICBGLCBSaWdodC1hcnJvdyAgICAgICAgICBwYW4gZGlzcGxheSBieSAxLzMgc2NyZWVuCiAgXmIgICAgICAgICAgICAgICAgICAgIF5mICAgICAgICAgICAgICAgICAgICAgIHBhbiBkaXNwbGF5IGJ5IDEgY2hhcmFjdGVyCgpNYXJrIHBhY2thZ2VzIGZvciBsYXRlciBwcm9jZXNzaW5nOgogKywgSW5zZXJ0ICBpbnN0YWxsIG9yIHVwZ3JhZGUgICAgICA9LCBIICBob2xkIGluIHByZXNlbnQgc3RhdGUKIC0sIERlbGV0ZSAgcmVtb3ZlICAgICAgICAgICAgICAgICAgOiwgRyAgdW5ob2xkOiB1cGdyYWRlIG9yIGxlYXZlIHVuaW5zdGFsbGVkCiBfICAgICAgICAgIHJlbW92ZSAmIHB1cmdlIGNvbmZpZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzOgpRdWl0LCBleGl0LCBvdmVyd3JpdGUgKG5vdGUgY2FwaXRhbHMhKTogICAgICAgPywgRjEgcmVxdWVzdCBoZWxwIChhbHNvIEhlbHApCiBSZXR1cm4gIENvbmZpcm0sIHF1aXQgKGNoZWNrIGRlcGVuZGVuY2llcykgICBpLCBJICB0b2dnbGUvY3ljbGUgaW5mbyBkaXNwbGF5cwogICBRICAgICBDb25maXJtLCBxdWl0IChvdmVycmlkZSBkZXAucykgICAgICAgbywgTyAgY3ljbGUgdGhyb3VnaCBzb3J0IG9wdGlvbnMKIFgsIEVzYyAgZVhpdCwgYWJhbmRvbmluZyBhbnkgY2hhbmdlcyBtYWRlICAgIHYsIFYgIGNoYW5nZSBzdGF0dXMgZGlzcGxheSBvcHRzCiAgIFIgICAgIFJldmVydCB0byBzdGF0ZSBiZWZvcmUgdGhpcyBsaXN0ICAgICAgXmwgICByZWRyYXcgZGlzcGxheQogICBVICAgICBzZXQgYWxsIHRvIHNVZ2dlc3RlZCBzdGF0ZSAgICAgICAgICAgICAvICAgc2VhcmNoIChSZXR1cm4gdG8gY2FuY2VsKQogICBEICAgICBzZXQgYWxsIHRvIERpcmVjdGx5IHJlcXVlc3RlZCBzdGF0ZSAgbiwgXCAgcmVwZWF0IGxhc3Qgc2VhcmNoCgBNb3Rpb24ga2V5czogTmV4dC9QcmV2aW91cywgVG9wL0VuZCwgVXAvRG93biwgQmFja3dhcmRzL0ZvcndhcmRzOgogIGosIERvd24tYXJyb3cgICAgICAgICBrLCBVcC1hcnJvdyAgICAgICAgICAgICBtb3ZlIGhpZ2hsaWdodAogIE4sIFBhZ2UtZG93biwgU3BhY2UgICBQLCBQYWdlLXVwLCBCYWNrc3BhY2UgICBzY3JvbGwgbGlzdCBieSAxIHBhZ2UKICBebiAgICAgICAgICAgICAgICAgICAgXnAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsIGxpc3QgYnkgMSBsaW5lCiAgdCwgSG9tZSAgICAgICAgICAgICAgIGUsIEVuZCAgICAgICAgICAgICAgICAgIGp1bXAgdG8gdG9wL2VuZCBvZiBsaXN0CiAgdSAgICAgICAgICAgICAgICAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbCBpbmZvIGJ5IDEgcGFnZQogIF51ICAgICAgICAgICAgICAgICAgICBeZCAgICAgICAgICAgICAgICAgICAgICBzY3JvbGwgaW5mbyBieSAxIGxpbmUKICBCLCBMZWZ0LWFycm93ICAgICAgICAgRiwgUmlnaHQtYXJyb3cgICAgICAgICAgcGFuIGRpc3BsYXkgYnkgMS8zIHNjcmVlbgogIF5iICAgICAgICAgICAgICAgICAgICBeZiAgICAgICAgICAgICAgICAgICAgICBwYW4gZGlzcGxheSBieSAxIGNoYXJhY3RlcgooVGhlc2UgYXJlIHRoZSBzYW1lIG1vdGlvbiBrZXlzIGFzIGluIHRoZSBwYWNrYWdlIGxpc3QgZGlzcGxheS4pCgpRdWl0OgogUmV0dXJuLCBFbnRlciAgICBzZWxlY3QgdGhpcyBtZXRob2QgYW5kIGdvIHRvIGl0cyBjb25maWd1cmF0aW9uIGRpYWxvZ3VlCiB4LCBYICAgICAgICAgICAgIGV4aXQgd2l0aG91dCBjaGFuZ2luZyBvciBzZXR0aW5nIHVwIHRoZSBpbnN0YWxsYXRpb24gbWV0aG9kCgpNaXNjZWxsYW5lb3VzOgogID8sIEhlbHAsIEYxICAgICAgcmVxdWVzdCBoZWxwCiBebCAgICAgICAgICAgICAgICByZWRyYXcgZGlzcGxheQogIC8gICAgICAgICAgICAgICAgc2VhcmNoIChqdXN0IHJldHVybiB0byBjYW5jZWwpCiAgXCAgICAgICAgICAgICAgICByZXBlYXQgbGFzdCBzZWFyY2gKAE1vdmUgZG93bgBNb3ZlIHVwAE5ldwBOZXdseSBhdmFpbGFibGUgcGFja2FnZXMATm8gZGVzY3JpcHRpb24gYXZhaWxhYmxlLgBObyBleHBsYW5hdGlvbiBhdmFpbGFibGUuAE51bGwgY29sb3VyIHNwZWNpZmljYXRpb24KAE9ic29sZXRlIGFuZCBsb2NhbCBwYWNrYWdlcyBwcmVzZW50IG9uIHN5c3RlbQBPYnNvbGV0ZS9sb2NhbABPbGQgbWFyawBPcHQAT3B0aW9uYWwAT3B0aW9uczoKICAtLWFkbWluZGlyIDxkaXJlY3Rvcnk+ICAgICBVc2UgPGRpcmVjdG9yeT4gaW5zdGVhZCBvZiAlcy4KICAtLWV4cGVydCAgICAgICAgICAgICAgICAgICBUdXJuIG9uIGV4cGVydCBtb2RlLgogIC0tZGVidWcgPGZpbGU+IHwgLUQ8ZmlsZT4gIFR1cm4gb24gZGVidWdnaW5nLCBzZW5kaW5nIG91dHB1dCB0byA8ZmlsZT4uCiAgLS1jb2xvdXIgfCAtLWNvbG9yIHNjcmVlbnBhcnQ6W2ZvcmVncm91bmRdLFtiYWNrZ3JvdW5kXVs6YXR0clsrYXR0cisuLl1dCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJlIHNjcmVlbiBjb2xvdXJzLgoKAFBhY2thZ2UAUHJlc3MgPGVudGVyPiB0byBjb250aW51ZS4KAFByZXNzID8gZm9yIGhlbHAgbWVudSwgLiBmb3IgbmV4dCB0b3BpYywgPHNwYWNlPiB0byBleGl0IGhlbHAuAFByZXNzIGEga2V5IGZyb20gdGhlIGxpc3QgYWJvdmUsIDxzcGFjZT4gb3IgYHEnIHRvIGV4aXQgaGVscCwKICBvciBgLicgKGZ1bGwgc3RvcCkgdG8gcmVhZCBlYWNoIGhlbHAgcGFnZSBpbiB0dXJuLiAAUHJpb3JpdHkAUHVyZ2VkAFB1cmdlZCBwYWNrYWdlcyBhbmQgdGhvc2UgbmV2ZXIgaW5zdGFsbGVkAFF1aXQgZHNlbGVjdC4AUXVpdCB3aXRob3V0IGNoYW5naW5nIHNlbGVjdGVkIGFjY2VzcyBtZXRob2QAUXVpdCwgY29uZmlybWluZyB3aXRob3V0IGNoZWNrAFF1aXQsIGNvbmZpcm1pbmcsIGFuZCBjaGVja2luZyBkZXBlbmRlbmNpZXMAUXVpdCwgcmVqZWN0aW5nIGNvbmZsaWN0L2RlcGVuZGVuY3kgc3VnZ2VzdGlvbnMAUkVJTlNUQUxMAFJlZHJhdyBkaXNwbGF5AFJlbW92ZSB1bndhbnRlZCBzb2Z0d2FyZS4AUmVtb3ZlZABSZW1vdmVkIGFuZCBubyBsb25nZXIgYXZhaWxhYmxlIHBhY2thZ2VzAFJlbW92ZWQgcGFja2FnZXMgKGNvbmZpZ3VyYXRpb24gc3RpbGwgcHJlc2VudCkAUmVwZWF0IGxhc3Qgc2VhcmNoLgBSZXEAUmVxdWVzdCBoZWxwIChjeWNsZSB0aHJvdWdoIGhlbHAgc2NyZWVucykAUmVxdWVzdCB3aGljaCBwYWNrYWdlcyB5b3Ugd2FudCBvbiB5b3VyIHN5c3RlbS4AUmVxdWlyZWQAUmV2ZXJ0IHRvIGN1cnJlbnRseSBpbnN0YWxsZWQgc3RhdGUgZm9yIGFsbCBwYWNrYWdlcwBSZXZlcnQgdG8gZGlyZWN0bHkgcmVxdWVzdGVkIHN0YXRlIGZvciBhbGwgcGFja2FnZXMAUmV2ZXJ0IHRvIG9sZCBzdGF0ZSBmb3IgYWxsIHBhY2thZ2VzAFJldmVydCB0byBzdWdnZXN0ZWQgc3RhdGUgZm9yIGFsbCBwYWNrYWdlcwBTY3JlZW5wYXJ0czoKAFNjcm9sbCBiYWNrd2FyZHMgdGhyb3VnaCBoZWxwL2luZm9ybWF0aW9uAFNjcm9sbCBiYWNrd2FyZHMgdGhyb3VnaCBoZWxwL2luZm9ybWF0aW9uIGJ5IDEgbGluZQBTY3JvbGwgYmFja3dhcmRzIHRocm91Z2ggbGlzdABTY3JvbGwgYmFja3dhcmRzIHRocm91Z2ggbGlzdCBieSAxIGxpbmUAU2Nyb2xsIG9ud2FyZHMgdGhyb3VnaCBoZWxwL2luZm9ybWF0aW9uAFNjcm9sbCBvbndhcmRzIHRocm91Z2ggaGVscC9pbmZvcm1hdGlvbiBieSAxIGxpbmUAU2Nyb2xsIG9ud2FyZHMgdGhyb3VnaCBsaXN0AFNjcm9sbCBvbndhcmRzIHRocm91Z2ggbGlzdCBieSAxIGxpbmUAU2VhcmNoIGZvciA/IABTZWFyY2ggZm9yIGEgcGFja2FnZSB3aG9zZSBuYW1lIGNvbnRhaW5zIGEgc3RyaW5nAFNlY3Rpb24AU2VsZWN0IGN1cnJlbnRseS1oaWdobGlnaHRlZCBhY2Nlc3MgbWV0aG9kAFNldCB5b3VyIFRFUk0gdmFyaWFibGUgY29ycmVjdGx5LCB1c2UgYSBiZXR0ZXIgdGVybWluYWwsCm9yIG1ha2UgZG8gd2l0aCB0aGUgcGVyLXBhY2thZ2UgbWFuYWdlbWVudCB0b29sICVzLgoAU3RhbmRhcmQAU3RkAFN3YXAgc29ydCBvcmRlciBwcmlvcml0eS9zZWN0aW9uAFRlcm1pbmFsIGRvZXMgbm90IGFwcGVhciB0byBzdXBwb3J0IGN1cnNvciBhZGRyZXNzaW5nLgoAVGVybWluYWwgZG9lcyBub3QgYXBwZWFyIHRvIHN1cHBvcnQgaGlnaGxpZ2h0aW5nLgoAVGhlIGxpbmUgeW91IGhhdmUgaGlnaGxpZ2h0ZWQgcmVwcmVzZW50cyBtYW55IHBhY2thZ2VzOyBpZiB5b3UgYXNrIHRvIGluc3RhbGwsIHJlbW92ZSwgaG9sZCwgZXRjLiBpdCB5b3Ugd2lsbCBhZmZlY3QgYWxsIHRoZSBwYWNrYWdlcyB3aGljaCBtYXRjaCB0aGUgY3JpdGVyaW9uIHNob3duLgoKSWYgeW91IG1vdmUgdGhlIGhpZ2hsaWdodCB0byBhIGxpbmUgZm9yIGEgcGFydGljdWxhciBwYWNrYWdlIHlvdSB3aWxsIHNlZSBpbmZvcm1hdGlvbiBhYm91dCB0aGF0IHBhY2thZ2UgZGlzcGxheWVkIGhlcmUuCllvdSBjYW4gdXNlIGBvJyBhbmQgYE8nIHRvIGNoYW5nZSB0aGUgc29ydCBvcmRlciBhbmQgZ2l2ZSB5b3Vyc2VsZiB0aGUgb3Bwb3J0dW5pdHkgdG8gbWFyayBwYWNrYWdlcyBpbiBkaWZmZXJlbnQga2luZHMgb2YgZ3JvdXBzLgBUaGUgdG9wIGhhbGYgb2YgdGhlIHNjcmVlbiBzaG93cyBhIGxpc3Qgb2YgcGFja2FnZXMuICBGb3IgZWFjaCBwYWNrYWdlIHlvdSBzZWUKZm91ciBjb2x1bW5zIGZvciBpdHMgY3VycmVudCBzdGF0dXMgb24gdGhlIHN5c3RlbSBhbmQgbWFyay4gIEluIHRlcnNlIG1vZGUgKHVzZQpgdicgdG8gdG9nZ2xlIHZlcmJvc2UgZGlzcGxheSkgdGhlc2UgYXJlIHNpbmdsZSBjaGFyYWN0ZXJzLCBmcm9tIGxlZnQgdG8gcmlnaHQ6CgogRXJyb3IgZmxhZzogU3BhY2UgLSBubyBlcnJvciAoYnV0IHBhY2thZ2UgbWF5IGJlIGluIGJyb2tlbiBzdGF0ZSAtIHNlZSBiZWxvdykKICAgICAgICAgICAgICBgUicgIC0gc2VyaW91cyBlcnJvciBkdXJpbmcgaW5zdGFsbGF0aW9uLCBuZWVkcyByZWluc3RhbGxhdGlvbjsKIEluc3RhbGxlZCBzdGF0ZTogICAgIFNwYWNlICAgIC0gbm90IGluc3RhbGxlZDsKICAgICAgICAgICAgICAgICAgICAgICBgKicgICAgIC0gaW5zdGFsbGVkOwogICAgICAgICAgICAgICAgICAgICAgIGAtJyAgICAgLSBub3QgaW5zdGFsbGVkIGJ1dCBjb25maWcgZmlsZXMgcmVtYWluOwogICBwYWNrYWdlcyBpbiB0aGVzZSB7IGBVJyAgICAgLSB1bnBhY2tlZCBidXQgbm90IHlldCBjb25maWd1cmVkOwogICBzdGF0ZXMgYXJlIG5vdCAgICB7IGBDJyAgICAgLSBoYWxmLWNvbmZpZ3VyZWQgKGFuIGVycm9yIGhhcHBlbmVkKTsKICAgKHF1aXRlKSBwcm9wZXJseSAgeyBgSScgICAgIC0gaGFsZi1pbnN0YWxsZWQgKGFuIGVycm9yIGhhcHBlbmVkKTsKICAgaW5zdGFsbGVkICAgICAgICAgeyBgVycsYHQnIC0gdHJpZ2dlcnMgYXJlIGF3YWl0ZWQgcmVzcC4gcGVuZGluZy4KIE9sZCBtYXJrOiB3aGF0IHdhcyByZXF1ZXN0ZWQgZm9yIHRoaXMgcGFja2FnZSBiZWZvcmUgcHJlc2VudGluZyB0aGlzIGxpc3Q7CiBNYXJrOiB3aGF0IGlzIHJlcXVlc3RlZCBmb3IgdGhpcyBwYWNrYWdlOgogIGAqJzogbWFya2VkIGZvciBpbnN0YWxsYXRpb24gb3IgdXBncmFkZTsKICBgLSc6IG1hcmtlZCBmb3IgcmVtb3ZhbCwgYnV0IGFueSBjb25maWd1cmF0aW9uIGZpbGVzIHdpbGwgcmVtYWluOwogIGA9Jzogb24gaG9sZDogcGFja2FnZSB3aWxsIG5vdCBiZSBwcm9jZXNzZWQgYXQgYWxsOwogIGBfJzogbWFya2VkIGZvciBwdXJnZSBjb21wbGV0ZWx5IC0gZXZlbiByZW1vdmUgY29uZmlndXJhdGlvbjsKICBgbic6IHBhY2thZ2UgaXMgbmV3IGFuZCBoYXMgeWV0IHRvIGJlIG1hcmtlZCBmb3IgaW5zdGFsbC9yZW1vdmUvJmMuCgpBbHNvIGRpc3BsYXllZCBhcmUgZWFjaCBwYWNrYWdlJ3MgUHJpb3JpdHksIFNlY3Rpb24sIG5hbWUsIGluc3RhbGxlZCBhbmQKYXZhaWxhYmxlIHZlcnNpb24gbnVtYmVycyAoc2hpZnQtViB0byBkaXNwbGF5L2hpZGUpIGFuZCBzdW1tYXJ5IGRlc2NyaXB0aW9uLgoAVGhlcmUgYXJlIG5vIHBhY2thZ2VzLgBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIG9yCmxhdGVyIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuIFRoZXJlIGlzIE5PIHdhcnJhbnR5LgoAVHlwZSBkc2VsZWN0IC0taGVscCBmb3IgaGVscC4AVW5jbGFzc2lmaWVkAFVwIHRvIGRhdGUgaW5zdGFsbGVkIHBhY2thZ2VzAFVwLXRvLWRhdGUAVXBkYXRlIGxpc3Qgb2YgYXZhaWxhYmxlIHBhY2thZ2VzLCBpZiBwb3NzaWJsZS4AVXBkYXRlZABVcGRhdGVkIHBhY2thZ2VzIChuZXdlciB2ZXJzaW9uIGlzIGF2YWlsYWJsZSkAVXNhZ2U6ICVzIFs8b3B0aW9uPiAuLi5dIFs8YWN0aW9uPiAuLi5dCgoAV2VsY29tZSB0byBkc2VsZWN0J3MgbWFpbiBwYWNrYWdlIGxpc3RpbmcuCgpZb3Ugd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCBhIGxpc3Qgb2YgcGFja2FnZXMgd2hpY2ggYXJlIGluc3RhbGxlZCBvciBhdmFpbGFibGUKZm9yIGluc3RhbGxhdGlvbi4gIFNpbmNlIHlvdSBkbyBub3QgaGF2ZSB0aGUgcHJpdmlsZWdlIG5lY2Vzc2FyeSB0byB1cGRhdGUKcGFja2FnZSBzdGF0ZXMsIHlvdSBhcmUgaW4gYSByZWFkLW9ubHkgbW9kZS4gIFlvdSBjYW4gbmF2aWdhdGUgYXJvdW5kIHRoZQpsaXN0IHVzaW5nIHRoZSBjdXJzb3Iga2V5cyAocGxlYXNlIHNlZSB0aGUgYEtleXN0cm9rZXMnIGhlbHAgc2NyZWVuKSwgb2JzZXJ2ZQp0aGUgc3RhdHVzIG9mIHRoZSBwYWNrYWdlcyBhbmQgcmVhZCBpbmZvcm1hdGlvbiBhYm91dCB0aGVtLgoKWW91IHNob3VsZCByZWFkIHRoZSBsaXN0IG9mIGtleXMgYW5kIHRoZSBleHBsYW5hdGlvbnMgb2YgdGhlIGRpc3BsYXkuCk11Y2ggb24tbGluZSBoZWxwIGlzIGF2YWlsYWJsZSwgcGxlYXNlIG1ha2UgdXNlIG9mIGl0IC0gcHJlc3MgYD8nIGF0CmFueSB0aW1lIGZvciBoZWxwLgoKV2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBicm93c2luZywgcHJlc3MgYFEnIG9yIDxlbnRlcj4gdG8gcXVpdC4KClByZXNzIDxzcGFjZT4gdG8gbGVhdmUgaGVscCBhbmQgZW50ZXIgdGhlIGxpc3Qgbm93LgoAV2VsY29tZSB0byBkc2VsZWN0J3MgbWFpbiBwYWNrYWdlIGxpc3RpbmcuCgpZb3Ugd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCBhIGxpc3Qgb2YgcGFja2FnZXMgd2hpY2ggYXJlIGluc3RhbGxlZCBvciBhdmFpbGFibGUKZm9yIGluc3RhbGxhdGlvbi4gIFlvdSBjYW4gbmF2aWdhdGUgYXJvdW5kIHRoZSBsaXN0IHVzaW5nIHRoZSBjdXJzb3Iga2V5cywKbWFyayBwYWNrYWdlcyBmb3IgaW5zdGFsbGF0aW9uICh1c2luZyBgKycpIG9yIGRlaW5zdGFsbGF0aW9uICh1c2luZyBgLScpLgpQYWNrYWdlcyBjYW4gYmUgbWFya2VkIGVpdGhlciBzaW5nbHkgb3IgaW4gZ3JvdXBzOyBpbml0aWFsbHkgeW91IHdpbGwgc2VlIHRoYXQKdGhlIGxpbmUgYEFsbCBwYWNrYWdlcycgaXMgc2VsZWN0ZWQuICBgKycsIGAtJyBhbmQgc28gb24gd2lsbCBhZmZlY3QgYWxsIHRoZQpwYWNrYWdlcyBkZXNjcmliZWQgYnkgdGhlIGhpZ2hsaWdodGVkIGxpbmUuCgpTb21lIG9mIHlvdXIgY2hvaWNlcyB3aWxsIGNhdXNlIGNvbmZsaWN0cyBvciBkZXBlbmRlbmN5IHByb2JsZW1zOyB5b3Ugd2lsbCBiZQpnaXZlbiBhIHN1Yi1saXN0IG9mIHRoZSByZWxldmFudCBwYWNrYWdlcywgc28gdGhhdCB5b3UgY2FuIHNvbHZlIHRoZSBwcm9ibGVtcy4KCllvdSBzaG91bGQgcmVhZCB0aGUgbGlzdCBvZiBrZXlzIGFuZCB0aGUgZXhwbGFuYXRpb25zIG9mIHRoZSBkaXNwbGF5LgpNdWNoIG9uLWxpbmUgaGVscCBpcyBhdmFpbGFibGUsIHBsZWFzZSBtYWtlIHVzZSBvZiBpdCAtIHByZXNzIGA/JyBhdAphbnkgdGltZSBmb3IgaGVscC4KCldoZW4geW91IGhhdmUgZmluaXNoZWQgc2VsZWN0aW5nIHBhY2thZ2VzLCBwcmVzcyA8ZW50ZXI+IHRvIGNvbmZpcm0gY2hhbmdlcywKb3IgYFgnIHRvIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcy4gQSBmaW5hbCBjaGVjayBvbiBjb25mbGljdHMgYW5kCmRlcGVuZGVuY2llcyB3aWxsIGJlIGRvbmUgLSBoZXJlIHRvbyB5b3UgbWF5IHNlZSBhIHN1Ymxpc3QuCgpQcmVzcyA8c3BhY2U+IHRvIGxlYXZlIGhlbHAgYW5kIGVudGVyIHRoZSBsaXN0IG5vdy4KAFh0cgBbQV1jY2VzcwBbQ11vbmZpZwBbSV1uc3RhbGwAW1FddWl0AFtSXWVtb3ZlAFtTXWVsZWN0AFtVXXBkYXRlAFtub3QgYm91bmRdAFt1bms6ICVkXQBhAGF3YWl0aW5nIHRyaWdnZXIgcHJvY2Vzc2luZwBiVUcAYnJlYWtzAGMAY29sb3VyAGNvbG91ciBhdHRyaWJ1dGUAY29uZmxpY3RzIHdpdGgAY291bGRuJ3Qgb3BlbiBkZWJ1ZyBmaWxlIGAlLjI1NXMnCgBkZXBlbmRzIG9uAGRvdXBkYXRlIGZhaWxlZABkb3VwZGF0ZSBpbiBTSUdXSU5DSCBoYW5kbGVyIGZhaWxlZABkc2VsZWN0IC0gaW5zcGVjdGlvbiBvZiBwYWNrYWdlIHN0YXRlcwBkc2VsZWN0IC0gbGlzdCBvZiBhY2Nlc3MgbWV0aG9kcwBkc2VsZWN0IC0gbWFpbiBwYWNrYWdlIGxpc3RpbmcAZHNlbGVjdCAtIHJlY3Vyc2l2ZSBwYWNrYWdlIGxpc3RpbmcAZHNlbGVjdCBhbmQgZHBrZyBjYW4gZG8gYXV0b21hdGljIGluc3RhbGxhdGlvbiwgbG9hZGluZyB0aGUgcGFja2FnZSBmaWxlcyB0byBiZQppbnN0YWxsZWQgZnJvbSBvbmUgb2YgYSBudW1iZXIgb2YgZGlmZmVyZW50IHBvc3NpYmxlIHBsYWNlcy4KClRoaXMgbGlzdCBhbGxvd3MgeW91IHRvIHNlbGVjdCBvbmUgb2YgdGhlc2UgaW5zdGFsbGF0aW9uIG1ldGhvZHMuCgpNb3ZlIHRoZSBoaWdobGlnaHQgdG8gdGhlIG1ldGhvZCB5b3Ugd2lzaCB0byB1c2UsIGFuZCBoaXQgRW50ZXIuICBZb3Ugd2lsbCB0aGVuCmJlIHByb21wdGVkIGZvciB0aGUgaW5mb3JtYXRpb24gcmVxdWlyZWQgdG8gZG8gdGhlIGluc3RhbGxhdGlvbi4KCkFzIHlvdSBtb3ZlIHRoZSBoaWdobGlnaHQgYSBkZXNjcmlwdGlvbiBvZiBlYWNoIG1ldGhvZCwgd2hlcmUgYXZhaWxhYmxlLCBpcwpkaXNwbGF5ZWQgaW4gdGhlIGJvdHRvbSBoYWxmIG9mIHRoZSBzY3JlZW4uCgpJZiB5b3Ugd2lzaCB0byBxdWl0IHdpdGhvdXQgY2hhbmdpbmcgYW55dGhpbmcgdXNlIHRoZSBgeCcga2V5IHdoaWxlIGluIHRoZSBsaXN0Cm9mIGluc3RhbGxhdGlvbiBtZXRob2RzLgoKQSBmdWxsIGxpc3Qgb2Yga2V5c3Ryb2tlcyBpcyBhdmFpbGFibGUgYnkgcHJlc3NpbmcgYGsnIG5vdywgb3IgZnJvbSB0aGUgaGVscAptZW51IHJlYWNoYWJsZSBieSBwcmVzc2luZyBgPycuCgBlbmhhbmNlcwBlcnJvciBkdXJpbmcgcmVhZCBvZiBtZXRob2Qgb3B0aW9ucyBmaWxlIGAlLjI1MHMnAGVycm9yIGR1cmluZyByZWFkIG9mIG9wdGlvbiBkZXNjcmlwdGlvbiBmaWxlIGAlLjI1MHMnAGVycm9yIGluIHJlZ3VsYXIgZXhwcmVzc2lvbgBlcnJvciByZWFkaW5nIGFja25vd2xlZGdlbWVudCBvZiBwcm9ncmFtIGZhaWx1cmUgbWVzc2FnZQBlcnJvciByZWFkaW5nIGtleWJvYXJkIGluIGhlbHAAZXJyb3IgcmVhZGluZyBvcHRpb25zIGZpbGUgYCUuMjUwcycAZmFpbGVkIHRvIGFsbG9jYXRlIGNvbG91ciBwYWlyAGZhaWxlZCB0byBibG9jayBTSUdXSU5DSABmYWlsZWQgdG8gY3JlYXRlIGJhc2VsaXN0IHBhZABmYWlsZWQgdG8gY3JlYXRlIGhlYWRpbmcgcGFkAGZhaWxlZCB0byBjcmVhdGUgaW5mbyBwYWQAZmFpbGVkIHRvIGNyZWF0ZSBxdWVyeSB3aW5kb3cAZmFpbGVkIHRvIGNyZWF0ZSB0aGlzc3RhdGUgcGFkAGZhaWxlZCB0byBjcmVhdGUgdGl0bGUgd2luZG93AGZhaWxlZCB0byBjcmVhdGUgd2hhdGluZm8gd2luZG93AGZhaWxlZCB0byBnZXQgb2xkIFNJR1dJTkNIIHNpZ2FjdABmYWlsZWQgdG8gZ2V0IG9sZCBzaWduYWwgbWFzawBmYWlsZWQgdG8gZ2V0Y2ggaW4gbWFpbiBtZW51AGZhaWxlZCB0byByZS1ibG9jayBTSUdXSU5DSABmYWlsZWQgdG8gcmVhZCBvcHRpb24gZGVzY3JpcHRpb24gZmlsZSBgJS4yNTBzJwBmYWlsZWQgdG8gcmVzdG9yZSBvbGQgU0lHV0lOQ0ggc2lnYWN0AGZhaWxlZCB0byByZXN0b3JlIG9sZCBzaWduYWwgbWFzawBmYWlsZWQgdG8gc2V0IG5ldyBTSUdXSU5DSCBzaWdhY3QAZmFpbGVkIHRvIHVuYmxvY2sgU0lHV0lOQ0gAZ2V0Y2ggZmFpbGVkAGhhbGYgY29uZmlndXJlZCAoY29uZmlnIGZhaWxlZCkAaGFsZiBpbnN0YWxsZWQAaG9sZABpAGluZGV4IHN0cmluZyB0b28gbG9uZwBpbnN0YWxsAGluc3RhbGxhdGlvbiBzY3JpcHQAaW5zdGFsbGVkAGludmFsaWQgc2VhcmNoIG9wdGlvbiBnaXZlbgBpb2N0bChUSU9DR1dJTlNaKSBmYWlsZWQAbWVudQBtZXRob2QgYCUuMjUwcycgaGFzIG5hbWUgdGhhdCBpcyB0b28gbG9uZyAoJWQgPiAlZCBjaGFyYWN0ZXJzKQBuZXcgcGFja2FnZQBuZXdsaW5lIGJlZm9yZSBvcHRpb24gbmFtZSBzdGFydABuZXdsaW5lIGJlZm9yZSBzdW1tYXJ5AG5vbi1hbHBoYW51bSBpbiBvcHRpb24gbmFtZQBub24tZGlnaXQgd2hlcmUgZGlnaXQgd2FudGVkAG5vbmFscGhhIHdoZXJlIG9wdGlvbiBuYW1lIHN0YXJ0IHdhbnRlZABub3QgaW5zdGFsbGVkAHByZS1kZXBlbmRzIG9uAHByb3ZpZGVzAHB1cmdlAHEAcXVlcnkvc2V0dXAgc2NyaXB0AHIAcmVjb21tZW5kcwByZW1vdmUAcmVtb3ZlZCAoY29uZmlncyByZW1haW4pAHJlcGxhY2VzAHMAc2NyZWVuIHBhcnQAc3VnZ2VzdHMAc3ludGF4IGVycm9yIGluIG1ldGhvZCBvcHRpb25zIGZpbGUgYCUuMjUwcycgLS0gJXMAdGVybWluYWwgbGFja3MgbmVjZXNzYXJ5IGZlYXR1cmVzLCBnaXZpbmcgdXAAdHJpZ2dlcmVkAHUAdW5hYmxlIHRvIGFjY2VzcyBtZXRob2Qgc2NyaXB0IGAlLjI1MHMnAHVuYWJsZSB0byBjbG9zZSBuZXcgb3B0aW9uIGZpbGUgYCUuMjUwcycAdW5hYmxlIHRvIGluc3RhbGwgbmV3IG9wdGlvbiBhcyBgJS4yNTBzJwB1bmFibGUgdG8gb3BlbiBjdXJyZW50IG9wdGlvbiBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byBvcGVuIG5ldyBvcHRpb24gZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gb3BlbiBvcHRpb24gZGVzY3JpcHRpb24gZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gcmVhZCBgJS4yNTBzJyBkaXJlY3RvcnkgZm9yIHJlYWRpbmcgbWV0aG9kcwB1bmFibGUgdG8gcmVhZCBtZXRob2Qgb3B0aW9ucyBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byBzdGF0IG9wdGlvbiBkZXNjcmlwdGlvbiBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byB3cml0ZSBuZXcgb3B0aW9uIHRvIGAlLjI1MHMnAHVua25vd24gYWN0aW9uIHN0cmluZyBgJS41MHMnAHVucGFja2VkIChub3Qgc2V0IHVwKQB1cGRhdGUgYXZhaWxhYmxlIGxpc3Qgc2NyaXB0AFByb2plY3QtSWQtVmVyc2lvbjogZHNlbGVjdApSZXBvcnQtTXNnaWQtQnVncy1UbzogZGViaWFuLWRwa2dAbGlzdHMuZGViaWFuLm9yZwpQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMS0xMC0xNCAwNzoxMSswMjAwClBPLVJldmlzaW9uLURhdGU6IDIwMTAtMDktMDIgMjM6MDErMDIwMApMYXN0LVRyYW5zbGF0b3I6IEhhbnMgRnJlZHJpayBOb3JkaGF1ZyA8aGFuc0Bub3JkaGF1Zy5wcml2Lm5vPgpMYW5ndWFnZS1UZWFtOiBOb3J3ZWdpYW4gQm9rbcOlbCA8aTE4bi1uYkBsaXN0ZXIucGluZy51aW8ubm8+Ckxhbmd1YWdlOiBuYgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTsKWC1HZW5lcmF0b3I6IFZpcnRhYWwgMC42LjEKAAoKJXM6ICVzCgAKCkZseXR0IHJ1bmR0IG1lZCBeUCBvZyBeTiwgcGlsdGFzdGVyLCBpbm5sZWRlbmRlIGJva3N0YXZlciBlbGxlciBudW1tZXJ0YXN0ZW5lOwpUcnlrayA8ZW50ZXI+IGZvciDDpSBiZWtyZWZ0ZSB1dHZhbGdldC4gICBeTCB0ZWduZXIgc2tqZXJtZW4gcMOlIG55dHQuCgoACgpTa3JpdmViZXNreXR0ZXQgdGlsZ2FuZzogYmFyZSBmb3Jow6VuZHN2aXNuaW5nIGF2IHV0dmFsZyBlciB0aWxnamVuZ2VsaWchAApUcnlrayA8ZW50ZXI+IGZvciDDpSBmb3J0c2V0dGUuACAAICAtLSAlZCUlLCB0cnlrayAAICAtLWhlbHAgICAgICAgICAgICAgICAgICAgICB2aXNlciBkZW5uZSBoamVscG1lbGRpbmdlbi4KICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICB2aXNlciB2ZXJzam9uc251bW1lcmV0LgoKACAoYWxmYWJldGlzaykAICh0aWxnai4sIHByaW9yaXRldCkAICh0aWxnai4sIGRlbCkAIChldHRlciB0aWxnamVuZ2VsaWdoZXQpACAoZXR0ZXIgcHJpb3JpdGV0KQAgKGV0dGVyIGRlbCkAIChldHRlciBzdGF0dXMpACAoc3RhdHVzLCBwcmlvcml0ZXQpACAoc3RhdHVzLCBkZWwpACBzZXIgaWtrZSB1dCB0aWwgw6UgdsOmcmUgdGlsZ2plbmdlbGlnCgAgbWFya2VyOisvPS8tIGtvcnQ6diBoamVscDo/ACBtYXJrZXI6Ky89Ly0gZnlsZGlnOnYgaGplbHA6PwAgZWxsZXIgACBrb3J0OnYgaGplbHA6PwAgZnlsZGlnOnYgaGplbHA6PwAhTHVzIQAlLSpzICVzJXMlczsgICVzICh2YXI6ICVzKS4gICVzACVzICVzIHBha2tlcgAlcyAlcyBwYWtrZXIgaSBkZWxlbiAlcwAlcyAlcyBwYWtrZXIgdXRlbiBub2VuIGRlbAAlcyBmb3IgbWVyACVzIHBha2tlciBpIGRlbGVuICVzACVzIHBha2tlciB1dGVuIG5vZW4gZGVsACVzIGZvciDDpSBnw6UgdGlsYmFrZQAqIE1hcmtlcmluZzogw4luIGxpbmplIGkgcGFra2VsaXN0YSBlciBtYXJrZXJ0LiBEZW5uZSB2aXNlciBodmlsa2VuIHBha2tlIAogIGVsbGVyIHBha2tlciBzb20gYmxpciBww6V2aXJrZXQgbsOlciBkdSB0cnlra2VyIHDDpSDCqyvCuywgwqstwrsgZWxsZXIgwqtfwrsuCgoqIERlbGVsaW5qYSBtaWR0IHDDpSBza2plcm1lbiBmb3JrbGFyZXIga29ydCBzdGF0dXNlbiB0aWwgZGVuIG1hcmtlcnRlIAogIHBha2tlbi4gRGVyc29tIGVuIGdydXBwZSBlciB2YWxndCwgdmlzZXIgbGluamEgZW4gYmVza3JpdmVsc2UgYXYgZ3J1cHBlbi4gCiAgRGVyc29tIGR1IGlra2Ugc2tqw7hubmVyIGh2YSBzdGF0dXN0ZWduZW5lIGJldHlyLCBrYW4gZHUgZ8OlIHRpbCBwYWtrZW4gb2cgCiAgc2UgaHZhIHNvbSBzdMOlciBww6UgZGVubmUgZGVsZWxpbmphLiBEdSBrYW4gb2dzw6UgdHJ5a2tlIMKrdsK7IGZvciAKICBmeWxkaWdlcmUgdmlzbmluZy4gKFRyeWtrIMKrdsK7IGlnamVuIGZvciDDpSBnw6UgdGlsYmFrZSB0aWwga29ydHZpc25pbmdlbi4pCgoqIERldCBuZWRlcnN0ZSBmZWx0ZXQgcMOlIHNramVybWVuIHZpc2VyIG1lciBpbmZvcm1hc2pvbiBvbSBkZW4gcGFra2VuIHNvbSBlciAKICB2YWxndCAob20gYmFyZSDDqW4gZXIgdmFsZ3QpLgoKICBGZWx0ZXQga2FuIHZpc8OrIGVuIGZ5bGRpZyBiZXNrcml2ZWxzZSBhdiBwYWtrZW4sIGRlIGludGVybmUgCiAga29udHJvbGxkZXRhbGplbmUgdGlsIHBha2tlbiAoZW50ZW4gZm9yIGluc3RhbGxlcnRlIGVsbGVyIHRpbGdqZW5nZWxpZ2UgCiAgdmVyc2pvbmVyIGF2IHBha2tlbikgZWxsZXIgaW5mb3JtYXNqb24gb20ga29uZmxpa3RlciBvZyBwYWtrZWtyYXYgc29tIAogIGludm9sdmVyZXIgZGVuIHZhbGd0ZSBwYWtrZW4gKGkgbGlzdGVyIGZvciBsw7hzbmluZyBhdiBrb25mbGlrdGVyL3Bha2tla3JhdikuCgogIFRyeWtrIMKracK7IGZvciDDpSBieXR0ZSBtZWxsb20gdmlzbmluZ2VuZSwgb2cgwqtJwrsgZm9yIMOlIHNranVsZSBpbmZvcm1hc2pvbnNmZWx0ZXQgCmVsbGVyIHV0dmlkZSBkZXQgc2xpayBhdCBkZXQgZGVra2VyIG5lc3RlbiBoZWxlIHNramVybWVuLgoAPHN0YW5kYXJkIGZlaWw+ADxzdGFuZGFyZCB1dGRhdGE+AD8ARm9ya29ydC4AQXZicnl0IC0gYXZzbHV0dCB1dGVuIMOlIGdqw7hyZSBlbmRyaW5nZXIAVGlsZ2FuZ3NtZXRvZGUgYCVzJy4ASGFuZGxpbmdlcjoKICBhY2Nlc3MgdXBkYXRlIHNlbGVjdCBpbnN0YWxsIGNvbmZpZyByZW1vdmUgcXVpdAoKAEFsbGUAQWxsZSBwYWtrZXIAQXR0cmlidXR0ZXI6CgBUaWxnai52ZXIAVGlsZ2plbmdlbGlnZQBUaWxnamVuZ2VsaWcga29udHJvbGxmaWxpbmZvcm1hc2pvbgBUaWxnamVuZ2VsaWdlIHBha2tlciAoaWtrZSBpbnN0YWxsZXJ0ZSkAw5hkZWxhZ3QAw5hkZWxhZ3RlIGluc3RhbGxlcnRlIHBha2tlcgBWZWxnIHRpbGdhbmdzbWV0b2RlbiBzb20gc2thbCBicnVrZXMuAEZhcmdlcjoKAFNldHQgb3BwIHBha2tlciBzb20gaWtrZSBlciBzYXR0IG9wcC4AT3BwaGF2c3JldHQgKEMpIDE5OTQtMTk5NiBJYW4gSmFja3Nvbi4KT3BwaGF2c3JldHQgKEMpIDIwMDAsMjAwMSBXaWNoZXJ0IEFra2VybWFuLgoAR8OlIGdqZW5ub20gaW5mb3JtYXNqb25zc2lkZW5lAERlYmlhbiDCqyVzwrsgYnJ1a2VyZ3JlbnNlc25pdHQgZm9yIHBha2tlaMOlbmR0ZXJpbmcgdmVyc2pvbiAlcy4KAEzDuHNuaW5nIGF2IHBha2tla3JhdiBvZyBrb25mbGlrdGVyIC0gaW50cm9kdWtzam9uLgoKRXR0IGVsbGVyIGZsZXJlIGF2IGRlIHZhbGdlbmUgZHUgaGFyIGdqb3J0IGbDuHJlciB0aWwgcHJvYmxlbWVyIG1lZCBrb25mbGlrdGVyIAplbGxlciBwYWtrZWtyYXYuIE5vZW4gYXYgcGFra2VuZSBtw6UgaW5zdGFsbGVyZXMgc2FtbWVuIG1lZCB2aXNzZSBhbmRyZSwgb2cgCm5vZW4ga29tYmluYXNqb25lciBhdiBwYWtrZXIgZ8OlciBpa2tlIHNhbW1lbi4KCkR1IHZpbCBmw6Ugc2UgZW4gZWdlbiBsaXN0ZSBtZWQgYmFyZSBkZSBwYWtrZW5lIGRldHRlIGdqZWxkZXIuIE5lZGVyc3QgcMOlIApza2plcm1lbiBlciBrb25mbGlrdGVyIG9nIHBha2tla3JhdiB2aXN0LiBNZWQgwqtpwrsga2FuIGR1IGJ5dHRlIG1lbGxvbSBkZXR0ZSAKZmVsdGV0IG9nIGZlbHRlbmUgZm9yIHBha2tlYmVza3JpdmVsc2VyIG9nIGludGVybiBrb250cm9sbGluZm9ybWFzam9uLgoKRXQgc2V0dCBtZWQgwqtmb3Jlc2zDpXR0ZcK7IHBha2tlciBlciBnam9ydCBrbGFydCwgb2cgcGFra2VuZSBpIGxpc3RhIGVyIAptYXJrZXJ0ZSBpIHNhbXN2YXIgbWVkIGZvcnNsYWdldC4gRHUga2FuIHRyeWtrZSA8ZW50ZXI+IG1lZCBlbiBnb25nIGZvciDDpSAKZ29kdGEgZm9yc2xhZ2V0LiBEdSBrYW4gYXZicnl0ZSBlbmRyaW5nZW5lIHNvbSBmb3LDpXJzYWtldCBwcm9ibGVtZXQgb2cgZ8OlIAp0aWxiYWtlIHRpbCBob3ZlZGxpc3RhIHZlZCDDpSB0cnlra2Ugc3RvciDCq1jCuy4KCkR1IGthbiBvZ3PDpSBibGEgZ2plbm5vbSBsaXN0YSBvZyBlbmRyZSBww6UgbWFya2VyaW5nZW5lIHNsaWsgZHUgdmlsIGhhIGRlbSwgb2cgCmR1IGthbiBmb3JrYXN0ZSBmb3JzbGFnZXQgdmVkIMOlIHRyeWtrZSBzdG9yIMKrRMK7IGVsbGVyIMKrUsK7LiAoU2UgCmhqZWxwZXNramVybWVuIGZvciB0YXN0ZXRyeWtrLikgTWVkIHN0b3IgwqtRwrsga2FuIGR1IHR2aW5nZSBnamVubm9tIGV0IHZhbGcsIApkZXJzb20gZHUgdmlsIG92ZXJzdHlyZSByw6VkZW5lIGVsbGVyIHRyb3IgYXQgcHJvZ3JhbW1ldCB0YXIgZmVpbC4KClRyeWtrIDxtZWxsb21yb20+IGZvciDDpSBhdnNsdXR0ZSBoamVscCBvZyBnw6UgdGlsIGxpc3RhLiBIdXNrIGF0IGR1IGthbiBmw6UgaGplbHAgCm1lZCDCqz/Cuy4KAEJlc2tyaXZlbHNlAFNramVybWJpbGRlLCBkZWwgMTogUGFra2VsaXN0ZSBvZyBzdGF0dXN0ZWduAFNramVybWJpbGRlLCBkZWwgMjogTGlzdGVtYXJrZXJpbmcsIGluZm9ybWFzam9uc3Zpc25pbmcARklHTQBzbHV0dC1ww6UtZmlsIGbDuHIgc3RhcnRlbiBww6Ugb3Bzam9uc25hdm5ldABzbHV0dC1ww6UtZmlsIGbDuHIgc2FtbWVuZHJhZ2V0AHNsdXR0LXDDpS1maWwgaSBpbmRla3NzdHJlbmcAc2x1dHQtcMOlLWZpbCBpIG9wc2pvbnNuYXZuAHNsdXR0LXDDpS1maWwgaSBzYW1tZW5kcmFnZXQgLSBtYW5nbGVyIGxpbmplc2tpZnQARmVpbABGZWlsOiAARm9ya2xhcmluZwBFa3N0cmEAR8OlIHRpbCBzbHV0dGVuIGF2IGxpc3RhAEfDpSB0aWwgdG9wcGVuIGF2IGxpc3RhAEhqZWxwIGZvciBmw7hsZ2VuZGUgZW1uZXIgZXIgdGlsZ2plbmdlbGlnOgBIamVscDogAFZrdABWaWt0aWcASW5zdC52ZXIASW5zdGFsbGVyIG9nIG9wcGdyYWRlciBkZSB2YWxndGUgcGFra2VuZS4ASW5zdGFsbGVydGUASW5zdGFsbGVydCBrb250cm9sbGZpbGluZm9ybWFzam9uAEluc3RhbGxlcnRlIHBha2tlcgBJbnN0YWxsZXJ0PwBTYW1tZW5oZW5nZXIASW50cm9kdWtzam9uIHRpbCBlZ2VuIGxpc3RlIGZvciBsw7hzbmluZyBhdiBrb25mbGlrdCBlbGxlciBwYWtrZWtyYXYASW50cm9kdWtzam9uIHRpbCBtZXRvZGV2YWxnAEludHJvZHVrc2pvbiB0aWwgcGFra2V2YWxnAEludHJvZHVrc2pvbiB0aWwgc2tyaXZlYmVza3l0dGV0IHBha2tlbGlzdGUAVWd5bGRpZyAlcyBgJXMnCgBUYXN0ZXRyeWtrAFRhc3RlcgBUYXN0ZXRyeWtrIGZvciBtZXRvZGV2YWxnAEdqw7hyIHV0aGV2aW5nIG1pbmRyZSBzcGVzaWZpa2sAR2rDuHIgdXRoZXZpbmcgbWVyIHNwZXNpZmlrawBNZXJrIHBha2tlciBmb3IgYXZpbnN0YWxsYXNqb24gb2cgc2xldHQATWVyayBwYWtrZXIgZm9yIGF2aW5zdGFsbGFzam9uAE1lcmsgcGFra2VyIGZvciBpbnN0YWxsYXNqb24ATWFya2VydCBmb3IARmx5dHRldGFzdGVyOiBOZXN0ZS9Gb3JyaWdlLCBUb3BwL1NsdXR0LCBPcHAvTmVkLCBGcmFtL1RpbGJha2U6CiAgaiwgUGlsIG5lZCAgICAgICAgICAgICAgaywgUGlsIG9wcCAgICAgICAgICAgICBmbHl0dCBtYXJrZXJpbmdlbgogIE4sIFBhZ2UgRG93biwgTWVsbG9tcm9tIFAsIFBpbCBvcHAsIFJldHRldGFzdCAgYmxhIGxpc3RhIDEgc2lkZQogIF5uICAgICAgICAgICAgICAgICAgICAgIF5wICAgICAgICAgICAgICAgICAgICAgYmxhIGxpc3RhIDEgbGluamUKICB0LCBIb21lICAgICAgICAgICAgICAgICBlLCBFbmQgICAgICAgICAgICAgICAgIGhvcHAgw7h2ZXJzdC9uZWRlcnN0IGkgbGlzdGEKICB1ICAgICAgICAgICAgICAgICAgICAgICBkICAgICAgICAgICAgICAgICAgICAgIGJsYSBpbmZvIDEgc2lkZQogIF51ICAgICAgICAgICAgICAgICAgICAgIF5kICAgICAgICAgICAgICAgICAgICAgYmxhIGluZm8gMSBsaW5qZQogIEIsIFBpbCB2ZW5zdHJlICAgICAgICAgIEYsIFBpbCBow7h5cmUgICAgICAgICAgIHNpZGV2ZWlzIDEvMyBza2plcm0KICBeYiAgICAgICAgICAgICAgICAgICAgICBeZiAgICAgICAgICAgICAgICAgICAgIHNpZGV2ZWlzIDEgdGVnbgoKTWFya2VyIHBha2tlciBmb3IgYmVoYW5kbGluZyBzZW5lcmU6CiArLCBJbnNlcnQgIGluc3RhbGxlciBlbGxlciBvcHBncmFkZXIgID0sIEggIGhvbGQgaSBuw6V2w6ZyZW5kZSBzdGF0dXMKIC0sIERlbGV0ZSAgZmplcm4gICAgICAgICAgICAgICAgICAgICAgOiwgRyAgZnJpZ2rDuHI6IG9wcGdyYWRlciBlbGxlciBsYSB2w6ZyZSBpa2tlLWluc3RhbGxlcnQKIF8gICAgICAgICAgZmplcm4gb2cgcmVucyB1dCBvcHBzZXR0ZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGl2ZXJzZToKQXZzbHV0dCwgYXZicnl0LCBza3JpdiBvdmVyIChodXNrIHN0b3JlIGJva3N0YXZlcik6ID8sIEYxIGhqZWxwIChvZ3PDpSBIamVscCkKIFJldHVybiAgQmVrcmVmdCwgYXZzbHV0dCAoc2pla2sgcGFra2VrcmF2KSAgICAgICBpLCBJICBieXR0IGluZm9mZWx0CiAgIFEgICAgIEJla3JlZnQsIGF2c2x1dHQgKG92ZXJzdHlyIHBha2tla3JhdikgICAgICBvLCBPICBieXR0IHNvcnRlcmluZwogWCwgRXNjYXBlICBBdnNsdXR0IHV0ZW4gw6UgZ2plbm5vbWbDuHJlIGVuZHJpbmdlciAgICB2LCBWICBlbmRyZXN0YXR1c3Zpc25pbmcKICAgUiAgICAgdGlsYmFrZSB0aWwgc3RhdHVzIGbDuHIgZGVubmUgbGlzdGEgICAgICAgICAgXmwgIHRlZ24gc2tqZXJtZW4gb21pZ2plbgogICBVICAgICBzZXR0IGFsbGUgdGlsIGZvcmVzbMOldHQgc3RhdHVzICAgICAgICAgICAgICAgLyAgc8O4ayAoUmV0dXJuIGF2YnJ5dCkKICAgRCAgICAgc2V0dCBhbGxlIHRpbCBkaXJla3RlIGV0dGVyc3B1cnQgc3RhdHVzICAgIG4sIFwgZ2plbnRhIHNpc3RlIHPDuGsKAEZseXR0ZXRhc3RlcjogTmVzdGUvRm9ycmlnZSwgVG9wcC9CdW5uLCBPcHAvTmVkLCBGcmFtL1RpbGJha2U6CiAgaiwgUGlsIG5lZCAgICAgICAgICAgICAgaywgUGlsIG9wcCAgICAgICAgICAgICBmbHl0dCBtYXJrZXJpbmdlbgogIE4sIFBhZ2UgRG93biwgTWVsbG9tcm9tIFAsIFBpbCBvcHAsIFJldHRldGFzdCAgYmxhIGxpc3RhIDEgc2lkZQogIF5uICAgICAgICAgICAgICAgICAgICAgIF5wICAgICAgICAgICAgICAgICAgICAgYmxhIGxpc3RhIDEgbGluamUKICB0LCBIb21lICAgICAgICAgICAgICAgICBlLCBFbmQgICAgICAgICAgICAgICAgIGhvcHAgw7h2ZXJzdC9uZWRlcnN0IGkgbGlzdGEKICB1ICAgICAgICAgICAgICAgICAgICAgICBkICAgICAgICAgICAgICAgICAgICAgIGJsYSBpbmZvIDEgc2lkZQogIF51ICAgICAgICAgICAgICAgICAgICAgIF5kICAgICAgICAgICAgICAgICAgICAgYmxhIGluZm8gMSBsaW5qZQogIEIsIFBpbCB2ZW5zdHJlICAgICAgICAgIEYsIFBpbCBow7hncmUgICAgICAgICAgIHNpZGVsZW5ncyAxLzMgc2tqZXJtCiAgXmIgICAgICAgICAgICAgICAgICAgICAgXmYgICAgICAgICAgICAgICAgICAgICBzaWRlbGVuZ3MgMSB0ZWduCihEaXNzZSBmbHl0dGV0YXN0ZW5lIGVyIGRlIHNhbW1lIHNvbSBpIHBha2tlbGlzdGEuKQoKQXZzbHV0dDoKIFJldHVybiwgRW50ZXIgICAgdmVsZyBkZW5uZSBtZXRvZGVuIG9nIGfDpSB0aWwgb3Bwc2V0dHNkaWFsb2dlbgogeCwgWCAgICAgICAgICAgICBhdmJyeXQgdXRlbiDDpSBlbmRyZSBlbGxlciBzZXR0ZSBvcHAgaW5zdGFsbGFzam9uZW4KCkRpdmVyc2U6CiAgPywgSGplbHAsIEYxICAgICBoamVscAogXmwgICAgICAgICAgICAgICAgdGVnbiBza2plcm1iaWxkZXQgcMOlIG55dHQKICAvICAgICAgICAgICAgICAgIHPDuGsgKGJydWsgRW50ZXIgdGlsIMOlIGF2YnJ5dGUgbWVkIGVuIGdhbmcpCiAgXCAgICAgICAgICAgICAgICBzaXN0ZSBzw7hrIG9tIGlnamVuCgBGbHl0dCBuZWQARmx5dHQgb3BwAE55ZQBOeWUgdGlsZ2plbmdlbGlnZSBwYWtrZXIASW5nZW4gYmVza3JpdmVsc2UgdGlsZ2plbmdlbGlnLgBJbmdlbiBmb3JrbGFyaW5nIHRpbGdqZW5nZWxpZy4ASW5nZW4gZmFyZ2VzcGVzaWZpa2Fzam9uCgBGb3JlbGRldGUgb2cgbG9rYWxlIHBha2tlciBww6Ugc3lzdGVtZXQARm9yZWxkZXQvbG9rYWxlAEdhbW1lbHQgbWVya2UAVmFsAFZhbGdmcmkAVmFsZzoKICAtLWFkbWluZGlyIDxrYXRhbG9nPiAgICAgQnJ1ayA8a2F0YWxvZz4gaSBzdGVkZW4gZm9yICVzLgogIC0tZXhwZXJ0ICAgICAgICAgICAgICAgICAgIFNsw6UgcMOlIGVrc3BlcnRtb2R1cy4KICAtLWRlYnVnIDxmaWw+IHwgLUQ8ZmlsPiAgU2zDpSBww6UgZmVpbHPDuGtpbmcgb2cgc2VuZCByZXN1bHRhdCB0aWwgPGZpbD4uCiAgLS1jb2xvdXIgfCAtLWNvbG9yIHNjcmVlbnBhcnQ6W2ZvcmVncm91bmRdLFtiYWNrZ3JvdW5kXVs6YXR0clsrYXR0cisuLl1dCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0dCBvcHAgc2tqZXJtZmFyZ2VyLgoKAFBha2tlAFRyeWtrIDxlbnRlcj4gZm9yIMOlIGZvcnRzZXR0ZS4KAFRyeWtrID8gZm9yIMOlIHZpc2UgaGplbHBlbWVueWVuLCAuIGZvciBuZXN0ZSBlbW5lLCA8bWVsbG9tcm9tPiBmb3Igw6UgYXZzbHV0dGUgaGplbHAuAFRyeWtrIGVuIHRhc3QgZnJhIGxpc3RhIG92ZXIsIDxtZWxsb21yb20+IGVsbGVyIMKrccK7IGZvciDDpSBhdnNsdXR0ZSBoamVscCwKICBlbGxlciDCqy7CuyAocHVua3R1bSkgZm9yIMOlIGxlc2UgaHZlciBoamVscGVzaWRlIGV0dGVyIGh2ZXJhbmRyZS4gAFByaW9yaXRldABSZW5zZXQAUGFra2VyIHNvbSBlciByZW5zZXQgYm9ydCBlbGxlciBhbGRyaSBpbnN0YWxsZXJ0ZQBBdnNsdXR0ZXIgZHNlbGVjdC4AQXZzbHV0dCB1dGVuIMOlIGVuZHJlIGRlbiB2YWxndGUgdGlsZ2FuZ3NtZXRvZGVuAEF2c2x1dHQsIGJla3JlZnRlbHNlIHV0ZW4gc2pla2sAQXZzbHV0dCwgYmVrcmVmdGVyLCBvZyBzamVrayBwYWtrZWtyYXYAQXZzbHV0dCwgYXZ2aXMgZm9yc2xhZyB0aWwgbMO4c25pbmcgYXYga29uZmxpa3QvcGFra2VrcmF2AElOU1RBTExFUiBPTSBJR0pFTgBUZWduIHNpZGEgcMOlIG55dHQARmplcm4gdcO4bnNrZWRlIHByb2dyYW1tZXIuAEZqZXJuZXQARmplcm5lZGUgcGFra2VyIHNvbSBpa2tlIGxlbmdlciBlciB0aWxnamVuZ2VsaWdlAEZqZXJuZWRlIHBha2tlciAodGF0dCB2YXJlIHDDpSBvcHBzZXR0ZXQpAEdqZW50YSBmb3JyaWdlIHPDuGsuAEtydgBCZSBvbSBoamVscCAoZ8OlIGdqZW5ub20gaGplbHBlc2lkZW5lKQBCZSBvbSBkZSBwYWtrZW5lIGR1IHZpbCBoYSBww6Ugc3lzdGVtZXQuAFDDpWtyZXZldABHw6UgdGlsYmFrZSB0aWwgbsOldsOmcmVuZGUgaW5zdGFsbGVydCB0aWxzdGFuZCBmb3IgYWxsZSBwYWtrZXIAR8OlIHRpbGJha2UgdGlsIGRpcmVrdGUgZXR0ZXJzcHVydCB0aWxzdGFuZCBmb3IgYWxsZSBwYWtrZXIAR8OlIHRpbGJha2UgdGlsIGdhbW1lbCB0aWxzdGFuZCBmb3IgYWxsZSBwYWtrZXIAR8OlIHRpbGJha2UgdGlsIGZvcmVzbMOldHQgdGlsc3RhbmQgZm9yIGFsbGUgcGFra2VyAFNramVybWRlbGVyOgoAR8OlIGJha292ZXIgZ2plbm5vbSBoamVscC9pbmZvcm1hc2pvbgBHw6UgYmFrb3ZlciBnamVubm9tIGhqZWxwL2luZm9ybWFzam9uIG1lZCBlbiBsaW5qZQBHw6UgYmFrb3ZlciBnamVubm9tIGxpc3RhAEfDpSBiYWtvdmVyIGdqZW5ub20gbGlzdGEgbWVkIGVuIGxpbmplAEfDpSB2aWRlcmUgZ2plbm5vbSBoamVscC9pbmZvcm1hc2pvbgBHw6UgdmlkZXJlIGdqZW5ub20gaGplbHAvaW5mb3JtYXNqb24gbWVkIGVuIGxpbmplAEfDpSB2aWRlcmUgZ2plbm5vbSBsaXN0YQBHw6UgdmlkZXJlIGdqZW5ub20gbGlzdGEgbWVkIGVuIGxpbmplAFPDuGsgZXR0ZXIgPyAAU8O4ayBldHRlciBlbiBwYWtrZSBzb20gaGFyIGV0IG5hdm4gc29tIGlubmVob2xkZXIgZW4gc3RyZW5nAERlbABWZWxnIGRlbiB1dGhldmVkZSB0aWxnYW5nc21ldG9kZW4AU2V0dCBURVJNLXZhcmlhYmVsZW4gcmlrdGlnLCBicnVrIGVuIGJlZHJlIHRlcm1pbmFsIGVsbGVyIApkdSBmw6VyIGtsYXJlIGRlZyBtZWQgaMOlbmR0ZXJpbmdzdmVya3TDuHlldCAlcyBmb3IgaHZlciBwYWtrZS4KAFN0YW5kYXJkAFN0ZABCeXR0IG9tIHNvcnRlcmluZ3NyZWtrZWbDuGxnZSBwcmlvcml0ZXQvc2Vrc2pvbgBUZXJtaW5hbGVuIHNlciBpa2tlIHV0IHRpbCDDpSBzdMO4dHRlIG1hcmvDuHJhZHJlc3NlcmluZy4KAFRlcm1pbmFsZW4gc2VyIGlra2UgdXQgdGlsIMOlIHN0w7h0dGUgdXRoZXZpbmcuCgBEdSBoYXIgdmFsZ3QgZW4gbGluamUgbWVkIG1hbmdlIHBha2tlci4gRGVyc29tIGR1IHZlbGdlciDDpSBpbnN0YWxsZXJlLCBmamVybmUsIGhvbGRlIHRpbGJha2UgZWxsZXIgbGlrbmVuZGUsIHZpbCBoYW5kbGluZ2VuIHDDpXZpcmtlIGFsbGUgcGFra2VuZSBzb20gcGFzc2VyIHRpbCBrcml0ZXJpZXQuCgpEZXJzb20gZHUgZmx5dHRlciBtYXJrZXJpbmdlbiB0aWwgZW4gbGluamUgbWVkIGJhcmUgw6luIHBha2tlLCBrYW4gZHUgc2UgaW5mb3JtYXNqb24gb20gZGVuIHBha2tlbiBpIGRldHRlIGZlbHRldC4KRHUga2FuIGVuZHJlIHNvcnRlcmluZ3NyZWtrZWbDuGxnZSBtZWQgwqtvwrsgb2cgwqtPwrsgZm9yIHNlbHYgw6Uga3VubmUgbWFya2VyZSBwYWtrZXIgaSBhbmRyZSBncnVwcGVyLgBEZW4gw7h2ZXJzdGUgaGFsdmRlbGVuIGF2IHNramVybWVuIHZpc2VyIGVpIGxpc3RlIG92ZXIgcGFra2VuZS4gRm9yIGh2ZXIgcGFra2UgCmZpbm5lcyBkZXQgZmlyZSBrb2xvbm5lciBmb3Igc3RhdHVzIGkgc3lzdGVtZXQuIEkga29ydG1vZHVzIChicnVrIMKrdsK7IGZvciDDpSAKYnl0dGUgdGlsIGRldGFsam1vZHVzKSBlciBrb2xvbm5lbmUgZW5rZWx0dGVnbiBmcmEgdmVuc3RyZSB0aWwgaMO4eXJlOgoKIEZlaWxtZXJrZTogICBNZWxsb21yb20gLSBpbmdlbiBmZWlsIChtZW4gcGFra2VuIGthbiB2w6ZyZSDDuGRlbGFndCwgc2UgbmVkZW5mb3IpCiAgICAgICAgICAgICAgwqtSwrsgICAgIC0gYWx2b3JsaWcgZmVpbCB2ZWQgaW5zdGFsbGFzam9uLCBtw6UgaW5zdGFsbGVyZXMgb20gaWdqZW4KIEluc3RhbGxlcnQgc3RhdHVzOiAgICAgIE1lbGxvbXJvbSAtIGlra2UgaW5zdGFsbGVydAogICAgICAgICAgICAgICAgICAgICAgICAgwqsqwrsgICAgIC0gaW5zdGFsbGVydAogICAgICAgICAgICAgICAgICAgICAgICAgwqstwrsgICAgIC0gaWtrZSBpbnN0YWxsZXJ0LCBtZW4gb3Bwc2V0dHNmaWxlbmUgbGlnZ2VyIGlnamVuCiAgIHBha2tlciBpIGRpc3NlICAgICAgeyDCq1XCuyAgICAgLSB1dHBha2tldCwgbWVuIGlra2Ugc2F0dCBvcHAgZW5uw6UKICAgdGlsc3RhbmRlbmUgZXIgaWtrZSB7IMKrQ8K7ICAgICAtIGhhbHZ2ZWlzIG9wcHNhdHQgKGVuIGZlaWwgb3Bwc3RvKQogICAoaGVsdCkgc2tpa2tlbGlnICAgIHsgwqtJwrsgICAgIC0gaGFsdnZlZ3MgaW5zdGFsbGVydCAoZW4gZmVpbCBvcHBzdG8pCiAgIGluc3RhbGxlcnQgICAgICAgICAgeyBgVycsYHQnICAgLSB1dGzDuHNlcmUgZXIgZm9ydmVudGV0L3V0ZXN0w6VlbmRlLgogR2FtbWVsdCBtZXJrZTogZGV0IHNvbSB2YXIgcGxhbmxhZ3QgZm9yIGRlbm5lIHBha2tlbiBmw7hyIGxpc3RhIGJsZSB2aXN0CiBNZXJrZTogZGV0IHNvbSBlciBwbGFubGFndCBmb3IgZGVubmUgcGFra2VuCiAgIMKrKsK7OiBtYXJrZXJ0IGZvciBpbnN0YWxsYXNqb24gZWxsZXIgb3BwZ3JhZGVyaW5nCiAgIMKrLcK7OiBtYXJrZXJ0IGZvciBmamVybmluZywgbWVuIG9wcHNldHRzZmlsZW5lIHZpbCBsaWdnZSBpZ2plbgogICDCqz3CuzogcMOlIHZlbnQsIHBha2tlbiBza2FsIGlra2UgZW5kcmVzIGkgZGV0IGhlbGUgdGF0dAogICDCq1/CuzogbWFya2VydCBmb3IgZnVsbHN0ZW5kaWcgZmplcm5pbmcsIGlua2x1ZGVydCBvcHBzZXR0ZXQKICAgwqtuwrs6IHBha2tlbiBlciBueSBvZyBlciBlbm7DpSBpa2tlIG1hcmtlcnQgZm9yIGluc3RhbGxlcmluZywgZmplcm5pbmcgZS5sLgoKRm9yIGh2ZXIgcGFra2Uga2FuIGR1IG9nc8OlIHNlIGluZm9ybWFzam9uIG9tIHByaW9yaXRldCwga2F0ZWdvcmksIG5hdm4sIAppbnN0YWxsZXJ0ZSBvZyB0aWxnamVuZ2VsaWdlIHZlcnNqb25lciAodmlzL3NranVsIG1lZCBTaGlmdCArIFYpIG9nIAplbiBrb3J0IGJlc2tyaXZlbHNlLgoARGV0IGVyIGluZ2VuIHBha2tlci4ARGV0dGUgZXIgZnJpIHByb2dyYW12YXJlLiBEdSBmaW5uZXIga29waWVyaW5nc3ZpbGvDpXJlbmUgaQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzam9uIDIgZWxsZXIgbnllcmUuIERldCBmaW5uZXMgSU5HRU4gZ2FyYW50aS4KAFNrcml2IMKrZHNlbGVjdCAtLWhlbHDCuyBmb3IgaGplbHAuAFVrbGFzc2lmaXNlcnQAUGFra2VyIHNvbSBlciBpbnN0YWxsZXJ0ZSBpIG55ZXN0ZSB2ZXJzam9uAEZlcmRpZyBvcHBkYXRlcnRlAE9wcGRhdGVyIGxpc3RlIG92ZXIgdGlsZ2plbmdlbGlnZSBwYWtrZXIsIGh2aXMgbXVsaWcuAE9wcGRhdGVydGUAT3BwZGF0ZXJ0ZSBwYWtrZXIgKG55ZXJlIHZlcnNqb24gdGlsZ2plbmdlbGlnKQBCcnVrOiAlcyBbPHZhbGc+IC4uLl0gWzxoYW5kbGluZz4gLi4uXQoKAFZlbGtvbW1lbiB0aWwgaG92ZWRwYWtrZWxpc3RhIGkgZHNlbGVjdC4KCkR1IHZpbCBmw6Ugc2UgZW4gbGlzdGUgb3ZlciBwYWtrZXIgc29tIGVyIGluc3RhbGxlcnRlIGVsbGVyIHNvbSBrYW4gCmluc3RhbGxlcmVzLiBGb3JkaSBkdSBpa2tlIGhhciB0aWxsYXRlbHNlIHRpbCDDpSBvcHBkYXRlcmUgCnBha2tlc3RhdHVzZXIsIGbDpXIgZHUgaWtrZSBsb3YgdGlsIMOlIGVuZHJhIHBha2tlbGlzdGEuIER1IGthbiBibGEgZ2plbm5vbSAKbGlzdGEgdmVkIGhqZWxwIGF2IHBpbHRhc3RlbmUgKHNlIGhqZWxwZXNramVybWVuIMKrVGFzdGV0cnlra8K7KSwgc3R1ZGVyZSAKcGFra2VuZXMgc3RhdHVzIG9nIGxlc2UgaW5mb3JtYXNqb24gb20gZGVtLgoKRHUgYsO4ciBsZXNlIG92ZXJzaWt0ZW4gb3ZlciB0YXN0ZXIgb2cgZm9ya2xhcmluZ2VuZSB0aWwgc2tqZXJtYmlsZGV0LiBEZXQgCmZpbm5lcyBlbiBnb2QgZGVsIHNramVybWhqZWxwIHNvbSBkdSBrYW4gdmlzZSB2ZWQgw6UgdHJ5a2tlIHDDpSDCqz/Cuy4KCk7DpXIgZHUgZXIgZmVyZGlnIG1lZCDDpSBzdHVkZXJlIGxpc3RhLCBrYW4gZHUgYXZzbHV0dGUgbWVkIMKrUcK7IGVsbGVyIDxlbnRlcj4uCgpUcnlrayA8bWVsbG9tcm9tPiBmb3Igw6UgYXZzbHV0dGUgaGplbHAgb2cgZ8OlIHRpbCBsaXN0YSBuw6UuCgBWZWxrb21tZW4gdGlsIGhvdmVkcGFra2VsaXN0YSBpIGRzZWxlY3QuCgpEdSB2aWwgZsOlIHNlIGVuIGxpc3RlIG92ZXIgcGFra2VyIHNvbSBlciBpbnN0YWxsZXJ0ZSBlbGxlciBzb20ga2FuIAppbnN0YWxsZXJlc3QgLiBEdSBrYW4gYmxhIGdqZW5ub20gbGlzdGEgdmVkIGhqZWxwIGF2IHBpbHRhc3RlbmUuIE1lZCB0YXN0ZW5lIArCqyvCuyBvZyDCqy3CuyBrYW4gZHUgdmVsZ2Ugw6UgaW5zdGFsbGVyZSBlbGxlciBmamVybmUgcGFra2VyIGVsbGVyIGdydXBwZXIgYXYgCnBha2tlci4gSSB1dGdhbmdzcHVua3RlciBlciBsaW5qYSDCq0FsbGUgcGFra2VywrsgdmFsZ3QsIHNsaWsgYXQgZGUgaGFuZGxpbmdlbmUgCmR1IGdqw7hyIHDDpXZpcmtlciBhbGxlIHBha2tlbmUgc29tIGjDuHJlciB0aWwgZGVubmUga2F0ZWdvcmllbi4KCk5vZSBhdiBkZXQgZHUgdmVsZ2VyIGthbiBmw7hyZSB0aWwga29uZmxpa3RlciBlbGxlciBwcm9ibGVtZXIgbWVkIHBha2tla3Jhdi4gSSBzw6UgCmZhbGwgdmlsIGR1IGbDpSBlbiBlZ2VuIGxpc3RlIG1lZCBkZSBwYWtrZW5lIGRldHRlIGdqZWxkZXIsIHNsaWsgYXQgZHUga2FuIGzDuHNlIApwcm9ibGVtZW5lLgoKRHUgYsO4ciBsZXNlIG92ZXJzaWt0ZW4gb3ZlciB0YXN0ZXIgb2cgZm9ya2xhcmluZ2VuZSB0aWwgc2tqZXJtYmlsZGV0LiBEZXQgCmZpbm5lcyBlbiBnb2QgZGVsIHNramVybWhqZWxwIHNvbSBkdSBrYW4gdmlzZSB2ZWQgw6UgdHJ5a2tlIHDDpSDCqz/Cuy4KCk7DpXIgZHUgZXIgZmVyZGlnIG1lZCDDpSB2ZWxnZSBwYWtrZXIsIHRyeWtrZXIgZHUgPGVudGVyPiBkZXJzb20gZHUgdmlsIGJla3JlZnRlIAplbmRyaW5nZW5lIGVsbGVyIMKrWMK7IG9tIGR1IHZpbCBhdnNsdXR0ZSB1dGVuIGVuZHJpbmdlci4gRW4gc2lzdGUga29udHJvbGwgYXYgCmtvbmZsaWt0ZXIgb2cgcGFra2VrcmF2IGJsaXIgdXRmw7hydC4gSGVyIHZpbCBkdSBvZ3PDpSBmw6Ugb3BwIGVuIGVnZW4gbGlzdGUgdmVkIApwcm9ibGVtZXIuCgpUcnlrayA8bWVsbG9tcm9tPiBmb3Igw6UgYXZzbHV0dGUgaGplbHAgb2cgZ8OlIHRpbCBsaXN0YSBuw6UuCgBFa3MAW1RdaWxnYW5nAFtTXWV0dCBvcHAAW0ldbnN0YWxsZXIAW0FddnNsdXR0AFtGXWplcm4AW1ZdZWxnAFtPXXBwZGF0ZXIAW2lra2UgYXZncmVuc2V0XQBbdWtqZW50OiAlZF0AdAB2ZW50ZXIgcMOlIHV0bMO4c2VycHJvc2Vzc2VyaW5nAExVUwDDuGRlbGVnZ2VyAHMAZmFyZ2UAZmFyZ2VhdHRyaWJ1dHQAa29uZmxpa3QgbWVkAGtsYXJ0ZSBpa2tlIMOlcG5lIGF2bHVzaW5nc2ZpbCBgJS4yNTVzJwoAa3JldmVyAMKrZG91cGRhdGXCuyBtaXNseWt0ZXMAZG91cGRhdGUgaSBTSUdXSU5DSC1ow6VuZHRlcmVyZW4gbWlzbHlrdGVzAGRzZWxlY3QgLSBpbnNwZWtzam9uIGF2IHBha2tlc3RhdHVzAGRzZWxlY3QgLSBsaXN0ZSBvdmVyIHRpbGdhbmdzbWV0b2RlcgBkc2VsZWN0IC0gaG92ZWRwYWtrZWxpc3RlAGRzZWxlY3QgLSByZWt1cnNpdiBwYWtrZWxpc3RlAGRzZWxlY3Qgb2cgZHBrZyBrYW4gaW5zdGFsbGVyZSBhdXRvbWF0aXNrIHZlZCDDpSBoZW50ZSBwYWtrZWZpbGVuZSBzb20gc2thbCAKaW5zdGFsbGVyZXMgZnJhIGZsZXJlIHVsaWtlIHN0ZWRlci4KCkkgZGVubmUgbGlzdGEga2FuIGR1IHZlbGdlIGVuIGF2IGRpc3NlIGluc3RhbGxhc2pvbnNtZXRvZGVuZS4KCkZseXR0IG1hcmtlcmluZ2VuIHRpbCBtZXRvZGVuIGR1IHZpbCBicnVrZSBvZyB0cnlrayBww6UgPGVudGVyPi4gRHUgYmxpciBkYSBzcHVydCAKZXR0ZXIgaW5mb3JtYXNqb25lbiBzb20gdHJlbmdzIGZvciDDpSBpbnN0YWxsZXJlLgoKTsOlciBkdSBmbHl0dGFyIG1hcmtlcmluZ2VuLCBmw6VyIGR1IHNlIGVuIGJlc2tyaXZlbHNlIGF2IGh2ZXIgbWV0b2RlIG5lZGVyc3QgcMOlIApza2plcm1lbiwgZGVyc29tIGRldCBmaW5uZXMgZW4gYmVza3JpdmVsc2UuCgpEZXJzb20gZHUgdmlsIGF2c2x1dHRlIHV0ZW4gw6UgZW5kcmUgcMOlIG5vZW4sIHRyeWtrZXIgZHUgcMOlIMKreMK7IG1lbnMgZHUgZXIgaSAKbGlzdGEgb3ZlciBpbnN0YWxsYXNqb25zbWV0b2Rlci4KCkR1IGthbiBzZSBoZWxlIGxpc3RhIG92ZXIgdGFzdGV0cnlrayB2ZWQgw6UgdHJ5a2tlIHDDpSDCq2vCuyBuw6UgZWxsZXIgZnJhIApoamVscGVtZW55ZW4gc29tIGR1IGbDpXIgbsOlciBkdSB0cnlra2VyIMKrP8K7LgoAZm9yYmVkcmVyAGZlaWwgdmVkIGxlc2luZyBhdiBtZXRvZGVvcHNqb25zZmlsYSDCqyUuMjUwc8K7AGZlaWwgdmVkIGxlc2luZyBhdiBmaWxhIMKrJS4yNTBzwrsgbWVkIG9wc2pvbnNiZXNrcml2ZWxzZXIAZmVpbCBpIHJlZ3Vsw6ZydCB1dHRyeWtrAGZlaWwgdmVkIGxlc2luZyBhdiBnb2RramVubmluZyBhdiBwcm9ncmFtZmVpbG1lbGRpbmcAZmVpbCB2ZWQgbGVzaW5nIGF2IHRhc3RhdHVyIGkgaGplbHAAZmVpbCB2ZWQgbGVzaW5nIGF2IG9wc2pvbnNmaWxhIMKrJS4yNTBzwrsAa2xhcnRlIGlra2Ugw6UgdGlsb3JkbmUgZmFyZ2VwYXIAa2xhcnRlIGlra2Ugw6UgYmxva2tlcmUgU0lHV0lOQ0gAa2xhcnRlIGlra2UgbGFnZSBiYXNlbGlzdC1wYWQAa2xhcnRlIGlra2UgbGFnZSBoZWFkaW5nLXBhZABrbGFydGUgaWtrZSBsYWdlIGluZm8tcGFkAGtsYXJ0ZSBpa2tlIGxhZ2Ugc3DDuHJyaW5nc3ZpbmR1AGtsYXJ0ZSBpa2tlIGxhZ2UgdGhpc3N0YXRlLXBhZABrbGFydGUgaWtrZSBsYWdlIHRpdHRlbHZpbmR1AGtsYXJ0ZSBpa2tlIGxhZ2Ugd2hhdGluZm8tdmluZHUAa2xhcnRlIGlra2Ugw6UgaGVudGUgZ2FtbWVsIFNJR1dJTkNIIHNpZ2FjdABrbGFydGUgaWtrZSDDpSBoZW50ZSBnYW1tZWwgc2lnbmFsbWFza2UAa2xhcnRlIGlra2UgYnJ1a2UgwqtnZXRjaMK7IGkgaG92ZWRtZW55ZW4Aa2xhcnRlIGlra2UgcmVibG9ra2VyZSBTSUdXSU5DSABrbGFydGUgaWtrZSBsZXNlIGZpbGEgwqslLjI1MHPCuyBtZWQgb3Bzam9uc2Jlc2tyaXZlbHNlcgBrbGFydGUgaWtrZSDDpSBnamVub3BwcmV0dGUgZ2FtbWVsIFNJR1dJTkNIIHNpZ2FjdABrbGFydGUgaWtrZSDDpSBnamVub3BwcmV0dGUgZ2FtbWVsIHNpZ25hbG1hc2tlAGtsYXJ0ZSBpa2tlIMOlIHNldHRlIG55IFNJR1dJTkNIIHNpZ2FjdABrbGFydGUgaWtrZSBhdmJsb2trZXJlIFNJR1dJTkNIAMKrZ2V0Y2jCuyBtaXNseWt0ZXMAaGFsdnZlaXMgc2F0dCBvcHAgKG9wcHNldHQgbWlzbHlrdGVzKQBoYWx2aW5zdGFsbGVydABob2xkIHRpbGJha2UAaQBmb3IgbGFuZyBpbmRla3NzdHJlbmcAaW5zdGFsbGVyAGluc3RhbGxhc2pvbnNza3JpcHQAaW5zdGFsbGVydAB1Z3lsZGlnIHPDuGtldmFsZyBvcHBnaXR0AGlvY3RsKFRJT0NHV0lOU1opIG1pc2x5a3RlcwBtZW55AG1ldG9kZW4gwqslLjI1MHPCuyBoYXIgZm9yIGxhbmd0IG5hdm4gKCVkID4gJWQgdGVnbikAbnkgcGFra2UAbGluamVza2lmdCBmw7hyIHN0YXJ0ZW4gcMOlIG9wc2pvbnNuYXZuZXQAbGluamVza2lmdCBmw7hyIHNhbW1lbmRyYWdldABvcHNqb25zbmF2bmV0IGlubmVob2xkZXIgdGVnbiBzb20gaWtrZSBlciB0YWxsIGVsbGVyIGJva3N0YXZlcgBpa2tlLXNpZmZlciBkZXIgZGV0IHNrdWxsZSB2w6ZyZSBldCBzaWZmZXIgAGlra2UtYm9rc3RhdiBkZXIgZXQgb3Bzam9uc25hdm4gc2t1bGxlIHN0YXJ0ZQBpa2tlIGluc3RhbGxlcnQAZm9ya3JhdgBnaXIAcmVucwBhAHNrcmlwdCB0aWwgc3DDuHJyaW5nL29wcHNldHQAZgBhbmJlZmFsZXIAZmplcm4AZmplcm5ldCAodGF0dCB2YXJlIHDDpSBvcHBzZXR0KQBlcnN0YXR0ZXIAdgBza2plcm1kZWwAZm9yZXNsw6VyAHN5bnRha3NmZWlsIGkgbWV0b2Rlb3Bzam9uc2ZpbGEgwqslLjI1MHPCuyAtLSAlcwB0ZXJtaW5hbGVuIG1hbmdsZXIgbsO4ZHZlbmRpZ2UgZnVua3Nqb25lciwgZ2lyIG9wcAB1dGzDuHN0AG8AZmlrayBpa2tlIHRpbGdhbmcgdGlsIG1ldG9kZXNrcmlwdGV0IMKrJS4yNTBzwrsAa2xhcnRlIGlra2UgbHVra2UgZGVuIG55ZSBvcHNqb25zZmlsYSDCqyUuMjUwc8K7AGtsYXJ0ZSBpa2tlIGluc3RhbGxlcmUgbnkgb3Bzam9uIHNvbSDCqyUuMjUwc8K7AGtsYXJ0ZSBpa2tlIMOlcG5lIG9wc2pvbnNmaWxhIMKrJS4yNTBzwrsAa2xhcnRlIGlra2Ugw6VwbmUgZGVuIG55ZSBvcHNqb25zZmlsYSDCqyUuMjUwc8K7AGtsYXJ0ZSBpa2tlIMOlcG5lIMKrJS4yNTBzwrsgbWVkIG9wc2pvbnNiZXNrcml2ZWxzZXIAa2xhcnRlIGlra2UgbGVzZSBrYXRhbG9nZW4gwqslLjI1MHPCuyBmb3IgbGVzaW5nIGF2IG1ldG9kZXIAa2xhcnRlIGlra2UgbGVzZSBtZXRvZGVvcHNqb25zZmlsYSDCqyUuMjUwc8K7AGZhbnQgaWtrZSBmaWxhIMKrJS4yNTBzwrsgbWVkIG9wc2pvbnNiZXNrcml2ZWxzZXIAa2xhcnRlIGlra2Ugc2tyaXZlIGRlbiBueWUgb3Bzam9uc2ZpbGEgwqslLjI1MHPCuwB1a2plbnQgaGFuZGxpbmdzc3RyZW5nIGAlLjUwcycAdXRwYWtrZXQgKGlra2Ugc2F0dCBvcHApAHNrcmlwdCB0aWwgb3BwZGF0ZXJpbmcgYXYgdGlsZ2plbmdlbGlnaGV0c2xpc3RlAA==