ZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3NoLnZpbSBiL3J1bnRpbWUvc3ludGF4L3NoLnZpbQppbmRleCBjOGY2ZWUwLi5mODYyNGFlIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9zaC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvc2gudmltCkBAIC0yLDExICsyLDExIEBACiAiIExhbmd1YWdlOgkJc2hlbGwgKHNoKSBLb3JuIHNoZWxsIChrc2gpIGJhc2ggKHNoKQogIiBNYWludGFpbmVyOgkJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiAgPE5kck9jaGlwU0BQY2FtcGJlbGxBZmFtaWx5Lk1iaXo+CiAiIFByZXZpb3VzIE1haW50YWluZXI6CUxlbm5hcnQgU2NodWx0eiA8TGVubmFydC5TY2h1bHR6QGVjbXdmLmludD4KLSIgTGFzdCBDaGFuZ2U6CQlBcHIgMjgsIDIwMDQKLSIgVmVyc2lvbjoJCTY4CisiIExhc3QgQ2hhbmdlOgkJSnVsIDI2LCAyMDA0CisiIFZlcnNpb246CQk2OQogIiBVUkw6CQlodHRwOi8vd3d3LmVyb2xzLmNvbS9hc3Ryb25hdXQvdmltL2luZGV4Lmh0bWwjdmltbGlua3Nfc3ludGF4CiAiCi0iIFVzaW5nIHRoZSBmb2xsb3dpbmcgVklNIHZhcmlhYmxlczoKKyIgVXNpbmcgdGhlIGZvbGxvd2luZyBWSU0gdmFyaWFibGVzOiB7e3sxCiAiIGI6aXNfa29ybnNoZWxsCWlmIGRlZmluZWQsIGVuaGFuY2Ugd2l0aCBrb3Juc2hlbGwgc3ludGF4CiAiIGI6aXNfYmFzaAkJaWYgZGVmaW5lZCwgZW5oYW5jZSB3aXRoIGJhc2ggc3ludGF4CiAiICAgaXNfa29ybnNoZWxsCWlmIG5laXRoZXIgYjppc19rb3Juc2hlbGwgb3IgYjppc19iYXNoIGlzCkBAIC0yMCw3ICsyMCw3IEBACiAiCiAiIFRoaXMgZmlsZSBpbmNsdWRlcyBtYW55IGlkZWFzIGZyb20gyXJpYyBCcnVuZXQgKGVyaWMuYnJ1bmV0QGVucy5mcikKIAotIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKKyIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zIHt7ezEKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKIGlmIHZlcnNpb24gPCA2MDAKICAgc3ludGF4IGNsZWFyCkBAIC0yOCw2ICsyOCw3IEBACiAgIGZpbmlzaAogZW5kaWYKIAorIiBoYW5kbGluZyAvYmluL3NoIHdpdGggaXNfa29ybnNoZWxsL2lzX3NoIHt7ezEKICIgYjppc19zaCBpcyBzZXQgd2hlbiAiIyEgL2Jpbi9zaCIgaXMgZm91bmQ7CiAiIEhvd2V2ZXIsIGl0IG9mdGVuIGlzIGp1c3QgYSBtYXNxdWVyYWRlIGJ5IGJhc2ggKHR5cGljYWxseSBMaW51eCkKICIgb3Iga29ybnNoZWxsICh0eXBpY2FsbHkgd29ya3N0YXRpb25zIHdpdGggUG9zaXggInNoIikuCkBAIC01Nyw3ICs1OCw3IEBACiAiIHNoIHN5bnRheCBpcyBjYXNlIHNlbnNpdGl2ZQogc3luIGNhc2UgbWF0Y2gKIAotIiBDbHVzdGVyczogY29udGFpbnM9QC4uLiBjbHVzdGVycworIiBDbHVzdGVyczogY29udGFpbnM9QC4uLiBjbHVzdGVycyB7e3sxCiAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogc3luIGNsdXN0ZXIgc2hDYXNlRXNhY0xpc3QJY29udGFpbnM9c2hDYXNlU3RhcnQsc2hDYXNlLHNoQ2FzZUJhcixzaENhc2VJbixzaENvbW1lbnQsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoQ2FzZUNvbW1hbmRTdWIsc2hDYXNlU2luZ2xlUXVvdGUsc2hDYXNlRG91YmxlUXVvdGUsc2hTcGVjaWFsCiBzeW4gY2x1c3RlciBzaENhc2VMaXN0CWNvbnRhaW5zPUBzaENvbW1hbmRTdWJMaXN0LHNoQ2FzZUVzYWMsc2hDb2xvbixzaENvbW1hbmRTdWIsc2hDb21tYW5kU3ViLHNoQ29tbWVudCxzaERvLHNoRWNobyxzaEV4cHIsc2hGb3Isc2hIZXJlRG9jLHNoSWYsc2hSZWRpcixzaFNldExpc3Qsc2hTb3VyY2Usc2hTdGF0ZW1lbnQsc2hWYXJpYWJsZSxia3NoRnVuY3Rpb24sc2hTcGVjaWFsCkBAIC03OSw3ICs4MCw3IEBACiBzeW4gY2x1c3RlciBzaFRlc3RMaXN0CWNvbnRhaW5zPXNoQ2hhckNsYXNzLHNoQ29tbWVudCxzaENvbW1hbmRTdWIsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRG91YmxlUXVvdGUsc2hFeHByLHNoRXhwcixzaE51bWJlcixzaE9wZXJhdG9yLHNoU2luZ2xlUXVvdGUsc2hTcGVjaWFsLHNoVGVzdE9wcgogCiAKLSIgRWNobzoKKyIgRWNobzoge3t7MQogIiA9PT09CiAiIFRoaXMgb25lIGlzIG5lZWRlZCBJTlNJREUgYSBDb21tYW5kU3ViLCBzbyB0aGF0IGBlY2hvIGJsYWAgYmUgY29ycmVjdAogc3luIHJlZ2lvbiBzaEVjaG8gbWF0Y2hncm91cD1zaFN0YXRlbWVudCBzdGFydD0iXDxlY2hvXD4iICBza2lwPSJcXCQiIG1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9IiQiIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ils8PjsmfCgpXSJtZT1lLTEgZW5kPSJcZFs8Pl0ibWU9ZS0yIGVuZD0iIyJtZT1lLTEgY29udGFpbnM9QHNoRWNob0xpc3QKQEAgLTg4LDcgKzg5LDcgQEAKICIgVGhpcyBtdXN0IGJlIGFmdGVyIHRoZSBzdHJpbmdzLCBzbyB0aGF0IGJsYSBcIiBiZSBjb3JyZWN0CiBzeW4gcmVnaW9uIHNoRW1iZWRkZWRFY2hvIGNvbnRhaW5lZCBtYXRjaGdyb3VwPXNoU3RhdGVtZW50IHN0YXJ0PSJcPHByaW50XD4iIHNraXA9IlxcJCIgbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iJCIgbWF0Y2hncm91cD1OT05FIGVuZD0iWzw+OyZ8YCldIm1lPWUtMSBlbmQ9IlxkWzw+XSJtZT1lLTIgZW5kPSIjIm1lPWUtMSBjb250YWlucz1zaE51bWJlcixzaFNpbmdsZVF1b3RlLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaFNwZWNpYWxWYXIsc2hTcGVjaWFsLHNoT3BlcmF0b3Isc2hEb3VibGVRdW90ZSxzaENoYXJDbGFzcwogCi0iIEFsaWFzOgorIiBBbGlhczoge3t7MQogIiA9PT09PQogaWYgZXhpc3RzKCJiOmlzX2tvcm5zaGVsbCIpIHx8IGV4aXN0cygiYjppc19iYXNoIikKICBzeW4gbWF0Y2ggc2hTdGF0ZW1lbnQgIlw8YWxpYXNcPiIKQEAgLTk2LDggKzk3LDggQEAKICBzeW4gcmVnaW9uIHNoQWxpYXMgbWF0Y2hncm91cD1zaFN0YXRlbWVudCBzdGFydD0iXDxhbGlhc1w+XHNcK1woXHdcKz1cKVxAPSIgc2tpcD0iXFwkIiBlbmQ9Ij0iCiBlbmRpZgogCi0iIEVycm9yIENvZGVzCi0iID09PT09PT09PT09CisiIEVycm9yIENvZGVzOiB7e3sxCisiID09PT09PT09PT09PQogc3luIG1hdGNoICAgc2hEb0Vycm9yICJcPGRvbmVcPiIKIHN5biBtYXRjaCAgIHNoSWZFcnJvciAiXDxmaVw+Igogc3luIG1hdGNoICAgc2hJbkVycm9yICJcPGluXD4iCkBAIC0xMTAsMjUgKzExMSwyNSBAQAogZW5kaWYKIHN5biBtYXRjaCAgICAgc2hUZXN0RXJyb3IgIl0iCiAKLSIgT3B0aW9ucyBpbnRlcmNlcHRvcgotIiA9PT09PT09PT09PT09PT09PT09CisiIE9wdGlvbnMgSW50ZXJjZXB0b3I6IHt7ezEKKyIgPT09PT09PT09PT09PT09PT09PT0KIHN5biBtYXRjaCAgIHNoT3B0aW9uICAiXHNbXC0rXVthLXpBLVowLTldXCtcPiJtcz1zKzEKIHN5biBtYXRjaCAgIHNoT3B0aW9uICAiXHMtLVxTXCsibXM9cysxCiAKLSIgT3BlcmF0b3JzOgotIiA9PT09PT09PT0KKyIgT3BlcmF0b3JzOiB7e3sxCisiID09PT09PT09PT0KIHN5biBtYXRjaCAgIHNoT3BlcmF0b3IJIlshJjt8XSIKIHN5biBtYXRjaCAgIHNoT3BlcmF0b3IJIlxbW1teOl1cfFxdXSIKIHN5biBtYXRjaCAgIHNoT3BlcmF0b3IJIiFcPT0iCQlza2lwd2hpdGUgbmV4dGdyb3VwPXNoUGF0dGVybgogc3luIG1hdGNoICAgc2hQYXR0ZXJuCSJcPFxTXCtcKCkpXClcQD0iCWNvbnRhaW5lZCBjb250YWlucz1zaFNpbmdsZVF1b3RlLHNoRG91YmxlUXVvdGUsc2hEZXJlZgogCi0iIFN1YnNoZWxsczoKLSIgPT09PT09PT09CisiIFN1YnNoZWxsczoge3t7MQorIiA9PT09PT09PT09CiBzeW4gcmVnaW9uIHNoRXhwciAgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1zaEV4cHJSZWdpb24gIHN0YXJ0PSJ7IiBlbmQ9In0iCWNvbnRhaW5zPUBzaEV4cHJMaXN0Mgogc3luIHJlZ2lvbiBzaFN1YlNoIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9c2hTdWJTaFJlZ2lvbiBzdGFydD0iKCIgZW5kPSIpIgljb250YWlucz1Ac2hTdWJTaExpc3QKIAotIiBUZXN0cwotIj09PT09PQorIiBUZXN0czoge3t7MQorIj09PT09PT0KICJzeW4gcmVnaW9uICBzaEV4cHIgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1zaFJhbmdlIHN0YXJ0PSJcWyIgc2tpcD0rXFxcXFx8XFwkKyBlbmQ9IlxdIiBjb250YWlucz1Ac2hUZXN0TGlzdAogc3luIHJlZ2lvbiAgc2hFeHByIG1hdGNoZ3JvdXA9c2hSYW5nZSBzdGFydD0iXFsiIHNraXA9K1xcXFxcfFxcJCsgZW5kPSJcXSIgY29udGFpbnM9QHNoVGVzdExpc3QKIHN5biByZWdpb24gIHNoRXhwciB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoU3RhdGVtZW50IHN0YXJ0PSJcPHRlc3RcPiIgc2tpcD0rXFxcXFx8XFwkKyBtYXRjaGdyb3VwPU5PTkUgZW5kPSJbOyZ8XSJtZT1lLTEgZW5kPSIkIiBjb250YWlucz1Ac2hFeHByTGlzdDEKQEAgLTEzOCwxMiArMTM5LDEyIEBACiAgc3luIHJlZ2lvbiAgc2hEYmxQYXJlbiBtYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0iKCgiIHNraXA9K1xcXFxcfFxcJCsgZW5kPSIpKSIJY29udGFpbnM9QHNoVGVzdExpc3QKIGVuZGlmCiAKLSIgQ2hhcmFjdGVyIENsYXNzIGluIFJhbmdlCi0iID09PT09PT09PT09PT09PT09PT09PT09PQorIiBDaGFyYWN0ZXIgQ2xhc3MgSW4gUmFuZ2U6IHt7ezEKKyIgPT09PT09PT09PT09PT09PT09PT09PT09PQogc3luIG1hdGNoICAgc2hDaGFyQ2xhc3MJY29udGFpbmVkCSJcWzpcKGJhY2tzcGFjZVx8ZXNjYXBlXHxyZXR1cm5cfHhkaWdpdFx8YWxudW1cfGFscGhhXHxibGFua1x8Y250cmxcfGRpZ2l0XHxncmFwaFx8bG93ZXJcfHByaW50XHxwdW5jdFx8c3BhY2VcfHVwcGVyXHx0YWJcKTpcXSIKIAotIiBMb29wczogZG8sIGlmLCB3aGlsZSwgdW50aWwKLSIgPT09PT0KKyIgTG9vcHM6IGRvLCBpZiwgd2hpbGUsIHVudGlsIHt7ezEKKyIgPT09PT09CiBzeW4gcmVnaW9uIHNoRG8JCXRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBzdGFydD0iXDxkb1w+IiBtYXRjaGdyb3VwPXNoQ29uZGl0aW9uYWwgZW5kPSJcPGRvbmVcPiIgY29udGFpbnM9QHNoTG9vcExpc3QKIHN5biByZWdpb24gc2hJZgkJdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIHN0YXJ0PSJcPGlmXD4iIG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBlbmQ9Ilw8O1xfcyp0aGVuXD4iIGVuZD0iXDxmaVw+IiAgIGNvbnRhaW5zPUBzaExvb3BMaXN0LHNoRGJsQnJhY2Usc2hEYmxQYXJlbgogc3luIHJlZ2lvbiBzaEZvcgltYXRjaGdyb3VwPXNoTG9vcCBzdGFydD0iXDxmb3JcPiIgZW5kPSJcPGluXD4iIGVuZD0iXDxkb1w+Im1lPWUtMgljb250YWlucz1Ac2hMb29wTGlzdCxzaERibFBhcmVuCkBAIC0xNTcsNyArMTU4LDcgQEAKICBzeW4gcmVnaW9uIHNoUmVwZWF0ICAgbWF0Y2hncm91cD1zaExvb3AgICBzdGFydD0iXDx1bnRpbFw+IiBlbmQ9Ilw8ZG9cPiJtZT1lLTIJCWNvbnRhaW5zPUBzaExvb3BMaXN0CiBlbmRpZgogCi0iIENhc2U6IGNhc2UuLi5lc2FjCisiIENhc2U6IGNhc2UuLi5lc2FjIHt7ezEKICIgPT09PQogc3luIG1hdGNoICAgc2hDYXNlQmFyCWNvbnRhaW5lZCBza2lwd2hpdGUgIltefCJgJygpXVx7LX18ImhzPWUJCW5leHRncm91cD1zaENhc2Usc2hDYXNlU3RhcnQsc2hDYXNlQmFyLHNoQ29tbWVudCxzaENhc2VTaW5nbGVRdW90ZSxzaENhc2VEb3VibGVRdW90ZQogc3luIG1hdGNoICAgc2hDYXNlU3RhcnQJY29udGFpbmVkIHNraXB3aGl0ZSBza2lwbmwgIigiCQkJbmV4dGdyb3VwPXNoQ2FzZSxzaENhc2VCYXIKQEAgLTE2OCwxMSArMTY5LDEyIEBACiBzeW4gcmVnaW9uICBzaENhc2VEb3VibGVRdW90ZQltYXRjaGdyb3VwPXNoT3BlcmF0b3Igc3RhcnQ9KyIrIHNraXA9K1xcXFxcfFxcLisgZW5kPSsiKwljb250YWlucz1Ac2hEYmxRdW90ZUxpc3Qsc2hTdHJpbmdTcGVjaWFsCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXNoQ2FzZUJhcgljb250YWluZWQKIHN5biByZWdpb24gIHNoQ2FzZUNvbW1hbmRTdWIJc3RhcnQ9K2ArIHNraXA9K1xcXFxcfFxcLisgZW5kPStgKwkJY29udGFpbnM9QHNoQ29tbWFuZFN1Ykxpc3QJCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXNoQ2FzZUJhcgljb250YWluZWQKIAotIiBNaXNjCi0iPT09PT0KKyIgTWlzYzoge3t7MQorIj09PT09PQogc3luIG1hdGNoICAgc2hXcmFwTGluZU9wZXJhdG9yICJcXCQiCiBzeW4gcmVnaW9uICBzaENvbW1hbmRTdWIgICBzdGFydD0iYCIgc2tpcD0iXFxcXFx8XFwuIiBlbmQ9ImAiIGNvbnRhaW5zPUBzaENvbW1hbmRTdWJMaXN0CiAKKyIgJCgpIGFuZCAkKCgpKToge3t7MQogIiAkKC4uKSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHNoIChCb3VybmUgc2hlbGwpLiAgSG93ZXZlciwgYXBwYXJlbnRseQogIiBzb21lIHN5c3RlbXMgKEhQPykgaGF2ZSBhcyB0aGVpciAvYmluL3NoIGEgKGxpbmsgdG8pIEtvcm4gc2hlbGwKICIgKGllLiBQb3NpeCBjb21wbGlhbnQgc2hlbGwpLiAgL2Jpbi9rc2ggc2hvdWxkIHdvcmsgZm9yIHRob3NlCkBAIC0yMDUsOCArMjA3LDggQEAKIHN5biBtYXRjaCAgIHNoU291cmNlCSJcc1wuXHMiCiBzeW4gcmVnaW9uICBzaENvbG9uCXN0YXJ0PSJeXHMqOiIgZW5kPSIkXHwiIGVuZD0iIyJtZT1lLTEgY29udGFpbnM9QHNoQ29sb25MaXN0CiAKLSIgU3RyaW5nIGFuZCBDaGFyYWN0ZXIgY29uc3RhbnRzCi0iPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIiBTdHJpbmcgQW5kIENoYXJhY3RlciBDb25zdGFudHM6IHt7ezEKKyI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogc3luIG1hdGNoICAgc2hOdW1iZXIJIi1cPVw8XGRcK1w+Igogc3luIG1hdGNoICAgc2hTcGVjaWFsCSJcXFxkXGRcZFx8XFxbYWJjZm5ydHYwXSIJY29udGFpbmVkCiBzeW4gcmVnaW9uICBzaFNpbmdsZVF1b3RlCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBzdGFydD0rJysgZW5kPSsnKwkJY29udGFpbnM9c2hTdHJpbmdTcGVjaWFsCkBAIC0yMTQsMjAgKzIxNiwyMSBAQAogc3luIG1hdGNoICAgc2hTdHJpbmdTcGVjaWFsCSJbXls6cHJpbnQ6XV0iCWNvbnRhaW5lZAogc3luIG1hdGNoICAgc2hTcGVjaWFsCSJcXFtcXFwiXCdgJCgpI10iCiAKLSIgQ29tbWVudHMKLSI9PT09PT09PT0KKyIgQ29tbWVudHM6IHt7ezEKKyI9PT09PT09PT09CiBzeW4gY2x1c3RlciAgICBzaENvbW1lbnRHcm91cAljb250YWlucz1zaFRvZG8sQFNwZWxsCiBzeW4ga2V5d29yZCAgICBzaFRvZG8JY29udGFpbmVkCVRPRE8KIHN5biBtYXRjaCAgICAgIHNoQ29tbWVudAkiIy4qJCIgY29udGFpbnM9QHNoQ29tbWVudEdyb3VwCiAKLSIgRmlsZSByZWRpcmVjdGlvbiBoaWdobGlnaHRlZCBhcyBvcGVyYXRvcnMKLSI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyIgRmlsZSBSZWRpcmVjdGlvbiBIaWdobGlnaHRlZCBBcyBPcGVyYXRvcnM6IHt7ezEKKyI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBzeW4gbWF0Y2ggICAgICBzaFJlZGlyCSJcZFw9PlwoJlstMC05XVwpXD0iCiBzeW4gbWF0Y2ggICAgICBzaFJlZGlyCSJcZFw9Pj4tXD0iCiBzeW4gbWF0Y2ggICAgICBzaFJlZGlyCSJcZFw9PFwoJlstMC05XVwpXD0iCiBzeW4gbWF0Y2ggICAgICBzaFJlZGlyCSJcZDw8LVw9IgogCi0iIFNoZWxsIElucHV0IFJlZGlyZWN0aW9uIChIZXJlIERvY3VtZW50cykKKyIgSGVyZSBEb2N1bWVudHM6IHt7ezEKKyIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIGlmIHZlcnNpb24gPCA2MDAKICBzeW4gcmVnaW9uIHNoSGVyZURvYyBtYXRjaGdyb3VwPXNoUmVkaXIgc3RhcnQ9Ijw8XHMqXCoqRU5EW2EtekEtWl8wLTldKlwqKiIgIG1hdGNoZ3JvdXA9c2hSZWRpciBlbmQ9Il5FTkRbYS16QS1aXzAtOV0qJCIgY29udGFpbnM9QHNoRGJsUXVvdGVMaXN0CiAgc3luIHJlZ2lvbiBzaEhlcmVEb2MgbWF0Y2hncm91cD1zaFJlZGlyIHN0YXJ0PSI8PC1ccypcKipFTkRbYS16QS1aXzAtOV0qXCoqIiBtYXRjaGdyb3VwPXNoUmVkaXIgZW5kPSJeXHMqRU5EW2EtekEtWl8wLTldKiQiIGNvbnRhaW5zPUBzaERibFF1b3RlTGlzdApAQCAtMjk4LDEzICszMDEsMTYgQEAKICAgc3luIG1hdGNoICBzaEJlZ2luTGluZSAiLiokIgkJY29udGFpbmVkCXNraXBubAluZXh0Z3JvdXA9c2hIZXJlUGF5bG9hZAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdAogICBzeW4gbWF0Y2ggIHNoQmVnaW5IZXJlICI8PC1cPVxzKlxTXCsiCWNvbnRhaW5lZAkJbmV4dGdyb3VwPXNoQmVnaW5MaW5lCiAgZW5kaWYKLSBpZiBleGlzdHMoImI6aXNfYmFzaCIpCi0gIHN5biBtYXRjaCBzaFJlZGlyICI8PDwiCi0gZW5kaWYKIGVuZGlmCiAKLSIgSWRlbnRpZmllcnMKLSI9PT09PT09PT09PT0KKyIgSGVyZSBTdHJpbmdzOiB7e3sxCisiID09PT09PT09PT09PT0KK2lmIGV4aXN0cygiYjppc19iYXNoIikKKyBzeW4gbWF0Y2ggc2hSZWRpciAiPDw8IgorZW5kaWYKKworIiBJZGVudGlmaWVyczoge3t7MQorIj09PT09PT09PT09PT0KIHN5biBtYXRjaCAgc2hWYXJpYWJsZSAiXDxcKFtid2dsc2F2XTpcKVw9W2EtekEtWjAtOS4hQF8lKyxdKlx6ZT0iCW5leHRncm91cD1zaFNldElkZW50aWZpZXIKIHN5biBtYXRjaCAgc2hJZFdoaXRlU3BhY2UgIGNvbnRhaW5lZAkiXHMiCiBzeW4gbWF0Y2ggIHNoU2V0SWRlbnRpZmllciBjb250YWluZWQJIj0iCW5leHRncm91cD1zaFBhdHRlcm4sc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRG91YmxlUXVvdGUsc2hTaW5nbGVRdW90ZQpAQCAtMzIxLDYgKzMyNyw3IEBACiAgIHN5biBtYXRjaCAgc2hTdGF0ZW1lbnQgIlw8XChzZXRcfGV4cG9ydFx8dW5zZXRcKSQiCiBlbmRpZgogCisiIEZ1bmN0aW9uczoge3t7MQogIiBoYW5kbGVzIGZ1bmN0aW9ucyB3aGljaCBzdGFydDogIEZ1bmN0aW9uICgpIHsKICIgICBBcHBhcmVudGx5IEJvdXJuZSBzaGVsbCBhY2NlcHRzIGZ1bmN0aW9ucyB0b28sCiAiICAgZXZlbiB0aG91Z2ggaXQgaXNuJ3QgZG9jdW1lbnRlZCBieSBteSBtYW4gcGFnZXMKQEAgLTMzNSw4ICszNDIsOCBAQAogc3luIG1hdGNoIGJrc2hGdW5jdGlvblBhcmVuCSJbKCldIgljb250YWluZWQKIHN5biBtYXRjaCBia3NoRnVuY3Rpb25EZWxpbQkiW3t9XSIJY29udGFpbmVkCiAKLSIgUGFyYW1ldGVyIERlcmVmZXJlbmNpbmcKLSIgPT09PT09PT09PT09PT09PT09PT09PT0KKyIgUGFyYW1ldGVyIERlcmVmZXJlbmNpbmc6IHt7ezEKKyIgPT09PT09PT09PT09PT09PT09PT09PT09CiBzeW4gbWF0Y2ggIHNoRGVyZWZTaW1wbGUJIlwkXHdcKyIKIHN5biByZWdpb24gc2hEZXJlZgltYXRjaGdyb3VwPVByZVByb2Mgc3RhcnQ9IlwkeyIgZW5kPSJ9Igljb250YWlucz1Ac2hEZXJlZkxpc3Qsc2hEZXJlZlZhckFycmF5CiBzeW4gbWF0Y2ggIHNoRGVyZWZXb3JkRXJyb3IJIltefSRbXSIJY29udGFpbmVkCkBAIC0zNDYsOCArMzUzLDggQEAKICBzeW4gcmVnaW9uIHNoRGVyZWYJbWF0Y2hncm91cD1QcmVQcm9jIHN0YXJ0PSJcJHsjI1w9IiBlbmQ9In0iCWNvbnRhaW5zPUBzaERlcmVmTGlzdAogZW5kaWYKIAotIiBiYXNoIDogJHshcHJlZml4Kn0KLSIgYmFzaCA6ICR7I3BhcmFtZXRlcn0KKyIgYmFzaDogJHshcHJlZml4Kn0gYW5kICR7I3BhcmFtZXRlcn06IHt7ezEKKyIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBpZiBleGlzdHMoImI6aXNfYmFzaCIpCiAgc3luIHJlZ2lvbiBzaERlcmVmCW1hdGNoZ3JvdXA9UHJlUHJvYyBzdGFydD0iXCR7ISIgZW5kPSJcKlw9fSIJY29udGFpbnM9QHNoRGVyZWZMaXN0LHNoRGVyZWZPcAogIHN5biBtYXRjaCAgc2hEZXJlZlZhcgljb250YWluZWQJIntcQDw9IVx3XCsiCQluZXh0Z3JvdXA9QHNoRGVyZWZWYXJMaXN0CkBAIC0zNTcsOSArMzY0LDEwIEBACiBzeW4gbWF0Y2ggIHNoRGVyZWZTcGVjaWFsCWNvbnRhaW5lZAkiXCh7WyMhXVwpXEA8PVtbOmFsbnVtOl0qQF9dXCsiCW5leHRncm91cD1Ac2hEZXJlZlZhckxpc3Qsc2hEZXJlZk9wCiBzeW4gbWF0Y2ggIHNoRGVyZWZWYXIJY29udGFpbmVkCSJ7XEA8PVx3XCsiCQluZXh0Z3JvdXA9QHNoRGVyZWZWYXJMaXN0CiAKLSIgc2gga3NoIGJhc2ggOiAke3ZhclsuLi4gXS4uLn0gIGFycmF5IHJlZmVyZW5jZQorIiBzaCBrc2ggYmFzaCA6ICR7dmFyWy4uLiBdLi4ufSAgYXJyYXkgcmVmZXJlbmNlOiB7e3sxCiBzeW4gcmVnaW9uICBzaERlcmVmVmFyQXJyYXkgICBjb250YWluZWQJbWF0Y2hncm91cD1zaERlcmVmIHN0YXJ0PSJcWyIgZW5kPSJdIgljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdCBuZXh0Z3JvdXA9c2hEZXJlZk9wLHNoRGVyZWZPcEVycm9yCiAKKyIgU3BlY2lhbCAke3BhcmFtZXRlciBPUEVSQVRPUiB3b3JkfSBoYW5kbGluZzoge3t7MQogIiBzaCBrc2ggYmFzaCA6ICR7cGFyYW1ldGVyOi13b3JkfSAgICB3b3JkIGlzIGRlZmF1bHQgdmFsdWUKICIgc2gga3NoIGJhc2ggOiAke3BhcmFtZXRlcjo9d29yZH0gICAgYXNzaWduIHdvcmQgYXMgZGVmYXVsdCB2YWx1ZQogIiBzaCBrc2ggYmFzaCA6ICR7cGFyYW1ldGVyOj93b3JkfSAgICBkaXNwbGF5IHdvcmQgaWYgcGFyYW1ldGVyIGlzIG51bGwKQEAgLTM5NSwxNSArNDAzLDIwIEBACiAgc3luIG1hdGNoICBzaERlcmVmUGF0U3RyaW5nCWNvbnRhaW5lZAkiW159XVx7MSx9IgogZW5kaWYKIAotIiBBIGJ1bmNoIG9mIHVzZWZ1bCBzaCBrZXl3b3JkcworIiBVc2VmdWwgc2ggS2V5d29yZHM6IHt7ezEKKyIgPT09PT09PT09PT09PT09PT09PQogc3luIGtleXdvcmQgc2hTdGF0ZW1lbnQgYnJlYWsgY2QgY2hkaXIgY29udGludWUgZXZhbCBleGVjIGV4aXQga2lsbCBuZXdncnAgcHdkIHJlYWQgcmVhZG9ubHkgcmV0dXJuIHNoaWZ0IHRlc3QgdHJhcCB1bGltaXQgdW1hc2sgd2FpdAogc3luIGtleXdvcmQgc2hDb25kaXRpb25hbCBjb250YWluZWQgZWxpZiBlbHNlIHRoZW4KIHN5biBrZXl3b3JkIHNoQ29uZEVycm9yIGVsaWYgZWxzZSB0aGVuCiAKKyIgVXNlZnVsIGtzaCBLZXl3b3Jkczoge3t7MQorIiA9PT09PT09PT09PT09PT09PT09PQogaWYgZXhpc3RzKCJiOmlzX2tvcm5zaGVsbCIpIHx8IGV4aXN0cygiYjppc19iYXNoIikKICBzeW4ga2V5d29yZCBzaEZ1bmN0aW9uCWZ1bmN0aW9uCiAgc3luIGtleXdvcmQgc2hTdGF0ZW1lbnQgYXV0b2xvYWQgYmcgZmFsc2UgZmMgZmcgZnVuY3Rpb25zIGdldG9wdHMgaGFzaCBoaXN0b3J5IGludGVnZXIgam9icyBsZXQgbm9odXAgcHJpbnQgcHJpbnRmIHIgc3RvcCBzdXNwZW5kIHRpbWUgdGltZXMgdHJ1ZSB0eXBlIHVuYWxpYXMgd2hlbmNlCiAKKyIgVXNlZnVsIGJhc2ggS2V5d29yZHM6IHt7ezEKKyIgPT09PT09PT09PT09PT09PT09PT09CiAgaWYgZXhpc3RzKCJiOmlzX2Jhc2giKQogICBzeW4ga2V5d29yZCBzaFN0YXRlbWVudCBiaW5kIGJ1aWx0aW4gZGlycyBkaXNvd24gZW5hYmxlIGhlbHAgbG9jYWwgbG9nb3V0IHBvcGQgcHVzaGQgc2hvcHQgc291cmNlCiAgZWxzZQpAQCAtNDExLDggKzQyNCw4IEBACiAgZW5kaWYKIGVuZGlmCiAKLSIgU3luY3MKLSIgPT09PT0KKyIgU3luY2hyb25pemF0aW9uOiB7e3sxCisiID09PT09PT09PT09PT09PT0KIGlmICFleGlzdHMoInNoX21pbmxpbmVzIikKICAgbGV0IHNoX21pbmxpbmVzID0gMjAwCiBlbmRpZgpAQCAtNDMxLDcgKzQ0NCw4IEBACiBzeW4gc3luYyBtYXRjaCBzaFVudGlsU3luYwlncm91cGhlcmUJc2hSZXBlYXQJIlw8dW50aWxcPiIKIHN5biBzeW5jIG1hdGNoIHNoV2hpbGVTeW5jCWdyb3VwaGVyZQlzaFJlcGVhdAkiXDx3aGlsZVw+IgogCi0iIFRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KKyIgRGVmYXVsdCBIaWdobGlnaHRpbmc6IHt7ezEKKyIgPT09PT09PT09PT09PT09PT09PT09CiBoaSBkZWYgbGluayBzaEFyaXRoUmVnaW9uCXNoU2hlbGxWYXJpYWJsZXMKIGhpIGRlZiBsaW5rIHNoQ2FzZUJhcglzaENvbmRpdGlvbmFsCiBoaSBkZWYgbGluayBzaENhc2VJbglzaENvbmRpdGlvbmFsCkBAIC01MjUsOCArNTM5LDggQEAKIGhpIGRlZiBsaW5rIHNoVG9kbwkJVG9kbwogaGkgZGVmIGxpbmsgc2hBbGlhcwkJSWRlbnRpZmllcgogCi0iIEN1cnJlbnQgU3ludGF4Ci0iID09PT09PT09PT09PT09CisiIFNldCBDdXJyZW50IFN5bnRheDoge3t7MQorIiA9PT09PT09PT09PT09PT09PT09CiBpZiBleGlzdHMoImI6aXNfYmFzaCIpCiAgbGV0IGI6Y3VycmVudF9zeW50YXggPSAiYmFzaCIKIGVsc2VpZiBleGlzdHMoImI6aXNfa29ybnNoZWxsIikKQEAgLTUzNSw0ICs1NDksNCBAQAogIGxldCBiOmN1cnJlbnRfc3ludGF4ID0gInNoIgogZW5kaWYKIAotIiB2aW06IHRzPTE2CisiIHZpbTogdHM9MTYgZmRtPW1hcmtlcgo=