IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZTogICAgTG91dAoiIE1haW50YWluZXI6ICBDaHJpc3RpYW4gVi4gSi4gQnL8c3NvdyA8Y3ZqYkBjdmpiLmRlPgoiIExhc3QgQ2hhbmdlOiBTb24gMjIgSnVuIDIwMDMgMjA6NDM6MjYgQ0VTVAoiIEZpbGVuYW1lczogICAqLmxvdXQsKi5sdAoiIFVSTDoJCQlodHRwOi8vd3d3LmN2amIuZGUvY29tcC92aW0vbG91dC52aW0KIiAkSWQkCiIKIiBMb3V0OiBCYXNzZXIgTG91dCBkb2N1bWVudCBmb3JtYXR0aW5nIHN5c3RlbS4KCiIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCiIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKaWYgdmVyc2lvbiA8IDYwMAoJc3ludGF4IGNsZWFyCmVsc2VpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQoJZmluaXNoCmVuZGlmCgoiIExvdXQgaXMgY2FzZSBzZW5zaXRpdmUKc3luIGNhc2UgbWF0Y2gKCiIgU3luY2hyb25pemF0aW9uLCBJIGtub3cgaXQgaXMgYSBodWdlIG51bWJlciwgYnV0IG5vcm1hbCB0ZXh0cyBjYW4gYmUKIiBfdmVyeV8gbG9uZyA7LSkKc3luIHN5bmMgbGluZXM9MTAwMAoKIiBDaGFyYWN0ZXJzIGFsbG93ZWQgaW4ga2V5d29yZHMKIiBJIGRvbid0IGtub3cgaWYgMTI4LTI1NSBhcmUgYWxsb3dlZCBpbiBBTlMtRk9SSFQKaWYgdmVyc2lvbiA+PSA2MDAKCXNldGxvY2FsIGlza2V5d29yZD1ALDQ4LTU3LC4sQC1ALF8sMTkyLTI1NQplbHNlCglzZXQgaXNrZXl3b3JkPUAsNDgtNTcsLixALUAsXywxOTItMjU1CmVuZGlmCgoiIFNvbWUgc3BlY2lhbCBrZXl3b3JkcwpzeW4ga2V5d29yZCBsb3V0VG9kbyBjb250YWluZWQgVE9ETyBsb3V0IExvdXQgTE9VVApzeW4ga2V5d29yZCBsb3V0RGVmaW5lIGRlZiBtYWNybwoKIiBTb21lIGJpZyBzdHJ1Y3R1cmVzCnN5biBrZXl3b3JkIGxvdXRLZXl3b3JkIEBCZWdpbiBARW5kIEBGaWd1cmUgQFRhYgpzeW4ga2V5d29yZCBsb3V0S2V5d29yZCBAQm9vayBARG9jIEBEb2N1bWVudCBAUmVwb3J0CnN5biBrZXl3b3JkIGxvdXRLZXl3b3JkIEBJbnRyb2R1Y3Rpb24gQEFic3RyYWN0IEBBcHBlbmRpeApzeW4ga2V5d29yZCBsb3V0S2V5d29yZCBAQ2hhcHRlciBAU2VjdGlvbiBAQmVnaW5TZWN0aW9ucyBARW5kU2VjdGlvbnMKCiIgQWxsIGtpbmQgb2YgTG91dCBrZXl3b3JkcwpzeW4gbWF0Y2ggbG91dEZ1bmN0aW9uICdcPEBbXiBcdHt9XVwrXD4nCgoiIEJyYWNlcyAtLSBEb25gdCBlZGl0IHRoZXNlIGxpbmVzIQpzeW4gbWF0Y2ggbG91dE1CcmFjZXMgJ1t7fV0nCnN5biBtYXRjaCBsb3V0SUJyYWNlcyAnW3t9XScKc3luIG1hdGNoIGxvdXRCQnJhY2UgJ1t7fV0nCnN5biBtYXRjaCBsb3V0QklCcmFjZXMgJ1t7fV0nCnN5biBtYXRjaCBsb3V0SGVhZHMgJ1t7fV0nCgoiIFVubWF0Y2hlZCBicmFjZXMuCnN5biBtYXRjaCBsb3V0QnJhY2VFcnJvciAnfScKCiIgRW5kIG9mIG11bHRpLWxpbmUgZGVmaW5pdGlvbnMsIGxpa2UgQERvY3VtZW50LCBAUmVwb3J0IGFuZCBAQm9vay4Kc3luIG1hdGNoIGxvdXRFT21sRGVmICdeLy8kJwoKIiBHcm91cGluZyBvZiBwYXJhbWV0ZXJzIGFuZCBvYmplY3RzLgpzeW4gcmVnaW9uIGxvdXRPYmplY3QgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1EZWxpbWl0ZXIgc3RhcnQ9J3snIG1hdGNoZ3JvdXA9RGVsaW1pdGVyIGVuZD0nfScgY29udGFpbnM9QUxMQlVULGxvdXRCcmFjZUVycm9yCgoiIFRoZSBOVUxMIG9iamVjdCBoYXMgYSBzcGVjaWFsIG1lYW5pbmcKc3luIGtleXdvcmQgbG91dE5VTEwge30KCiIgQ29tbWVudHMKc3luIHJlZ2lvbiBsb3V0Q29tbWVudCBzdGFydD0nXCMnIGVuZD0nJCcgY29udGFpbnM9bG91dFRvZG8KCiIgRG91YmxlIHF1b3RlcwpzeW4gcmVnaW9uIGxvdXRTcGVjaWFsIHN0YXJ0PSsiKyBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisKCiIgSVNPLUxBVElOLTEgY2hhcmFjdGVycyBjcmVhdGVkIHdpdGggQENoYXIsIG9yIEFkb2JlIHN5bWJvbHMKIiBjcmVhdGVkIHdpdGggQFN5bQpzeW4gbWF0Y2ggbG91dFN5bWJvbHMgJ0BcKFwoQ2hhclwpXHxcKFN5bVwpXClcc1wrW0EtWmEtel1cKycKCiIgSW5jbHVkZSBmaWxlcwpzeW4gbWF0Y2ggbG91dEluY2x1ZGUgJ0BJbmNsdWRlR3JhcGhpY1xzXCtca1wrJwpzeW4gcmVnaW9uIGxvdXRJbmNsdWRlIHN0YXJ0PSdAXChcKFN5c0luY2x1ZGVcKVx8XChJbmNsdWRlR3JhcGhpY1wpXHxcKEluY2x1ZGVcKVwpXHMqeycgZW5kPSd9JwoKIiBUYWdzCnN5biBtYXRjaCBsb3V0VGFnICdAXChcKFRhZ1wpXHxcKFBhZ2VNYXJrXClcfFwoUGFnZU9mXClcfFwoTnVtYmVyT2ZcKVwpXHNcK1xrXCsnCnN5biByZWdpb24gbG91dFRhZyBzdGFydD0nQFRhZ1xzKnsnIGVuZD0nfScKCiIgRXF1YXRpb25zCnN5biBtYXRjaCBsb3V0TWF0aCAnQEVxXHNcK1xrXCsnCnN5biByZWdpb24gbG91dE1hdGggbWF0Y2hncm91cD1sb3V0TUJyYWNlcyBzdGFydD0nQEVxXHMqeycgbWF0Y2hncm91cD1sb3V0TUJyYWNlcyBlbmQ9J30nIGNvbnRhaW5zPUFMTEJVVCxsb3V0QnJhY2VFcnJvcgoiCiIgRm9udHMKc3luIG1hdGNoIGxvdXRJdGFsaWMgJ0BJXHNcK1xrXCsnCnN5biByZWdpb24gbG91dEl0YWxpYyBtYXRjaGdyb3VwPWxvdXRJQnJhY2VzIHN0YXJ0PSdASVxzKnsnIG1hdGNoZ3JvdXA9bG91dElCcmFjZXMgZW5kPSd9JyBjb250YWlucz1BTExCVVQsbG91dEJyYWNlRXJyb3IKc3luIG1hdGNoIGxvdXRCb2xkICdAQlxzXCtca1wrJwpzeW4gcmVnaW9uIGxvdXRCb2xkIG1hdGNoZ3JvdXA9bG91dEJCcmFjZXMgc3RhcnQ9J0BCXHMqeycgbWF0Y2hncm91cD1sb3V0QkJyYWNlcyBlbmQ9J30nIGNvbnRhaW5zPUFMTEJVVCxsb3V0QnJhY2VFcnJvcgpzeW4gbWF0Y2ggbG91dEJvbGRJdGFsaWMgJ0BCSVxzXCtca1wrJwpzeW4gcmVnaW9uIGxvdXRCb2xkSXRhbGljIG1hdGNoZ3JvdXA9bG91dEJJQnJhY2VzIHN0YXJ0PSdAQklccyp7JyBtYXRjaGdyb3VwPWxvdXRCSUJyYWNlcyBlbmQ9J30nIGNvbnRhaW5zPUFMTEJVVCxsb3V0QnJhY2VFcnJvcgpzeW4gcmVnaW9uIGxvdXRIZWFkaW5ncyBtYXRjaGdyb3VwPWxvdXRIZWFkcyBzdGFydD0nQFwoXChUaXRsZVwpXHxcKENhcHRpb25cKVwpXHMqeycgbWF0Y2hncm91cD1sb3V0SGVhZHMgZW5kPSd9JyBjb250YWlucz1BTExCVVQsbG91dEJyYWNlRXJyb3IKCiIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KIiBGb3IgdmVyc2lvbiA1LjcgYW5kIGVhcmxpZXI6IG9ubHkgd2hlbiBub3QgZG9uZSBhbHJlYWR5CiIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlcjogb25seSB3aGVuIGFuIGl0ZW0gZG9lc24ndCBoYXZlIGhpZ2hsaWdodGluZyB5ZXQKaWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX2xvdXRfc3luX2luaXRzIikKCWlmIHZlcnNpb24gPCA1MDgKCQlsZXQgZGlkX2xvdXRfc3luX2luaXRzID0gMQoJCWNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+CgllbHNlCgkJY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CgllbmRpZgoKCSIgVGhlIGRlZmF1bHQgbWV0aG9kcyBmb3IgaGlnaGxpZ2h0aW5nLiBDYW4gYmUgb3ZlcnJyaWRlbiBsYXRlci4KCUhpTGluayBsb3V0VG9kbyBUb2RvCglIaUxpbmsgbG91dERlZmluZSBEZWZpbmUKCUhpTGluayBsb3V0RU9tbERlZiBEZWZpbmUKCUhpTGluayBsb3V0RnVuY3Rpb24gRnVuY3Rpb24KCUhpTGluayBsb3V0QnJhY2VFcnJvciBFcnJvcgoJSGlMaW5rIGxvdXROVUxMIFNwZWNpYWwKCUhpTGluayBsb3V0Q29tbWVudCBDb21tZW50CglIaUxpbmsgbG91dFNwZWNpYWwgU3BlY2lhbAoJSGlMaW5rIGxvdXRTeW1ib2xzIENoYXJhY3RlcgoJSGlMaW5rIGxvdXRJbmNsdWRlIEluY2x1ZGUKCUhpTGluayBsb3V0S2V5d29yZCBLZXl3b3JkCglIaUxpbmsgbG91dFRhZyBUYWcKCUhpTGluayBsb3V0TWF0aCBOdW1iZXIKCgkiIEhpTGluayBOb3QgcmVhbGx5IG5lZWRlZCBoZXJlLCBidXQgSSB0aGluayBpdCBpcyBtb3JlIGNvbnNpc3RlbnQuCglIaUxpbmsgbG91dE1CcmFjZXMgbG91dE1hdGgKCWhpIGxvdXRJdGFsaWMgdGVybT1pdGFsaWMgY3Rlcm09aXRhbGljIGd1aT1pdGFsaWMKCUhpTGluayBsb3V0SUJyYWNlcyBsb3V0SXRhbGljCgloaSBsb3V0Qm9sZCB0ZXJtPWJvbGQgY3Rlcm09Ym9sZCBndWk9Ym9sZAoJSGlMaW5rIGxvdXRCQnJhY2VzIGxvdXRCb2xkCgloaSBsb3V0Qm9sZEl0YWxpYyB0ZXJtPWJvbGQsaXRhbGljIGN0ZXJtPWJvbGQsaXRhbGljIGd1aT1ib2xkLGl0YWxpYwoJSGlMaW5rIGxvdXRCSUJyYWNlcyBsb3V0Qm9sZEl0YWxpYwoJaGkgbG91dEhlYWRpbmdzIHRlcm09Ym9sZCBjdGVybT1ib2xkIGd1aWZnPWluZGlhbnJlZAoJSGlMaW5rIGxvdXRIZWFkcyBsb3V0SGVhZGluZ3MKCglkZWxjb21tYW5kIEhpTGluawplbmRpZgoKbGV0IGI6Y3VycmVudF9zeW50YXggPSAibG91dCIKCiIgdmltOnRzPTg6c3c9NDpub2NpbmRlbnQ6c21hcnRpbmRlbnQ6Cg==