ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvYWRhLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvYWRhLnZpbQppbmRleCA0NjI1NzAxLi5mZmQwZmY4IDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL2FkYS52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9hZGEudmltCkBAIC0yLDEzICsyLDE1IEBACiAiICBEZXNjcmlwdGlvbjogUGVyZm9ybSBBZGEgc3BlY2lmaWMgY29tcGxldGlvbiAmIHRhZ2dpbmcuCiAiICAgICBMYW5ndWFnZTogQWRhICgyMDA1KQogIgkgICAkSWQkCi0iICAgTWFpbnRhaW5lcjogTWFydGluIEtyaXNjaGlrCisiICAgTWFpbnRhaW5lcjogTWFydGluIEtyaXNjaGlrIDxrcmlzY2hpa0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisiCQlUYXlsb3IgVmVuYWJsZSA8dGF5bG9yQG1ldGFzeW50YXgubmV0PgogIgkJTmVpbCBCaXJkIDxuZWlsQGZueHdlYi5jb20+CisiCQlOZWQgT2tpZSA8bm9raWVAcmFkZm9yZC5lZHU+CiAiICAgICAgJEF1dGhvciQKICIJICREYXRlJAotIiAgICAgIFZlcnNpb246IDQuMgorIiAgICAgIFZlcnNpb246IDQuNgogIiAgICAkUmV2aXNpb24kCi0iICAgICAkSGVhZFVSTDogaHR0cHM6Ly9zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvZ251YWRhL3RydW5rL3Rvb2xzL3ZpbS9hdXRvbG9hZC9hZGEudmltICQKKyIgICAgICRIZWFkVVJMOiBodHRwczovL2dudWFkYS5zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvZ251YWRhL3RydW5rL3Rvb2xzL3ZpbS9hdXRvbG9hZC9hZGEudmltICQKICIgICAgICBIaXN0b3J5OiAyNC4wNS4yMDA2IE1LIFVuaWZpZWQgSGVhZGVycwogIgkJMjYuMDUuMjAwNiBNSyAnIHNob3VsZCBub3QgYmUgaW4gaXNrZXl3b3JkLgogIgkJMTYuMDcuMjAwNiBNSyBBZGEtTW9kZSBhcyB2aW0tYmFsbApAQCAtMTcsNiArMTksMTAgQEAKICIJCTA1LjExLjIwMDYgTUsgQnJhbSBzdWdnZXN0ZWQgbm90IHRvIHVzZSBpbmNsdWRlIHByb3RlY3Rpb24gZm9yCiAiCQkJICAgICAgYXV0b2xvYWQKICIJCTA1LjExLjIwMDYgTUsgQnJhbSBzdWdnZXN0ZWQgdG8gc2F2ZSBvbiBzcGFjZXMKKyIJCTA4LjA3LjIwMDcgVFYgZml4IG1hcGxlYWRlciBwcm9ibGVtcy4KKyIJICAgICAgICAwOS4wNS4yMDA3IE1LIFNlc3Npb24ganVzdCB3b24ndCB3b3JrIG5vIG1hdHRlciBob3cgbXVjaAorIgkJCSAgICAgIHR3ZWFraW5nIGlzIGRvbmUKKyIJCTE5LjA5LjIwMDcgTk8gc3RpbGwgc29tZSBtYXBsZWFkZXIgcHJvYmxlbXMKICIgICAgSGVscCBQYWdlOiBmdC1hZGEtZnVuY3Rpb25zCiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTQyNSwzMCArNDMxLDQ5IEBACiAgICBleGVjdXRlICchY3RhZ3MgLS1leGNtZD1udW1iZXIgJyAuIGw6RmlsZW5hbWUKIGVuZGZ1bmN0aW9uIGFkYSNDcmVhdGVfVGFncwogCi1mdW5jdGlvbiBhZGEjU3dpdGNoX1Nlc3Npb24gKE5ld19TZXNzaW9uKSAgICJ7e3sxCi0gICBpZiBhOk5ld19TZXNzaW9uICE9IHY6dGhpc19zZXNzaW9uCi0gICAgICAiCi0gICAgICAiICBXZSBhY3R1YWx5IGdvdCBhIG5ldyBzZXNzaW9uIC0gb3RoZXJ3aXNlIHRoZXJlCi0gICAgICAiICBpcyBub3RoaW5nIHRvIGRvLgotICAgICAgIgotICAgICAgaWYgc3RybGVuICh2OnRoaXNfc2Vzc2lvbikgPiAwCi0JIGV4ZWN1dGUgJ21rc2Vzc2lvbiEgJyAuIHY6dGhpc19zZXNzaW9uCisiIFNlY3Rpb246IGFkYSNTd2l0Y2hfU2Vzc2lvbiB7e3sxCisiCitmdW5jdGlvbiBhZGEjU3dpdGNoX1Nlc3Npb24gKE5ld19TZXNzaW9uKQorICAgIiAKKyAgICIgeW91IHNob3VsZCBub3Qgc2F2ZSB0byBtdWNoIGRhdGUgaW50byB0aGUgc2Vlc3Npb24gc2luY2UgdGhleSB3aWxsCisgICAiIGJlIHNvdXJjZWQKKyAgICIKKyAgIGxldCBsOnNlc3Npb25vcHRpb25zPSZzZXNzaW9ub3B0aW9ucworCisgICB0cnkKKyAgICAgIHNldCBzZXNzaW9ub3B0aW9ucz1idWZmZXJzLGN1cmRpcixmb2xkcyxnbG9iYWxzLHJlc2l6ZSxzbGFzaCx0YWJwYWdlcyx0YWJwYWdlcyx1bml4LHdpbnBvcyx3aW5zaXplCisKKyAgICAgIGlmIGE6TmV3X1Nlc3Npb24gIT0gdjp0aGlzX3Nlc3Npb24KKwkgIgorCSAiICBXZSBhY3R1YWx5IGdvdCBhIG5ldyBzZXNzaW9uIC0gb3RoZXJ3aXNlIHRoZXJlCisJICIgIGlzIG5vdGhpbmcgdG8gZG8uCisJICIKKwkgaWYgc3RybGVuICh2OnRoaXNfc2Vzc2lvbikgPiAwCisJICAgIGV4ZWN1dGUgJ21rc2Vzc2lvbiEgJyAuIHY6dGhpc19zZXNzaW9uCisJIGVuZGlmCisKKwkgbGV0IHY6dGhpc19zZXNzaW9uID0gYTpOZXdfU2Vzc2lvbgorCisJICJpZiBmaWxlcmVhZGFibGUgKHY6dGhpc19zZXNzaW9uKQorCSAgICAiZXhlY3V0ZSAnc291cmNlICcgLiB2OnRoaXNfc2Vzc2lvbgorCSAiZW5kaWYKKworCSBhdWdyb3VwIGFkYV9zZXNzaW9uCisJICAgIGF1dG9jbWQhCisJICAgIGF1dG9jbWQgVmltTGVhdmVQcmUgKiBleGVjdXRlICdta3Nlc3Npb24hICcgLiB2OnRoaXNfc2Vzc2lvbgorCSBhdWdyb3VwIEVORAorCSAKKwkgImlmIGV4aXN0cyAoImc6VGxpc3RfQXV0b19PcGVuIikgJiYgZzpUbGlzdF9BdXRvX09wZW4KKwkgICAgIlRsaXN0T3BlbgorCSAiZW5kaWYKKwogICAgICAgZW5kaWYKLQotICAgICAgbGV0IHY6dGhpc19zZXNzaW9uID0gYTpOZXdfU2Vzc2lvbgotCi0gICAgICBpZiBmaWxlcmVhZGFibGUgKHY6dGhpc19zZXNzaW9uKQotCSBleGVjdXRlICdzb3VyY2UgJyAuIHY6dGhpc19zZXNzaW9uCi0gICAgICBlbmRpZgotCi0gICAgICBhdWdyb3VwIGFkYV9zZXNzaW9uCi0JIGF1dG9jbWQhCi0JIGF1dG9jbWQgVmltTGVhdmVQcmUgKiBleGVjdXRlICdta3Nlc3Npb24hICcgLiB2OnRoaXNfc2Vzc2lvbgotICAgICAgYXVncm91cCBFTkQKLSAgIGVuZGlmCisgICBmaW5hbGx5CisgICAgICBsZXQgJnNlc3Npb25vcHRpb25zPWw6c2Vzc2lvbm9wdGlvbnMKKyAgIGVuZHRyeQogCiAgICByZXR1cm4KLWVuZGZ1bmN0aW9uIGFkYSNTd2l0Y2hfU2Vzc2lvbgkgIn19fTEKK2VuZGZ1bmN0aW9uIGFkYSNTd2l0Y2hfU2Vzc2lvbgkKIAogIiBTZWN0aW9uOiBHTkFUIFByZXR0eSBQcmludGVyIGZvbGRpbmcge3t7MQogIgpAQCAtNTQ2LDE4ICs1NzEsMjMgQEAKIAlcIGE6S2V5cwkJIC4KIAlcIiA8Qy1PPjoiIC4gYTpDb21tYW5kIC4gIjxDUj4iCiAgICBlbHNlCisgICAgICBpZiBleGlzdHMoImc6bWFwbGVhZGVyIikKKyAgICAgICAgIGxldCBsOmxlYWRlciA9IGc6bWFwbGVhZGVyCisgICAgICBlbHNlCisgICAgICAgICBsZXQgbDpsZWFkZXIgPSAnXCcKKyAgICAgIGVuZGlmCiAgICAgICBleGVjdXRlCiAJXCAiNTBhbWVudSAiIC4KIAlcICJBZGEuIiAgLiBlc2NhcGUoYTpUZXh0LCAnICcpIC4KLQlcICI8VGFiPiIgLiBlc2NhcGUoZzptYXBsZWFkZXIgLiAiYSIgLiBhOktleXMgLCAnXCcpIC4KKwlcICI8VGFiPiIgLiBlc2NhcGUobDpsZWFkZXIgLiAiYSIgLiBhOktleXMgLCAnXCcpIC4KIAlcICIgOiIJICAuIGE6Q29tbWFuZCAuICI8Q1I+IgogICAgICAgZXhlY3V0ZQogCVwgIm5ub3JlbWFwIDxidWZmZXI+IiAuCi0JXCBlc2NhcGUoZzptYXBsZWFkZXIgLiAiYSIgLiBhOktleXMgLCAnXCcpIC4KKwlcIGVzY2FwZShsOmxlYWRlciAuICJhIiAuIGE6S2V5cyAsICdcJykgLgogCVwiIDoiIC4gYTpDb21tYW5kCiAgICAgICBleGVjdXRlCiAJXCAiaW5vcmVtYXAgPGJ1ZmZlcj4iIC4KLQlcIGVzY2FwZShnOm1hcGxlYWRlciAuICJhIiAuIGE6S2V5cyAsICdcJykgLgorCVwgZXNjYXBlKGw6bGVhZGVyIC4gImEiIC4gYTpLZXlzICwgJ1wnKSAuCiAJXCIgPEMtTz46IiAuIGE6Q29tbWFuZAogICAgZW5kaWYKICAgIHJldHVybgpAQCAtNTY2LDEwICs1OTYsMTUgQEAKICIgU2VjdGlvbjogYWRhI01hcF9Qb3B1cCB7e3syCiAiCiBmdW5jdGlvbiBhZGEjTWFwX1BvcHVwIChUZXh0LCBLZXlzLCBDb21tYW5kKQorICAgaWYgZXhpc3RzKCJnOm1hcGxlYWRlciIpCisgICAgICBsZXQgbDpsZWFkZXIgPSBnOm1hcGxlYWRlcgorICAgZWxzZQorICAgICAgbGV0IGw6bGVhZGVyID0gJ1wnCisgICBlbmRpZgogICAgZXhlY3V0ZQogICAgICBcICI1MGFtZW51ICIgLgogICAgICBcICJQb3BVcC4iICAgLiBlc2NhcGUoYTpUZXh0LCAnICcpIC4KLSAgICAgXCAiPFRhYj4iCSAgLiBlc2NhcGUoZzptYXBsZWFkZXIgLiAiYSIgLiBhOktleXMgLCAnXCcpIC4KKyAgICAgXCAiPFRhYj4iCSAgLiBlc2NhcGUobDpsZWFkZXIgLiAiYSIgLiBhOktleXMgLCAnXCcpIC4KICAgICAgXCAiIDoiCSAgLiBhOkNvbW1hbmQgLiAiPENSPiIKIAogICAgY2FsbCBhZGEjTWFwX01lbnUgKGE6VGV4dCwgYTpLZXlzLCBhOkNvbW1hbmQpCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL2FkYWNvbXBsZXRlLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvYWRhY29tcGxldGUudmltCmluZGV4IDI4ZDY4ZjYuLjhkYjQzNTEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvYWRhY29tcGxldGUudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvYWRhY29tcGxldGUudmltCkBAIC01LDkgKzUsOSBAQAogIiAgIE1haW50YWluZXI6CU1hcnRpbiBLcmlzY2hpawogIiAgICAgICRBdXRob3IkCiAiCSAkRGF0ZSQKLSIgICAgICBWZXJzaW9uOiA0LjIKKyIgICAgICBWZXJzaW9uOiA0LjYKICIgICAgJFJldmlzaW9uJAotIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vYXV0b2xvYWQvYWRhY29tcGxldGUudmltICQKKyIgICAgICRIZWFkVVJMOiBodHRwczovL2dudWFkYS5zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvZ251YWRhL3RydW5rL3Rvb2xzL3ZpbS9hdXRvbG9hZC9hZGFjb21wbGV0ZS52aW0gJAogIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCiAiCQkyNi4wNS4yMDA2IE1LIGltcHJvdmVkIHNlYXJjaCBmb3IgYmVnaW4gb2Ygd29yZC4KICIJCTE2LjA3LjIwMDYgTUsgQWRhLU1vZGUgYXMgdmltLWJhbGwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvZGVjYWRhLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvZGVjYWRhLnZpbQppbmRleCA5ZjhhYWYyLi5mYjU0MDBlIDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL2RlY2FkYS52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9kZWNhZGEudmltCkBAIC0zLDEyICszLDEyIEBACiAiICAgICBMYW5ndWFnZTogQWRhIChEZWMgQWRhKQogIiAgICAgICAgICAkSWQkCiAiICAgIENvcHlyaWdodDogQ29weXJpZ2h0IChDKSAyMDA2IE1hcnRpbiBLcmlzY2hpawotIiAgIE1haW50YWluZXI6CU1hcnRpbiBLcmlzY2hpaworIiAgIE1haW50YWluZXI6CU1hcnRpbiBLcmlzY2hpayA8a3Jpc2NoaWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogIiAgICAgICRBdXRob3IkCiAiICAgICAgICAkRGF0ZSQKLSIgICAgICBWZXJzaW9uOiA0LjIKKyIgICAgICBWZXJzaW9uOiA0LjYgICAgICAKICIgICAgJFJldmlzaW9uJAotIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vYXV0b2xvYWQvZGVjYWRhLnZpbSAkCisiICAgICAkSGVhZFVSTDogaHR0cHM6Ly9nbnVhZGEuc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vYXV0b2xvYWQvZGVjYWRhLnZpbSAkCiAiICAgICAgSGlzdG9yeTogMjEuMDcuMjAwNiBNSyBOZXcgRGVjIEFkYQogIiAgICAgICAgICAgICAgIDE1LjEwLjIwMDYgTUsgQnJhbSdzIHN1Z2dlc3Rpb24gZm9yIHJ1bnRpbWUgaW50ZWdyYXRpb24KICIgICAgICAgICAgICAgICAwNS4xMS4yMDA2IE1LIEJyYW0gc3VnZ2VzdGVkIG5vdCB0byB1c2UgaW5jbHVkZSBwcm90ZWN0aW9uIGZvcgpAQCAtNDUsNyArNDUsNyBAQAogICAgICAgY2FsbCBhZGEjU3dpdGNoX1Nlc3Npb24gKGE6MSkKICAgIGVsc2VpZiBhcmdjKCkgPT0gMCAmJiBzdHJsZW4gKHY6c2VydmVybmFtZSkgPiAwCiAgICAgICBjYWxsIGFkYSNTd2l0Y2hfU2Vzc2lvbiAoCi0JIFwgZXhwYW5kKCd+JylbMDotMl0gLiAiLnZpbWZpbGVzLnNlc3Npb25dIiAuCisJIFwgZXhwYW5kKCd+JylbMDotMl0gLiAiLnZpbWZpbGVzLnNlc3Npb25dZGVjYWRhXyIgLgogCSBcIHY6c2VydmVybmFtZSAuICIudmltIikKICAgIGVuZGlmCiAgICByZXR1cm4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvZ2V0c2NyaXB0LnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvZ2V0c2NyaXB0LnZpbQppbmRleCBjMWUxYWEzLi41YTQ2NmNiIDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL2dldHNjcmlwdC52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9nZXRzY3JpcHQudmltCkBAIC0xLDggKzEsOCBAQAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgZ2V0c2NyaXB0LnZpbQogIiAgQXV0aG9yOglDaGFybGVzIEUuIENhbXBiZWxsLCBKci4KLSIgIERhdGU6CU1heSAzMCwgMjAwOAotIiAgVmVyc2lvbjoJMzAKKyIgIERhdGU6CUp1bCAxMCwgMjAwOAorIiAgVmVyc2lvbjoJMzEKICIgIEluc3RhbGxpbmc6CTpoZWxwIGdsdnMtaW5zdGFsbAogIiAgVXNhZ2U6CTpoZWxwIGdsdnMKICIKQEAgLTIzLDcgKzIzLDcgQEAKIGlmIGV4aXN0cygiZzpsb2FkZWRfZ2V0c2NyaXB0IikKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfZ2V0c2NyaXB0PSAidjMwIgorbGV0IGc6bG9hZGVkX2dldHNjcmlwdD0gInYzMSIKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgR2xvYmFsIFZhcmlhYmxlczoge3t7MQpAQCAtMTQwLDYgKzE0MCwxMiBAQAogICAgcmV0dXJuCiAgIGVuZGlmCiAKKyAgIiBpbnN1cmUgdGhhdCBmbmFtZWVzY2FwZSgpIGlzIGF2YWlsYWJsZQorICBpZiAhZXhpc3RzKCIqZm5hbWVlc2NhcGUiKQorICAgZWNob2VyciAiR2V0TGF0ZXN0VmltU2NyaXB0cyBuZWVkcyBmbmFtZWVzY2FwZSgpIChwcm92aWRlZCBieSA3LjEuMjk5IG9yIGxhdGVyKSIKKyAgIHJldHVybgorICBlbmRpZgorCiAgICIgRmluZCB0aGUgLi4uL0dldExhdGVzdCBzdWJkaXJlY3RvcnkgdW5kZXIgdGhlIHJ1bnRpbWVwYXRoCiAgIGZvciBkYXRhZGlyIGluIHNwbGl0KCZydHAsJywnKSArIFsnJ10KICAgIGlmIGlzZGlyZWN0b3J5KGRhdGFkaXIuIi9HZXRMYXRlc3QiKQpAQCAtMTgxLDcgKzE4Nyw4IEBACiAKICAgIiBkb24ndCBsZXQgYW55IGV2ZW50cyBpbnRlcmZlcmUgKGxpa2Ugd2lubWFuYWdlcidzLCB0YWdsaXN0J3MsIGV0YykKICAgbGV0IGVpa2VlcD0gJmVpCi0gIHNldCBlaT1hbGwKKyAgbGV0IGhsc2tlZXA9ICZobHMKKyAgc2V0IGVpPWFsbCBobHMmdmltCiAKICAgIiByZWNvcmQgY3VycmVudCBkaXJlY3RvcnksIGNoYW5nZSB0byBkYXRhZGlyLCBvcGVuIHNwbGl0IHdpbmRvdyB3aXRoCiAgICIgZGF0YWZpbGUKQEAgLTMxNiw2ICszMjMsNyBAQAogICAiIHJlc3RvcmUgZXZlbnRzIGFuZCBjdXJyZW50IGRpcmVjdG9yeQogICBleGUgImNkICIuZm5hbWVlc2NhcGUoc3Vic3RpdHV0ZShvcmlnZGlyLCdcJywnLycsJ2dlJykpCiAgIGxldCAmZWk9IGVpa2VlcAorICBsZXQgJmhscz0gaGxza2VlcAogICBzZXRsb2NhbCBub2x6CiAiICBjYWxsIERyZWRpcigiQlVGRkVSIFRFU1QgKEdldExhdGVzdFZpbVNjcmlwdHMgMikiLCJscyEiKQogIiAgY2FsbCBEcmV0KCJHZXRMYXRlc3RWaW1TY3JpcHRzIDogZGlkICIuczpkb3dubG9hZHMuIiBkb3dubG9hZHMiKQpAQCAtNTA2LDE0ICs1MTQsMTQgQEAKICAgICBuZXd8ZXhlICJzaWxlbnQgciEiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c193Z2V0LiIgIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfb3B0aW9ucy4iICIuczpFc2NhcGUoc25hbWUpLiIgIi5zOkVzY2FwZSgnaHR0cDovL3ZpbS5zZi5uZXQvc2NyaXB0cy9kb3dubG9hZF9zY3JpcHQucGhwP3NyY19pZD0nLmxhdGVzdHNyY2lkKXxxCiAgICBlbHNlCiAiICAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX3dnZXQuIiAiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19vcHRpb25zLiIgIi5zOkVzY2FwZShzbmFtZSkuIiAiLnM6RXNjYXBlKCdodHRwOi8vdmltLnNmLm5ldC9zY3JpcHRzL2Rvd25sb2FkX3NjcmlwdC5waHA/c3JjX2lkPScpKQotICAgIGV4ZSAic2lsZW50ICEiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c193Z2V0LiIgIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfb3B0aW9ucy4iICIuczpFc2NhcGUoc25hbWUpLiIgIi5zOkVzY2FwZSgnaHR0cDovL3ZpbS5zZi5uZXQvc2NyaXB0cy9kb3dubG9hZF9zY3JpcHQucGhwP3NyY19pZD0nKQorICAgIGV4ZSAic2lsZW50ICEiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c193Z2V0LiIgIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfb3B0aW9ucy4iICIuczpFc2NhcGUoc25hbWUpLiIgIi5zOkVzY2FwZSgnaHR0cDovL3ZpbS5zZi5uZXQvc2NyaXB0cy9kb3dubG9hZF9zY3JpcHQucGhwP3NyY19pZD0nKS5sYXRlc3RzcmNpZAogICAgZW5kaWYKIAogICAgIiBBdXRvSW5zdGFsbDogb25seSBpZiBkb2F1dG9pbnN0YWxsIGhhcyBiZWVuIHJlcXVlc3RlZCBieSB0aGUgcGx1Z2luIGl0c2VsZgogICAgaWYgZG9hdXRvaW5zdGFsbAogIiAgICBjYWxsIERlY2hvKCJhdHRlbXB0aW5nIHRvIGRvIGF1dG9pbnN0YWxsOiBnZXRjd2Q8Ii5nZXRjd2QoKS4iPiBmaWxlcmVhZGFibGUoIi5zbmFtZS4iKT0iLmZpbGVyZWFkYWJsZShzbmFtZSkpCiAgICAgaWYgZmlsZXJlYWRhYmxlKHNuYW1lKQotICAgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ICEiLmc6R2V0TGF0ZXN0VmltU2NyaXB0c19tdi4iICIuczpFc2NhcGUoc25hbWUpLiIgIi5zOkVzY2FwZShzOmF1dG9pbnN0YWxsKSkKKyIgICAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgISIuZzpHZXRMYXRlc3RWaW1TY3JpcHRzX212LiIgIi5zOkVzY2FwZShzbmFtZSkuIiAiLnM6RXNjYXBlKHM6YXV0b2luc3RhbGwpKQogICAgICBleGUgInNpbGVudCAhIi5nOkdldExhdGVzdFZpbVNjcmlwdHNfbXYuIiAiLnM6RXNjYXBlKHNuYW1lKS4iICIuczpFc2NhcGUoczphdXRvaW5zdGFsbCkKICAgICAgbGV0IGN1cmRpciAgICA9IGVzY2FwZShzdWJzdGl0dXRlKGdldGN3ZCgpLCdcJywnLycsJ2dlJyksInxbXSonXCIgIyIpCiAgICAgIGxldCBpbnN0YWxsZGlyPSBjdXJkaXIuIi9JbnN0YWxsZWQiCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL2duYXQudmltIGIvcnVudGltZS9hdXRvbG9hZC9nbmF0LnZpbQppbmRleCA1Zjk5NDUwLi5jZWJkZThlIDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL2duYXQudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvZ25hdC52aW0KQEAgLTMsMTIgKzMsMTMgQEAKICIgICAgIExhbmd1YWdlOiBBZGEgKEdOQVQpCiAiICAgICAgICAgICRJZCQKICIgICAgQ29weXJpZ2h0OiBDb3B5cmlnaHQgKEMpIDIwMDYgTWFydGluIEtyaXNjaGlrCi0iICAgTWFpbnRhaW5lcjoJTWFydGluIEtyaXNjaGlrCisiICAgTWFpbnRhaW5lcjoJTWFydGluIEtyaXNjaGkgPGtyaXNjaGlrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD5rCisiCQlOZWQgT2tpZSA8bm9raWVAcmFkZm9yZC5lZHU+CiAiICAgICAgJEF1dGhvciQKICIgICAgICAgICREYXRlJAotIiAgICAgIFZlcnNpb246IDQuMgorIiAgICAgIFZlcnNpb246IDQuNgogIiAgICAkUmV2aXNpb24kCi0iICAgICAkSGVhZFVSTDogaHR0cHM6Ly9zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvZ251YWRhL3RydW5rL3Rvb2xzL3ZpbS9hdXRvbG9hZC9nbmF0LnZpbSAkCisiICAgICAkSGVhZFVSTDogaHR0cHM6Ly9nbnVhZGEuc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vYXV0b2xvYWQvZ25hdC52aW0gJAogIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCiAiCQkxNi4wNy4yMDA2IE1LIEFkYS1Nb2RlIGFzIHZpbS1iYWxsCiAiCQkwNS4wOC4yMDA2IE1LIEFkZCBzZXNzaW9uIHN1cHBvcnQKQEAgLTE2LDYgKzE3LDcgQEAKICIgICAgICAgICAgICAgICAwNS4xMS4yMDA2IE1LIEJyYW0gc3VnZ2VzdGVkIG5vdCB0byB1c2UgaW5jbHVkZSBwcm90ZWN0aW9uIGZvcgogIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2xvYWQKICIJCTA1LjExLjIwMDYgTUsgQnJhbSBzdWdnZXN0ZWQgdG8gc2F2ZSBvbiBzcGFjZXMKKyIJCTE5LjA5LjIwMDcgTk8gdXNlIHByb2plY3QgZmlsZSBvbmx5IHdoZW4gdGhlcmUgaXMgYSBwcm9qZWN0CiAiICAgIEhlbHAgUGFnZTogY29tcGlsZXItZ25hdAogIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC03MSwxMyArNzMsMTkgQEAKICAgICAgIGV4ZWN1dGUgJ21rc2Vzc2lvbiEgJyAuIHY6dGhpc19zZXNzaW9uCiAgICBlbmRpZgogCi0gICBpZiBzdHJsZW4gKHNlbGYuUHJvamVjdF9GaWxlKSA+IDAKLSAgICAgIGNhbGwgYWRhI1N3aXRjaF9TZXNzaW9uICgKLQkgXCBleHBhbmQoJ34nKSAuICIvdmltZmlsZXMvc2Vzc2lvbi8iIC4KLQkgXCBmbmFtZW1vZGlmeSAoc2VsZi5Qcm9qZWN0X0ZpbGUsICI6dDpyIikgLiAiLnZpbSIpCi0gICBlbHNlCi0gICAgICBjYWxsIGFkYSNTd2l0Y2hfU2Vzc2lvbiAoJycpCi0gICBlbmRpZgorICAgImlmIHN0cmxlbiAoc2VsZi5Qcm9qZWN0X0ZpbGUpID4gMAorICAgICAgImlmIGhhcygidm1zIikKKwkgImNhbGwgYWRhI1N3aXRjaF9TZXNzaW9uICgKKwkgICAgIlwgZXhwYW5kKCd+JylbMDotMl0gLiAiLnZpbWZpbGVzLnNlc3Npb25dZ25hdF8iIC4KKwkgICAgIlwgZm5hbWVtb2RpZnkgKHNlbGYuUHJvamVjdF9GaWxlLCAiOnQ6ciIpIC4gIi52aW0iKQorICAgICAgImVsc2UKKwkgImNhbGwgYWRhI1N3aXRjaF9TZXNzaW9uICgKKwkgICAgIlwgZXhwYW5kKCd+JykgLiAiL3ZpbWZpbGVzL3Nlc3Npb24vZ25hdF8iIC4KKwkgICAgIlwgZm5hbWVtb2RpZnkgKHNlbGYuUHJvamVjdF9GaWxlLCAiOnQ6ciIpIC4gIi52aW0iKQorICAgICAgImVuZGlmCisgICAiZWxzZQorICAgICAgImNhbGwgYWRhI1N3aXRjaF9TZXNzaW9uICgnJykKKyAgICJlbmRpZgogCiAgICByZXR1cm4KIGVuZGZ1bmN0aW9uIGduYXQjU2V0X1Byb2plY3RfRmlsZQkJCQkgICAgICIgfX19MQpkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC9nemlwLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvZ3ppcC52aW0KaW5kZXggMWFkMjllYS4uMTI0NWZkZCAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC9nemlwLnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL2d6aXAudmltCkBAIC0xLDYgKzEsNiBAQAogIiBWaW0gYXV0b2xvYWQgZmlsZSBmb3IgZWRpdGluZyBjb21wcmVzc2VkIGZpbGVzLgogIiBNYWludGFpbmVyOiBCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZTogMjAwOCBNYXkgMjkKKyIgTGFzdCBDaGFuZ2U6IDIwMDggSnVsIDA0CiAKICIgVGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIGJ5IHRoZSBnemlwIHBsdWdpbi4KIApAQCAtMTUzLDkgKzE1Myw5IEBACiAgICAgbGV0IG5tdCA9IHM6dGVtcG5hbWUobm0pCiAgICAgaWYgcmVuYW1lKG5tLCBubXQpID09IDAKICAgICAgIGlmIGV4aXN0cygiYjpnemlwX2NvbXBfYXJnIikKLQljYWxsIHN5c3RlbShhOmNtZCAuICIgIiAuIGI6Z3ppcF9jb21wX2FyZyAuICIgIiAuIHM6ZXNjYXBlKG5tdCkpCisJY2FsbCBzeXN0ZW0oYTpjbWQgLiAiICIgLiBiOmd6aXBfY29tcF9hcmcgLiAiIC0tICIgLiBzOmVzY2FwZShubXQpKQogICAgICAgZWxzZQotCWNhbGwgc3lzdGVtKGE6Y21kIC4gIiAiIC4gczplc2NhcGUobm10KSkKKwljYWxsIHN5c3RlbShhOmNtZCAuICIgLS0gIiAuIHM6ZXNjYXBlKG5tdCkpCiAgICAgICBlbmRpZgogICAgICAgY2FsbCByZW5hbWUobm10IC4gIi4iIC4gZXhwYW5kKCI8YWZpbGU+OmUiKSwgbm0pCiAgICAgZW5kaWYKQEAgLTE4MCwxMCArMTgwLDEwIEBACiAgICAgaWYgcmVuYW1lKG5tLCBubXRlKSA9PSAwCiAgICAgICBpZiAmcGF0Y2htb2RlICE9ICIiICYmIGdldGZzaXplKG5tIC4gJnBhdGNobW9kZSkgPT0gLTEKIAkiIENyZWF0ZSBwYXRjaG1vZGUgZmlsZSBieSBjcmVhdGluZyB0aGUgZGVjb21wcmVzc2VkIGZpbGUgbmV3Ci0JY2FsbCBzeXN0ZW0oYTpjbWQgLiAiIC1jICIgLiBzOmVzY2FwZShubXRlKSAuICIgPiAiIC4gczplc2NhcGUobm10KSkKKwljYWxsIHN5c3RlbShhOmNtZCAuICIgLWMgLS0gIiAuIHM6ZXNjYXBlKG5tdGUpIC4gIiA+ICIgLiBzOmVzY2FwZShubXQpKQogCWNhbGwgcmVuYW1lKG5tdGUsIG5tIC4gJnBhdGNobW9kZSkKICAgICAgIGVsc2UKLQljYWxsIHN5c3RlbShhOmNtZCAuICIgIiAuIHM6ZXNjYXBlKG5tdGUpKQorCWNhbGwgc3lzdGVtKGE6Y21kIC4gIiAtLSAiIC4gczplc2NhcGUobm10ZSkpCiAgICAgICBlbmRpZgogICAgICAgY2FsbCByZW5hbWUobm10LCBubSkKICAgICBlbmRpZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC9uZXRydy52aW0gYi9ydW50aW1lL2F1dG9sb2FkL25ldHJ3LnZpbQppbmRleCA2MDY0YTY1Li42MjIxMjk0IDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL25ldHJ3LnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL25ldHJ3LnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgbmV0cncudmltOiBIYW5kbGVzIGZpbGUgdHJhbnNmZXIgYW5kIHJlbW90ZSBkaXJlY3RvcnkgbGlzdGluZyBhY3Jvc3MKICIgICAgICAgICAgICBBVVRPTE9BRCBTRUNUSU9OCi0iIERhdGU6CQlKdW4gMTIsIDIwMDgKLSIgVmVyc2lvbjoJMTI1CisiIERhdGU6CQlKdWwgMTIsIDIwMDgKKyIgVmVyc2lvbjoJMTI3CiAiIE1haW50YWluZXI6CUNoYXJsZXMgRSBDYW1wYmVsbCwgSnIgPE5kck9jaGlwQFNjYW1wYmVsbFBmYW1pbHkuQWJpek0tTk9TUEFNPgogIiBHZXRMYXRlc3RWaW1TY3JpcHRzOiAxMDc1IDEgOkF1dG9JbnN0YWxsOiBuZXRydy52aW0KICIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwOCBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQpAQCAtMjcsMTkgKzI3LDEzIEBACiAgbGV0IHM6V0FSTklORyA9IDEKICBsZXQgczpFUlJPUiAgID0gMgogZW5kaWYKLWxldCBnOmxvYWRlZF9uZXRydyA9ICJ2MTI1IgorbGV0IGc6bG9hZGVkX25ldHJ3ID0gInYxMjciCiAKICIgc2FuaXR5IGNoZWNrcwogaWYgdjp2ZXJzaW9uIDwgNzAwCiAgY2FsbCBuZXRydyNFcnJvck1zZyhzOldBUk5JTkcsInlvdSBuZWVkIHZpbSB2ZXJzaW9uIDcuMCBvciBsYXRlciBmb3IgdmVyc2lvbiAiLmc6bG9hZGVkX25ldHJ3LiIgb2YgbmV0cnciLDEpCiAgZmluaXNoCiBlbmRpZgotaWYgIWV4aXN0cygiKnNoZWxsZXNjYXBlIikKLSBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6RVJST1IsInlvdSBuZWVkIHRvIHVwZ2FkZSB5b3VyIHZpbSBzbyB0aGF0IGl0IGhhcyBzaGVsbGVzY2FwZSgpIiw2NCkKLWVuZGlmCi1pZiAhZXhpc3RzKCIqZm5hbWVlc2NhcGUiKQotIGNhbGwgbmV0cncjRXJyb3JNc2coczpFUlJPUiwieW91IG5lZWQgdG8gdXBnYWRlIHlvdXIgdmltIHNvIHRoYXQgaXQgaGFzIGZuYW1lZXNjYXBlKCkiLDY1KQotZW5kaWYKIAogbGV0IHM6a2VlcGNwbz0gJmNwbwogc2V0bG9jYWwgY3BvJnZpbQpAQCAtMzEyLDYgKzMwNiw5IEBACiAgIiBhbHRlcm5hdGl2ZXM6IGRhdGUgc2l6ZQogIGxldCBnOm5ldHJ3X3NvcnRfYnk9ICJuYW1lIgogZW5kaWYKK2lmICFleGlzdHMoImc6bmV0cndfc29ydF9vcHRpb25zIikKKyBsZXQgZzpuZXRyd19zb3J0X29wdGlvbnM9ICIiCitlbmRpZgogaWYgIWV4aXN0cygiZzpuZXRyd19zb3J0X2RpcmVjdGlvbiIpCiAgIiBhbHRlcm5hdGl2ZTogcmV2ZXJzZSAgKHogeSB4IC4uLikKICBsZXQgZzpuZXRyd19zb3J0X2RpcmVjdGlvbj0gIm5vcm1hbCIKQEAgLTQxNSw3ICs0MTIsNyBAQAogICBsZXQge2E6dnR9bmV0cndfdHdrZWVwICAgID0gJmw6dHcgICAgICAgICAgICIgdGV4dHdpZHRoCiAgIGxldCB7YTp2dH1uZXRyd193aWdrZWVwICAgPSAmbDp3aWcgICAgICAgICAgIiB3aWxkaWdub3JlCiAgIGlmIGhhcygid2luMzIiKSAmJiAhaGFzKCJ3aW45NSIpCi0gICBsZXQge2E6dnR9bmV0cndfc3dma2VlcD0gJmw6c3dmICAgICAgICAgICAgIiBzd2FwZmlsZQorICAgbGV0IHthOnZ0fW5ldHJ3X3N3ZmtlZXAgID0gJmw6c3dmICAgICAgICAgICIgc3dhcGZpbGUKICAgZW5kaWYKICAgaWYgJmdvID1+ICdhJyB8IHNpbGVudCEgbGV0IHthOnZ0fW5ldHJ3X3JlZ3N0YXIgPSBAKiB8IGVuZGlmCiAgIHNpbGVudCEgbGV0IHthOnZ0fW5ldHJ3X3JlZ3NsYXNoPSBALwpAQCAtNDI4LDcgKzQyNSw3IEBACiBmdW4hIHM6TmV0cndPcHRpb25SZXN0b3JlKHZ0KQogIiAgY2FsbCBEZnVuYygiczpOZXRyd09wdGlvblJlc3RvcmUodnQ8Ii5hOnZ0LiI+KSB3aW4jIi53aW5ucigpLiIgYnVmIyIuYnVmbnIoIiUiKSkKICAgaWYgIWV4aXN0cygie2E6dnR9bmV0cndfb3B0aW9uc2F2ZSIpCi0iICAgY2FsbCBEZWNobygicm89Ii4mcm8uIiBtYT0iLiZtYS4iIG1vZD0iLiZtb2QuIiB3cmFwPSIuJndyYXApCisiICAgY2FsbCBEZWNobygicm89Ii4mbDpyby4iIG1hPSIuJmw6bWEuIiBtb2Q9Ii4mbDptb2QuIiB3cmFwPSIuJmw6d3JhcCkKICIgICBjYWxsIERyZXQoInM6TmV0cndPcHRpb25SZXN0b3JlIDogIi5hOnZ0LiJuZXRyd19vcHRpb25zYXZlIGRvZXNuJ3QgZXhpc3QiKQogICAgcmV0dXJuCiAgIGVuZGlmCkBAIC00OTIsNyArNDg5LDcgQEAKIAogIiAgY2FsbCBEZWNobygiZzpuZXRyd19rZWVwZGlyPSIuZzpuZXRyd19rZWVwZGlyLiI6IGdldGN3ZDwiLmdldGN3ZCgpLiI+IGFjZD0iLiZhY2QpCiAiICBjYWxsIERlY2hvKCJmbz0iLiZmby4oZXhpc3RzKCImYWNkIik/ICIgYWNkPSIuJmFjZCA6ICIgYWNkIGRvZXNuJ3QgZXhpc3QiKSkKLSIgIGNhbGwgRGVjaG8oInJvPSIuJnJvLiIgbWE9Ii4mbWEuIiBtb2Q9Ii4mbW9kLiIgd3JhcD0iLiZ3cmFwKQorIiAgY2FsbCBEZWNobygicm89Ii4mbDpyby4iIG1hPSIuJmw6bWEuIiBtb2Q9Ii4mbDptb2QuIiB3cmFwPSIuJmw6d3JhcCkKICIgIGNhbGwgRHJldCgiczpOZXRyd09wdGlvblJlc3RvcmUgOiB3aW4jIi53aW5ucigpLiIgYnVmIyIuYnVmbnIoIiUiKSkKIGVuZGZ1bgogCkBAIC01MzYsMTIgKzUzMywxMiBAQAogICAgZm9yIGRpciBpbiBzcGxpdCgmcnRwLCcsJykKICAgICBpZiBmaWxlcmVhZGFibGUoZGlyLiIvcGx1Z2luL25ldHJ3UGx1Z2luLnZpbSIpCiAiICAgICBjYWxsIERlY2hvKCJyZW1vdmluZyBuZXRydy1yZWxhdGVkIGZpbGVzIGZyb20gIi5kaXIpCi0gICAgIGlmIHM6U3lzdGVtKCJkZWxldGUiLGRpci4iL3BsdWdpbi9uZXRyd1BsdWdpbi52aW0iKSAgICAgICAgfGNhbGwgbmV0cncjRXJyb3JNc2coMSwidW5hYmxlIHRvIHJlbW92ZSAiLmRpci4iL3BsdWdpbi9uZXRyd1BsdWdpbi52aW0iLDU1KSAgICAgICAgfGVuZGlmCi0gICAgIGlmIHM6U3lzdGVtKCJkZWxldGUiLGRpci4iL2F1dG9sb2FkL25ldHJ3RmlsZUhhbmRsZXJzLnZpbSIpfGNhbGwgbmV0cncjRXJyb3JNc2coMSwidW5hYmxlIHRvIHJlbW92ZSAiLmRpci4iL2F1dG9sb2FkL25ldHJ3RmlsZUhhbmRsZXJzLnZpbSIsNTUpfGVuZGlmCi0gICAgIGlmIHM6U3lzdGVtKCJkZWxldGUiLGRpci4iL2F1dG9sb2FkL25ldHJ3U2V0dGluZ3MudmltIikgICAgfGNhbGwgbmV0cncjRXJyb3JNc2coMSwidW5hYmxlIHRvIHJlbW92ZSAiLmRpci4iL2F1dG9sb2FkL25ldHJ3U2V0dGluZ3MudmltIiw1NSkgICAgfGVuZGlmCi0gICAgIGlmIHM6U3lzdGVtKCJkZWxldGUiLGRpci4iL2F1dG9sb2FkL25ldHJ3LnZpbSIpICAgICAgICAgICAgfGNhbGwgbmV0cncjRXJyb3JNc2coMSwidW5hYmxlIHRvIHJlbW92ZSAiLmRpci4iL2F1dG9sb2FkL25ldHJ3LnZpbSIsNTUpICAgICAgICAgICAgfGVuZGlmCi0gICAgIGlmIHM6U3lzdGVtKCJkZWxldGUiLGRpci4iL3N5bnRheC9uZXRydy52aW0iKSAgICAgICAgICAgICAgfGNhbGwgbmV0cncjRXJyb3JNc2coMSwidW5hYmxlIHRvIHJlbW92ZSAiLmRpci4iL3N5bnRheC9uZXRydy52aW0iLDU1KSAgICAgICAgICAgICAgfGVuZGlmCi0gICAgIGlmIHM6U3lzdGVtKCJkZWxldGUiLGRpci4iL3N5bnRheC9uZXRyd2xpc3QudmltIikgICAgICAgICAgfGNhbGwgbmV0cncjRXJyb3JNc2coMSwidW5hYmxlIHRvIHJlbW92ZSAiLmRpci4iL3N5bnRheC9uZXRyd2xpc3QudmltIiw1NSkgICAgICAgICAgfGVuZGlmCisgICAgIGlmIHM6TmV0cndEZWxldGUoZGlyLiIvcGx1Z2luL25ldHJ3UGx1Z2luLnZpbSIpICAgICAgICB8Y2FsbCBuZXRydyNFcnJvck1zZygxLCJ1bmFibGUgdG8gcmVtb3ZlICIuZGlyLiIvcGx1Z2luL25ldHJ3UGx1Z2luLnZpbSIsNTUpICAgICAgICB8ZW5kaWYKKyAgICAgaWYgczpOZXRyd0RlbGV0ZShkaXIuIi9hdXRvbG9hZC9uZXRyd0ZpbGVIYW5kbGVycy52aW0iKXxjYWxsIG5ldHJ3I0Vycm9yTXNnKDEsInVuYWJsZSB0byByZW1vdmUgIi5kaXIuIi9hdXRvbG9hZC9uZXRyd0ZpbGVIYW5kbGVycy52aW0iLDU1KXxlbmRpZgorICAgICBpZiBzOk5ldHJ3RGVsZXRlKGRpci4iL2F1dG9sb2FkL25ldHJ3U2V0dGluZ3MudmltIikgICAgfGNhbGwgbmV0cncjRXJyb3JNc2coMSwidW5hYmxlIHRvIHJlbW92ZSAiLmRpci4iL2F1dG9sb2FkL25ldHJ3U2V0dGluZ3MudmltIiw1NSkgICAgfGVuZGlmCisgICAgIGlmIHM6TmV0cndEZWxldGUoZGlyLiIvYXV0b2xvYWQvbmV0cncudmltIikgICAgICAgICAgICB8Y2FsbCBuZXRydyNFcnJvck1zZygxLCJ1bmFibGUgdG8gcmVtb3ZlICIuZGlyLiIvYXV0b2xvYWQvbmV0cncudmltIiw1NSkgICAgICAgICAgICB8ZW5kaWYKKyAgICAgaWYgczpOZXRyd0RlbGV0ZShkaXIuIi9zeW50YXgvbmV0cncudmltIikgICAgICAgICAgICAgIHxjYWxsIG5ldHJ3I0Vycm9yTXNnKDEsInVuYWJsZSB0byByZW1vdmUgIi5kaXIuIi9zeW50YXgvbmV0cncudmltIiw1NSkgICAgICAgICAgICAgIHxlbmRpZgorICAgICBpZiBzOk5ldHJ3RGVsZXRlKGRpci4iL3N5bnRheC9uZXRyd2xpc3QudmltIikgICAgICAgICAgfGNhbGwgbmV0cncjRXJyb3JNc2coMSwidW5hYmxlIHRvIHJlbW92ZSAiLmRpci4iL3N5bnRheC9uZXRyd2xpc3QudmltIiw1NSkgICAgICAgICAgfGVuZGlmCiAgICAgIGxldCBkaWRkaXI9IGRpcgogICAgICBsZXQgZGlkZGVsPSBkaWRkZWwgKyAxCiAgICAgIGlmICFhOnN5c3xicmVha3xlbmRpZgpAQCAtNzA0LDggKzcwMSw4IEBACiAgICAgIGxldCB1aWRfbWFjaGluZSA9IGc6bmV0cndfbWFjaGluZQogICAgIGVuZGlmCiAgICBlbmRpZgotIiAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogISIuZzpuZXRyd19yY3BfY21kLiIgIi5zOm5ldHJ3X3JjcG1vZGUuIiAiLnNoZWxsZXNjYXBlKHVpZF9tYWNoaW5lLiI6Ii5lc2NhcGUoYjpuZXRyd19mbmFtZSwnID8mOycpLiIgIi50bXBmaWxlKQotICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19yY3BfY21kLiIgIi5zOm5ldHJ3X3JjcG1vZGUuIiAiLnNoZWxsZXNjYXBlKHVpZF9tYWNoaW5lLiI6Ii5lc2NhcGUoYjpuZXRyd19mbmFtZSwnID8mOycpLiIgIi50bXBmaWxlKQorIiAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogISIuZzpuZXRyd19yY3BfY21kLiIgIi5zOm5ldHJ3X3JjcG1vZGUuIiAiLnNoZWxsZXNjYXBlKHVpZF9tYWNoaW5lLiI6Ii5iOm5ldHJ3X2ZuYW1lLDEpLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlLDEpKQorICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19yY3BfY21kLiIgIi5zOm5ldHJ3X3JjcG1vZGUuIiAiLnNoZWxsZXNjYXBlKHVpZF9tYWNoaW5lLiI6Ii5iOm5ldHJ3X2ZuYW1lLDEpLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlLDEpKQogICAgbGV0IHJlc3VsdCAgICAgICAgICAgPSBzOk5ldHJ3R2V0RmlsZShyZWFkY21kLCB0bXBmaWxlLCBiOm5ldHJ3X21ldGhvZCkKICAgIGxldCBiOm5ldHJ3X2xhc3RmaWxlID0gY2hvaWNlCiAKQEAgLTcyNSwxOCArNzIyLDE4IEBACiAgICAgIGV4ZSAicHV0ID0nIi4nZ2V0IFwiJy5uZXRyd19mbmFtZS4nXCIgJy50bXBmaWxlLiInIgogIiAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0OiAiLmdldGxpbmUoJy4nKSkKICAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSIgICAgICBjYWxsIERlY2hvKCJleGVjdXRpbmc6ICUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLmc6bmV0cndfbWFjaGluZS4iICIuZzpuZXRyd19wb3J0KQotICAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lLiIgIi5nOm5ldHJ3X3BvcnQKKyIgICAgICBjYWxsIERlY2hvKCJleGVjdXRpbmc6ICUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZS4iICIuZzpuZXRyd19wb3J0LDEpKQorICAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiIgIi5nOm5ldHJ3X3BvcnQsMSkKICAgICAgZWxzZQotIiAgICAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lKQotICAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lCisiICAgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUsMSkpCisgICAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUsMSkKICAgICAgZW5kaWYKICAgICAgIiBJZiB0aGUgcmVzdWx0IG9mIHRoZSBmdHAgb3BlcmF0aW9uIGlzbid0IGJsYW5rLCBzaG93IGFuIGVycm9yIG1lc3NhZ2UgKHRueCB0byBEb3VnIENsYWFyKQogICAgICBpZiBnZXRsaW5lKDEpICF+ICJeJCIgJiYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpICYmIGdldGxpbmUoMSkgIX4gJ15UcnlpbmcgJwotICAgICAgbGV0IGRlYnVna2VlcD0gJmRlYnVnCisgICAgICBsZXQgZGVidWdrZWVwID0gJmRlYnVnCiAgICAgICBzZXRsb2NhbCBkZWJ1Zz1tc2cKICAgICAgIGNhbGwgbmV0cncjRXJyb3JNc2coczpFUlJPUixnZXRsaW5lKDEpLDQpCi0gICAgICBsZXQgJmRlYnVnPSBkZWJ1Z2tlZXAKKyAgICAgIGxldCAmZGVidWcgICAgPSBkZWJ1Z2tlZXAKICAgICAgZW5kaWYKICAgICAgY2FsbCBzOlNhdmVCdWZWYXJzKCl8YmQhfGNhbGwgczpSZXN0b3JlQnVmVmFycygpCiAgICAgIGxldCByZXN1bHQgICAgICAgICAgID0gczpOZXRyd0dldEZpbGUocmVhZGNtZCwgdG1wZmlsZSwgYjpuZXRyd19tZXRob2QpCkBAIC04MDYsOCArODAzLDggQEAKICAgICBlbHNlCiAgICAgIGxldCB1c2Vwb3J0PSAiIgogICAgIGVuZGlmCi0iICAgIGNhbGwgRGVjaG8oImV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuISIuZzpuZXRyd19zY3BfY21kLnVzZXBvcnQuIiAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZS4iOiIuZXNjYXBlKGI6bmV0cndfZm5hbWUsZzpuZXRyd19mbmFtZV9lc2NhcGUpKS4iICIudG1wZmlsZSkKLSAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3NjcF9jbWQudXNlcG9ydC4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5lc2NhcGUoYjpuZXRyd19mbmFtZSxnOm5ldHJ3X2ZuYW1lX2VzY2FwZSkpLiIgIi50bXBmaWxlCisiICAgIGNhbGwgRGVjaG8oImV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuISIuZzpuZXRyd19zY3BfY21kLnVzZXBvcnQuIiAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZS4iOiIuYjpuZXRyd19mbmFtZSwxKS4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKSkKKyAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3NjcF9jbWQudXNlcG9ydC4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5iOm5ldHJ3X2ZuYW1lLDEpLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlLDEpCiAgICAgbGV0IHJlc3VsdCAgICAgICAgICAgPSBzOk5ldHJ3R2V0RmlsZShyZWFkY21kLCB0bXBmaWxlLCBiOm5ldHJ3X21ldGhvZCkKICAgICBsZXQgYjpuZXRyd19sYXN0ZmlsZSA9IGNob2ljZQogCkBAIC04MjMsMjMgKzgyMCwyMiBAQAogICAgICByZXR1cm4KICAgICBlbmRpZgogCi0gICAgbGV0IG5ldHJ3X2ZuYW1lPSBlc2NhcGUoYjpuZXRyd19mbmFtZSxnOm5ldHJ3X2ZuYW1lX2VzY2FwZSkKICAgICBpZiBtYXRjaChiOm5ldHJ3X2ZuYW1lLCIjIikgPT0gLTEKLSAgICAgIiBzaW1wbGUgd2dldAotIiAgICAgY2FsbCBEZWNobygndXNpbmcgc2ltcGxlIHdnZXQgKCMgbm90IGluIGI6bmV0cndfZm5hbWU8Jy5iOm5ldHJ3X2ZuYW1lLiI+KSIpCi0iICAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfaHR0cF9jbWQuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUpLiIgIi5zaGVsbGVzY2FwZSgiaHR0cDovLyIuZzpuZXRyd19tYWNoaW5lLm5ldHJ3X2ZuYW1lKSkKLSAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19odHRwX2NtZC4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSkuIiAiLnNoZWxsZXNjYXBlKCJodHRwOi8vIi5nOm5ldHJ3X21hY2hpbmUubmV0cndfZm5hbWUpCisgICAgICIgdXNpbmcgZzpuZXRyd19odHRwX2NtZCAodXN1YWxseSB3Z2V0IG9yIGN1cmwpCisiICAgICBjYWxsIERlY2hvKCd1c2luZyAnLmc6bmV0cndfaHR0cF9jbWQuJyAoIyBub3QgaW4gYjpuZXRyd19mbmFtZTwnLmI6bmV0cndfZm5hbWUuIj4pIikKKyIgICAgIGNhbGwgRGVjaG8oImV4ZSAiLnM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19odHRwX2NtZC4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKS4iICIuc2hlbGxlc2NhcGUoImh0dHA6Ly8iLmc6bmV0cndfbWFjaGluZS5uZXRyd19mbmFtZSwxKSkKKyAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19odHRwX2NtZC4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKS4iICIuc2hlbGxlc2NhcGUoImh0dHA6Ly8iLmc6bmV0cndfbWFjaGluZS5iOm5ldHJ3X2ZuYW1lLDEpCiAgICAgIGxldCByZXN1bHQgPSBzOk5ldHJ3R2V0RmlsZShyZWFkY21kLCB0bXBmaWxlLCBiOm5ldHJ3X21ldGhvZCkKIAogICAgIGVsc2UKLSAgICAgIiB3Z2V0IHBsdXMgYSBqdW1wIHRvIGFuIGluLXBhZ2UgbWFya2VyIChpZS4gaHR0cDovL2FiYy9kZWYuaHRtbCNhTWFya2VyKQorICAgICAiIHdnZXQvY3VybCBwbHVzIGEganVtcCB0byBhbiBpbi1wYWdlIG1hcmtlciAoaWUuIGh0dHA6Ly9hYmMvZGVmLmh0bWwjYU1hcmtlcikKICIgICAgIGNhbGwgRGVjaG8oKCJ3Z2V0L2N1cmwgcGx1cyBqdW1wICgjIGluIGI6bmV0cndfZm5hbWU8Ii5iOm5ldHJ3X2ZuYW1lLiI+KSIpCi0gICAgIGxldCBuZXRyd19odG1sPSBzdWJzdGl0dXRlKG5ldHJ3X2ZuYW1lLCIjLiokIiwiIiwiIikKLSAgICAgbGV0IG5ldHJ3X3RhZyA9IHN1YnN0aXR1dGUobmV0cndfZm5hbWUsIl4uKiMiLCIiLCIiKQorICAgICBsZXQgbmV0cndfaHRtbD0gc3Vic3RpdHV0ZShiOm5ldHJ3X2ZuYW1lLCIjLiokIiwiIiwiIikKKyAgICAgbGV0IG5ldHJ3X3RhZyA9IHN1YnN0aXR1dGUoYjpuZXRyd19mbmFtZSwiXi4qIyIsIiIsIiIpCiAiICAgICBjYWxsIERlY2hvKCJuZXRyd19odG1sPCIubmV0cndfaHRtbC4iPiIpCiAiICAgICBjYWxsIERlY2hvKCJuZXRyd190YWcgPCIubmV0cndfdGFnLiI+IikKLSIgICAgIGNhbGwgRGVjaG8oImV4ZSAiLnM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19odHRwX2NtZC4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSkuIiAiLnNoZWxsZXNjYXBlKCJodHRwOi8vIi5nOm5ldHJ3X21hY2hpbmUubmV0cndfaHRtbCkpCi0gICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfaHR0cF9jbWQuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUpLiIgIi5zaGVsbGVzY2FwZSgiaHR0cDovLyIuZzpuZXRyd19tYWNoaW5lLm5ldHJ3X2h0bWwpCisiICAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfaHR0cF9jbWQuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUsMSkuIiAiLnNoZWxsZXNjYXBlKCJodHRwOi8vIi5nOm5ldHJ3X21hY2hpbmUubmV0cndfaHRtbCwxKSkKKyAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19odHRwX2NtZC4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKS4iICIuc2hlbGxlc2NhcGUoImh0dHA6Ly8iLmc6bmV0cndfbWFjaGluZS5uZXRyd19odG1sLDEpCiAgICAgIGxldCByZXN1bHQgPSBzOk5ldHJ3R2V0RmlsZShyZWFkY21kLCB0bXBmaWxlLCBiOm5ldHJ3X21ldGhvZCkKICIgICAgIGNhbGwgRGVjaG8oJzxccyphXHMqbmFtZT1ccyoiJy5uZXRyd190YWcuJyIvJykKICAgICAgZXhlICdub3JtISAxRy88XHMqYVxzKm5hbWU9XHMqIicubmV0cndfdGFnLiciLycuIlw8Q1I+IgpAQCAtODc3LDkgKzg3Myw4IEBACiAgICAiIHJzeW5jOiBOZXRSZWFkIE1ldGhvZCAjNyB7e3szCiAgICBlbHNlaWYgICAgIGI6bmV0cndfbWV0aG9kICA9PSA3CiAiICAgIGNhbGwgRGVjaG8oInJlYWQgdmlhIHJzeW5jIChtZXRob2QgIzcpIikKLSAgICBsZXQgbmV0cndfZm5hbWU9IGVzY2FwZShiOm5ldHJ3X2ZuYW1lLGc6bmV0cndfZm5hbWVfZXNjYXBlKQotIiAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfcnN5bmNfY21kLiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUuIjoiLm5ldHJ3X2ZuYW1lKS4iICIudG1wZmlsZSkKLSAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3JzeW5jX2NtZC4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5uZXRyd19mbmFtZSkuIiAiLnRtcGZpbGUKKyIgICAgY2FsbCBEZWNobygiZXhlICIuczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3JzeW5jX2NtZC4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5iOm5ldHJ3X2ZuYW1lLDEpLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlLDEpKQorICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfcnN5bmNfY21kLiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUuIjoiLmI6bmV0cndfZm5hbWUsMSkuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUsMSkKICAgICBsZXQgcmVzdWx0CQkgPSBzOk5ldHJ3R2V0RmlsZShyZWFkY21kLHRtcGZpbGUsIGI6bmV0cndfbWV0aG9kKQogICAgIGxldCBiOm5ldHJ3X2xhc3RmaWxlID0gY2hvaWNlCiAKQEAgLTg4OCw3ICs4ODMsNiBAQAogICAgIiAgICBmZXRjaDovL1t1c2VyQF1ob3N0WzpodHRwXS9wYXRoCiAgICBlbHNlaWYgICAgIGI6bmV0cndfbWV0aG9kICA9PSA4CiAiICAgIGNhbGwgRGVjaG8oInJlYWQgdmlhIGZldGNoIChtZXRob2QgIzgpIikKLSAgICBsZXQgbmV0cndfZm5hbWU9IGVzY2FwZShiOm5ldHJ3X2ZuYW1lLGc6bmV0cndfZm5hbWVfZXNjYXBlKQogICAgIGlmIGc6bmV0cndfZmV0Y2hfY21kID09ICIiCiAgICAgIGlmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgICAgY2FsbCBuZXRydyNFcnJvck1zZyhzOkVSUk9SLCJmZXRjaCBjb21tYW5kIG5vdCBhdmFpbGFibGUiLDcpCkBAIC05MDMsMTEgKzg5NywxMSBAQAogIiAgICBjYWxsIERlY2hvKCJyZWFkIHZpYSBmZXRjaCBmb3IgIi5uZXRyd19vcHRpb24pCiAKICAgICBpZiBleGlzdHMoImc6bmV0cndfdWlkIikgJiYgZzpuZXRyd191aWQgIT0gIiIgJiYgZXhpc3RzKCJzOm5ldHJ3X3Bhc3N3ZCIpICYmIHM6bmV0cndfcGFzc3dkICE9ICIiCi0iICAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfZmV0Y2hfY21kLiIgIi50bXBmaWxlLiIgIi5zaGVsbGVzY2FwZShuZXRyd19vcHRpb24uIjovLyIuZzpuZXRyd191aWQuJzonLnM6bmV0cndfcGFzc3dkLidAJy5nOm5ldHJ3X21hY2hpbmUuIi8iLm5ldHJ3X2ZuYW1lKSkKLSAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19mZXRjaF9jbWQuIiAiLnRtcGZpbGUuIiAiLnNoZWxsZXNjYXBlKG5ldHJ3X29wdGlvbi4iOi8vIi5nOm5ldHJ3X3VpZC4nOicuczpuZXRyd19wYXNzd2QuJ0AnLmc6bmV0cndfbWFjaGluZS4iLyIubmV0cndfZm5hbWUpCisiICAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfZmV0Y2hfY21kLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlLDEpLiIgIi5zaGVsbGVzY2FwZShuZXRyd19vcHRpb24uIjovLyIuZzpuZXRyd191aWQuJzonLnM6bmV0cndfcGFzc3dkLidAJy5nOm5ldHJ3X21hY2hpbmUuIi8iLmI6bmV0cndfZm5hbWUsMSkpCisgICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfZmV0Y2hfY21kLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlLDEpLiIgIi5zaGVsbGVzY2FwZShuZXRyd19vcHRpb24uIjovLyIuZzpuZXRyd191aWQuJzonLnM6bmV0cndfcGFzc3dkLidAJy5nOm5ldHJ3X21hY2hpbmUuIi8iLmI6bmV0cndfZm5hbWUsMSkKICAgICBlbHNlCi0iICAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfZmV0Y2hfY21kLiIgIi50bXBmaWxlLiIgIi5zaGVsbGVzY2FwZShuZXRyd19vcHRpb24uIjovLyIuZzpuZXRyd19tYWNoaW5lLiIvIi5uZXRyd19mbmFtZSkpCi0gICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfZmV0Y2hfY21kLiIgIi50bXBmaWxlLiIgIi5zaGVsbGVzY2FwZShuZXRyd19vcHRpb24uIjovLyIuZzpuZXRyd19tYWNoaW5lLiIvIi5uZXRyd19mbmFtZSkKKyIgICAgIGNhbGwgRGVjaG8oImV4ZSAiLnM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19mZXRjaF9jbWQuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUsMSkuIiAiLnNoZWxsZXNjYXBlKG5ldHJ3X29wdGlvbi4iOi8vIi5nOm5ldHJ3X21hY2hpbmUuIi8iLmI6bmV0cndfZm5hbWUsMSkpCisgICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfZmV0Y2hfY21kLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlLDEpLiIgIi5zaGVsbGVzY2FwZShuZXRyd19vcHRpb24uIjovLyIuZzpuZXRyd19tYWNoaW5lLiIvIi5iOm5ldHJ3X2ZuYW1lLDEpCiAgICAgZW5kaWYKIAogICAgIGxldCByZXN1bHQJCT0gczpOZXRyd0dldEZpbGUocmVhZGNtZCx0bXBmaWxlLCBiOm5ldHJ3X21ldGhvZCkKQEAgLTkxOCw5ICs5MTIsOCBAQAogICAgIiBzZnRwOiBOZXRSZWFkIE1ldGhvZCAjOSB7e3szCiAgICBlbHNlaWYgICAgIGI6bmV0cndfbWV0aG9kICA9PSA5CiAiICAgIGNhbGwgRGVjaG8oInJlYWQgdmlhIHNmdHAgKG1ldGhvZCAjOSkiKQotICAgIGxldCBuZXRyd19mbmFtZT0gZXNjYXBlKGI6bmV0cndfZm5hbWUsZzpuZXRyd19mbmFtZV9lc2NhcGUpCi0iICAgIGNhbGwgRGVjaG8oImV4ZSAiLnM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19zZnRwX2NtZC4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5uZXRyd19mbmFtZSkuIiAiLnRtcGZpbGUpCi0gICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19zZnRwX2NtZC4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5uZXRyd19mbmFtZSkuIiAiLnRtcGZpbGUKKyIgICAgY2FsbCBEZWNobygiZXhlICIuczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3NmdHBfY21kLiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUuIjoiLmI6bmV0cndfZm5hbWUsMSkuIiAiLnRtcGZpbGUpCisgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19zZnRwX2NtZC4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5iOm5ldHJ3X2ZuYW1lLDEpLiIgIi50bXBmaWxlCiAgICAgbGV0IHJlc3VsdAkJPSBzOk5ldHJ3R2V0RmlsZShyZWFkY21kLCB0bXBmaWxlLCBiOm5ldHJ3X21ldGhvZCkKICAgICBsZXQgYjpuZXRyd19sYXN0ZmlsZSA9IGNob2ljZQogCkBAIC05MzksNyArOTMyLDcgQEAKICAgZW5kaWYKICAgaWYgczpGaWxlUmVhZGFibGUodG1wZmlsZSkgJiYgdG1wZmlsZSAhfiAnLnRhci5iejIkJyAmJiB0bXBmaWxlICF+ICcudGFyLmd6JCcgJiYgdG1wZmlsZSAhfiAnLnppcCcgJiYgdG1wZmlsZSAhfiAnLnRhcicgJiYgcmVhZGNtZCAhPSAndCcKICIgICBjYWxsIERlY2hvKCJjbGVhbnVwIGJ5IGRlbGV0aW5nIHRtcGZpbGU8Ii50bXBmaWxlLiI+IikKLSAgIGNhbGwgczpTeXN0ZW0oImRlbGV0ZSIsZm5hbWVlc2NhcGUodG1wZmlsZSkpCisgICBjYWxsIHM6TmV0cndEZWxldGUoZm5hbWVlc2NhcGUodG1wZmlsZSkpCiAgIGVuZGlmCiAgIGNhbGwgczpOZXRyd09wdGlvblJlc3RvcmUoInc6IikKIApAQCAtOTc1LDE3ICs5NjgsMTcgQEAKICAgICIgRm9yIGJpbmFyeSB3cml0ZXMsIGFsd2F5cyB3cml0ZSBlbnRpcmUgZmlsZS4KICAgICIgKGxpbmUgbnVtYmVycyBkb24ndCByZWFsbHkgbWFrZSBzZW5zZSBmb3IgdGhhdCkuCiAgICAiIEFsc28gc3VwcG9ydHMgdGhlIHdyaXRpbmcgb2YgdGFyIGFuZCB6aXAgZmlsZXMuCi0iICAgY2FsbCBEZWNobygiKHdyaXRlIGVudGlyZSBmaWxlKSBzaWxlbnQgZXhlIHchICIudjpjbWRhcmcuIiAiLnRtcGZpbGUpCi0gICBzaWxlbnQgZXhlICJ3ISAiLnY6Y21kYXJnLiIgIi50bXBmaWxlCisiICAgY2FsbCBEZWNobygiKHdyaXRlIGVudGlyZSBmaWxlKSBzaWxlbnQgZXhlIHchICIuZm5hbWVlc2NhcGUodjpjbWRhcmcpLiIgIi5mbmFtZWVzY2FwZSh0bXBmaWxlKSkKKyAgIHNpbGVudCBleGUgInchICIuZm5hbWVlc2NhcGUodjpjbWRhcmcpLiIgIi5mbmFtZWVzY2FwZSh0bXBmaWxlKQogICBlbHNlaWYgZzpuZXRyd19jeWd3aW4KICAgICIgd3JpdGUgKHNlbGVjdGVkIHBvcnRpb24gb2YpIGZpbGUgdG8gdGVtcG9yYXJ5CiAgICBsZXQgY3lndG1wZmlsZT0gc3Vic3RpdHV0ZSh0bXBmaWxlLCcvY3lnZHJpdmUvXCguXCknLCdcMTonLCcnKQotIiAgIGNhbGwgRGVjaG8oIih3cml0ZSBzZWxlY3RlZCBwb3J0aW9uKSBzaWxlbnQgZXhlICIuYTpmaXJzdGxpbmUuIiwiIC4gYTpsYXN0bGluZSAuICJ3ISAiLnY6Y21kYXJnLiIgIi5jeWd0bXBmaWxlKQotICAgc2lsZW50IGV4ZSBhOmZpcnN0bGluZS4iLCIgLiBhOmxhc3RsaW5lIC4gInchICIudjpjbWRhcmcuIiAiLmN5Z3RtcGZpbGUKKyIgICBjYWxsIERlY2hvKCIod3JpdGUgc2VsZWN0ZWQgcG9ydGlvbikgc2lsZW50IGV4ZSAiLmE6Zmlyc3RsaW5lLiIsIiAuIGE6bGFzdGxpbmUgLiAidyEgIi5mbmFtZWVzY2FwZSh2OmNtZGFyZykuIiAiLmZuYW1lZXNjYXBlKGN5Z3RtcGZpbGUpKQorICAgc2lsZW50IGV4ZSBhOmZpcnN0bGluZS4iLCIgLiBhOmxhc3RsaW5lIC4gInchICIuZm5hbWVlc2NhcGUodjpjbWRhcmcpLiIgIi5mbmFtZWVzY2FwZShjeWd0bXBmaWxlKQogICBlbHNlCiAgICAiIHdyaXRlIChzZWxlY3RlZCBwb3J0aW9uIG9mKSBmaWxlIHRvIHRlbXBvcmFyeQotIiAgIGNhbGwgRGVjaG8oIih3cml0ZSBzZWxlY3RlZCBwb3J0aW9uKSBzaWxlbnQgZXhlICIuYTpmaXJzdGxpbmUuIiwiIC4gYTpsYXN0bGluZSAuICJ3ISAiLnY6Y21kYXJnLiIgIi50bXBmaWxlKQotICAgc2lsZW50IGV4ZSBhOmZpcnN0bGluZS4iLCIgLiBhOmxhc3RsaW5lIC4gInchICIudjpjbWRhcmcuIiAiLnRtcGZpbGUKKyIgICBjYWxsIERlY2hvKCIod3JpdGUgc2VsZWN0ZWQgcG9ydGlvbikgc2lsZW50IGV4ZSAiLmE6Zmlyc3RsaW5lLiIsIiAuIGE6bGFzdGxpbmUgLiAidyEgIi5mbmFtZWVzY2FwZSh2OmNtZGFyZykuIiAiLmZuYW1lZXNjYXBlKHRtcGZpbGUpKQorICAgc2lsZW50IGV4ZSBhOmZpcnN0bGluZS4iLCIgLiBhOmxhc3RsaW5lIC4gInchICIuZm5hbWVlc2NhcGUodjpjbWRhcmcpLiIgIi5mbmFtZWVzY2FwZSh0bXBmaWxlKQogICBlbmRpZgogCiAgIGlmIGN1cmJ1Zm5hbWUgPT0gIiIKQEAgLTEwNzksOSArMTA3Miw4IEBACiAgICAgICBsZXQgdWlkX21hY2hpbmUgPSBnOm5ldHJ3X21hY2hpbmUKICAgICAgZW5kaWYKICAgICBlbmRpZgotICAgIGxldCBuZXRyd19mbmFtZT0gZXNjYXBlKGI6bmV0cndfZm5hbWUsZzpuZXRyd19mbmFtZV9lc2NhcGUpCi0iICAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogISIuZzpuZXRyd19yY3BfY21kLiIgIi5zOm5ldHJ3X3JjcG1vZGUuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUpLiIgIi5zaGVsbGVzY2FwZSh1aWRfbWFjaGluZS4iOiIubmV0cndfZm5hbWUpKQotICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfcmNwX2NtZC4iICIuczpuZXRyd19yY3Btb2RlLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlKS4iICIuc2hlbGxlc2NhcGUodWlkX21hY2hpbmUuIjoiLm5ldHJ3X2ZuYW1lKQorIiAgICBjYWxsIERlY2hvKCJleGVjdXRpbmc6ICEiLmc6bmV0cndfcmNwX2NtZC4iICIuczpuZXRyd19yY3Btb2RlLiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlLDEpLiIgIi5zaGVsbGVzY2FwZSh1aWRfbWFjaGluZS4iOiIuYjpuZXRyd19mbmFtZSwxKSkKKyAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3JjcF9jbWQuIiAiLnM6bmV0cndfcmNwbW9kZS4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKS4iICIuc2hlbGxlc2NhcGUodWlkX21hY2hpbmUuIjoiLmI6bmV0cndfZm5hbWUsMSkKICAgICBsZXQgYjpuZXRyd19sYXN0ZmlsZSA9IGNob2ljZQogCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KQEAgLTExMDEsMTIgKzEwOTMsMTIgQEAKICAgICBleGUgInB1dCA9JyIuJ3B1dCBcIicudG1wZmlsZS4nXCIgXCInLm5ldHJ3X2ZuYW1lLidcIicuIiciCiAiICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dDogIi5nZXRsaW5lKCcuJykpCiAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSIgICAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lLiIgIi5nOm5ldHJ3X3BvcnQpCi0gICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLmc6bmV0cndfbWFjaGluZS4iICIuZzpuZXRyd19wb3J0CisiICAgICBjYWxsIERlY2hvKCJleGVjdXRpbmc6ICUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZSwxKS4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19wb3J0LDEpKQorICAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUsMSkuIiAiLnNoZWxsZXNjYXBlKGc6bmV0cndfcG9ydCwxKQogICAgIGVsc2UKICIgICAgIGNhbGwgRGVjaG8oImZpbHRlciBpbnB1dCB3aW5kb3cjIi53aW5ucigpKQotIiAgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgIi5nOm5ldHJ3X21hY2hpbmUpCi0gICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLmc6bmV0cndfbWFjaGluZQorIiAgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUsMSkpCisgICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZSwxKQogICAgIGVuZGlmCiAgICAgIiBJZiB0aGUgcmVzdWx0IG9mIHRoZSBmdHAgb3BlcmF0aW9uIGlzbid0IGJsYW5rLCBzaG93IGFuIGVycm9yIG1lc3NhZ2UgKHRueCB0byBEb3VnIENsYWFyKQogICAgIGlmIGdldGxpbmUoMSkgIX4gIl4kIgpAQCAtMTE2NywxNCArMTE1OSwxMyBAQAogICAgIiBzY3A6IE5ldFdyaXRlIE1ldGhvZCAjNCB7e3s0CiAgICBlbHNlaWYgICAgIGI6bmV0cndfbWV0aG9kID09IDQKICIgICAgY2FsbCBEZWNobygid3JpdGUgdmlhIHNjcCAobWV0aG9kICM0KSIpCi0gICAgbGV0IG5ldHJ3X2ZuYW1lPSBlc2NhcGUoYjpuZXRyd19mbmFtZSxnOm5ldHJ3X2ZuYW1lX2VzY2FwZSkKICAgICBpZiBleGlzdHMoImc6bmV0cndfcG9ydCIpICYmIGc6bmV0cndfcG9ydCAhPSAiIgotICAgICBsZXQgdXNlcG9ydD0gIiAiLmc6bmV0cndfc2NwcG9ydC4iICIuZzpuZXRyd19wb3J0CisgICAgIGxldCB1c2Vwb3J0PSAiICIuZzpuZXRyd19zY3Bwb3J0LiIgIi5mbmFtZWVzY2FwZShnOm5ldHJ3X3BvcnQpCiAgICAgZWxzZQogICAgICBsZXQgdXNlcG9ydD0gIiIKICAgICBlbmRpZgotIiAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfc2NwX2NtZC51c2Vwb3J0LiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlKS4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5uZXRyd19mbmFtZSkpCi0gICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19zY3BfY21kLnVzZXBvcnQuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUpLiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUuIjoiLm5ldHJ3X2ZuYW1lKQorIiAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfc2NwX2NtZC51c2Vwb3J0LiIgIi5zaGVsbGVzY2FwZSh0bXBmaWxlLDEpLiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUuIjoiLmI6bmV0cndfZm5hbWUsMSkpCisgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19zY3BfY21kLnVzZXBvcnQuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUsMSkuIiAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZS4iOiIuYjpuZXRyd19mbmFtZSwxKQogICAgIGxldCBiOm5ldHJ3X2xhc3RmaWxlID0gY2hvaWNlCiAKICAgICIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgpAQCAtMTIxNSw5ICsxMjA2LDggQEAKICAgICIgcnN5bmM6IE5ldFdyaXRlIE1ldGhvZCAjNyB7e3s0CiAgICBlbHNlaWYgICAgIGI6bmV0cndfbWV0aG9kID09IDcKICIgICAgY2FsbCBEZWNobygid3JpdGUgdmlhIHJzeW5jIChtZXRob2QgIzcpIikKLSAgICBsZXQgbmV0cndfZm5hbWU9IGVzY2FwZShiOm5ldHJ3X2ZuYW1lLGc6bmV0cndfZm5hbWVfZXNjYXBlKQotIiAgICBjYWxsIERlY2hvKCJleGVjdXRpbmc6ICEiLmc6bmV0cndfcnN5bmNfY21kLiIgIi50bXBmaWxlLiIgIi5nOm5ldHJ3X21hY2hpbmUuIjoiLm5ldHJ3X2ZuYW1lKQotICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfcnN5bmNfY21kLiIgIi50bXBmaWxlLiIgIi5nOm5ldHJ3X21hY2hpbmUuIjoiLm5ldHJ3X2ZuYW1lCisiICAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogISIuZzpuZXRyd19yc3luY19jbWQuIiAiLnNoZWxsZXNjYXBlKHRtcGZpbGUsMSkuIiAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZS4iOiIuYjpuZXRyd19mbmFtZSwxKSkKKyAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3JzeW5jX2NtZC4iICIuc2hlbGxlc2NhcGUodG1wZmlsZSwxKS4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5iOm5ldHJ3X2ZuYW1lLDEpCiAgICAgbGV0IGI6bmV0cndfbGFzdGZpbGUgPSBjaG9pY2UKIAogICAgIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCkBAIC0xMjM1LDggKzEyMjUsOCBAQAogICAgIHB1dCA9J3B1dCBcIicuZXNjYXBlKHRtcGZpbGUsJ1wnKS4nXCIgJy5uZXRyd19mbmFtZQogIiAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnLicpKQogICAgIG5vcm0hIDFHZGQKLSIgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAlISIuZzpuZXRyd19zZnRwX2NtZC4nICcudWlkX21hY2hpbmUpCi0gICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfc2Z0cF9jbWQuJyAnLnVpZF9tYWNoaW5lCisiICAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogJSEiLmc6bmV0cndfc2Z0cF9jbWQuJyAnLnNoZWxsZXNjYXBlKHVpZF9tYWNoaW5lLDEpKQorICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X3NmdHBfY21kLicgJy5zaGVsbGVzY2FwZSh1aWRfbWFjaGluZSwxKQogICAgIGJkIQogICAgIGxldCBiOm5ldHJ3X2xhc3RmaWxlPSBjaG9pY2UKIApAQCAtMTI1MSw3ICsxMjQxLDcgQEAKICIgIGNhbGwgRGVjaG8oImNsZWFudXAiKQogICBpZiBzOkZpbGVSZWFkYWJsZSh0bXBmaWxlKQogIiAgIGNhbGwgRGVjaG8oInRtcGZpbGU8Ii50bXBmaWxlLiI+IHJlYWRhYmxlLCB3aWxsIG5vdyBkZWxldGUgaXQiKQotICAgY2FsbCBzOlN5c3RlbSgiZGVsZXRlIix0bXBmaWxlKQorICAgY2FsbCBzOk5ldHJ3RGVsZXRlKHRtcGZpbGUpCiAgIGVuZGlmCiAgIGNhbGwgczpOZXRyd09wdGlvblJlc3RvcmUoInc6IikKIApAQCAtMTMxMiw3ICsxMzAyLDcgQEAKIAogICAiIHJlYWRjbWQ9PSd0Jzogc2ltcGx5IGRvIG5vdGhpbmcKICAgaWYgYTpyZWFkY21kID09ICd0JwotIiAgIGNhbGwgRGVjaG8oInJvPSIuJnJvLiIgbWE9Ii4mbWEuIiBtb2Q9Ii4mbW9kLiIgd3JhcD0iLiZ3cmFwKQorIiAgIGNhbGwgRGVjaG8oInJvPSIuJmw6cm8uIiBtYT0iLiZsOm1hLiIgbW9kPSIuJmw6bW9kLiIgd3JhcD0iLiZsOndyYXApCiAiICAgY2FsbCBEcmV0KCJOZXRyd0dldEZpbGUgOiBza2lwIHJlYWQgb2YgPCIuYTp0ZmlsZS4iPiIpCiAgICByZXR1cm4KICAgZW5kaWYKQEAgLTEzMzYsOCArMTMyNiw4IEBACiAgICBlbHNlCiAgICAgbGV0IHRmaWxlPSBhOnRmaWxlCiAgICBlbmRpZgotIiAgICIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgIi50ZmlsZSkKLSAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi50ZmlsZQorIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhIGtlZXBhbHQgZmlsZSAiLmZuYW1lZXNjYXBlKHRmaWxlKSkKKyAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZSh0ZmlsZSkKIAogICAgIiBlZGl0IHRlbXBvcmFyeSBmaWxlIChpZS4gcmVhZCB0aGUgdGVtcG9yYXJ5IGZpbGUgaW4pCiAgICBpZiAgICAgcmZpbGUgPX4gJ1wuemlwJCcKQEAgLTEzNTgsOCArMTM0OCw4IEBACiAgICBlbmRpZgogCiAgICAiIHJlbmFtZSBidWZmZXIgYmFjayB0byByZW1vdGUgZmlsZW5hbWUKLSIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgIi5lc2NhcGUocmZpbGUsJyAnKSkKLSAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi5lc2NhcGUocmZpbGUsJyAnKQorIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhIGtlZXBhbHQgZmlsZSAiLmZuYW1lZXNjYXBlKHJmaWxlKSkKKyAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShyZmlsZSkKICAgIGlmIGE6bWV0aG9kID09IDUKICAgICBzZXQgZnQ9aHRtbAogICAgZWxzZQpAQCAtMTM3NCwxNCArMTM2NCwxNCBAQAogIiAgIGNhbGwgRGVjaG8oInJlYWQgZmlsZTwiLmE6dGZpbGUuIj4gYWZ0ZXIgY3VycmVudCBsaW5lIikKICAgIGxldCBjdXJsaW5lID0gbGluZSgiLiIpCiAgICBsZXQgbGFzdGxpbmU9IGxpbmUoIiQiKQotIiAgIGNhbGwgRGVjaG8oImV4ZTwiLmE6cmVhZGNtZC4iICIudjpjbWRhcmcuIiAiLmE6dGZpbGUuIj4gIGxpbmUjIi5jdXJsaW5lKQotICAgZXhlIGE6cmVhZGNtZC4iICIudjpjbWRhcmcuIiAiLmE6dGZpbGUKKyIgICBjYWxsIERlY2hvKCJleGU8Ii5hOnJlYWRjbWQuIiAiLmZuYW1lZXNjYXBlKHY6Y21kYXJnKS4iICIuZm5hbWVlc2NhcGUoYTp0ZmlsZSkuIj4gIGxpbmUjIi5jdXJsaW5lKQorICAgZXhlIGE6cmVhZGNtZC4iICIuZm5hbWVlc2NhcGUodjpjbWRhcmcpLiIgIi5mbmFtZWVzY2FwZShhOnRmaWxlKQogICAgbGV0IGxpbmUxPSBjdXJsaW5lICsgMQogICAgbGV0IGxpbmUyPSBsaW5lKCIkIikgLSBsYXN0bGluZSArIDEKIAogICBlbHNlCiAgICAiIG5vdCByZWFkYWJsZQotIiAgIGNhbGwgRGVjaG8oInJvPSIuJnJvLiIgbWE9Ii4mbWEuIiBtb2Q9Ii4mbW9kLiIgd3JhcD0iLiZ3cmFwKQorIiAgIGNhbGwgRGVjaG8oInJvPSIuJmw6cm8uIiBtYT0iLiZsOm1hLiIgbW9kPSIuJmw6bW9kLiIgd3JhcD0iLiZsOndyYXApCiAiICAgY2FsbCBEZWNobygidGZpbGU8Ii5hOnRmaWxlLiI+IG5vdCByZWFkYWJsZSIpCiAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6V0FSTklORywiZmlsZSA8Ii5hOnRmaWxlLiI+IG5vdCByZWFkYWJsZSIsOSkKICIgICBjYWxsIERyZXQoIk5ldHJ3R2V0RmlsZSA6IHRmaWxlPCIuYTp0ZmlsZS4iPiBub3QgcmVhZGFibGUiKQpAQCAtMTQwNiw3ICsxMzk2LDcgQEAKICAiIG1ha2Ugc3VyZSBmaWxlIGlzIGJlaW5nIGRpc3BsYXllZAogIiAgcmVkcmF3IQogCi0iICBjYWxsIERlY2hvKCJybz0iLiZyby4iIG1hPSIuJm1hLiIgbW9kPSIuJm1vZC4iIHdyYXA9Ii4md3JhcCkKKyIgIGNhbGwgRGVjaG8oInJvPSIuJmw6cm8uIiBtYT0iLiZsOm1hLiIgbW9kPSIuJmw6bW9kLiIgd3JhcD0iLiZsOndyYXApCiAiICBjYWxsIERyZXQoIk5ldHJ3R2V0RmlsZSIpCiBlbmRmdW4KIApAQCAtMTcwNCw2ICsxNjk0LDcgQEAKICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFUJCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2ttYXJrRGlyKDUsZXhwYW5kKCIlIikpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gdgkJOmNhbGwgPFNJRD5OZXRyd1NwbGl0KDUpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4geAkJOmNhbGwgbmV0cncjTmV0cndCcm93c2VYKDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMSw8U0lEPk5ldHJ3R2V0V29yZCgpLDApLDApIjxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+ICUJCTpjYWxsIDxTSUQ+TmV0cndPcGVuRmlsZSgxKTxjcj4KICAgIGlmICFoYXNtYXB0bygnPFBsdWc+TmV0cndIaWRlRWRpdCcpCiAgICAgbm1hcCA8YnVmZmVyPiA8dW5pcXVlPiA8Yy1oPiA8UGx1Zz5OZXRyd0hpZGVFZGl0CiAgICBlbmRpZgpAQCAtMTc3NSw2ICsxNzY2LDcgQEAKICAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFUJCTo8Yy11PmNhbGwgPFNJRD5OZXRyd0Jvb2ttYXJrRGlyKDUsYjpuZXRyd19jdXJkaXIpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gdgkJOmNhbGwgPFNJRD5OZXRyd1NwbGl0KDIpPGNyPgogICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4geAkJOmNhbGwgbmV0cncjTmV0cndCcm93c2VYKDxTSUQ+TmV0cndCcm93c2VDaGdEaXIoMCw8U0lEPk5ldHJ3R2V0V29yZCgpKSwxKTxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+ICUJCTpjYWxsIDxTSUQ+TmV0cndPcGVuRmlsZSgwKTxjcj4KICAgIGlmICFoYXNtYXB0bygnPFBsdWc+TmV0cndIaWRlRWRpdCcpCiAgICAgbm1hcCA8YnVmZmVyPiA8Yy1oPiA8UGx1Zz5OZXRyd0hpZGVFZGl0CiAgICBlbmRpZgpAQCAtMTc5Nyw3ICsxNzg5LDcgQEAKICAgIGV4ZSAndm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gRAk6Y2FsbCA8U0lEPk5ldHJ3UmVtb3RlUm0oIicuczp1c2VyLnM6bWFjaGluZS4nIiwiJy5zOnBhdGguJyIpPGNyPicKICAgIGV4ZSAnbm5vcmVtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gUgk6Y2FsbCA8U0lEPk5ldHJ3UmVtb3RlUmVuYW1lKCInLnM6dXNlci5zOm1hY2hpbmUuJyIsIicuczpwYXRoLiciKTxjcj4nCiAgICBleGUgJ3Zub3JlbWFwIDxidWZmZXI+IDxzaWxlbnQ+IFIJOmNhbGwgPFNJRD5OZXRyd1JlbW90ZVJlbmFtZSgiJy5zOnVzZXIuczptYWNoaW5lLiciLCInLnM6cGF0aC4nIik8Y3I+JwotICAgbm5vcmVtYXAgPGJ1ZmZlcj4gPEYxPgkJCTpoZSBuZXRydy1icm93c2UtY21kczxjcj4KKyAgIG5ub3JlbWFwIDxidWZmZXI+IDxGMT4JCQk6aGUgbmV0cnctcXVpY2toZWxwPGNyPgogICBlbmRpZgogICBjYWxsIHM6U2V0UmV4RGlyKGE6aXNsb2NhbCxiOm5ldHJ3X2N1cmRpcikKICIgIGNhbGwgRHJldCgiczpCcm93c2VyTWFwcyIpCkBAIC0xOTIxLDggKzE5MTMsOCBAQAogICAgICBzZXRsb2NhbCBub21vZAogIiAgICAgY2FsbCBEZWNobygic2V0bG9jYWwgbm9tb2QiKQogICAgIGVuZGlmCi0iICAgIGNhbGwgRGVjaG8oImV4ZSBlISAiLmc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0pCi0gICAgZXhlICJlISAiLmc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0KKyIgICAgIiAgICBjYWxsIERlY2hvKCJleGUgZSEgIi5mbmFtZWVzY2FwZShnOk5FVFJXX0RJUkhJU1Rfe2c6TkVUUldfRElSSElTVF9DTlR9KSkKKyAgICBleGUgImUhICIuZm5hbWVlc2NhcGUoZzpORVRSV19ESVJISVNUX3tnOk5FVFJXX0RJUkhJU1RfQ05UfSkKICAgIGVsc2UKICAgICBsZXQgZzpORVRSV19ESVJISVNUX0NOVD0gKCBnOk5FVFJXX0RJUkhJU1RfQ05UICsgMSApICUgZzpuZXRyd19kaXJoaXN0bWF4CiAgICAgZWNobyAiU29ycnksIG5vIHByZWRlY2Vzc29yIGRpcmVjdG9yeSBleGlzdHMgeWV0IgpAQCAtMTk0Miw4ICsxOTM0LDggQEAKICAgICAgc2V0bG9jYWwgbm9tb2QKICIgICAgIGNhbGwgRGVjaG8oInNldGxvY2FsIG5vbW9kIikKICAgICBlbmRpZgotIiAgICBjYWxsIERlY2hvKCJleGUgZSEgIi5nOk5FVFJXX0RJUkhJU1Rfe2c6TkVUUldfRElSSElTVF9DTlR9KQotICAgIGV4ZSAiZSEgIi5nOk5FVFJXX0RJUkhJU1Rfe2c6TkVUUldfRElSSElTVF9DTlR9CisiICAgIGNhbGwgRGVjaG8oImV4ZSBlISAiLmZuYW1lZXNjYXBlKGc6TkVUUldfRElSSElTVF97ZzpORVRSV19ESVJISVNUX0NOVH0pKQorICAgIGV4ZSAiZSEgIi5mbmFtZWVzY2FwZShnOk5FVFJXX0RJUkhJU1Rfe2c6TkVUUldfRElSSElTVF9DTlR9KQogICAgZWxzZQogICAgIGxldCBnOk5FVFJXX0RJUkhJU1RfQ05UPSAoIGc6TkVUUldfRElSSElTVF9DTlQgLSAxICkgJSBnOm5ldHJ3X2Rpcmhpc3RtYXgKICAgICBpZiBnOk5FVFJXX0RJUkhJU1RfQ05UIDwgMApAQCAtMjAwOCw3ICsyMDAwLDcgQEAKIAogICBpZiBleGlzdHMoInM6bmV0cndfc2tpcGJyb3dzZSIpCiAgICB1bmxldCBzOm5ldHJ3X3NraXBicm93c2UKLSIgICBjYWxsIERlY2hvKCJybz0iLiZyby4iIG1hPSIuJm1hLiIgbW9kPSIuJm1vZC4iIHdyYXA9Ii4md3JhcCkKKyIgICBjYWxsIERlY2hvKCJybz0iLiZsOnJvLiIgbWE9Ii4mbDptYS4iIG1vZD0iLiZsOm1vZC4iIHdyYXA9Ii4mbDp3cmFwKQogIiAgIGNhbGwgRHJldCgiczpOZXRyd0Jyb3dzZSA6IHM6bmV0cndfc2tpcGJyb3dzZT0iLnM6bmV0cndfc2tpcGJyb3dzZSkKICAgIHJldHVybgogICBlbmRpZgpAQCAtMjA1NSwxMyArMjA0NywxMyBAQAogICAgc2V0bG9jYWwgbWEgbm9ybwogIiAgIGNhbGwgRGVjaG8oInNldGxvY2FsIG1hIG5vcm8iKQogICAgbGV0IGI6bmV0cndfY3VyZGlyPSBhOmRpcm5hbWUKLSIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgIi5zOm1ldGhvZC4iOi8vIi5zOnVzZXIuczptYWNoaW5lLiIvIi5mbmFtZWVzY2FwZShzOnBhdGgpLiIgKGJ0PSIuJmJ0LiIpIikKLSAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi5zOm1ldGhvZC4iOi8vIi5zOnVzZXIuczptYWNoaW5lLiIvIi5mbmFtZWVzY2FwZShzOnBhdGgpCi0gICBleGUgInNpbGVudCBrZWVwYWx0IGRvYXUgQnVmUmVhZFByZSAiLnM6Zm5hbWUKKyIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShzOm1ldGhvZC4iOi8vIi5zOnVzZXIuczptYWNoaW5lLiIvIi5zOnBhdGgpLiIgKGJ0PSIuJmJ0LiIpIikKKyAgIGV4ZSAic2lsZW50ISBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShzOm1ldGhvZC4iOi8vIi5zOnVzZXIuczptYWNoaW5lLiIvIi5zOnBhdGgpCisgICBleGUgInNpbGVudCBrZWVwYWx0IGRvYXUgQnVmUmVhZFByZSAiLmZuYW1lZXNjYXBlKHM6Zm5hbWUpCiAgICBzaWxlbnQgY2FsbCBuZXRydyNOZXRSZWFkKDIsczptZXRob2QuIjovLyIuczp1c2VyLnM6bWFjaGluZS4iLyIuczpwYXRoKQogICAgaWYgczpwYXRoICF+ICcudGFyLmJ6MiQnICYmIHM6cGF0aCAhfiAnLnRhci5neicKICAgICAiIG5ldHJ3LnZpbSBhbmQgdGFyLnZpbSBoYXZlIGFscmVhZHkgaGFuZGxlZCBkZWNvbXByZXNzaW9uIG9mIHRoZSB0YXJiYWxsOyBhdm9pZGluZyBnemlwLnZpbSBlcnJvcgotICAgIGV4ZSAic2lsZW50IGtlZXBhbHQgZG9hdSBCdWZSZWFkUG9zdCAiLnM6Zm5hbWUKKyAgICBleGUgInNpbGVudCBrZWVwYWx0IGRvYXUgQnVmUmVhZFBvc3QgIi5mbmFtZWVzY2FwZShzOmZuYW1lKQogICAgZW5kaWYKIAogICAgIiBzYXZlIGNlcnRhaW4gd2luZG93LW9yaWVudGVkIHZhcmlhYmxlcyBpbnRvIGJ1ZmZlci1vcmllbnRlZCB2YXJpYWJsZXMge3t7MwpAQCAtMjA2OSw3ICsyMDYxLDcgQEAKICAgIGNhbGwgczpOZXRyd09wdGlvblJlc3RvcmUoInc6IikKICAgIHNldGxvY2FsIG1hIG5vbW9kCiAKLSIgICBjYWxsIERlY2hvKCJybz0iLiZyby4iIG1hPSIuJm1hLiIgbW9kPSIuJm1vZC4iIHdyYXA9Ii4md3JhcCkKKyIgICBjYWxsIERlY2hvKCJybz0iLiZsOnJvLiIgbWE9Ii4mbDptYS4iIG1vZD0iLiZsOm1vZC4iIHdyYXA9Ii4mbDp3cmFwKQogIiAgIGNhbGwgRHJldCgiczpOZXRyd0Jyb3dzZSA6IGZpbGU8Ii5zOmZuYW1lLiI+IikKICAgIHJldHVybgogICBlbmRpZgpAQCAtMjA5OSw3ICsyMDkxLDcgQEAKICAgaWYgcmV1c2luZwogICAgY2FsbCBzOk5ldHJ3T3B0aW9uUmVzdG9yZSgidzoiKQogICAgc2V0bG9jYWwgbm9tYSBub21vZCBub3dyYXAKLSIgICBjYWxsIERlY2hvKCJybz0iLiZyby4iIG1hPSIuJm1hLiIgbW9kPSIuJm1vZC4iIHdyYXA9Ii4md3JhcCkKKyIgICBjYWxsIERlY2hvKCJybz0iLiZsOnJvLiIgbWE9Ii4mbDptYS4iIG1vZD0iLiZsOm1vZC4iIHdyYXA9Ii4mbDp3cmFwKQogIiAgIGNhbGwgRHJldCgiczpOZXRyd0Jyb3dzZSA6IHJlLXVzaW5nIGJ1ZmZlciIpCiAgICByZXR1cm4KICAgZW5kaWYKQEAgLTIxNTAsNyArMjE0Miw3IEBACiAgICAgICAgY2FsbCBzOk5ldHJ3T3B0aW9uUmVzdG9yZSgidzoiKQogICAgICAgIHNldGxvY2FsIG5vbWEgbm9tb2Qgbm93cmFwCiAgICAgICAgbGV0IGI6bmV0cndfY3VyZGlyPSBkaXJuYW1lCi0iICAgICAgIGNhbGwgRGVjaG8oInJvPSIuJnJvLiIgbWE9Ii4mbWEuIiBtb2Q9Ii4mbW9kLiIgd3JhcD0iLiZ3cmFwKQorIiAgICAgICBjYWxsIERlY2hvKCJybz0iLiZsOnJvLiIgbWE9Ii4mbDptYS4iIG1vZD0iLiZsOm1vZC4iIHdyYXA9Ii4mbDp3cmFwKQogIiAgICAgICBjYWxsIERyZXQoInM6TmV0cndCcm93c2UgOiByZXVzaW5nIGJ1ZmZlciMiLihleGlzdHMoImJ1Zm51bSIpPyBidWZudW0gOiAnTi9BJykuIjwiLmRpcm5hbWUuIj4gZ2V0Y3dkPCIuZ2V0Y3dkKCkuIj4iKQogICAgICAgIHJldHVybgogICAgICAgZW5kaWYKQEAgLTIxODgsNyArMjE4MCw3IEBACiAgICAgZW5kaWYKICAgICBjYWxsIHM6TmV0cndPcHRpb25SZXN0b3JlKCJ3OiIpCiAgICAgc2V0bG9jYWwgbm9tYSBub21vZCBub3dyYXAKLSIgICAgY2FsbCBEZWNobygicm89Ii4mcm8uIiBtYT0iLiZtYS4iIG1vZD0iLiZtb2QuIiB3cmFwPSIuJndyYXApCisiICAgIGNhbGwgRGVjaG8oInJvPSIuJmw6cm8uIiBtYT0iLiZsOm1hLiIgbW9kPSIuJmw6bW9kLiIgd3JhcD0iLiZsOndyYXApCiAiICAgIGNhbGwgRHJldCgiczpOZXRyd0Jyb3dzZSA6IGJhZGx5IGZvcm1hdHRlZCBkaXJuYW1lPCIuZGlybmFtZS4iPiIpCiAgICAgcmV0dXJuCiAgICBlbmRpZgpAQCAtMjIwMiw3ICsyMTk0LDcgQEAKICAgY2FsbCBzOkJyb3dzZXJNYXBzKGE6aXNsb2NhbCkKICAgY2FsbCBzOlBlcmZvcm1MaXN0aW5nKGE6aXNsb2NhbCkKIAotIiAgY2FsbCBEZWNobygicm89Ii4mcm8uIiBtYT0iLiZtYS4iIG1vZD0iLiZtb2QuIiB3cmFwPSIuJndyYXApCisiICBjYWxsIERlY2hvKCJybz0iLiZsOnJvLiIgbWE9Ii4mbDptYS4iIG1vZD0iLiZsOm1vZC4iIHdyYXA9Ii4mbDp3cmFwKQogIiAgY2FsbCBEcmV0KCJzOk5ldHJ3QnJvd3NlIDogZGlkIFBlcmZvcm1MaXN0aW5nIikKICAgcmV0dXJuCiBlbmRmdW4KQEAgLTIyOTksMTQgKzIyOTEsMTUgQEAKICAgICIgbm90ZTogIX4gd2FzIHVzZWQganVzdCBiZWxvdywgYnV0IHRoYXQgbWVhbnMgdXNpbmcgLi4vIHRvIGdvIGJhY2sgd291bGQgbWF0Y2ggKGllLiBhYmMvZGVmLyAgYW5kIGFiYy8gbWF0Y2hlcykKICAgIGlmIGJ1Zm51bSA+IDAgJiYgYnVmbmFtZShidWZudW0pICE9IGRpcm5hbWUgJiYgYnVmbmFtZShidWZudW0pICE9ICcuJwogICAgICIgaGFuZGxlIGFwcHJveGltYXRlIG1hdGNoZXMKLSIgICAgY2FsbCBEZWNobygiICBoYW5kbGluZyBhcHByb3ggbWF0Y2g6IGJ1Zm51bSMlZDwiLmJ1Zm5hbWUoYnVmbnVtKS4iPiBhcHByb3g9IGRpcm5hbWU8Ii5kaXJuYW1lLiI+IikKKyIgICAgY2FsbCBEZWNobygiICBoYW5kbGluZyBhcHByb3ggbWF0Y2g6IGJ1Zm51bSMlZDwiLmJ1Zm5hbWUoYnVmbnVtKS4iPiBhcHByb3g9ZGlybmFtZTwiLmRpcm5hbWUuIj4iKQogICAgIGxldCBpYnVmICAgID0gMQogICAgIGxldCBidWZsYXN0ID0gYnVmbnIoIiQiKQogIiAgICBjYWxsIERlY2hvKCIgIGZpbmRidWYyOiBidWZsYXN0PSIuYnVmbGFzdCkKICAgICB3aGlsZSBpYnVmIDw9IGJ1Zmxhc3QKICAgICAgbGV0IGJuYW1lPSBzdWJzdGl0dXRlKGJ1Zm5hbWUoaWJ1ZiksJ1xcJywnLycsJ2cnKQorICAgICBsZXQgYm5hbWU9IHN1YnN0aXR1dGUoYm5hbWUsJy5cenMvJCcsJycsJycpCiAiICAgICBjYWxsIERlY2hvKCIgIGZpbmRidWYzOiBkaXJuYW1lPCIuZGlybmFtZS4iPiBidWZuYW1lKCIuaWJ1Zi4iKTwiLmJuYW1lLiI+IikKLSAgICAgaWYgYm5hbWUgIT0gJycgJiYgYm5hbWUgIX4gJy8nICYmIGRpcm5hbWUgPX4gJy8nLmJuYW1lLicvXD0kJyB8IGJyZWFrIHwgZW5kaWYKKyAgICAgaWYgYm5hbWUgIT0gJycgJiYgZGlybmFtZSA9fiAnLycuYm5hbWUuJy9cPSQnIHwgYnJlYWsgfCBlbmRpZgogICAgICBpZiBibmFtZSAgID1+ICdeJy5kaXJuYW1lLicvXD0kJyB8IGJyZWFrIHwgZW5kaWYKICAgICAgaWYgZGlybmFtZSA9fiAnXicuYm5hbWUuJy8kJyAgICAgfCBicmVhayB8IGVuZGlmCiAgICAgIGxldCBpYnVmPSBpYnVmICsgMQpAQCAtMjMzNiw4ICsyMzI5LDggQEAKICAgICAgbGV0IHM6bmV0cndfdHJlZWxpc3RudW09IHM6bmV0cndfdHJlZWxpc3RudW0gKyAxCiAgICAgZW5kaWYKICAgICBsZXQgdzpuZXRyd190cmVlYnVmbnI9IGJ1Zm5yKCIlIikKLSIgICAgY2FsbCBEZWNobygiICBleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgTmV0cndUcmVlTGlzdGluZyAiLnM6bmV0cndfdHJlZWxpc3RudW0pCi0gICAgZXhlICdzaWxlbnQhIGtlZXBhbHQgZmlsZSBOZXRyd1RyZWVMaXN0aW5nXCAnLnM6bmV0cndfdHJlZWxpc3RudW0KKyIgICAgY2FsbCBEZWNobygiICBleGUgc2lsZW50ISBrZWVwYWx0IGZpbGUgTmV0cndUcmVlTGlzdGluZyAiLmZuYW1lZXNjYXBlKHM6bmV0cndfdHJlZWxpc3RudW0pKQorICAgIGV4ZSAnc2lsZW50ISBrZWVwYWx0IGZpbGUgTmV0cndUcmVlTGlzdGluZ1wgJy5mbmFtZWVzY2FwZShzOm5ldHJ3X3RyZWVsaXN0bnVtKQogICAgIG5ub3JlbWFwIDxzaWxlbnQ+IDxidWZmZXI+IFsJOnNpbGVudCBjYWxsIDxTSUQ+VHJlZUxpc3RNb3ZlKCdbJyk8Y3I+CiAgICAgbm5vcmVtYXAgPHNpbGVudD4gPGJ1ZmZlcj4gXQk6c2lsZW50IGNhbGwgPFNJRD5UcmVlTGlzdE1vdmUoJ10nKTxjcj4KICAgICBubm9yZW1hcCA8c2lsZW50PiA8YnVmZmVyPiBbWyAgICAgICA6c2lsZW50IGNhbGwgPFNJRD5UcmVlTGlzdE1vdmUoJ1snKTxjcj4KQEAgLTIzNDcsOCArMjM0MCw4IEBACiAiICAgIGxldCB2OmVycm1zZz0gIiIgIiBEZWNobwogICAgIGxldCBlc2NkaXJuYW1lPSBmbmFtZWVzY2FwZShkaXJuYW1lKQogIiAgICBjYWxsIERlY2hvKCIgIGVycm1zZzwiLnY6ZXJybXNnLiI+IGJ1Zm5yKCIuZXNjZGlybmFtZS4iKT0iLmJ1Zm5yKGVzY2Rpcm5hbWUpLiI8Ii5idWZuYW1lKGJ1Zm5yKGVzY2Rpcm5hbWUpKS4iPiIpCi0iICAgIGNhbGwgRGVjaG8oJyAgZXhlIHNpbGVudCEga2VlcGFsdCBmaWxlICcuZXNjZGlybmFtZSkKLSAgICBleGUgJ3NpbGVudCEga2VlcGFsdCBmaWxlICcuZXNjZGlybmFtZQorIiAgICBjYWxsIERlY2hvKCcgIGV4ZSBzaWxlbnQhIGtlZXBhbHQgZmlsZSAnLmZuYW1lZXNjYXBlKGVzY2Rpcm5hbWUpKQorICAgIGV4ZSAnc2lsZW50ISBrZWVwYWx0IGZpbGUgJy5mbmFtZWVzY2FwZShlc2NkaXJuYW1lKQogIiAgICBjYWxsIERlY2hvKCIgIGVycm1zZzwiLnY6ZXJybXNnLiI+IGJ1Zm5yKCIuZXNjZGlybmFtZS4iKT0iLmJ1Zm5yKGVzY2Rpcm5hbWUpLiI8Ii5idWZuYW1lKGJ1Zm5yKGVzY2Rpcm5hbWUpKS4iPiIpCiAgICBlbmRpZgogIiAgIGNhbGwgRGVjaG8oIiAgbmFtZWQgZW5ldyBidWZmZXIjIi5idWZucigiJSIpLiI8Ii5idWZuYW1lKCIlIikuIj4iKQpAQCAtMjM2NSw3ICsyMzU4LDggQEAKICAgICBleGUgImIgIi5idWZudW0KICAgIGVuZGlmCiAgICBpZiBidWZuYW1lKCIlIikgPT0gJy4nCi0gICAgZXhlICJzaWxlbnQhIGtlZXBhbHQgZmlsZSAiLmVzY2FwZShnZXRjd2QoKSwnICcpCisiICAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhIGtlZXBhbHQgZmlsZSAiLmZuYW1lZXNjYXBlKGdldGN3ZCgpKSkKKyAgICBleGUgInNpbGVudCEga2VlcGFsdCBmaWxlICIuZm5hbWVlc2NhcGUoZ2V0Y3dkKCkpCiAgICBlbmRpZgogICAgbGV0ICZlaT0gZWlrZWVwCiAgICBpZiBsaW5lKCIkIikgPD0gMQpAQCAtMjM5Myw3ICsyMzg3LDggQEAKICIgIGNhbGwgRGVjaG8oIi0tZG8gbmV0cncgc2V0dGluZ3M6IG1ha2UgdGhpcyBidWZmZXIgbm90LWEtZmlsZSwgbW9kaWZpYWJsZSwgbm90IGxpbmUtbnVtYmVyZWQsIGV0Yy0tIikKICAgbGV0IGZuYW1lPSBleHBhbmQoIiUiKQogICBjYWxsIHM6TmV0cndMaXN0U2V0dGluZ3MoYTppc2xvY2FsKQotICBleGUgImtlZXBhbHQgZmlsZSAiLmVzY2FwZShmbmFtZSwnICcpCisiICBjYWxsIERlY2hvKCJleGUga2VlcGFsdCBmaWxlICIuZm5hbWVlc2NhcGUoZm5hbWUpKQorICBleGUgImtlZXBhbHQgZmlsZSAiLmZuYW1lZXNjYXBlKGZuYW1lKQogCiAgICIgZGVsZXRlIGFsbCBsaW5lcyBmcm9tIGJ1ZmZlciB7e3szCiAiICBjYWxsIERlY2hvKCItLWRlbGV0ZSBhbGwgbGluZXMgZnJvbSBidWZmZXItLSIpCkBAIC0yNTAyLDggKzI0OTcsMTMgQEAKICAgICBub3JtISBtYQogICAgZW5kaWYKICAgIGxldCByZWdhPSBAYQotICAgY2FsbCBjdXJzb3IobGluZSgiLiIpLGZpbGVzdGFydCtiOm5ldHJ3X2NwZisxKQotICAgbm9ybSEgImF5YGEKKyAgIGxldCBlb2ZuYW1lPSBmaWxlc3RhcnQgKyBiOm5ldHJ3X2NwZiArIDEKKyAgIGlmIGVvZm5hbWUgPD0gY29sKCIkIikKKyAgICBjYWxsIGN1cnNvcihsaW5lKCIuIiksZmlsZXN0YXJ0K2I6bmV0cndfY3BmKzEpCisgICAgbm9ybSEgImF5YGEKKyAgIGVsc2UKKyAgICBub3JtISAiYXkkCisgICBlbmRpZgogICAgbGV0IGRpcm5hbWUgPSBAYQogICAgbGV0IEBhICAgICAgPSByZWdhCiAiICAgY2FsbCBEZWNobygiMjogZGlybmFtZTwiLmRpcm5hbWUuIj4iKQpAQCAtMjUyNiw5ICsyNTI2LDEwIEBACiBmdW4hIHM6TmV0cndMaXN0U2V0dGluZ3MoaXNsb2NhbCkKICIgIGNhbGwgRGZ1bmMoInM6TmV0cndMaXN0U2V0dGluZ3MoaXNsb2NhbD0iLmE6aXNsb2NhbC4iKSIpCiAgIGxldCBmbmFtZT0gYnVmbmFtZSgiJSIpCi0gIHNldGxvY2FsIGJ0PW5vZmlsZSBub2JsIG1hIG5vbnUgbm93cmFwIG5vcm8KICIgIGNhbGwgRGVjaG8oInNldGxvY2FsIGJ0PW5vZmlsZSBub2JsIG1hIG5vbnUgbm93cmFwIG5vcm8iKQotICBleGUgImtlZXBhbHQgZmlsZSAiLmVzY2FwZShmbmFtZSwnICcpCisgIHNldGxvY2FsIGJ0PW5vZmlsZSBub2JsIG1hIG5vbnUgbm93cmFwIG5vcm8KKyIgIGNhbGwgRGVjaG8oImV4ZSBrZWVwYWx0IGZpbGUgIi5mbmFtZWVzY2FwZShmbmFtZSkpCisgIGV4ZSAia2VlcGFsdCBmaWxlICIuZm5hbWVlc2NhcGUoZm5hbWUpCiAgIGlmIGc6bmV0cndfdXNlX25vc3dmCiAgICBzZXRsb2NhbCBub3N3ZgogICBlbmRpZgpAQCAtMjY0Miw3ICsyNjQzLDcgQEAKICAgICBsZXQgaGlzdGNudCAgPSBoaXN0Y250ICsgMQogICAgIGxldCBwcmlvcml0eSA9IGc6TkVUUldfRElSSElTVF9DTlQgKyBoaXN0Y250CiAgICAgaWYgZXhpc3RzKCJnOk5FVFJXX0RJUkhJU1Rfe2NudH0iKQotICAgICBsZXQgYm1kaXI9IGVzY2FwZShnOk5FVFJXX0RJUkhJU1Rfe2NudH0sJy4gJykKKyAgICAgbGV0IGJtZGlyPSBlc2NhcGUoZzpORVRSV19ESVJISVNUX3tjbnR9LCcvJj8gJykKICIgICAgIGNhbGwgRGVjaG8oJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi4zLiIucHJpb3JpdHkuIiAiLmc6TmV0cndUb3BMdmxNZW51LidIaXN0b3J5LicuYm1kaXIuJwk6ZSAnLmJtZGlyKQogICAgICBleGUgJ3NpbGVudCEgbWVudSAnLmc6TmV0cndNZW51UHJpb3JpdHkuIi4zLiIucHJpb3JpdHkuIiAiLmc6TmV0cndUb3BMdmxNZW51LidIaXN0b3J5LicuYm1kaXIuJwk6ZSAnLmJtZGlyLiJcPGNyPiIKICAgICBlbmRpZgpAQCAtMjcxOCw3ICsyNzE5LDYgQEAKICIgICBjYWxsIERlY2hvKCJoYW5kbGluZyBhIGZpbGU6IGRpcm5hbWU8Ii5kaXJuYW1lLiI+IChhOjA9Ii5hOjAuIikiKQogICAgIiB0aGlzIGxldHMgTmV0cndCcm93c2VYIGF2b2lkIHRoZSBlZGl0CiAgICBpZiBhOjAgPCAxCi0iICAgIGNhbGwgRGVjaG8oImRpcm5hbWU8Ii5kaXJuYW1lLiI+IG5ldHJ3X2NkX2VzY2FwZTwiLmc6bmV0cndfY2RfZXNjYXBlLiI+IGJyb3dzZV9zcGxpdD0iLmc6bmV0cndfYnJvd3NlX3NwbGl0KQogIiAgICBjYWxsIERlY2hvKCJzZXQgdXAgd2luZG93cyBmb3IgZWRpdGluZzwiLmZuYW1lZXNjYXBlKGRpcm5hbWUpLiI+ICBkaWRzcGxpdD0iLihleGlzdHMoInM6ZGlkc3BsaXQiKT8gczpkaWRzcGxpdCA6ICJkb2Vzbid0IGV4aXN0IikpCiAgICAgY2FsbCBzOk5ldHJ3T3B0aW9uUmVzdG9yZSgiczoiKQogICAgIGlmICFleGlzdHMoInM6ZGlkc3BsaXQiKQpAQCAtMjkwMCwxNSArMjkwMCwxMyBAQAogICBpZiBoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikKICAgIGxldCBleHRlbj0gc3Vic3RpdHV0ZShleHRlbiwnXi4qJCcsJ1xMJlxFJywnJykKICAgZW5kaWYKLSAgbGV0IGZuYW1lPSBlc2NhcGUoYTpmbmFtZSwiJSMiKQotIiAgY2FsbCBEZWNobygiZm5hbWU8Ii5mbmFtZS4iPiBhZnRlciBlc2NhcGUoKSIpCiAKICAgIiBzZWVtcyBrZGUgc3lzdGVtcyBvZnRlbiBoYXZlIGdub21lLW9wZW4gZHVlIHRvIGRlcGVuZGVuY2llcywgZXZlbiB0aG91Z2gKICAgIiBnbm9tZS1vcGVuJ3Mgc3Vic2lkaWFyeSBkaXNwbGF5IHRvb2xzIGFyZSBsYXJnZWx5IGFic2VudC4gIEtkZSBzeXN0ZW1zCiAgICIgdXN1YWxseSBoYXZlICJrZGVpbml0IiBydW5uaW5nLCB0aG91Z2guLi4gICh0bnggTWlrb2xhaiBNYWNob3dza2kpCiAgIGlmICFleGlzdHMoInM6aGFza2RlaW5pdCIpCiAgICBpZiBoYXMoInVuaXgiKQotICAgIGxldCBzOmhhc2tkZWluaXQ9IHM6U3lzdGVtKCJzeXN0ZW0iLCdwcyAtZScpID1+ICdrZGVpbml0JworICAgIGxldCBzOmhhc2tkZWluaXQ9IHN5c3RlbSgicHMgLWUiKSA9fiAna2RlaW5pdCcgCiAgICAgaWYgdjpzaGVsbF9lcnJvcgogICAgICBsZXQgczpoYXNrZGVpbml0ID0gMAogICAgIGVuZGlmCkBAIC0yOTIxLDEyICsyOTE5LDE0IEBACiAgIGlmIGE6cmVtb3RlID09IDEKICAgICIgY3JlYXRlIGEgbG9jYWwgY29weQogICAgbGV0IGZuYW1lPSBmbmFtZW1vZGlmeSh0ZW1wbmFtZSgpLCI6ciIpLiIuIi5leHRlbgotIiAgIGNhbGwgRGVjaG8oImE6cmVtb3RlPSIuYTpyZW1vdGUuIjogY3JlYXRlIGEgbG9jYWwgY29weSBvZiA8Ii5hOmZuYW1lLiI+IGFzIDwiLmZuYW1lLiI+IikKLSAgIGV4ZSAic2lsZW50IGtlZXBqdW1wcyBib3QgMW5ldyAiLmE6Zm5hbWUKKyIgICBjYWxsIERlY2hvKCJhOnJlbW90ZT0iLmE6cmVtb3RlLiI6IGNyZWF0ZSBhIGxvY2FsIGNvcHkgb2YgPCIuZm5hbWUuIj4gYXMgPCIuZm5hbWUuIj4iKQorICAgZXhlICJzaWxlbnQga2VlcGp1bXBzIGJvdCAxbmV3ICIuZm5hbWVlc2NhcGUoZm5hbWUpCiAgICBzZXRsb2NhbCBiaD1kZWxldGUKLSIgICBjYWxsIERlY2hvKCJyZWFkIDwiLmZuYW1lLiI+LCBub3cgd3JpdGluZzogZXhlIHchICIuZm5hbWUpCi0gICBleGUgInNpbGVudCEgdyEgIi5mbmFtZQorIiAgIGNhbGwgRGVjaG8oInJlYWQgPCIuZm5hbWVlc2NhcGUoZm5hbWUpLiI+LCBub3cgd3JpdGluZzogZXhlIHchICIuZm5hbWVlc2NhcGUoZm5hbWUpKQorICAgZXhlICJzaWxlbnQhIHchICIuZm5hbWVlc2NhcGUoZm5hbWUpCiAgICBxCisgIGVsc2UKKyAgIGxldCBmbmFtZT0gYTpmbmFtZQogICBlbmRpZgogIiAgY2FsbCBEZWNobygiZXh0ZW48Ii5leHRlbi4iPiAiLiJuZXRyd0ZpbGVIYW5kbGVycyNORkhfIi5leHRlbi4iKCk6ZXhpc3RzPSIuZXhpc3RzKCIqbmV0cndGaWxlSGFuZGxlcnMjTkZIXyIuZXh0ZW4pKQogCkBAIC0yOTcyLDI5ICsyOTcyLDI5IEBACiAKICAgZWxzZWlmIGV4aXN0cygiZzpuZXRyd19icm93c2V4X3ZpZXdlciIpICYmIGV4ZWN1dGFibGUodmlld2VyKQogIiAgIGNhbGwgRGVjaG8oImc6bmV0cndfYnJvd3NleF92aWV3ZXI8Ii5nOm5ldHJ3X2Jyb3dzZXhfdmlld2VyLiI+IikKLSIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ICEiLnZpZXdlci4iICIudmlld29wdC5zaGVsbGVzY2FwZShmbmFtZSkucmVkaXIpCi0gICBleGUgInNpbGVudCAhIi52aWV3ZXIuIiAiLnZpZXdvcHQuc2hlbGxlc2NhcGUoZm5hbWUpLnJlZGlyCisiICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCAhIi52aWV3ZXIuIiAiLnZpZXdvcHQuc2hlbGxlc2NhcGUoZm5hbWUsMSkucmVkaXIpCisgICBleGUgInNpbGVudCAhIi52aWV3ZXIuIiAiLnZpZXdvcHQuc2hlbGxlc2NhcGUoZm5hbWUsMSkucmVkaXIKICAgIGxldCByZXQ9IHY6c2hlbGxfZXJyb3IKIAogICBlbHNlaWYgaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luNjQiKQotIiAgIGNhbGwgRGVjaG8oJ2V4ZSBzaWxlbnQgIXN0YXJ0IHJ1bmRsbDMyIHVybC5kbGwsRmlsZVByb3RvY29sSGFuZGxlciAnLnNoZWxsZXNjYXBlKGZuYW1lKSkKLSAgIGV4ZSAnc2lsZW50ICFzdGFydCBydW5kbGwzMiB1cmwuZGxsLEZpbGVQcm90b2NvbEhhbmRsZXIgJy5zaGVsbGVzY2FwZShmbmFtZSkKKyIgICBjYWxsIERlY2hvKCdleGUgc2lsZW50ICFzdGFydCBydW5kbGwzMiB1cmwuZGxsLEZpbGVQcm90b2NvbEhhbmRsZXIgJy5zaGVsbGVzY2FwZShmbmFtZSwxKSkKKyAgIGV4ZSAnc2lsZW50ICFzdGFydCBydW5kbGwzMiB1cmwuZGxsLEZpbGVQcm90b2NvbEhhbmRsZXIgJy5zaGVsbGVzY2FwZShmbmFtZSwxKQogICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgbGV0IHJldD0gdjpzaGVsbF9lcnJvcgogCiAgIGVsc2VpZiBoYXMoInVuaXgiKSAmJiBleGVjdXRhYmxlKCJnbm9tZS1vcGVuIikgJiYgIXM6aGFza2RlaW5pdAotIiAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgIWdub21lLW9wZW4gIi5zaGVsbGVzY2FwZShmbmFtZSkuIiAiLnJlZGlyKQotICAgZXhlICJzaWxlbnQgIWdub21lLW9wZW4gIi5zaGVsbGVzY2FwZShmbmFtZSkucmVkaXIKKyIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ICFnbm9tZS1vcGVuICIuc2hlbGxlc2NhcGUoZm5hbWUsMSkuIiAiLnJlZGlyKQorICAgZXhlICJzaWxlbnQgIWdub21lLW9wZW4gIi5zaGVsbGVzY2FwZShmbmFtZSwxKS5yZWRpcgogICAgbGV0IHJldD0gdjpzaGVsbF9lcnJvcgogCiAgIGVsc2VpZiBoYXMoInVuaXgiKSAmJiBleGVjdXRhYmxlKCJrZm1jbGllbnQiKSAmJiBzOmhhc2tkZWluaXQKLSIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ICFrZm1jbGllbnQgZXhlYyAiLnNoZWxsZXNjYXBlKGZuYW1lKS4iICIucmVkaXIpCi0gICBleGUgInNpbGVudCAha2ZtY2xpZW50IGV4ZWMgIi5zaGVsbGVzY2FwZShmbmFtZSkuIiAiLnJlZGlyCisiICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCAha2ZtY2xpZW50IGV4ZWMgIi5zaGVsbGVzY2FwZShmbmFtZSwxKS4iICIucmVkaXIpCisgICBleGUgInNpbGVudCAha2ZtY2xpZW50IGV4ZWMgIi5zaGVsbGVzY2FwZShmbmFtZSwxKS4iICIucmVkaXIKICAgIGxldCByZXQ9IHY6c2hlbGxfZXJyb3IKIAogICBlbHNlaWYgaGFzKCJtYWN1bml4IikgJiYgZXhlY3V0YWJsZSgib3BlbiIpCi0iICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCAhb3BlbiAiLnNoZWxsZXNjYXBlKGZuYW1lKS4iICIucmVkaXIpCi0gICBleGUgInNpbGVudCAhb3BlbiAiLnNoZWxsZXNjYXBlKGZuYW1lKS4iICIucmVkaXIKKyIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ICFvcGVuICIuc2hlbGxlc2NhcGUoZm5hbWUsMSkuIiAiLnJlZGlyKQorICAgZXhlICJzaWxlbnQgIW9wZW4gIi5zaGVsbGVzY2FwZShmbmFtZSwxKS4iICIucmVkaXIKICAgIGxldCByZXQ9IHY6c2hlbGxfZXJyb3IKIAogICBlbHNlCkBAIC0zMDA3LDcgKzMwMDcsOCBAQAogICAgbGV0IHJldD0gbmV0cndGaWxlSGFuZGxlcnMjSW52b2tlKGV4dGVuLGZuYW1lKQogICBlbmRpZgogCi0iICByZWRyYXchCisgICIgcmVzdG9yaW5nIHJlZHJhdyEgYWZ0ZXIgZXh0ZXJuYWwgZmlsZSBoYW5kbGVycworICByZWRyYXchCiAKICAgIiBjbGVhbnVwOiByZW1vdmUgdGVtcG9yYXJ5IGZpbGUsCiAgICIgICAgICAgICAgZGVsZXRlIGN1cnJlbnQgYnVmZmVyIGlmIHN1Y2Nlc3Mgd2l0aCBoYW5kbGVyLApAQCAtMzAxNiw3ICszMDE3LDcgQEAKICAgIiAgICAgICAgICB0ZW1wb3JhcnkgZmlsZSBiZWNhdXNlIGl0IHdhc24ndCBnZXR0aW5nIHNlZW4uCiAiICBpZiBhOnJlbW90ZSA9PSAxICYmIGZuYW1lICE9IGE6Zm5hbWUKICIgICBjYWxsIERlY2hvKCJkZWxldGluZyB0ZW1wb3JhcnkgZmlsZTwiLmZuYW1lLiI+IikKLSIgICBjYWxsIHM6U3lzdGVtKCJkZWxldGUiLGZuYW1lKQorIiAgIGNhbGwgczpOZXRyd0RlbGV0ZShmbmFtZSkKICIgIGVuZGlmCiAKICAgaWYgYTpyZW1vdGUgPT0gMQpAQCAtMzY1Miw4ICszNjUzLDggQEAKICAgICBsZXQgbmV0cndfb3JpZ2Rpcj0gczpOZXRyd0dldGN3ZCgxKQogICAgIGV4ZSAna2VlcGp1bXBzIGxjZCAnLmZuYW1lZXNjYXBlKGI6bmV0cndfY3VyZGlyKQogIiAgICBjYWxsIERlY2hvKCJuZXRyd19vcmlnZGlyPCIubmV0cndfb3JpZ2Rpci4iPjogbGNkIGI6bmV0cndfY3VyZGlyPCIuZm5hbWVlc2NhcGUoYjpuZXRyd19jdXJkaXIpLiI+IikKLSIgICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCEgISIuZzpuZXRyd19sb2NhbF9ta2Rpci4nICcuc2hlbGxlc2NhcGUobmV3ZGlybmFtZSkpCi0gICAgZXhlICJzaWxlbnQhICEiLmc6bmV0cndfbG9jYWxfbWtkaXIuJyAnLnNoZWxsZXNjYXBlKG5ld2Rpcm5hbWUpCisiICAgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQhICEiLmc6bmV0cndfbG9jYWxfbWtkaXIuJyAnLnNoZWxsZXNjYXBlKG5ld2Rpcm5hbWUsMSkpCisgICAgZXhlICJzaWxlbnQhICEiLmc6bmV0cndfbG9jYWxfbWtkaXIuJyAnLnNoZWxsZXNjYXBlKG5ld2Rpcm5hbWUsMSkKICAgICBpZiAhZzpuZXRyd19rZWVwZGlyCiAgICAgIGV4ZSAna2VlcGp1bXBzIGxjZCAnLmZuYW1lZXNjYXBlKG5ldHJ3X29yaWdkaXIpCiAiICAgICBjYWxsIERlY2hvKCJuZXRyd19rZWVwZGlyPSIuZzpuZXRyd19rZWVwZGlyLiI6IGtlZXBqdW1wcyBsY2QgIi5mbmFtZWVzY2FwZShuZXRyd19vcmlnZGlyKS4iIGdldGN3ZDwiLmdldGN3ZCgpLiI+IikKQEAgLTM2NzYsOCArMzY3Nyw4IEBACiAiICAgY2FsbCBEZWNobygicmVtb3RlIG1rZGlyIikKICAgIGxldCBta2RpcmNtZCAgPSBzOk1ha2VTc2hDbWQoZzpuZXRyd19ta2Rpcl9jbWQpCiAgICBsZXQgbmV3ZGlybmFtZT0gc3Vic3RpdHV0ZShiOm5ldHJ3X2N1cmRpciwnXlwlKC5cey19L1wpXHszfVwoLipcKSQnLCdcMScsJycpLm5ld2Rpcm5hbWUKLSIgICBjYWxsIERlY2hvKCJleGUgc2lsZW50ISAhIi5ta2RpcmNtZC4iICIuc2hlbGxlc2NhcGUobmV3ZGlybmFtZSkpCi0gICBleGUgInNpbGVudCEgISIubWtkaXJjbWQuIiAiLnNoZWxsZXNjYXBlKG5ld2Rpcm5hbWUpCisiICAgY2FsbCBEZWNobygiZXhlIHNpbGVudCEgISIubWtkaXJjbWQuIiAiLnNoZWxsZXNjYXBlKG5ld2Rpcm5hbWUsMSkpCisgICBleGUgInNpbGVudCEgISIubWtkaXJjbWQuIiAiLnNoZWxsZXNjYXBlKG5ld2Rpcm5hbWUsMSkKICAgIGlmIHY6c2hlbGxfZXJyb3IgPT0gMAogICAgICIgcmVmcmVzaCBsaXN0aW5nCiAgICAgbGV0IHN2cG9zPSBuZXRydyNOZXRyd1NhdmVQb3NuKCkKQEAgLTM4MTgsMTQgKzM4MTksMTQgQEAKICAgICBmb3Igc2Z4IGluIHNvcnQoa2V5cyhnOm5ldHJ3X2RlY29tcHJlc3MpKQogICAgICBpZiBmbmFtZSA9fiAnXCcuc2Z4LickJwogICAgICAgIiBmbmFtZSBoYXMgYSBzdWZmaXggaW5kaWNhdGluZyB0aGF0IGl0cyBjb21wcmVzc2VkOyBhcHBseSBhc3NvY2lhdGVkIGRlY29tcHJlc3Npb24gcm91dGluZQotICAgICAgbGV0IGV4ZT0gZzpuZXRyd19kZWNvbXByZXNzW3NmeF0KKyAgICAgIGxldCBleGU9IHM6V2luUGF0aChnOm5ldHJ3X2RlY29tcHJlc3Nbc2Z4XSkKICIgICAgICBjYWxsIERlY2hvKCJmbmFtZTwiLmZuYW1lLiI+IGlzIGNvbXByZXNzZWQgc28gZGVjb21wcmVzcyB3aXRoIDwiLmV4ZS4iPiIpCiAgICAgICBpZiBhOmlzbG9jYWwKICAgICAgICBpZiBnOm5ldHJ3X2tlZXBkaXIKLSAgICAgICAgbGV0IGZuYW1lPSBzOkNvbXBvc2VQYXRoKGN1cmRpcixmbmFtZSkKKyAgICAgICAgbGV0IGZuYW1lPSBzaGVsbGVzY2FwZShzOkNvbXBvc2VQYXRoKGN1cmRpcixmbmFtZSkpCiAgICAgICAgZW5kaWYKICAgICAgIGVsc2UKLSAgICAgICBsZXQgZm5hbWU9IGI6bmV0cndfY3VyZGlyLmZuYW1lCisgICAgICAgbGV0IGZuYW1lPSBzaGVsbGVzY2FwZShiOm5ldHJ3X2N1cmRpci5mbmFtZSkKICAgICAgIGVuZGlmCiAgICAgICBpZiBleGVjdXRhYmxlKGV4ZSkKICAgICAgICBpZiBhOmlzbG9jYWwKQEAgLTM4NDMsMTAgKzM4NDQsMTAgQEAKICAgICAgdW5sZXQgZXhlCiAgICAgZWxzZWlmIGE6aXNsb2NhbAogICAgICAiIGZuYW1lIG5vdCBhIGNvbXByZXNzZWQgZmlsZSwgc28gY29tcHJlc3MgaXQKLSAgICAgY2FsbCBzeXN0ZW0oZzpuZXRyd19jb21wcmVzcy4iICIuczpDb21wb3NlUGF0aChiOm5ldHJ3X2N1cmRpcixmbmFtZSkpCisgICAgIGNhbGwgc3lzdGVtKHM6V2luUGF0aChnOm5ldHJ3X2NvbXByZXNzKS4iICIuc2hlbGxlc2NhcGUoczpDb21wb3NlUGF0aChiOm5ldHJ3X2N1cmRpcixmbmFtZSkpKQogICAgIGVsc2UKICAgICAgIiBmbmFtZSBub3QgYSBjb21wcmVzc2VkIGZpbGUsIHNvIGNvbXByZXNzIGl0Ci0gICAgIGNhbGwgczpSZW1vdGVTeXN0ZW0oZzpuZXRyd19jb21wcmVzcy4iICIuZm5hbWUpCisgICAgIGNhbGwgczpSZW1vdGVTeXN0ZW0oczpXaW5QYXRoKGc6bmV0cndfY29tcHJlc3MpLiIgIi5zaGVsbGVzY2FwZShmbmFtZSkpCiAgICAgZW5kaWYKICAgIGVuZGZvcgogICAgY2FsbCBzOk5ldHJ3VW5tYXJrTGlzdChjdXJidWZucixjdXJkaXIpCkBAIC0zODg3LDcgKzM4ODgsNyBAQAogIiAgIGNhbGwgRGVjaG8oImNvcHkgZnJvbSBsb2NhbCB0byBsb2NhbCIpCiAgICBsZXQgYXJncz0gam9pbihtYXAoY29weShzOm5ldHJ3bWFya2ZpbGVsaXN0X3tidWZucignJScpfSksImI6bmV0cndfY3VyZGlyLlwiL1wiLnNoZWxsZXNjYXBlKHY6dmFsKSIpKQogIiAgIGNhbGwgRGVjaG8oInN5c3RlbSgiLmc6bmV0cndfbG9jYWxjb3B5Y21kLiIgIi5hcmdzLiIgIi5zaGVsbGVzY2FwZShzOm5ldHJ3bWZ0Z3QpLiIpIikKLSAgIGNhbGwgc3lzdGVtKGc6bmV0cndfbG9jYWxjb3B5Y21kLiIgIi5hcmdzLiIgIi5zaGVsbGVzY2FwZShzOm5ldHJ3bWZ0Z3QpKQorICAgY2FsbCBzeXN0ZW0oczpXaW5QYXRoKGc6bmV0cndfbG9jYWxjb3B5Y21kKS4iICIuYXJncy4iICIuc2hlbGxlc2NhcGUoczpuZXRyd21mdGd0KSkKIAogICBlbHNlaWYgIGE6aXNsb2NhbCAmJiAhczpuZXRyd21mdGd0X2lzbG9jYWwKICAgICIgQ29weSBtYXJrZWQgZmlsZXMsIGxvY2FsIGRpcmVjdG9yeSB0byByZW1vdGUgZGlyZWN0b3J5CkBAIC0zOTA4LDcgKzM5MDksNyBAQAogICAgaWYgZXhpc3RzKCIqbWtkaXIiKQogICAgIGNhbGwgbWtkaXIodG1wZGlyKQogICAgZWxzZQotICAgIGV4ZSAic2lsZW50ISAhIi5nOm5ldHJ3X2xvY2FsX21rZGlyLicgJy5zaGVsbGVzY2FwZSh0bXBkaXIpCisgICAgZXhlICJzaWxlbnQhICEiLmc6bmV0cndfbG9jYWxfbWtkaXIuJyAnLnNoZWxsZXNjYXBlKHRtcGRpciwxKQogICAgZW5kaWYKICAgIGlmIGlzZGlyZWN0b3J5KHRtcGRpcikKICAgICBleGUgImtlZXBqdW1wcyBsY2QgIi5mbmFtZWVzY2FwZSh0bXBkaXIpCkBAIC0zOTE3LDEwICszOTE4LDEwIEBACiAgICAgY2FsbCBzOk5ldHJ3VXBsb2FkKGxvY2FsZmlsZXMsczpuZXRyd21mdGd0KQogICAgIGlmIGdldGN3ZCgpID09IHRtcGRpcgogICAgICBmb3IgZm5hbWUgaW4gczpuZXRyd21hcmtmaWxlbGlzdF97YnVmbnIoJyUnKX0KLSAgICAgIGNhbGwgczpTeXN0ZW0oImRlbGV0ZSIsZm5hbWUpCisgICAgICBjYWxsIHM6TmV0cndEZWxldGUoZm5hbWUpCiAgICAgIGVuZGZvcgogICAgICBleGUgImtlZXBqdW1wcyBsY2QgIi5mbmFtZWVzY2FwZShjdXJkaXIpCi0gICAgIGV4ZSAic2lsZW50ICEiLmc6bmV0cndfbG9jYWxfcm1kaXIuIiAiLmZuYW1lZXNjYXBlKHRtcGRpcikKKyAgICAgZXhlICJzaWxlbnQgISIuZzpuZXRyd19sb2NhbF9ybWRpci4iICIuc2hlbGxlc2NhcGUodG1wZGlyLDEpCiAgICAgZWxzZQogICAgICBleGUgImtlZXBqdW1wcyBsY2QgIi5mbmFtZWVzY2FwZShjdXJkaXIpCiAgICAgZW5kaWYKQEAgLTQwMzYsMTAgKzQwMzcsMTAgQEAKICAgIGZvciBmbmFtZSBpbiBzOm5ldHJ3bWFya2ZpbGVsaXN0X3tjdXJidWZucn0KICAgICBpZiBhOmlzbG9jYWwKICAgICAgaWYgZzpuZXRyd19rZWVwZGlyCi0gICAgICBsZXQgZm5hbWU9IHM6Q29tcG9zZVBhdGgoY3VyZGlyLGZuYW1lKQorICAgICAgbGV0IGZuYW1lPSBzaGVsbGVzY2FwZShzOldpblBhdGgoczpDb21wb3NlUGF0aChjdXJkaXIsZm5hbWUpKSkKICAgICAgZW5kaWYKICAgICBlbHNlCi0gICAgIGxldCBmbmFtZT0gYjpuZXRyd19jdXJkaXIuZm5hbWUKKyAgICAgbGV0IGZuYW1lPSBzaGVsbGVzY2FwZShzOldpblBhdGgoYjpuZXRyd19jdXJkaXIuZm5hbWUpKQogICAgIGVuZGlmCiAgICAgaWYgY21kID1+ICclJwogICAgICBsZXQgeGNtZD0gc3Vic3RpdHV0ZShjbWQsJyUnLGZuYW1lLCdnJykKQEAgLTQzOTksOCArNDQwMCw4IEBACiAgICAgIGxldCBmbmFtZT0gY3VyZGlyLmZuYW1lCiAgICAgZW5kaWYKICAgICAiIHRoZSBhdXRvY21kcyB3aWxsIGhhbmRsZSBzb3VyY2luZyBib3RoIGxvY2FsIGFuZCByZW1vdGUgZmlsZXMKLSIgICAgY2FsbCBEZWNobygiZXhlIHNvICIuZXNjYXBlKGZuYW1lLCcgJykpCi0gICAgZXhlICJzbyAiLmVzY2FwZShmbmFtZSwnICcpCisiICAgIGNhbGwgRGVjaG8oImV4ZSBzbyAiLmZuYW1lZXNjYXBlKGZuYW1lKSkKKyAgICBleGUgInNvICIuZm5hbWVlc2NhcGUoZm5hbWUpCiAgICBlbmRmb3IKICAgIDJtYXRjaCBub25lCiAgIGVuZGlmCkBAIC00NDM5LDcgKzQ0NDAsNyBAQAogICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6RVJST1IsImc6bmV0cndfY3RhZ3M8Ii5nOm5ldHJ3X2N0YWdzLiI+IGlzIG5vdCBleGVjdXRhYmxlISIsNTEpCiAgICAgZW5kaWYKICAgIGVsc2UKLSAgICBsZXQgY21kPSBzOlJlbW90ZVN5c3RlbShnOm5ldHJ3X2N0YWdzLiIgIi5uZXRyd21hcmtmaWxlbGlzdCkKKyAgICBsZXQgY21kICAgPSBzOlJlbW90ZVN5c3RlbShnOm5ldHJ3X2N0YWdzLiIgIi5uZXRyd21hcmtmaWxlbGlzdCkKICAgICBjYWxsIG5ldHJ3I05ldHJ3T2J0YWluKGE6aXNsb2NhbCwidGFncyIpCiAgICAgbGV0IGN1cmRpcj0gYjpuZXRyd19jdXJkaXIKICAgICAxc3BsaXQKQEAgLTQ1MTksNiArNDUyMCwzNiBAQAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIHM6TmV0cndPcGVuRmlsZTogcXVlcnkgdXNlciBmb3IgYSBmaWxlbmFtZSBhbmQgb3BlbiBpdCB7e3syCitmdW4hIHM6TmV0cndPcGVuRmlsZShpc2xvY2FsKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd09wZW5GaWxlKGlzbG9jYWw9Ii5hOmlzbG9jYWwuIikiKQorICBjYWxsIGlucHV0c2F2ZSgpCisgIGxldCBmbmFtZT0gaW5wdXQoIkVudGVyIGZpbGVuYW1lOiAiKQorICBjYWxsIGlucHV0cmVzdG9yZSgpCisgIGlmIGZuYW1lICF+ICdbL1xcXScKKyAgIGlmIGV4aXN0cygiYjpuZXRyd19jdXJkaXIiKQorICAgIGlmIGV4aXN0cygiZzpuZXRyd19xdWlldCIpCisgICAgIGxldCBuZXRyd19xdWlldF9rZWVwID0gZzpuZXRyd19xdWlldAorICAgIGVuZGlmCisgICAgbGV0IGc6bmV0cndfcXVpZXQgICAgPSAxCisgICAgaWYgYjpuZXRyd19jdXJkaXIgPX4gJy8kJworICAgICBleGUgImUgIi5mbmFtZWVzY2FwZShiOm5ldHJ3X2N1cmRpci5mbmFtZSkKKyAgICBlbHNlCisgICAgIGV4ZSAiZSAiLmZuYW1lZXNjYXBlKGI6bmV0cndfY3VyZGlyLiIvIi5mbmFtZSkKKyAgICBlbmRpZgorICAgIGlmIGV4aXN0cygibmV0cndfcXVpZXRfa2VlcCIpCisgICAgIGxldCBnOm5ldHJ3X3F1aWV0PSBuZXRyd19xdWlldF9rZWVwCisgICAgZWxzZQorICAgICB1bmxldCBnOm5ldHJ3X3F1aWV0CisgICAgZW5kaWYKKyAgIGVuZGlmCisgIGVsc2UKKyAgIGV4ZSAiZSAiLmZuYW1lZXNjYXBlKGZuYW1lKQorICBlbmRpZgorIiAgY2FsbCBEcmV0KCJzOk5ldHJ3T3BlbkZpbGUiKQorZW5kZnVuCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIHM6TmV0cndVbm1hcmtMaXN0OiBkZWxldGUgbG9jYWwgbWFya2VkIGZpbGUgbGlzdHMgYW5kIHJlbW92ZSB0aGVpciBjb250ZW50cyBmcm9tIHRoZSBnbG9iYWwgbWFya2VkLWZpbGUgbGlzdCB7e3syCiBmdW4hIHM6TmV0cndVbm1hcmtMaXN0KGN1cmJ1Zm5yLGN1cmRpcikKICIgIGNhbGwgRGZ1bmMoInM6TmV0cndVbm1hcmtMaXN0KGN1cmJ1Zm5yPSIuYTpjdXJidWZuci4iIGN1cmRpcjwiLmE6Y3VyZGlyLiI+KSIpCkBAIC00NzM1LDggKzQ3NjYsOCBAQAogICAgIGlmIChoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikpCiAgICAgICIgdHJhbnNmZXIgZmlsZXMgb25lIGF0IHRpbWUKICAgICAgZm9yIGZuYW1lIGluIGZuYW1lbGlzdAotIiAgICAgIGNhbGwgRGVjaG8oInN5c3RlbSgiLmc6bmV0cndfbG9jYWxjb3B5Y21kLiIgIi5mbmFtZS4iICIuc2hlbGxlc2NhcGUodG9wYXRoKS4iKSIpCi0gICAgICBjYWxsIHN5c3RlbShnOm5ldHJ3X2xvY2FsY29weWNtZC4iICIuZm5hbWUuIiAiLnNoZWxsZXNjYXBlKHRvcGF0aCkpCisiICAgICAgY2FsbCBEZWNobygic3lzdGVtKCIuZzpuZXRyd19sb2NhbGNvcHljbWQuIiAiLnNoZWxsZXNjYXBlKGZuYW1lKS4iICIuc2hlbGxlc2NhcGUodG9wYXRoKS4iKSIpCisgICAgICBjYWxsIHN5c3RlbShnOm5ldHJ3X2xvY2FsY29weWNtZC4iICIuc2hlbGxlc2NhcGUoZm5hbWUpLiIgIi5zaGVsbGVzY2FwZSh0b3BhdGgpKQogICAgICBlbmRmb3IKICAgICBlbHNlCiAgICAgICIgdHJhbnNmZXIgZmlsZXMgd2l0aCBvbmUgY29tbWFuZApAQCAtNDc3MCw5ICs0ODAxLDkgQEAKICAgICBlbHNlCiAgICAgIGxldCBwYXRoPSAiIgogICAgIGVuZGlmCi0gICAgbGV0IGZpbGVsaXN0PSBqb2luKG1hcChjb3B5KGZuYW1lbGlzdCksJ3NoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZS4iOiIuZXNjYXBlKHBhdGgudjp2YWwsZzpuZXRyd19mbmFtZV9lc2NhcGUpKScpKQotIiAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfc2NwX2NtZC51c2Vwb3J0LiIgIi5maWxlbGlzdC4iICIuc2hlbGxlc2NhcGUodGd0ZGlyKSkKLSAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3NjcF9jbWQudXNlcG9ydC4iICIuZmlsZWxpc3QuIiAiLnNoZWxsZXNjYXBlKHRndGRpcikKKyAgICBsZXQgZmlsZWxpc3Q9IGpvaW4obWFwKGNvcHkoZm5hbWVsaXN0KSwnc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLiI6Ii5wYXRoLnY6dmFsLDEpKScpKQorIiAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfc2NwX2NtZC5zaGVsbGVzY2FwZSh1c2Vwb3J0LDEpLiIgIi5maWxlbGlzdC4iICIuc2hlbGxlc2NhcGUodGd0ZGlyLDEpKQorICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiEiLmc6bmV0cndfc2NwX2NtZC5zaGVsbGVzY2FwZSh1c2Vwb3J0LDEpLiIgIi5maWxlbGlzdC4iICIuc2hlbGxlc2NhcGUodGd0ZGlyLDEpCiAKICAgIGVsc2VpZiBiOm5ldHJ3X21ldGhvZCA9PSAyCiAgICAgIiBvYnRhaW4gZmlsZSB1c2luZyBmdHAgKyAubmV0cmMKQEAgLTQ3OTksMTEgKzQ4MzAsMTEgQEAKICIgICAgICBjYWxsIERlY2hvKCJmaWx0ZXIgaW5wdXQ6ICIuZ2V0bGluZSgnJCcpKQogICAgICBlbmRmb3IKICAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSIgICAgICBjYWxsIERlY2hvKCJleGVjdXRpbmc6ICUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLmc6bmV0cndfbWFjaGluZS4iICIuZzpuZXRyd19wb3J0KQotICAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lLiIgIi5nOm5ldHJ3X3BvcnQKKyIgICAgICBjYWxsIERlY2hvKCJleGVjdXRpbmc6ICUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLnNoZWxsZXNjYXBlKGc6bmV0cndfbWFjaGluZSwxKS4iICIuc2hlbGxlc2NhcGUoZzpuZXRyd19wb3J0LDEpKQorICAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLDEpLiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X3BvcnQsMSkKICAgICAgZWxzZQotIiAgICAgIGNhbGwgRGVjaG8oImV4ZWN1dGluZzogJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lKQotICAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lCisiICAgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUsMSkpCisgICAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUsMSkKICAgICAgZW5kaWYKICAgICAgIiBJZiB0aGUgcmVzdWx0IG9mIHRoZSBmdHAgb3BlcmF0aW9uIGlzbid0IGJsYW5rLCBzaG93IGFuIGVycm9yIG1lc3NhZ2UgKHRueCB0byBEb3VnIENsYWFyKQogICAgICBpZiBnZXRsaW5lKDEpICF+ICJeJCIgJiYgIWV4aXN0cygiZzpuZXRyd19xdWlldCIpICYmIGdldGxpbmUoMSkgIX4gJ15UcnlpbmcgJwpAQCAtNTAyOSwxMiArNTA2MCwxMSBAQAogICAgaWYgYTp0Z3QgPX4gJy8kJwogICAgIGxldCB3Zm5hbWU9IHN1YnN0aXR1dGUoYTpmbmFtZSwnXi4qLycsJycsJycpCiAgICAgbGV0IHdmbmFtZT0gZXNjYXBlKGE6dGd0LndmbmFtZSxnOm5ldHJ3X2ZuYW1lX2VzY2FwZSkKLSIgICAgY2FsbCBEZWNobygiZXhlIHchICIud2ZuYW1lKQotICAgIGV4ZSAidyEgIi53Zm5hbWUKKyIgICAgY2FsbCBEZWNobygiZXhlIHchICIuZm5hbWVlc2NhcGUod2ZuYW1lKSkKKyAgICBleGUgInchICIuZm5hbWVlc2NhcGUod2ZuYW1lKQogICAgZWxzZQotICAgIGxldCB3Zm5hbWU9IGVzY2FwZShhOnRndCxnOm5ldHJ3X2ZuYW1lX2VzY2FwZSkKLSIgICAgY2FsbCBEZWNobygid3JpdGluZyBsb2NhbC0+cmVtb3RlOiBleGUgdyAiLndmbmFtZSkKLSAgICBleGUgIncgIi53Zm5hbWUKKyIgICAgY2FsbCBEZWNobygid3JpdGluZyBsb2NhbC0+cmVtb3RlOiBleGUgdyAiLmZuYW1lZXNjYXBlKGE6dGd0KSkKKyAgICBleGUgIncgIi5mbmFtZWVzY2FwZShhOnRndCkKICIgICAgY2FsbCBEZWNobygiZG9uZSB3cml0aW5nIGxvY2FsLT5yZW1vdGUiKQogICAgZW5kaWYKICAgIHEhCkBAIC01MDU0LDggKzUwODQsOCBAQAogICAgIGVuZGlmCiAgICAgbGV0IG1hY2hpbmUgPSBzdWJzdGl0dXRlKGE6dGd0LCdec2NwOi8vXChbXi86XVwrXCkuKiQnLCdcMScsJycpCiAgICAgbGV0IHRndCAgICAgPSBzdWJzdGl0dXRlKGE6dGd0LCdec2NwOi8vW14vXVwrL1woLipcKSQnLCdcMScsJycpCi0iICAgIGNhbGwgRGVjaG8oImV4ZSAiLnM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19zY3BfY21kLnVzZXBvcnQuIiAiLmFyZ3MuIiAiLnNoZWxsZXNjYXBlKG1hY2hpbmUuIjoiLmVzY2FwZSh0Z3QsZzpuZXRyd19mbmFtZV9lc2NhcGUpKSkKLSAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3NjcF9jbWQudXNlcG9ydC4iICIuYXJncy4iICIuc2hlbGxlc2NhcGUobWFjaGluZS4iOiIuZXNjYXBlKHRndCxnOm5ldHJ3X2ZuYW1lX2VzY2FwZSkpCisiICAgIGNhbGwgRGVjaG8oImV4ZSAiLnM6bmV0cndfc2lsZW50eGZlci4iISIuZzpuZXRyd19zY3BfY21kLnNoZWxsZXNjYXBlKHVzZXBvcnQsMSkuIiAiLmFyZ3MuIiAiLnNoZWxsZXNjYXBlKG1hY2hpbmUuIjoiLnRndCwxKSkKKyAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIhIi5nOm5ldHJ3X3NjcF9jbWQuc2hlbGxlc2NhcGUodXNlcG9ydCwxKS4iICIuYXJncy4iICIuc2hlbGxlc2NhcGUobWFjaGluZS4iOiIudGd0LDEpCiAgICAgZXhlICJrZWVwanVtcHMgc2lsZW50IGxjZCAiLmZuYW1lZXNjYXBlKGN1cmRpcikKIAogICAgZWxzZWlmIGE6dGd0ID1+ICdeZnRwOicKQEAgLTUwODcsMTIgKzUxMTcsMTIgQEAKICAgICAgZW5kZm9yCiAKICAgICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSIgICAgICBjYWxsIERlY2hvKCJleGVjdXRpbmc6ICIuczpuZXRyd19zaWxlbnR4ZmVyLiIlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgIi5nOm5ldHJ3X21hY2hpbmUuIiAiLmc6bmV0cndfcG9ydCkKLSAgICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiUhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLmc6bmV0cndfbWFjaGluZS4iICIuZzpuZXRyd19wb3J0CisiICAgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAiLnM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLDEpLiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X3BvcnQsMSkpCisgICAgICBleGUgczpuZXRyd19zaWxlbnR4ZmVyLiIlISIuZzpuZXRyd19mdHBfY21kLiIgLWkgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUsMSkuIiAiLnNoZWxsZXNjYXBlKGc6bmV0cndfcG9ydCwxKQogICAgICBlbHNlCiAiICAgICAgY2FsbCBEZWNobygiZmlsdGVyIGlucHV0IHdpbmRvdyMiLndpbm5yKCkpCi0iICAgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAiLnM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lKQotICAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lCisiICAgICAgY2FsbCBEZWNobygiZXhlY3V0aW5nOiAiLnM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLDEpKQorICAgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iJSEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLDEpCiAgICAgIGVuZGlmCiAgICAgICIgSWYgdGhlIHJlc3VsdCBvZiB0aGUgZnRwIG9wZXJhdGlvbiBpc24ndCBibGFuaywgc2hvdyBhbiBlcnJvciBtZXNzYWdlICh0bnggdG8gRG91ZyBDbGFhcikKICAgICAgc2lsZW50IGcvTG9jYWwgZGlyZWN0b3J5IG5vdy9kCkBAIC01Nzk0LDEwICs1ODI0LDEwIEBACiAiICAgICAgY2FsbCBEZWNobygiZzpuZXRyd19zb3J0X2RpcmVjdGlvbj0iLmc6bmV0cndfc29ydF9kaXJlY3Rpb24uIiAoYmFubmVyY250PSIudzpuZXRyd19iYW5uZXJjbnQuIikiKQogICAgICAgaWYgZzpuZXRyd19zb3J0X2RpcmVjdGlvbiA9fiAnbicKICAgICAgICAiIG5vcm1hbCBkaXJlY3Rpb24gc29ydGluZwotICAgICAgIGV4ZSAnc2lsZW50IGtlZXBqdW1wcyAnLnc6bmV0cndfYmFubmVyY250LicsJHNvcnQnCisgICAgICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkc29ydCcuJyAnLmc6bmV0cndfc29ydF9vcHRpb25zCiAgICAgICBlbHNlCiAgICAgICAgIiByZXZlcnNlIGRpcmVjdGlvbiBzb3J0aW5nCi0gICAgICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkc29ydCEnCisgICAgICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkc29ydCEnLicgJy5nOm5ldHJ3X3NvcnRfb3B0aW9ucwogICAgICAgZW5kaWYKICAgICAgZW5kaWYKICAgICAgIiByZW1vdmUgcHJpb3JpdHkgcGF0dGVybiBwcmVmaXgKQEAgLTU4MTAsMTAgKzU4NDAsMTAgQEAKICIgICAgICBjYWxsIERlY2hvKCJnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uPSIuZzpuZXRyd19zb3J0X2RpcmVjdGlvbikKICAgICAgIGlmIGc6bmV0cndfc29ydF9kaXJlY3Rpb24gPX4gJ24nCiAiICAgICAgIGNhbGwgRGVjaG8oJ2V4ZSBzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkc29ydCcpCi0gICAgICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkc29ydCcKKyAgICAgICBleGUgJ3NpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzb3J0Jy4nICcuZzpuZXRyd19zb3J0X29wdGlvbnMKICAgICAgIGVsc2UKICIgICAgICAgY2FsbCBEZWNobygnZXhlIHNpbGVudCBrZWVwanVtcHMgJy53Om5ldHJ3X2Jhbm5lcmNudC4nLCRzb3J0IScpCi0gICAgICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkc29ydCEnCisgICAgICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkc29ydCEnLicgJy5nOm5ldHJ3X3NvcnRfb3B0aW9ucwogICAgICAgZW5kaWYKICAgICAgZW5kaWYKICAgICAgZXhlICdzaWxlbnQga2VlcGp1bXBzICcudzpuZXRyd19iYW5uZXJjbnQuJywkcy9eXGRcey19XC8vL2UnCkBAIC01OTk3LDggKzYwMjcsOCBAQAogICAgbGV0IGxpc3RjbWQ9IHM6TWFrZVNzaENtZChnOm5ldHJ3X2xpc3RfY21kKQogIiAgIGNhbGwgRGVjaG8oImxpc3RjbWQ8Ii5saXN0Y21kLiI+ICh1c2luZyBnOm5ldHJ3X2xpc3RfY21kKSIpCiAgICBpZiBnOm5ldHJ3X3NjcF9jbWQgPX4gJ15wc2NwJwotIiAgICBjYWxsIERlY2hvKCIxOiBleGUgc2lsZW50IHIhICIubGlzdGNtZC5zaGVsbGVzY2FwZShzOnBhdGgpKQotICAgIGV4ZSAic2lsZW50IHIhICIubGlzdGNtZC5zaGVsbGVzY2FwZShzOnBhdGgpCisiICAgIGNhbGwgRGVjaG8oIjE6IGV4ZSBzaWxlbnQgciEgIi5saXN0Y21kLnM6cGF0aCkKKyAgICBleGUgInNpbGVudCByISAiLmxpc3RjbWQuczpwYXRoCiAgICAgIiByZW1vdmUgcnViYmlzaCBhbmQgYWRqdXN0IGxpc3RpbmcgZm9ybWF0IG9mICdwc2NwJyB0byAnc3NoIGxzIC1GTGEnIGxpa2UKICAgICBnL15MaXN0aW5nIGRpcmVjdG9yeS9kCiAgICAgZy9eZFstcnd4XVstcnd4XVstcnd4XS9zKyQrLytlCkBAIC02MDExLDggKzYwNDEsOCBAQAogIiAgICAgY2FsbCBEZWNobygiMjogZXhlIHNpbGVudCByISAiLmxpc3RjbWQpCiAgICAgIGV4ZSAic2lsZW50IHIhICIubGlzdGNtZAogICAgIGVsc2UKLSIgICAgIGNhbGwgRGVjaG8oIjM6IGV4ZSBzaWxlbnQgciEgIi5saXN0Y21kLicgIicuc2hlbGxlc2NhcGUoczpwYXRoKS4nIicpCi0gICAgIGV4ZSAic2lsZW50IHIhICIubGlzdGNtZC4nICInLnNoZWxsZXNjYXBlKHM6cGF0aCkuJyInCisiICAgICBjYWxsIERlY2hvKCIzOiBleGUgc2lsZW50IHIhICIubGlzdGNtZC4nICcuc2hlbGxlc2NhcGUoczpwYXRoLDEpKQorICAgICBleGUgInNpbGVudCByISAiLmxpc3RjbWQuJyAnLnNoZWxsZXNjYXBlKHM6cGF0aCwxKQogIiAgICAgY2FsbCBEZWNobygibGlzdGNtZDwiLmxpc3RjbWQuIj4gcGF0aDwiLnM6cGF0aC4iPiIpCiAgICAgZW5kaWYKICAgIGVuZGlmCkBAIC02MjAzLDE3ICs2MjMzLDE3IEBACiAgICAgIGNhbGwgczpOZXRyd1JlbW90ZUZ0cENtZChhOnBhdGgsInJtZGlyICIuYTpybWZpbGUpCiAgICAgZWxzZQogICAgICBsZXQgcm1maWxlICAgICAgICAgID0gc3Vic3RpdHV0ZShhOnBhdGguYTpybWZpbGUsJy8kJywnJywnJykKLSAgICAgbGV0IG5ldHJ3X3JtZGlyX2NtZCA9IHM6TWFrZVNzaENtZChnOm5ldHJ3X3JtZGlyX2NtZCkuJyAnLnJtZmlsZQorICAgICBsZXQgbmV0cndfcm1kaXJfY21kID0gczpNYWtlU3NoQ21kKHM6V2luUGF0aChnOm5ldHJ3X3JtZGlyX2NtZCkpLicgJy5zaGVsbGVzY2FwZShzOldpblBhdGgocm1maWxlKSkKICIgICAgICBjYWxsIERlY2hvKCJhdHRlbXB0IHRvIHJlbW92ZSBkaXI6IHN5c3RlbSgiLm5ldHJ3X3JtZGlyX2NtZC4iKSIpCi0gICAgIGxldCByZXQ9IHM6U3lzdGVtKCJzeXN0ZW0iLG5ldHJ3X3JtZGlyX2NtZCkKKyAgICAgbGV0IHJldD0gc3lzdGVtKG5ldHJ3X3JtZGlyX2NtZCkKICIgICAgICBjYWxsIERlY2hvKCJyZXR1cm5lZD0iLnJldC4iIGVycmNvZGU9Ii52OnNoZWxsX2Vycm9yKQogCiAgICAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAotIiAgICAgICBjYWxsIERlY2hvKCJ2OnNoZWxsX2Vycm9yIG5vdCAwIikKLSAgICAgIGxldCBuZXRyd19ybWZfY21kPSBzOk1ha2VTc2hDbWQoZzpuZXRyd19ybWZfY21kKS4nICcuc3Vic3RpdHV0ZShybWZpbGUsJ1tcL10kJywnJywnZScpCi0iICAgICAgIGNhbGwgRGVjaG8oIjJuZCBhdHRlbXB0IHRvIHJlbW92ZSBkaXI6IHN5c3RlbSgiLm5ldHJ3X3JtZl9jbWQuIikiKQotICAgICAgbGV0IHJldD0gczpTeXN0ZW0oInN5c3RlbSIsbmV0cndfcm1mX2NtZCkKLSIgICAgICAgY2FsbCBEZWNobygicmV0dXJuZWQ9Ii5yZXQuIiBlcnJjb2RlPSIudjpzaGVsbF9lcnJvcikKKyIgICAgICBjYWxsIERlY2hvKCJ2OnNoZWxsX2Vycm9yIG5vdCAwIikKKyAgICAgIGxldCBuZXRyd19ybWZfY21kPSBzOk1ha2VTc2hDbWQoczpXaW5QYXRoKGc6bmV0cndfcm1mX2NtZCkpLicgJy5zaGVsbGVzY2FwZShzOldpblBhdGgoc3Vic3RpdHV0ZShybWZpbGUsJ1tcL10kJywnJywnZScpKSkKKyIgICAgICBjYWxsIERlY2hvKCIybmQgYXR0ZW1wdCB0byByZW1vdmUgZGlyOiBzeXN0ZW0oIi5uZXRyd19ybWZfY21kLiIpIikKKyAgICAgIGxldCByZXQ9IHN5c3RlbShuZXRyd19ybWZfY21kKQorIiAgICAgIGNhbGwgRGVjaG8oInJldHVybmVkPSIucmV0LiIgZXJyY29kZT0iLnY6c2hlbGxfZXJyb3IpCiAKICAgICAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMCAmJiAhZXhpc3RzKCJnOm5ldHJ3X3F1aWV0IikKICAgICAgIAljYWxsIG5ldHJ3I0Vycm9yTXNnKHM6RVJST1IsInVuYWJsZSB0byByZW1vdmUgZGlyZWN0b3J5PCIucm1maWxlLiI+IC0tIGlzIGl0IGVtcHR5PyIsMjIpCkBAIC02MjYyLDExICs2MjkyLDExIEBACiAgICBjYWxsIHNldGxpbmUobGluZSgiJCIpKzEsYTpsaXN0Y21kKQogIiAgIGV4ZSAia2VlcGp1bXBzICIudzpuZXRyd19iYW5uZXJjbnQuJywkZy9eLi9jYWxsIERlY2hvKCJmdHAjIi5saW5lKCIuIikuIjogIi5nZXRsaW5lKCIuIikpJwogICAgaWYgZXhpc3RzKCJnOm5ldHJ3X3BvcnQiKSAmJiBnOm5ldHJ3X3BvcnQgIT0gIiIKLSIgICAgY2FsbCBEZWNobygiZXhlICIuczpuZXRyd19zaWxlbnR4ZmVyLnc6bmV0cndfYmFubmVyY250LiIsJCEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lLiIgIi5nOm5ldHJ3X3BvcnQpCi0gICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iIGtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250LiIsJCEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lLiIgIi5nOm5ldHJ3X3BvcnQKKyIgICAgY2FsbCBEZWNobygiZXhlICIuczpuZXRyd19zaWxlbnR4ZmVyLnc6bmV0cndfYmFubmVyY250LiIsJCEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLDEpLiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X3BvcnQsMSkpCisgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iIGtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250LiIsJCEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLDEpLiIgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X3BvcnQsMSkKICAgIGVsc2UKLSIgICAgY2FsbCBEZWNobygiZXhlICIuczpuZXRyd19zaWxlbnR4ZmVyLnc6bmV0cndfYmFubmVyY250LiIsJCEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuZzpuZXRyd19tYWNoaW5lKQotICAgIGV4ZSBzOm5ldHJ3X3NpbGVudHhmZXIuIiBrZWVwanVtcHMgIi53Om5ldHJ3X2Jhbm5lcmNudC4iLCQhIi5nOm5ldHJ3X2Z0cF9jbWQuIiAtaSAiLmc6bmV0cndfbWFjaGluZQorIiAgICBjYWxsIERlY2hvKCJleGUgIi5zOm5ldHJ3X3NpbGVudHhmZXIudzpuZXRyd19iYW5uZXJjbnQuIiwkISIuZzpuZXRyd19mdHBfY21kLiIgLWkgIi5zaGVsbGVzY2FwZShnOm5ldHJ3X21hY2hpbmUsMSkpCisgICAgZXhlIHM6bmV0cndfc2lsZW50eGZlci4iIGtlZXBqdW1wcyAiLnc6bmV0cndfYmFubmVyY250LiIsJCEiLmc6bmV0cndfZnRwX2NtZC4iIC1pICIuc2hlbGxlc2NhcGUoZzpuZXRyd19tYWNoaW5lLDEpCiAgICBlbmRpZgogCiAgICAiLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KQEAgLTYzNjgsMTAgKzYzOTgsMTAgQEAKICAgICBpZiBleGlzdHMoInc6bmV0cndfbWV0aG9kIikgJiYgKHc6bmV0cndfbWV0aG9kID09IDIgfHwgdzpuZXRyd19tZXRob2QgPT0gMykKICAgICAgY2FsbCBzOk5ldHJ3UmVtb3RlRnRwQ21kKGE6cGF0aCwicmVuYW1lICIub2xkbmFtZS4iICIubmV3bmFtZSkKICAgICBlbHNlCi0gICAgIGxldCBvbGRuYW1lPSBhOnBhdGgub2xkbmFtZQotICAgICBsZXQgbmV3bmFtZT0gYTpwYXRoLm5ld25hbWUKLSIgICAgIGNhbGwgRGVjaG8oInN5c3RlbShyZW5hbWVfY21kIi4nICInLmZuYW1lZXNjYXBlKG9sZG5hbWUsIiAiKS4nIiAiJy5lc2NhcGUobmV3bmFtZSkuJyInKQotICAgICBsZXQgcmV0PSBzOlN5c3RlbSgic3lzdGVtIixyZW5hbWVfY21kLicgIicuZm5hbWVlc2NhcGUob2xkbmFtZSkuJyIgIicuZm5hbWVlc2NhcGUobmV3bmFtZSkuJyInKQorICAgICBsZXQgb2xkbmFtZT0gc2hlbGxlc2NhcGUoYTpwYXRoLm9sZG5hbWUpCisgICAgIGxldCBuZXduYW1lPSBzaGVsbGVzY2FwZShhOnBhdGgubmV3bmFtZSkKKyIgICAgIGNhbGwgRGVjaG8oInN5c3RlbShzOldpblBhdGgoIi5yZW5hbWVfY21kLiIpICIub2xkbmFtZS4nICcubmV3bmFtZS4iKSIpCisgICAgIGxldCByZXQgICAgPSBzeXN0ZW0oczpXaW5QYXRoKHJlbmFtZV9jbWQpLicgJy5vbGRuYW1lLicgJy5uZXduYW1lKQogICAgIGVuZGlmCiAKICAgIGVuZGZvcgpAQCAtNjM5MywxMCArNjQyMywxMCBAQAogICAgIGlmIGV4aXN0cygidzpuZXRyd19tZXRob2QiKSAmJiAodzpuZXRyd19tZXRob2QgPT0gMiB8fCB3Om5ldHJ3X21ldGhvZCA9PSAzKQogICAgICBjYWxsIHM6TmV0cndSZW1vdGVGdHBDbWQoYTpwYXRoLCJyZW5hbWUgIi5vbGRuYW1lLiIgIi5uZXduYW1lKQogICAgIGVsc2UKLSAgICAgbGV0IG9sZG5hbWU9IGE6cGF0aC5vbGRuYW1lCi0gICAgIGxldCBuZXduYW1lPSBhOnBhdGgubmV3bmFtZQotIiAgICBjYWxsIERlY2hvKCJzeXN0ZW0ocmVuYW1lX2NtZCIuJyAiJy5mbmFtZWVzY2FwZShvbGRuYW1lLCIgIikuJyIgIicuZXNjYXBlKG5ld25hbWUpLiciJykKLSAgICAgbGV0IHJldD0gczpTeXN0ZW0oInN5c3RlbSIscmVuYW1lX2NtZC4nICInLmZuYW1lZXNjYXBlKG9sZG5hbWUpLiciICInLmZuYW1lZXNjYXBlKG5ld25hbWUpLiciJykKKyAgICAgbGV0IG9sZG5hbWU9IHNoZWxsZXNjYXBlKGE6cGF0aC5vbGRuYW1lKQorICAgICBsZXQgbmV3bmFtZT0gc2hlbGxlc2NhcGUoYTpwYXRoLm5ld25hbWUpCisiICAgICBjYWxsIERlY2hvKCJzeXN0ZW0oczpXaW5QYXRoKCIucmVuYW1lX2NtZC4iKSAiLm9sZG5hbWUuJyAnLm5ld25hbWUuIikiKQorICAgICBsZXQgcmV0ICAgID0gc3lzdGVtKHM6V2luUGF0aChyZW5hbWVfY21kKS4nICcub2xkbmFtZS4nICcubmV3bmFtZSkKICAgICBlbmRpZgogCiAgICAgbGV0IGN0cj0gY3RyICsgMQpAQCAtNjc1MSw3ICs2NzgxLDcgQEAKICAgIGVuZGlmCiAKICAgIGlmIGFsbCB8fCBvayA9fiAneVwlW2VzXScgfHwgb2sgPT0gIiIKLSAgICBsZXQgcmV0PSBzOlN5c3RlbSgiZGVsZXRlIixybWZpbGUpCisgICAgbGV0IHJldD0gczpOZXRyd0RlbGV0ZShybWZpbGUpCiAiICAgIGNhbGwgRGVjaG8oImVycmNvZGU9Ii52OnNoZWxsX2Vycm9yLiIgcmV0PSIucmV0KQogICAgZW5kaWYKIApAQCAtNjc3MywxOSArNjgwMywxOSBAQAogICAgbGV0IHJtZmlsZT0gc3Vic3RpdHV0ZShybWZpbGUsJ1tcL10kJywnJywnZScpCiAKICAgIGlmIGFsbCB8fCBvayA9fiAneVwlW2VzXScgfHwgb2sgPT0gIiIKLSIgICAgY2FsbCBEZWNobygiMXN0IGF0dGVtcHQ6IHN5c3RlbSgiLmc6bmV0cndfbG9jYWxfcm1kaXIuJyAnLnNoZWxsZXNjYXBlKHJtZmlsZSkuJyknKQotICAgIGNhbGwgczpTeXN0ZW0oInN5c3RlbSIsZzpuZXRyd19sb2NhbF9ybWRpci4nICcuc2hlbGxlc2NhcGUocm1maWxlKSkKKyIgICAgY2FsbCBEZWNobygiMXN0IGF0dGVtcHQ6IHN5c3RlbShzOldpblBhdGgoIi5nOm5ldHJ3X2xvY2FsX3JtZGlyLicpICcuc2hlbGxlc2NhcGUocm1maWxlKS4nKScpCisgICAgY2FsbCBzeXN0ZW0oczpXaW5QYXRoKGc6bmV0cndfbG9jYWxfcm1kaXIpLicgJy5zaGVsbGVzY2FwZShybWZpbGUpKQogIiAgICBjYWxsIERlY2hvKCJ2OnNoZWxsX2Vycm9yPSIudjpzaGVsbF9lcnJvcikKIAogICAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAogIiAgICAgY2FsbCBEZWNobygiMm5kIGF0dGVtcHQgdG8gcmVtb3ZlIGRpcmVjdG9yeTwiLnJtZmlsZS4iPiIpCi0gICAgIGxldCBlcnJjb2RlPSBzOlN5c3RlbSgiZGVsZXRlIixybWZpbGUpCisgICAgIGxldCBlcnJjb2RlPSBzOk5ldHJ3RGVsZXRlKHJtZmlsZSkKICIgICAgIGNhbGwgRGVjaG8oImVycmNvZGU9Ii5lcnJjb2RlKQogCiAgICAgIGlmIGVycmNvZGUgIT0gMAogICAgICAgaWYgaGFzKCJ1bml4IikKICIgICAgICAgY2FsbCBEZWNobygiM3JkIGF0dGVtcHQgdG8gcmVtb3ZlIGRpcmVjdG9yeTwiLnJtZmlsZS4iPiIpCi0gICAgICAgY2FsbCBzOlN5c3RlbSgic3lzdGVtIiwicm0gIi5zaGVsbGVzY2FwZShybWZpbGUpKQorICAgICAgIGNhbGwgc3lzdGVtKCJybSAiLnNoZWxsZXNjYXBlKHJtZmlsZSkpCiAgICAgICAgaWYgdjpzaGVsbF9lcnJvciAhPSAwICYmICFleGlzdHMoImc6bmV0cndfcXVpZXQiKQogICAgICAgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6RVJST1IsInVuYWJsZSB0byByZW1vdmUgZGlyZWN0b3J5PCIucm1maWxlLiI+IC0tIGlzIGl0IGVtcHR5PyIsMzQpCiAJbGV0IG9rPSJubyIKQEAgLTY5MzgsOTkgKzY5NjgsMTEgQEAKICIgU3VwcG9ydCBGdW5jdGlvbnM6IHt7ezEKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgczpVcGRhdGVCdWZmZXJzTWVudTogZG9lcyBlbWVudSBCdWZmZXJzLlJlZnJlc2ggKGJ1dCBkdWUgdG8gbG9jYWxlLCB0aGUgbWVudSBpdGVtIG1heSBub3QgYmUgY2FsbGVkIHRoYXQpIHt7ezIKLSIgICAgICAgICAgICAgICAgICAgICAgVGhlIEJ1ZmZlcnMuUmVmcmVzaCBtZW51IGNhbGxzIHM6Qk1TaG93KCk7IHVuZm9ydHVuYXRlbHksIHRoYXQgbWVhbnMgdGhhdCB0aGF0IGZ1bmN0aW9uCi0iICAgICAgICAgICAgICAgICAgICAgIGNhbid0IGJlIGNhbGxlZCBleGNlcHQgdmlhIGVtZW51LiAgQnV0IGR1ZSB0byBsb2NhbGUsIHRoYXQgbWVudSBsaW5lIG1heSBub3QgYmUgY2FsbGVkCi0iICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcnMuUmVmcmVzaDsgaGVuY2UsIHM6TmV0cndCTVNob3coKSB1dGlsaXplcyBhICJjaGVhdCIgdG8gY2FsbCB0aGF0IGZ1bmN0aW9uIGFueXdheS4KLWZ1biEgczpVcGRhdGVCdWZmZXJzTWVudSgpCi0iICBjYWxsIERmdW5jKCJzOlVwZGF0ZUJ1ZmZlcnNNZW51KCkiKQotICBpZiBoYXMoImd1aSIpICYmIGhhcygibWVudSIpICYmIGhhcygiZ3VpX3J1bm5pbmciKSAmJiAmZ28gPX4gJ20nCi0gICB0cnkKLSAgICBzaWxlbnQgZW1lbnUgQnVmZmVycy5SZWZyZXNoXCBtZW51Ci0gICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RS8KLSAgICBsZXQgdjplcnJtc2c9ICIiCi0gICAgc2lsZW50IGNhbGwgczpOZXRyd0JNU2hvdygpCi0gICBlbmR0cnkKLSAgZW5kaWYKLSIgIGNhbGwgRHJldCgiczpVcGRhdGVCdWZmZXJzTWVudSIpCi1lbmRmdW4KLQotIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgczpOZXRyd0JNU2hvdzoge3t7MgotZnVuISBzOk5ldHJ3Qk1TaG93KCkKLSIgIGNhbGwgRGZ1bmMoInM6TmV0cndCTVNob3coKSIpCi0gIHJlZGlyID0+IGJtc2hvd3JhdwotICAgbWVudQotICByZWRpciBFTkQKLSAgbGV0IGJtc2hvd2xpc3QgPSBzcGxpdChibXNob3dyYXcsJ1xuJykKLSAgaWYgYm1zaG93bGlzdCAhPSBbXQotICAgbGV0IGJtc2hvd2Z1bmNzPSBmaWx0ZXIoYm1zaG93bGlzdCwndjp2YWwgPX4gIjxTTlI+XFxkXFwrX0JNU2hvdygpIicpCi0gICBpZiBibXNob3dmdW5jcyAhPSBbXQotICAgIGxldCBibXNob3dmdW5jID0gc3Vic3RpdHV0ZShibXNob3dmdW5jc1swXSwnXi4qOlwoY2FsbC4qQk1TaG93KClcKS4qJCcsJ1wxJywnJykKLSAgICBpZiBibXNob3dmdW5jID1+ICdeY2FsbC4qQk1TaG93KCknCi0gICAgIGV4ZSAic2lsZW50ISAiLmJtc2hvd2Z1bmMKLSAgICBlbmRpZgotICAgZW5kaWYKLSAgZW5kaWYKLSIgIGNhbGwgRHJldCgiczpOZXRyd0JNU2hvdyA6IGJtc2hvd2Z1bmM8Ii4oZXhpc3RzKCJibXNob3dmdW5jIik/IGJtc2hvd2Z1bmMgOiAnbi9hJykuIj4iKQotZW5kZnVuCi0KLSIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iICBzOkNvbXBvc2VQYXRoOiBBcHBlbmRzIGEgbmV3IHBhcnQgdG8gYSBwYXRoIHRha2luZyBkaWZmZXJlbnQgc3lzdGVtcyBpbnRvIGNvbnNpZGVyYXRpb24ge3t7MgotZnVuISBzOkNvbXBvc2VQYXRoKGJhc2Usc3ViZGlyKQotIiAgY2FsbCBEZnVuYygiczpDb21wb3NlUGF0aChiYXNlPCIuYTpiYXNlLiI+IHN1YmRpcjwiLmE6c3ViZGlyLiI+KSIpCi0KLSAgaWYoaGFzKCJhbWlnYSIpKQotIiAgIGNhbGwgRGVjaG8oImFtaWdhIikKLSAgIGxldCBlYyA9IGE6YmFzZVtzdHJsZW4oYTpiYXNlKS0xXQotICAgaWYgZWMgIT0gJy8nICYmIGVjICE9ICc6JwotICAgIGxldCByZXQgPSBhOmJhc2UgLiAiLyIgLiBhOnN1YmRpcgotICAgZWxzZQotICAgIGxldCByZXQgPSBhOmJhc2UgLiBhOnN1YmRpcgotICAgZW5kaWYKLQotICBlbHNlaWYgYTpzdWJkaXIgPX4gJ15cYTpbL1xcXVteL1xcXScgJiYgKGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKSkKLSIgICBjYWxsIERlY2hvKCJ3aW5kb3dzIikKLSAgIGxldCByZXQ9IGE6c3ViZGlyCi0KLSAgZWxzZWlmIGE6YmFzZSA9fiAnXlxhXCs6Ly8nCi0iICAgY2FsbCBEZWNobygicmVtb3RlIGxpbnV4L21hY29zIikKLSAgIGxldCB1cmxiYXNlID0gc3Vic3RpdHV0ZShhOmJhc2UsJ15cKFxhXCs6Ly8uXHstfS9cKVwoLipcKSQnLCdcMScsJycpCi0gICBsZXQgY3VycGF0aCA9IHN1YnN0aXR1dGUoYTpiYXNlLCdeXChcYVwrOi8vLlx7LX0vXClcKC4qXCkkJywnXDInLCcnKQotICAgaWYgYTpzdWJkaXIgPT0gJy4uLycKLSAgICBpZiBjdXJwYXRoID1+ICdbXi9dL1teL11cKy8kJwotICAgICBsZXQgY3VycGF0aD0gc3Vic3RpdHV0ZShjdXJwYXRoLCdbXi9dXCsvJCcsJycsJycpCi0gICAgZWxzZQotICAgICBsZXQgY3VycGF0aD0iIgotICAgIGVuZGlmCi0gICAgbGV0IHJldD0gdXJsYmFzZS5jdXJwYXRoCi0gICBlbHNlCi0gICAgbGV0IHJldD0gdXJsYmFzZS5jdXJwYXRoLmE6c3ViZGlyCi0gICBlbmRpZgotIiAgIGNhbGwgRGVjaG8oInVybGJhc2U8Ii51cmxiYXNlLiI+IikKLSIgICBjYWxsIERlY2hvKCJjdXJwYXRoPCIuY3VycGF0aC4iPiIpCi0iICAgY2FsbCBEZWNobygicmV0PCIucmV0LiI+IikKLQotICBlbHNlCi0iICAgY2FsbCBEZWNobygibG9jYWwgbGludXgvbWFjb3MiKQotICAgbGV0IHJldCA9IHN1YnN0aXR1dGUoYTpiYXNlLiIvIi5hOnN1YmRpciwiLy8iLCIvIiwiZyIpCi0gICBpZiBhOmJhc2UgPX4gJ14vLycKLSAgICAiIGtlZXBpbmcgaW5pdGlhbCAnLy8nIGZvciB0aGUgYmVuZWZpdCBvZiBuZXR3b3JrIHNoYXJlIGxpc3Rpbmcgc3VwcG9ydAotICAgIGxldCByZXQ9ICcvJy5yZXQKLSAgIGVuZGlmCi0gICBsZXQgcmV0PSBzaW1wbGlmeShyZXQpCi0gIGVuZGlmCi0KLSIgIGNhbGwgRHJldCgiczpDb21wb3NlUGF0aCAiLnJldCkKLSAgcmV0dXJuIHJldAotZW5kZnVuCi0KLSIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIG5ldHJ3I0Vycm9yTXNnOiB7e3syCiAiICAgMD1ub3RlICAgICA9IHM6Tk9URQogIiAgIDE9d2FybmluZyAgPSBzOldBUk5JTkcKICIgICAyPWVycm9yICAgID0gczpFUlJPUgotIiAgSnVuIDExLCAyMDA4IDogbWF4IGVycm51bSBjdXJyZW50bHkgaXMgNzAKKyIgIEp1bCAwOCwgMjAwOCA6IG1heCBlcnJudW0gY3VycmVudGx5IGlzIDcxCiBmdW4hIG5ldHJ3I0Vycm9yTXNnKGxldmVsLG1zZyxlcnJudW0pCiAiICBjYWxsIERmdW5jKCJuZXRydyNFcnJvck1zZyhsZXZlbD0iLmE6bGV2ZWwuIiBtc2c8Ii5hOm1zZy4iPiBlcnJudW09Ii5hOmVycm51bS4iKSBnOm5ldHJ3X3VzZV9lcnJvcndpbmRvdz0iLmc6bmV0cndfdXNlX2Vycm9yd2luZG93KQogCkBAIC03MDk5LDYgKzcwNDEsNjggQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBuZXRydyNOZXRyd1Jlc3RvcmVQb3NuOiByZXN0b3JlcyB0aGUgY3Vyc29yIGFuZCBmaWxlIHBvc2l0aW9uIGFzIHNhdmVkIGJ5IE5ldHJ3U2F2ZVBvc24oKSB7e3syCitmdW4hIG5ldHJ3I05ldHJ3UmVzdG9yZVBvc24oLi4uKQorIiAgY2FsbCBEZnVuYygibmV0cncjTmV0cndSZXN0b3JlUG9zbigpIGE6MD0iLmE6MC4iIHdpbm5yPSIuKGV4aXN0cygidzpuZXRyd193aW5uciIpPyB3Om5ldHJ3X3dpbm5yIDogLTEpLiIgbGluZT0iLihleGlzdHMoInc6bmV0cndfbGluZSIpPyB3Om5ldHJ3X2xpbmUgOiAtMSkuIiBjb2w9Ii4oZXhpc3RzKCJ3Om5ldHJ3X2NvbCIpPyB3Om5ldHJ3X2NvbCA6IC0xKS4iIGhsaW5lPSIuKGV4aXN0cygidzpuZXRyd19obGluZSIpPyB3Om5ldHJ3X2hsaW5lIDogLTEpKQorICBsZXQgZWlrZWVwPSAmZWkKKyAgc2V0IGVpPWFsbAorICBpZiBleHBhbmQoIiUiKSA9PSAiTmV0cndNZXNzYWdlIgorICAgZXhlIHM6d2luQmVmb3JlRXJyLiJ3aW5jbWQgdyIKKyAgZW5kaWYKKworICBpZiBhOjAgPiAwCisgICBleGUgYToxCisgIGVuZGlmCisKKyAgIiByZXN0b3JlIHdpbmRvdworICBpZiBleGlzdHMoInc6bmV0cndfd2lubnIiKQorIiAgIGNhbGwgRGVjaG8oInJlc3RvcmUgd2luZG93OiBleGUgc2lsZW50ISAiLnc6bmV0cndfd2lubnIuIndpbmNtZCB3IikKKyAgIGV4ZSAic2lsZW50ISAiLnc6bmV0cndfd2lubnIuIndpbmNtZCB3IgorICBlbmRpZgorICBpZiB2OnNoZWxsX2Vycm9yID09IDAKKyAgICIgYXMgc3VnZ2VzdGVkIGJ5IEJyYW0gTTogcmVkcmF3IG9uIG5vIGVycm9yCisgICAiIGFsbG93cyBwcm90b2NvbCBlcnJvciBtZXNzYWdlcyB0byByZW1haW4gdmlzaWJsZQorIiAgIHJlZHJhdyEKKyAgZW5kaWYKKworICAiIHJlc3RvcmUgdG9wLW9mLXNjcmVlbiBsaW5lCisgIGlmIGV4aXN0cygidzpuZXRyd19obGluZSIpCisiICAgY2FsbCBEZWNobygicmVzdG9yZSB0b3BvZnNjcmVlbjogZXhlIG5vcm0hICIudzpuZXRyd19obGluZS4iRzB6IikKKyAgIGV4ZSAibm9ybSEgIi53Om5ldHJ3X2hsaW5lLiJHMHpcPENSPiIKKyAgZW5kaWYKKworICAiIHJlc3RvcmUgcG9zaXRpb24KKyAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2xpbmUiKSAmJiBleGlzdHMoInc6bmV0cndfY29sIikKKyIgICBjYWxsIERlY2hvKCJyZXN0b3JlIHBvc246IGV4ZSBub3JtISAiLnc6bmV0cndfbGluZS4iRzAiLnc6bmV0cndfY29sLiJ8IikKKyAgIGV4ZSAibm9ybSEgIi53Om5ldHJ3X2xpbmUuIkcwIi53Om5ldHJ3X2NvbC4iXDxiYXI+IgorICBlbmRpZgorCisgIGxldCAmZWk9IGVpa2VlcAorIiAgY2FsbCBEcmV0KCJuZXRydyNOZXRyd1Jlc3RvcmVQb3NuIikKK2VuZGZ1bgorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBuZXRydyNOZXRyd1NhdmVQb3NuOiBzYXZlcyBwb3NpdGlvbiBvZiBjdXJzb3Igb24gc2NyZWVuIHt7ezIKK2Z1biEgbmV0cncjTmV0cndTYXZlUG9zbigpCisiICBjYWxsIERmdW5jKCJuZXRydyNOZXRyd1NhdmVQb3NuKCkiKQorICAiIFNhdmUgY3VycmVudCBsaW5lIGFuZCBjb2x1bW4KKyAgbGV0IHc6bmV0cndfd2lubnI9IHdpbm5yKCkKKyAgbGV0IHc6bmV0cndfbGluZSA9IGxpbmUoIi4iKQorICBsZXQgdzpuZXRyd19jb2wgID0gdmlydGNvbCgiLiIpCisKKyAgIiBTYXZlIHRvcC1vZi1zY3JlZW4gbGluZQorICBub3JtISBIMAorICBsZXQgdzpuZXRyd19obGluZT0gbGluZSgiLiIpCisKKyAgIiBzZXQgdXAgc3RyaW5nIGhvbGRpbmcgcG9zaXRpb24gcGFyYW1ldGVycworICBsZXQgcmV0ICAgICAgICAgID0gImxldCB3Om5ldHJ3X3dpbm5yPSIudzpuZXRyd193aW5uci4ifGxldCB3Om5ldHJ3X2xpbmU9Ii53Om5ldHJ3X2xpbmUuInxsZXQgdzpuZXRyd19jb2w9Ii53Om5ldHJ3X2NvbC4ifGxldCB3Om5ldHJ3X2hsaW5lPSIudzpuZXRyd19obGluZQorCisgIGNhbGwgbmV0cncjTmV0cndSZXN0b3JlUG9zbigpCisiICBjYWxsIERyZXQoIm5ldHJ3I05ldHJ3U2F2ZVBvc24gOiB3aW5ucj0iLnc6bmV0cndfd2lubnIuIiBsaW5lPSIudzpuZXRyd19saW5lLiIgY29sPSIudzpuZXRyd19jb2wuIiBobGluZT0iLnc6bmV0cndfaGxpbmUpCisgIHJldHVybiByZXQKK2VuZGZ1bgorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiAgbmV0cncjUkZDMjM5NjogY29udmVydHMgJXh4IGludG8gY2hhcmFjdGVycyB7e3syCiBmdW4hIG5ldHJ3I1JGQzIzOTYoZm5hbWUpCiAiICBjYWxsIERmdW5jKCJuZXRydyNSRkMyMzk2KGZuYW1lPCIuYTpmbmFtZS4iPikiKQpAQCAtNzEwOCw2ICs3MTEyLDU2IEBACiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgIHM6Q29tcG9zZVBhdGg6IEFwcGVuZHMgYSBuZXcgcGFydCB0byBhIHBhdGggdGFraW5nIGRpZmZlcmVudCBzeXN0ZW1zIGludG8gY29uc2lkZXJhdGlvbiB7e3syCitmdW4hIHM6Q29tcG9zZVBhdGgoYmFzZSxzdWJkaXIpCisiICBjYWxsIERmdW5jKCJzOkNvbXBvc2VQYXRoKGJhc2U8Ii5hOmJhc2UuIj4gc3ViZGlyPCIuYTpzdWJkaXIuIj4pIikKKworICBpZihoYXMoImFtaWdhIikpCisiICAgY2FsbCBEZWNobygiYW1pZ2EiKQorICAgbGV0IGVjID0gYTpiYXNlW3N0cmxlbihhOmJhc2UpLTFdCisgICBpZiBlYyAhPSAnLycgJiYgZWMgIT0gJzonCisgICAgbGV0IHJldCA9IGE6YmFzZSAuICIvIiAuIGE6c3ViZGlyCisgICBlbHNlCisgICAgbGV0IHJldCA9IGE6YmFzZSAuIGE6c3ViZGlyCisgICBlbmRpZgorCisgIGVsc2VpZiBhOnN1YmRpciA9fiAnXlxhOlsvXFxdW14vXFxdJyAmJiAoaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpKQorIiAgIGNhbGwgRGVjaG8oIndpbmRvd3MiKQorICAgbGV0IHJldD0gYTpzdWJkaXIKKworICBlbHNlaWYgYTpiYXNlID1+ICdeXGFcKzovLycKKyIgICBjYWxsIERlY2hvKCJyZW1vdGUgbGludXgvbWFjb3MiKQorICAgbGV0IHVybGJhc2UgPSBzdWJzdGl0dXRlKGE6YmFzZSwnXlwoXGFcKzovLy5cey19L1wpXCguKlwpJCcsJ1wxJywnJykKKyAgIGxldCBjdXJwYXRoID0gc3Vic3RpdHV0ZShhOmJhc2UsJ15cKFxhXCs6Ly8uXHstfS9cKVwoLipcKSQnLCdcMicsJycpCisgICBpZiBhOnN1YmRpciA9PSAnLi4vJworICAgIGlmIGN1cnBhdGggPX4gJ1teL10vW14vXVwrLyQnCisgICAgIGxldCBjdXJwYXRoPSBzdWJzdGl0dXRlKGN1cnBhdGgsJ1teL11cKy8kJywnJywnJykKKyAgICBlbHNlCisgICAgIGxldCBjdXJwYXRoPSIiCisgICAgZW5kaWYKKyAgICBsZXQgcmV0PSB1cmxiYXNlLmN1cnBhdGgKKyAgIGVsc2UKKyAgICBsZXQgcmV0PSB1cmxiYXNlLmN1cnBhdGguYTpzdWJkaXIKKyAgIGVuZGlmCisiICAgY2FsbCBEZWNobygidXJsYmFzZTwiLnVybGJhc2UuIj4iKQorIiAgIGNhbGwgRGVjaG8oImN1cnBhdGg8Ii5jdXJwYXRoLiI+IikKKyIgICBjYWxsIERlY2hvKCJyZXQ8Ii5yZXQuIj4iKQorCisgIGVsc2UKKyIgICBjYWxsIERlY2hvKCJsb2NhbCBsaW51eC9tYWNvcyIpCisgICBsZXQgcmV0ID0gc3Vic3RpdHV0ZShhOmJhc2UuIi8iLmE6c3ViZGlyLCIvLyIsIi8iLCJnIikKKyAgIGlmIGE6YmFzZSA9fiAnXi8vJworICAgICIga2VlcGluZyBpbml0aWFsICcvLycgZm9yIHRoZSBiZW5lZml0IG9mIG5ldHdvcmsgc2hhcmUgbGlzdGluZyBzdXBwb3J0CisgICAgbGV0IHJldD0gJy8nLnJldAorICAgZW5kaWYKKyAgIGxldCByZXQ9IHNpbXBsaWZ5KHJldCkKKyAgZW5kaWYKKworIiAgY2FsbCBEcmV0KCJzOkNvbXBvc2VQYXRoICIucmV0KQorICByZXR1cm4gcmV0CitlbmRmdW4KKworIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpGaWxlUmVhZGFibGU6IG8vcyBpbmRlcGVuZGVudCBmaWxlcmVhZGFibGUge3t7MgogZnVuISBzOkZpbGVSZWFkYWJsZShmbmFtZSkKICIgIGNhbGwgRGZ1bmMoInM6RmlsZVJlYWRhYmxlKGZuYW1lPCIuYTpmbmFtZS4iPikiKQpAQCAtNzEzNCwxMiArNzE4OCwxMiBAQAogICAgbGV0IHRtcGZpbGU9IHRlbXBuYW1lKCkKICIgICBjYWxsIERlY2hvKCJ0bXBmaWxlPCIudG1wZmlsZS4iPiA6IGZyb20gdGVtcG5hbWUoKSIpCiAKLSAgIGxldCB0bXBmaWxlPSBlc2NhcGUoc3Vic3RpdHV0ZSh0bXBmaWxlLCdcJywnLycsJ2dlJyksZzpuZXRyd190bXBmaWxlX2VzY2FwZSkKKyAgIGxldCB0bXBmaWxlPSBzdWJzdGl0dXRlKHRtcGZpbGUsJ1wnLCcvJywnZ2UnKQogIiAgIGNhbGwgRGVjaG8oInRtcGZpbGU8Ii50bXBmaWxlLiI+IDogY2hnZCBhbnkgXFwgLT4gLyIpCiAKICAgICIgc2FuaXR5IGNoZWNrIC0tIGRvZXMgdGhlIHRlbXBvcmFyeSBmaWxlJ3MgZGlyZWN0b3J5IGV4aXN0PwogICAgaWYgIWlzZGlyZWN0b3J5KHN1YnN0aXR1dGUodG1wZmlsZSwnW14vXVwrJCcsJycsJ2UnKSkKLSIgICAgY2FsbCBEZWNobygicm89Ii4mcm8uIiBtYT0iLiZtYS4iIG1vZD0iLiZtb2QuIiB3cmFwPSIuJndyYXApCisiICAgIGNhbGwgRGVjaG8oInJvPSIuJmw6cm8uIiBtYT0iLiZsOm1hLiIgbW9kPSIuJmw6bW9kLiIgd3JhcD0iLiZsOndyYXApCiAgICAgY2FsbCBuZXRydyNFcnJvck1zZyhzOkVSUk9SLCJ5b3VyIDwiLnN1YnN0aXR1dGUodG1wZmlsZSwnW14vXVwrJCcsJycsJ2UnKS4iPiBkaXJlY3RvcnkgaXMgbWlzc2luZyEiLDIpCiAiICAgIGNhbGwgRHJldCgiczpHZXRUZW1wZmlsZSBnZXRjd2Q8Ii5nZXRjd2QoKS4iPiIpCiAgICAgcmV0dXJuICIiCkBAIC03MTc2LDcgKzcyMzAsNiBAQAogICAgIGVsc2UKICAgICAgbGV0IHN1ZmZpeCA9IHN1YnN0aXR1dGUoYTpmbmFtZSwnXi4qXChcLlteLi9dXCtcKSQnLCdcMScsJ2UnKQogICAgIGVuZGlmCi0gICAgbGV0IHN1ZmZpeCA9IGVzY2FwZShzdWZmaXgsZzpuZXRyd190bXBmaWxlX2VzY2FwZSkKICIgICAgY2FsbCBEZWNobygic3VmZml4PCIuc3VmZml4LiI+IikKICAgICBsZXQgdG1wZmlsZT0gc3Vic3RpdHV0ZSh0bXBmaWxlLCdcLnRtcCQnLCcnLCdlJykKICIgICAgY2FsbCBEZWNobygiY2hnZCB0bXBmaWxlPCIudG1wZmlsZS4iPiAocmVtb3ZlZCBhbnkgLnRtcCBzdWZmaXgpIikKQEAgLTcxODYsMTQgKzcyMzksMTQgQEAKICAgIGVuZGlmCiAgIGVuZGlmCiAKLSIgIGNhbGwgRGVjaG8oInJvPSIuJnJvLiIgbWE9Ii4mbWEuIiBtb2Q9Ii4mbW9kLiIgd3JhcD0iLiZ3cmFwKQorIiAgY2FsbCBEZWNobygicm89Ii4mbDpyby4iIG1hPSIuJmw6bWEuIiBtb2Q9Ii4mbDptb2QuIiB3cmFwPSIuJmw6d3JhcCkKICIgIGNhbGwgRHJldCgiczpHZXRUZW1wZmlsZSA8Ii50bXBmaWxlLiI+IikKICAgcmV0dXJuIHRtcGZpbGUKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBzOk1ha2VTc2hDbWQ6IHRyYW5zZm9ybXMgaW5wdXQgY29tbWFuZCB1c2luZyBVU0VQT1JUIEhPU1ROQU1FIGludG8ge3t7MgotIiAgICAgICAgICAgICAgIGEgY29ycmVjdCBjb21tYW5kCisiICAgICAgICAgICAgICAgYSBjb3JyZWN0IGNvbW1hbmQgZm9yIHVzZSB3aXRoIGEgc3lzdGVtKCkgY2FsbAogZnVuISBzOk1ha2VTc2hDbWQoc3NoY21kKQogIiAgY2FsbCBEZnVuYygiczpNYWtlU3NoQ21kKHNzaGNtZDwiLmE6c3NoY21kLiI+KSB1c2VyPCIuczp1c2VyLiI+IG1hY2hpbmU8Ii5zOm1hY2hpbmUuIj4iKQogICBsZXQgc3NoY21kID0gc3Vic3RpdHV0ZShhOnNzaGNtZCwnXDxIT1NUTkFNRVw+JyxzOnVzZXIuczptYWNoaW5lLCcnKQpAQCAtNzIwOSwyOCArNzI2Miw1NCBAQAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIHM6UmVtb3RlU3lzdGVtOiBydW5zIGEgY29tbWFuZCBvbiBhIHJlbW90ZSBob3N0IHVzaW5nIHNzaCB7e3syCi0iICAgICAgICAgICAgICAgICBSZXR1cm5zIHN0YXR1cwotZnVuISBzOlJlbW90ZVN5c3RlbShjbWQpCi0iICBjYWxsIERmdW5jKCJzOlJlbW90ZVN5c3RlbShjbWQ8Ii5hOmNtZC4iPikiKQotICBpZiAhZXhlY3V0YWJsZShnOm5ldHJ3X3NzaF9jbWQpCi0gICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6RVJST1IsImc6bmV0cndfc3NoX2NtZDwiLmc6bmV0cndfc3NoX2NtZC4iPiBpcyBub3QgZXhlY3V0YWJsZSEiLDUyKQotICBlbHNlaWYgIWV4aXN0cygiYjpuZXRyd19jdXJkaXIiKQotICAgY2FsbCBuZXRydyNFcnJvck1zZyhzOkVSUk9SLCJmb3Igc29tZSByZWFzb24gYjpuZXRyd19jdXJkaXIgZG9lc24ndCBleGlzdCEiLDUzKQotICBlbHNlCi0gICBsZXQgY21kICAgICAgPSBzOk1ha2VTc2hDbWQoZzpuZXRyd19zc2hfY21kLiIgVVNFUE9SVCBIT1NUTkFNRSIpCi0gICBsZXQgcmVtb3RlZGlyPSBzdWJzdGl0dXRlKGI6bmV0cndfY3VyZGlyLCdeLiovL1teL11cKy9cKC4qXCkkJywnXDEnLCcnKQotICAgaWYgcmVtb3RlZGlyICE9ICIiCi0gICAgbGV0IGNtZD0gY21kLicgImNkICcuc2hlbGxlc2NhcGUocmVtb3RlZGlyKS4iOyIKLSAgIGVsc2UKLSAgICBsZXQgY21kPSBjbWQuJyAiJworIiBzOk5ldHJ3Qk1TaG93OiB7e3syCitmdW4hIHM6TmV0cndCTVNob3coKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd0JNU2hvdygpIikKKyAgcmVkaXIgPT4gYm1zaG93cmF3CisgICBtZW51CisgIHJlZGlyIEVORAorICBsZXQgYm1zaG93bGlzdCA9IHNwbGl0KGJtc2hvd3JhdywnXG4nKQorICBpZiBibXNob3dsaXN0ICE9IFtdCisgICBsZXQgYm1zaG93ZnVuY3M9IGZpbHRlcihibXNob3dsaXN0LCd2OnZhbCA9fiAiPFNOUj5cXGRcXCtfQk1TaG93KCkiJykKKyAgIGlmIGJtc2hvd2Z1bmNzICE9IFtdCisgICAgbGV0IGJtc2hvd2Z1bmMgPSBzdWJzdGl0dXRlKGJtc2hvd2Z1bmNzWzBdLCdeLio6XChjYWxsLipCTVNob3coKVwpLiokJywnXDEnLCcnKQorICAgIGlmIGJtc2hvd2Z1bmMgPX4gJ15jYWxsLipCTVNob3coKScKKyAgICAgZXhlICJzaWxlbnQhICIuYm1zaG93ZnVuYworICAgIGVuZGlmCiAgICBlbmRpZgotICAgbGV0IGNtZD0gY21kLmE6Y21kLiciJwotIiAgIGNhbGwgRGVjaG8oImNhbGwgc3lzdGVtKCIuY21kLiIpIikKLSAgIGxldCByZXQ9IHN5c3RlbShjbWQpCiAgIGVuZGlmCi0iICBjYWxsIERyZXQoInM6UmVtb3RlU3lzdGVtICIucmV0KQotICByZXR1cm4gcmV0CisiICBjYWxsIERyZXQoInM6TmV0cndCTVNob3cgOiBibXNob3dmdW5jPCIuKGV4aXN0cygiYm1zaG93ZnVuYyIpPyBibXNob3dmdW5jIDogJ24vYScpLiI+IikKK2VuZGZ1bgorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIiBzOk5ldHJ3RGVsZXRlOiBEZWxldGVzIGEgZmlsZS4ge3t7MgorIiAgICAgICAgICAgVXNlcyBTdGV2ZSBIYWxsJ3MgaWRlYSB0byBpbnN1cmUgdGhhdCBXaW5kb3dzIHBhdGhzIHN0YXkKKyIgICAgICAgICAgIGFjY2VwdGFibGUuICBObyBlZmZlY3Qgb24gVW5peCBwYXRocy4KKyIgIEV4YW1wbGVzIG9mIHVzZTogIGxldCByZXN1bHQ9IHM6TmV0cndEZWxldGUocGF0aCkKK2Z1biEgczpOZXRyd0RlbGV0ZShwYXRoKQorIiAgY2FsbCBEZnVuYygiczpOZXRyd0RlbGV0ZShwYXRoPCIuYTpwYXRoLiI+KSIpCisKKyAgbGV0IHBhdGggPSBzOldpblBhdGgoYTpwYXRoKQorICBpZiAhZzpuZXRyd19jeWd3aW4gJiYgKGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKSkKKyAgIGlmIGV4aXN0cygiK3NoZWxsc2xhc2giKQorICAgIGxldCBzc2tlZXA9ICZzaGVsbHNsYXNoCisgICAgc2V0bG9jYWwgbm9zaGVsbHNsYXNoCisgICAgbGV0IHJlc3VsdCAgICAgID0gZGVsZXRlKHBhdGgpCisgICAgbGV0ICZzaGVsbHNsYXNoID0gc3NrZWVwCisgICBlbHNlCisiICAgIGNhbGwgRGVjaG8oImV4ZSBsZXQgcmVzdWx0PSAiLmE6Y21kLiIoJyIucGF0aC4iJykiKQorICAgIGxldCByZXN1bHQ9IGRlbGV0ZShwYXRoKQorICAgZW5kaWYKKyAgZWxzZQorIiAgIGNhbGwgRGVjaG8oImxldCByZXN1bHQ9IGRlbGV0ZSgiLnBhdGguIikiKQorICAgbGV0IHJlc3VsdD0gZGVsZXRlKHBhdGgpCisgIGVuZGlmCisgIGlmIHJlc3VsdCA8IDAKKyAgIGNhbGwgTmV0cncjRXJyb3JNc2coczpXQVJOSU5HLCJkZWxldGUoIi5wYXRoLiIpIGZhaWxlZCEiLDcxKQorICBlbmRpZgorCisiICBjYWxsIERyZXQoInM6TmV0cndEZWxldGUgIi5yZXN1bHQpCisgIHJldHVybiByZXN1bHQKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNzI4Niw3ICs3MzY1LDcgQEAKICAgICBubm8gPHNpbGVudD4gPGJ1ZmZlcj4gWwk6c2lsZW50IGNhbGwgPFNJRD5UcmVlTGlzdE1vdmUoJ1snKTxjcj4KICAgICBubm8gPHNpbGVudD4gPGJ1ZmZlcj4gXQk6c2lsZW50IGNhbGwgPFNJRD5UcmVlTGlzdE1vdmUoJ10nKTxjcj4KICAgIGVsc2UKLSAgICBleGUgInNpbGVudCEga2VlcGFsdCBmaWxlICIuYjpuZXRyd19jdXJkaXIKKyAgICBleGUgInNpbGVudCEga2VlcGFsdCBmaWxlICIuZm5hbWVlc2NhcGUoYjpuZXRyd19jdXJkaXIpCiAgICBlbmRpZgogICBlbmRpZgogCkBAIC03Mjk0LDY4ICs3MzczLDYgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBuZXRydyNOZXRyd1NhdmVQb3NuOiBzYXZlcyBwb3NpdGlvbiBvZiBjdXJzb3Igb24gc2NyZWVuIHt7ezIKLWZ1biEgbmV0cncjTmV0cndTYXZlUG9zbigpCi0iICBjYWxsIERmdW5jKCJuZXRydyNOZXRyd1NhdmVQb3NuKCkiKQotICAiIFNhdmUgY3VycmVudCBsaW5lIGFuZCBjb2x1bW4KLSAgbGV0IHc6bmV0cndfd2lubnI9IHdpbm5yKCkKLSAgbGV0IHc6bmV0cndfbGluZSA9IGxpbmUoIi4iKQotICBsZXQgdzpuZXRyd19jb2wgID0gdmlydGNvbCgiLiIpCi0KLSAgIiBTYXZlIHRvcC1vZi1zY3JlZW4gbGluZQotICBub3JtISBIMAotICBsZXQgdzpuZXRyd19obGluZT0gbGluZSgiLiIpCi0KLSAgIiBzZXQgdXAgc3RyaW5nIGhvbGRpbmcgcG9zaXRpb24gcGFyYW1ldGVycwotICBsZXQgcmV0ICAgICAgICAgID0gImxldCB3Om5ldHJ3X3dpbm5yPSIudzpuZXRyd193aW5uci4ifGxldCB3Om5ldHJ3X2xpbmU9Ii53Om5ldHJ3X2xpbmUuInxsZXQgdzpuZXRyd19jb2w9Ii53Om5ldHJ3X2NvbC4ifGxldCB3Om5ldHJ3X2hsaW5lPSIudzpuZXRyd19obGluZQotCi0gIGNhbGwgbmV0cncjTmV0cndSZXN0b3JlUG9zbigpCi0iICBjYWxsIERyZXQoIm5ldHJ3I05ldHJ3U2F2ZVBvc24gOiB3aW5ucj0iLnc6bmV0cndfd2lubnIuIiBsaW5lPSIudzpuZXRyd19saW5lLiIgY29sPSIudzpuZXRyd19jb2wuIiBobGluZT0iLnc6bmV0cndfaGxpbmUpCi0gIHJldHVybiByZXQKLWVuZGZ1bgotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBuZXRydyNOZXRyd1Jlc3RvcmVQb3NuOiByZXN0b3JlcyB0aGUgY3Vyc29yIGFuZCBmaWxlIHBvc2l0aW9uIGFzIHNhdmVkIGJ5IE5ldHJ3U2F2ZVBvc24oKSB7e3syCi1mdW4hIG5ldHJ3I05ldHJ3UmVzdG9yZVBvc24oLi4uKQotIiAgY2FsbCBEZnVuYygibmV0cncjTmV0cndSZXN0b3JlUG9zbigpIGE6MD0iLmE6MC4iIHdpbm5yPSIuKGV4aXN0cygidzpuZXRyd193aW5uciIpPyB3Om5ldHJ3X3dpbm5yIDogLTEpLiIgbGluZT0iLihleGlzdHMoInc6bmV0cndfbGluZSIpPyB3Om5ldHJ3X2xpbmUgOiAtMSkuIiBjb2w9Ii4oZXhpc3RzKCJ3Om5ldHJ3X2NvbCIpPyB3Om5ldHJ3X2NvbCA6IC0xKS4iIGhsaW5lPSIuKGV4aXN0cygidzpuZXRyd19obGluZSIpPyB3Om5ldHJ3X2hsaW5lIDogLTEpKQotICBsZXQgZWlrZWVwPSAmZWkKLSAgc2V0IGVpPWFsbAotICBpZiBleHBhbmQoIiUiKSA9PSAiTmV0cndNZXNzYWdlIgotICAgZXhlIHM6d2luQmVmb3JlRXJyLiJ3aW5jbWQgdyIKLSAgZW5kaWYKLQotICBpZiBhOjAgPiAwCi0gICBleGUgYToxCi0gIGVuZGlmCi0KLSAgIiByZXN0b3JlIHdpbmRvdwotICBpZiBleGlzdHMoInc6bmV0cndfd2lubnIiKQotIiAgIGNhbGwgRGVjaG8oInJlc3RvcmUgd2luZG93OiBleGUgc2lsZW50ISAiLnc6bmV0cndfd2lubnIuIndpbmNtZCB3IikKLSAgIGV4ZSAic2lsZW50ISAiLnc6bmV0cndfd2lubnIuIndpbmNtZCB3IgotICBlbmRpZgotICBpZiB2OnNoZWxsX2Vycm9yID09IDAKLSAgICIgYXMgc3VnZ2VzdGVkIGJ5IEJyYW0gTTogcmVkcmF3IG9uIG5vIGVycm9yCi0gICAiIGFsbG93cyBwcm90b2NvbCBlcnJvciBtZXNzYWdlcyB0byByZW1haW4gdmlzaWJsZQotIiAgIHJlZHJhdyEKLSAgZW5kaWYKLQotICAiIHJlc3RvcmUgdG9wLW9mLXNjcmVlbiBsaW5lCi0gIGlmIGV4aXN0cygidzpuZXRyd19obGluZSIpCi0iICAgY2FsbCBEZWNobygicmVzdG9yZSB0b3BvZnNjcmVlbjogZXhlIG5vcm0hICIudzpuZXRyd19obGluZS4iRzB6IikKLSAgIGV4ZSAibm9ybSEgIi53Om5ldHJ3X2hsaW5lLiJHMHpcPENSPiIKLSAgZW5kaWYKLQotICAiIHJlc3RvcmUgcG9zaXRpb24KLSAgaWYgZXhpc3RzKCJ3Om5ldHJ3X2xpbmUiKSAmJiBleGlzdHMoInc6bmV0cndfY29sIikKLSIgICBjYWxsIERlY2hvKCJyZXN0b3JlIHBvc246IGV4ZSBub3JtISAiLnc6bmV0cndfbGluZS4iRzAiLnc6bmV0cndfY29sLiJ8IikKLSAgIGV4ZSAibm9ybSEgIi53Om5ldHJ3X2xpbmUuIkcwIi53Om5ldHJ3X2NvbC4iXDxiYXI+IgotICBlbmRpZgotCi0gIGxldCAmZWk9IGVpa2VlcAotIiAgY2FsbCBEcmV0KCJuZXRydyNOZXRyd1Jlc3RvcmVQb3NuIikKLWVuZGZ1bgotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBzOk5ldHJ3U2F2ZVdvcmRQb3NuOiB1c2VkIHRvIGtlZXAgY3Vyc29yIG9uIHNhbWUgd29yZCBhZnRlciByZWZyZXNoLCB7e3syCiAiIGNoYW5nZWQgc29ydGluZywgZXRjLiAgQWxzbyBzZWUgczpOZXRyd1Jlc3RvcmVXb3JkUG9zbigpLgogZnVuISBzOk5ldHJ3U2F2ZVdvcmRQb3NuKCkKQEAgLTczNzQsNiArNzM5MSwyMSBAQAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIHM6UmVzdG9yZUJ1ZlZhcnM6IHt7ezIKK2Z1biEgczpSZXN0b3JlQnVmVmFycygpCisiICBjYWxsIERmdW5jKCJzOlJlc3RvcmVCdWZWYXJzKCkiKQorCisgIGlmIGV4aXN0cygiczpuZXRyd19jdXJkaXIiKSAgICAgICAgfGxldCBiOm5ldHJ3X2N1cmRpciAgICAgICAgID0gczpuZXRyd19jdXJkaXIgICAgICAgIHxlbmRpZgorICBpZiBleGlzdHMoInM6bmV0cndfbGFzdGZpbGUiKSAgICAgIHxsZXQgYjpuZXRyd19sYXN0ZmlsZSAgICAgICA9IHM6bmV0cndfbGFzdGZpbGUgICAgICB8ZW5kaWYKKyAgaWYgZXhpc3RzKCJzOm5ldHJ3X21ldGhvZCIpICAgICAgICB8bGV0IGI6bmV0cndfbWV0aG9kICAgICAgICAgPSBzOm5ldHJ3X21ldGhvZCAgICAgICAgfGVuZGlmCisgIGlmIGV4aXN0cygiczpuZXRyd19mbmFtZSIpICAgICAgICAgfGxldCBiOm5ldHJ3X2ZuYW1lICAgICAgICAgID0gczpuZXRyd19mbmFtZSAgICAgICAgIHxlbmRpZgorICBpZiBleGlzdHMoInM6bmV0cndfbWFjaGluZSIpICAgICAgIHxsZXQgYjpuZXRyd19tYWNoaW5lICAgICAgICA9IHM6bmV0cndfbWFjaGluZSAgICAgICB8ZW5kaWYKKyAgaWYgZXhpc3RzKCJzOm5ldHJ3X2Jyb3dzZXJfYWN0aXZlIil8bGV0IGI6bmV0cndfYnJvd3Nlcl9hY3RpdmUgPSBzOm5ldHJ3X2Jyb3dzZXJfYWN0aXZlfGVuZGlmCisKKyIgIGNhbGwgRHJldCgiczpSZXN0b3JlQnVmVmFycyIpCitlbmRmdW4KKworIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpSZW1vdGVQYXRoQW5hbHlzaXM6IHt7ezIKIGZ1biEgczpSZW1vdGVQYXRoQW5hbHlzaXMoZGlybmFtZSkKICIgIGNhbGwgRGZ1bmMoInM6UmVtb3RlUGF0aEFuYWx5c2lzKCkiKQpAQCAtNzM5NywxOCArNzQyOSwzMSBAQAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIHM6UmVzdG9yZUJ1ZlZhcnM6IHt7ezIKLWZ1biEgczpSZXN0b3JlQnVmVmFycygpCi0iICBjYWxsIERmdW5jKCJzOlJlc3RvcmVCdWZWYXJzKCkiKQotCi0gIGlmIGV4aXN0cygiczpuZXRyd19jdXJkaXIiKSAgICAgICAgfGxldCBiOm5ldHJ3X2N1cmRpciAgICAgICAgID0gczpuZXRyd19jdXJkaXIgICAgICAgIHxlbmRpZgotICBpZiBleGlzdHMoInM6bmV0cndfbGFzdGZpbGUiKSAgICAgIHxsZXQgYjpuZXRyd19sYXN0ZmlsZSAgICAgICA9IHM6bmV0cndfbGFzdGZpbGUgICAgICB8ZW5kaWYKLSAgaWYgZXhpc3RzKCJzOm5ldHJ3X21ldGhvZCIpICAgICAgICB8bGV0IGI6bmV0cndfbWV0aG9kICAgICAgICAgPSBzOm5ldHJ3X21ldGhvZCAgICAgICAgfGVuZGlmCi0gIGlmIGV4aXN0cygiczpuZXRyd19mbmFtZSIpICAgICAgICAgfGxldCBiOm5ldHJ3X2ZuYW1lICAgICAgICAgID0gczpuZXRyd19mbmFtZSAgICAgICAgIHxlbmRpZgotICBpZiBleGlzdHMoInM6bmV0cndfbWFjaGluZSIpICAgICAgIHxsZXQgYjpuZXRyd19tYWNoaW5lICAgICAgICA9IHM6bmV0cndfbWFjaGluZSAgICAgICB8ZW5kaWYKLSAgaWYgZXhpc3RzKCJzOm5ldHJ3X2Jyb3dzZXJfYWN0aXZlIil8bGV0IGI6bmV0cndfYnJvd3Nlcl9hY3RpdmUgPSBzOm5ldHJ3X2Jyb3dzZXJfYWN0aXZlfGVuZGlmCi0KLSIgIGNhbGwgRHJldCgiczpSZXN0b3JlQnVmVmFycyIpCisiIHM6UmVtb3RlU3lzdGVtOiBydW5zIGEgY29tbWFuZCBvbiBhIHJlbW90ZSBob3N0IHVzaW5nIHNzaCB7e3syCisiICAgICAgICAgICAgICAgICBSZXR1cm5zIHN0YXR1cworIiBSdW5zIHN5c3RlbSgpIG9uCisiICAgIFtjZCBSRU1PVEVESVJQQVRIO10gYTpjbWQKKyIgTm90ZSB0aGF0IGl0IGRvZXNuJ3QgZG8gc2hlbGxlc2NhcGUoYTpjbWQpIQorZnVuISBzOlJlbW90ZVN5c3RlbShjbWQpCisiICBjYWxsIERmdW5jKCJzOlJlbW90ZVN5c3RlbShjbWQ8Ii5hOmNtZC4iPikiKQorICBpZiAhZXhlY3V0YWJsZShnOm5ldHJ3X3NzaF9jbWQpCisgICBjYWxsIG5ldHJ3I0Vycm9yTXNnKHM6RVJST1IsImc6bmV0cndfc3NoX2NtZDwiLmc6bmV0cndfc3NoX2NtZC4iPiBpcyBub3QgZXhlY3V0YWJsZSEiLDUyKQorICBlbHNlaWYgIWV4aXN0cygiYjpuZXRyd19jdXJkaXIiKQorICAgY2FsbCBuZXRydyNFcnJvck1zZyhzOkVSUk9SLCJmb3Igc29tZSByZWFzb24gYjpuZXRyd19jdXJkaXIgZG9lc24ndCBleGlzdCEiLDUzKQorICBlbHNlCisgICBsZXQgY21kICAgICAgPSBzOk1ha2VTc2hDbWQoZzpuZXRyd19zc2hfY21kLiIgVVNFUE9SVCBIT1NUTkFNRSIpCisgICBsZXQgcmVtb3RlZGlyPSBzdWJzdGl0dXRlKGI6bmV0cndfY3VyZGlyLCdeLiovL1teL11cKy9cKC4qXCkkJywnXDEnLCcnKQorICAgaWYgcmVtb3RlZGlyICE9ICIiCisgICAgbGV0IGNtZD0gY21kLicgY2QgJy5zaGVsbGVzY2FwZShyZW1vdGVkaXIpLiI7IgorICAgZWxzZQorICAgIGxldCBjbWQ9IGNtZC4nICcKKyAgIGVuZGlmCisgICBsZXQgY21kPSBjbWQuYTpjbWQKKyIgICBjYWxsIERlY2hvKCJjYWxsIHN5c3RlbSgiLmNtZC4iKSIpCisgICBsZXQgcmV0PSBzeXN0ZW0oY21kKQorICBlbmRpZgorIiAgY2FsbCBEcmV0KCJzOlJlbW90ZVN5c3RlbSAiLnJldCkKKyAgcmV0dXJuIHJldAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC03NTg2LDQ0ICs3NjMxLDYgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBzOlN5c3RlbTogdXNpbmcgU3RldmUgSGFsbCdzIGlkZWEgdG8gaW5zdXJlIHRoYXQgV2luZG93cyBwYXRocyBzdGF5IHt7ezIKLSIgICAgICAgICAgICAgIGFjY2VwdGFibGUuICBObyBlZmZlY3Qgb24gVW5peCBwYXRocy4KLSIgIEV4YW1wbGVzIG9mIHVzZTogIGxldCByZXN1bHQ9IHM6U3lzdGVtKCJybSIscGF0aCkKLSIgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQ9IHM6U3lzdGVtKCJkZWxldGUiLHBhdGgpCi1mdW4hIG5ldHJ3I1N5c3RlbShjbWQscGF0aCkKLSAgZWNob21zZyBzOlN5c3RlbShhOmNtZCxhOnBhdGgpCi1lbmRmdW4KLWZ1biEgczpTeXN0ZW0oY21kLHBhdGgpCi0iICBjYWxsIERmdW5jKCJzOlN5c3RlbShjbWQ8Ii5hOmNtZC4iPiBwYXRoPCIuYTpwYXRoLiI+KSIpCi0KLSAgbGV0IHBhdGggPSBhOnBhdGgKLSAgaWYgIWc6bmV0cndfY3lnd2luICYmIChoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikpCi0gICAiIHN5c3RlbSBjYWxsIHByZXAKLSAgICIgcmVtb3ZlIHRyYWlsaW5nIHNsYXNoIChXaW45NSkKLSAgIGxldCBwYXRoID0gc3Vic3RpdHV0ZShwYXRoLCAnXChcXFx8L1wpJCcsICcnLCAnZycpCi0gICAiIHJlbW92ZSBlc2NhcGVkIHNwYWNlcwotICAgbGV0IHBhdGggPSBzdWJzdGl0dXRlKHBhdGgsICdcICcsICcgJywgJ2cnKQotICAgIiBjb252ZXJ0IHNsYXNoZXMgdG8gYmFja3NsYXNoZXMKLSAgIGxldCBwYXRoID0gc3Vic3RpdHV0ZShwYXRoLCAnLycsICdcJywgJ2cnKQotICAgaWYgZXhpc3RzKCIrc2hlbGxzbGFzaCIpCi0gICAgbGV0IHNza2VlcD0gJnNoZWxsc2xhc2gKLSAgICBzZXRsb2NhbCBub3NoZWxsc2xhc2gKLSAgICBleGUgImxldCByZXN1bHQ9ICIuYTpjbWQuIignIi5wYXRoLiInKSIKLSAgICBsZXQgJnNoZWxsc2xhc2ggPSBzc2tlZXAKLSAgIGVsc2UKLSIgICAgY2FsbCBEZWNobygiZXhlIGxldCByZXN1bHQ9ICIuYTpjbWQuIignIi5wYXRoLiInKSIpCi0gICAgZXhlICJsZXQgcmVzdWx0PSAiLmE6Y21kLiIoJyIucGF0aC4iJykiCi0gICBlbmRpZgotICBlbHNlCi0iICAgY2FsbCBEZWNobygiZXhlIGxldCByZXN1bHQ9ICIuYTpjbWQuIignIi5wYXRoLiInKSIpCi0gICBleGUgImxldCByZXN1bHQ9ICIuYTpjbWQuIignIi5wYXRoLiInKSIKLSAgZW5kaWYKLQotIiAgY2FsbCBEcmV0KCJzOlN5c3RlbSByZXN1bHQ8Ii5yZXN1bHQuIj4iKQotICByZXR1cm4gcmVzdWx0Ci1lbmRmdW4KLQotIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpUcmVlTGlzdE1vdmU6IHt7ezIKIGZ1biEgczpUcmVlTGlzdE1vdmUoZGlyKQogIiAgY2FsbCBEZnVuYygiczpUcmVlTGlzdE1vdmUoZGlyPCIuYTpkaXIuIj4pIikKQEAgLTc2ODAsNiArNzY4NywyNCBAQAogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIHM6VXBkYXRlQnVmZmVyc01lbnU6IGRvZXMgZW1lbnUgQnVmZmVycy5SZWZyZXNoIChidXQgZHVlIHRvIGxvY2FsZSwgdGhlIG1lbnUgaXRlbSBtYXkgbm90IGJlIGNhbGxlZCB0aGF0KSB7e3syCisiICAgICAgICAgICAgICAgICAgICAgIFRoZSBCdWZmZXJzLlJlZnJlc2ggbWVudSBjYWxscyBzOkJNU2hvdygpOyB1bmZvcnR1bmF0ZWx5LCB0aGF0IG1lYW5zIHRoYXQgdGhhdCBmdW5jdGlvbgorIiAgICAgICAgICAgICAgICAgICAgICBjYW4ndCBiZSBjYWxsZWQgZXhjZXB0IHZpYSBlbWVudS4gIEJ1dCBkdWUgdG8gbG9jYWxlLCB0aGF0IG1lbnUgbGluZSBtYXkgbm90IGJlIGNhbGxlZAorIiAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJzLlJlZnJlc2g7IGhlbmNlLCBzOk5ldHJ3Qk1TaG93KCkgdXRpbGl6ZXMgYSAiY2hlYXQiIHRvIGNhbGwgdGhhdCBmdW5jdGlvbiBhbnl3YXkuCitmdW4hIHM6VXBkYXRlQnVmZmVyc01lbnUoKQorIiAgY2FsbCBEZnVuYygiczpVcGRhdGVCdWZmZXJzTWVudSgpIikKKyAgaWYgaGFzKCJndWkiKSAmJiBoYXMoIm1lbnUiKSAmJiBoYXMoImd1aV9ydW5uaW5nIikgJiYgJmdvID1+ICdtJworICAgdHJ5CisgICAgc2lsZW50IGVtZW51IEJ1ZmZlcnMuUmVmcmVzaFwgbWVudQorICAgY2F0Y2ggL15WaW1cJSgoXGFcKylcKVw9OkUvCisgICAgbGV0IHY6ZXJybXNnPSAiIgorICAgIHNpbGVudCBjYWxsIHM6TmV0cndCTVNob3coKQorICAgZW5kdHJ5CisgIGVuZGlmCisiICBjYWxsIERyZXQoInM6VXBkYXRlQnVmZmVyc01lbnUiKQorZW5kZnVuCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIHM6VXNlQnVmV2luVmFyczogKHVzZWQgYnkgTmV0cndCcm93c2UoKSBhbmQgTG9jYWxCcm93c2VDaGVjaygpIHt7ezIKICIgICAgICAgICAgICAgIE1hdGNoaW5nIGZ1bmN0aW9uIHRvIEJ1ZmZlcldpblZhcnMoKQogZnVuISBzOlVzZUJ1ZldpblZhcnMoKQpAQCAtNzY5OCw2ICs3NzIzLDI0IEBACiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgczpXaW5QYXRoOiB7e3syCitmdW4hIHM6V2luUGF0aChwYXRoKQorIiAgY2FsbCBEZnVuYygiczpXaW5QYXRoKHBhdGg8Ii5hOnBhdGguIj4pIikKKyAgaWYgIWc6bmV0cndfY3lnd2luICYmIChoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikpCisgICAiIHJlbW92ZSB0cmFpbGluZyBzbGFzaCAoV2luOTUpCisgICBsZXQgcGF0aCA9IHN1YnN0aXR1dGUoYTpwYXRoLCAnXChcXFx8L1wpJCcsICcnLCAnZycpCisgICAiIHJlbW92ZSBlc2NhcGVkIHNwYWNlcworICAgbGV0IHBhdGggPSBzdWJzdGl0dXRlKHBhdGgsICdcICcsICcgJywgJ2cnKQorICAgIiBjb252ZXJ0IHNsYXNoZXMgdG8gYmFja3NsYXNoZXMKKyAgIGxldCBwYXRoID0gc3Vic3RpdHV0ZShwYXRoLCAnLycsICdcJywgJ2cnKQorICBlbHNlCisgICBsZXQgcGF0aD0gYTpwYXRoCisgIGVuZGlmCisiICBjYWxsIERyZXQoInM6V2luUGF0aCA8Ii5wYXRoLiI+IikKKyAgcmV0dXJuIHBhdGgKK2VuZGZ1bgorCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBTZXR0aW5ncyBSZXN0b3JhdGlvbjoge3t7MgogbGV0ICZjcG89IHM6a2VlcGNwbwogdW5sZXQgczprZWVwY3BvCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL25ldHJ3U2V0dGluZ3MudmltIGIvcnVudGltZS9hdXRvbG9hZC9uZXRyd1NldHRpbmdzLnZpbQppbmRleCBkNmE5MzYyLi5jMDcwNGQ0IDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL25ldHJ3U2V0dGluZ3MudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvbmV0cndTZXR0aW5ncy52aW0KQEAgLTEsNyArMSw3IEBACiAiIG5ldHJ3U2V0dGluZ3MudmltOiBtYWtlcyBuZXRydyBzZXR0aW5ncyBzaW1wbGVyCi0iIERhdGU6CQlNYXIgMTEsIDIwMDgKKyIgRGF0ZToJCUp1bCAwMiwgMjAwOAogIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxkcmNoaXBOT1NQQU0gYXQgY2FtcGJlbGxmYW1pbHkgZG90IGJpej4KLSIgVmVyc2lvbjoJMTEKKyIgVmVyc2lvbjoJMTIKICIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwNyBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQogIiAgICAgICAgICAgICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgdG8gdXNlIGFuZCBkaXN0cmlidXRlIHRoaXMgY29kZSwKICIgICAgICAgICAgICAgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzIGNvcHlyaWdodApAQCAtMTksNyArMTksNyBAQAogaWYgZXhpc3RzKCJnOmxvYWRlZF9uZXRyd1NldHRpbmdzIikgfHwgJmNwCiAgIGZpbmlzaAogZW5kaWYKLWxldCBnOmxvYWRlZF9uZXRyd1NldHRpbmdzICA9ICJ2MTEiCitsZXQgZzpsb2FkZWRfbmV0cndTZXR0aW5ncyAgPSAidjEyIgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBOZXRyd1NldHRpbmdzOiB7e3sxCkBAIC04Miw4ICs4Miw2IEBACiAgIHB1dCA9ICdsZXQgZzpuZXRyd19mdHBtb2RlICAgICAgICAgICA9ICcuZzpuZXRyd19mdHBtb2RlCiAgIHB1dCA9ICdsZXQgZzpuZXRyd19pZ25vcmVuZXRyYyAgICAgICA9ICcuZzpuZXRyd19pZ25vcmVuZXRyYwogICBwdXQgPSAnbGV0IGc6bmV0cndfc3NocG9ydCAgICAgICAgICAgPSAnLmc6bmV0cndfc3NocG9ydAotICBsZXQgc2hxbGluZT0gbGluZSgiJCIpCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19zaHEuLi4nCiAgIHB1dCA9ICdsZXQgZzpuZXRyd191c2VfbnRfcmNwICAgICAgICA9ICcuZzpuZXRyd191c2VfbnRfcmNwCiAgIHB1dCA9ICdsZXQgZzpuZXRyd193aW45NWZ0cCAgICAgICAgICA9ICcuZzpuZXRyd193aW45NWZ0cAogICBsZXQgczpuZXRyd194ZmVyX3N0b3A9IGxpbmUoIi4iKQpAQCAtMTAxLDggKzk5LDYgQEAKICAgZWxzZQogICAgcHV0ID0gJ2xldCBnOm5ldHJ3X2Jyb3dzZXhfdmlld2VyICAgID0gKG5vdCBkZWZpbmVkKScKICAgZW5kaWYKLSAgbGV0IGNkZXNjbGluZT0gbGluZSgiJCIpCi0gIHB1dCA9J2xldCBnOm5ldHJ3X2NkX2VzY2FwZS4uLicKICAgcHV0ID0gJ2xldCBnOm5ldHJ3X2NvbXByZXNzICAgICAgICAgID0gJy5nOm5ldHJ3X2NvbXByZXNzCiAgIGxldCBkZWNvbXByZXNzbGluZT0gbGluZSgiJCIpCiAgIHB1dCA9J2xldCBnOm5ldHJ3X2RlY29tcHJlc3MuLi4nCkBAIC0xMzcsNiArMTMzLDcgQEAKICAgcHV0ID0gJ2xldCBnOm5ldHJ3X3NpbGVudCAgICAgICAgICAgID0gJy5nOm5ldHJ3X3NpbGVudAogICBwdXQgPSAnbGV0IGc6bmV0cndfc29ydF9ieSAgICAgICAgICAgPSAnLmc6bmV0cndfc29ydF9ieQogICBwdXQgPSAnbGV0IGc6bmV0cndfc29ydF9kaXJlY3Rpb24gICAgPSAnLmc6bmV0cndfc29ydF9kaXJlY3Rpb24KKyAgcHV0ID0gJ2xldCBnOm5ldHJ3X3NvcnRfb3B0aW9ucyAgICAgID0gJy5nOm5ldHJ3X3NvcnRfb3B0aW9ucwogICBwdXQgPSAnbGV0IGc6bmV0cndfc29ydF9zZXF1ZW5jZSAgICAgPSAnLmc6bmV0cndfc29ydF9zZXF1ZW5jZQogICBwdXQgPSAnbGV0IGc6bmV0cndfc3BlY2lhbF9zeW50YXggICAgPSAnLmc6bmV0cndfc3BlY2lhbF9zeW50YXgKICAgcHV0ID0gJ2xldCBnOm5ldHJ3X3NzaF9icm93c2VfcmVqZWN0ID0gJy5nOm5ldHJ3X3NzaF9icm93c2VfcmVqZWN0CkBAIC0xNTksMTQgKzE1Niw2IEBACiAgIHNpbGVudCAlcy89ICQvPSAnJy9lCiAgIDEKIAotICAiIFB1dCBpbiBnOm5ldHJ3X3NocSBzZXR0aW5nIGFuZCBnOm5ldHJ3X2NkX2VzY2FwZQotICAiIChkZWZlcnJlZCBzbyBhcyB0byBhdm9pZCB0aGUgcXVvdGUgbWFuaXB1bGF0aW9uIGp1c3QgcHJlY2VkaW5nKQotICBpZiBnOm5ldHJ3X3NocSA9PSAiJyIKLSAgIGNhbGwgc2V0bGluZShzaHFsaW5lLCAgICAgICdsZXQgZzpuZXRyd19zaHEgICAgICAgICAgICAgICA9ICInLmc6bmV0cndfc2hxLiciJykKLSAgZWxzZQotICAgY2FsbCBzZXRsaW5lKHNocWxpbmUsICAgICAgImxldCBnOm5ldHJ3X3NocSAgICAgICAgICAgICAgID0gJyIuZzpuZXRyd19zaHEuIiciKQotICBlbmRpZgotICBjYWxsIHNldGxpbmUoY2Rlc2NsaW5lLCAgICAgImxldCBnOm5ldHJ3X2NkX2VzY2FwZSAgICAgICAgID0gIi4nIicuZXNjYXBlKGc6bmV0cndfY2RfZXNjYXBlLCdcIicpLiciJykKICAgY2FsbCBzZXRsaW5lKGRlY29tcHJlc3NsaW5lLCJsZXQgZzpuZXRyd19kZWNvbXByZXNzICAgICAgICA9ICIuc3Vic3RpdHV0ZShzdHJpbmcoZzpuZXRyd19kZWNvbXByZXNzKSwiXidcXCguKlxcKSckIiwnXDEnLCcnKSkKICAgY2FsbCBzZXRsaW5lKGZuYW1lZXNjbGluZSwgICJsZXQgZzpuZXRyd19mbmFtZV9lc2NhcGUgICAgICA9ICciLmVzY2FwZShnOm5ldHJ3X2ZuYW1lX2VzY2FwZSwiJyIpLiInIikKICAgY2FsbCBzZXRsaW5lKGdsb2Jlc2NsaW5lLCAgICJsZXQgZzpuZXRyd19nbG9iX2VzY2FwZSAgICAgICA9ICciLmVzY2FwZShnOm5ldHJ3X2dsb2JfZXNjYXBlLCInIikuIiciKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC9ydWJ5Y29tcGxldGUudmltIGIvcnVudGltZS9hdXRvbG9hZC9ydWJ5Y29tcGxldGUudmltCmluZGV4IDQ3Yzc3ZDkuLjg3ZTZjOWEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvcnVieWNvbXBsZXRlLnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL3J1Ynljb21wbGV0ZS52aW0KQEAgLTMwMSw3ICszMDEsNyBAQAogCiAgIGRlZiBnZXRfYnVmZmVyX2VudGl0eShuYW1lLCB2aW1mdW4pCiAgICAgbG9hZGluZ19hbGxvd2VkID0gVklNOjpldmFsdWF0ZSgiZXhpc3RzKCdnOnJ1Ynljb21wbGV0ZV9idWZmZXJfbG9hZGluZycpICYmIGc6cnVieWNvbXBsZXRlX2J1ZmZlcl9sb2FkaW5nIikKLSAgICByZXR1cm4gbmlsIGlmIGxvYWRpbmdfYWxsb3dlZCAhPSAnMScKKyAgICByZXR1cm4gbmlsIGlmIGxvYWRpbmdfYWxsb3dlZC50b19pLnplcm8/CiAgICAgcmV0dXJuIG5pbCBpZiAvKFwifFwnKSsvLm1hdGNoKCBuYW1lICkKICAgICBidWYgPSBWSU06OkJ1ZmZlci5jdXJyZW50CiAgICAgbnVtcyA9IGV2YWwoIFZJTTo6ZXZhbHVhdGUoIHZpbWZ1biAlIG5hbWUgKSApCkBAIC0zNjgsNyArMzY4LDcgQEAKICAgICAjIHRoaXMgd2lsbCBiZSBhIGxpdHRsZSBleHBlbnNpdmUuCiAgICAgbG9hZGluZ19hbGxvd2VkID0gVklNOjpldmFsdWF0ZSgiZXhpc3RzKCdnOnJ1Ynljb21wbGV0ZV9idWZmZXJfbG9hZGluZycpICYmIGc6cnVieWNvbXBsZXRlX2J1ZmZlcl9sb2FkaW5nIikKICAgICBhbGxvd19hZ2dyZXNzaXZlX2xvYWQgPSBWSU06OmV2YWx1YXRlKCJleGlzdHMoJ2c6cnVieWNvbXBsZXRlX2NsYXNzZXNfaW5fZ2xvYmFsJykgJiYgZzpydWJ5Y29tcGxldGVfY2xhc3Nlc19pbl9nbG9iYWwiKQotICAgIHJldHVybiBbXSBpZiBhbGxvd19hZ2dyZXNzaXZlX2xvYWQgIT0gJzEnIHx8IGxvYWRpbmdfYWxsb3dlZCAhPSAnMScKKyAgICByZXR1cm4gW10gaWYgYWxsb3dfYWdncmVzc2l2ZV9sb2FkLnRvX2kuemVybz8gfHwgbG9hZGluZ19hbGxvd2VkLnRvX2kuemVybz8KIAogICAgIGJ1ZiA9IFZJTTo6QnVmZmVyLmN1cnJlbnQKICAgICBlb2IgPSBidWYubGVuZ3RoCkBAIC00MDEsNyArNDAxLDcgQEAKIAogICBkZWYgbG9hZF9yYWlscwogICAgIGFsbG93X3JhaWxzID0gVklNOjpldmFsdWF0ZSgiZXhpc3RzKCdnOnJ1Ynljb21wbGV0ZV9yYWlscycpICYmIGc6cnVieWNvbXBsZXRlX3JhaWxzIikKLSAgICByZXR1cm4gaWYgYWxsb3dfcmFpbHMgIT0gJzEnCisgICAgcmV0dXJuIGlmIGFsbG93X3JhaWxzLnRvX2kuemVybz8KIAogICAgIGJ1Zl9wYXRoID0gVklNOjpldmFsdWF0ZSgnZXhwYW5kKCIlOnAiKScpCiAgICAgZmlsZV9uYW1lID0gVklNOjpldmFsdWF0ZSgnZXhwYW5kKCIlOnQiKScpCkBAIC00NjEsNyArNDYxLDcgQEAKICAgZGVmIGdldF9yYWlsc19oZWxwZXJzCiAgICAgYWxsb3dfcmFpbHMgPSBWSU06OmV2YWx1YXRlKCJleGlzdHMoJ2c6cnVieWNvbXBsZXRlX3JhaWxzJykgJiYgZzpydWJ5Y29tcGxldGVfcmFpbHMiKQogICAgIHJhaWxzX2xvYWRlZCA9IFZJTTo6ZXZhbHVhdGUoJ3M6cnVieWNvbXBsZXRlX3JhaWxzX2xvYWRlZCcpCi0gICAgcmV0dXJuIFtdIGlmIGFsbG93X3JhaWxzICE9ICcxJyB8fCByYWlsc19sb2FkZWQgIT0gJzEnCisgICAgcmV0dXJuIFtdIGlmIGFsbG93X3JhaWxzLnRvX2kuemVybz8gfHwgcmFpbHNfbG9hZGVkLnRvX2kuemVybz8KIAogICAgIGJ1Zl9wYXRoID0gVklNOjpldmFsdWF0ZSgnZXhwYW5kKCIlOnAiKScpCiAgICAgYnVmX3BhdGguZ3N1YiEoIC9cXC8sICIvIiApCkBAIC01MTEsNyArNTExLDcgQEAKICAgZGVmIGFkZF9yYWlsc19jb2x1bW5zKCBjbHMgKQogICAgIGFsbG93X3JhaWxzID0gVklNOjpldmFsdWF0ZSgiZXhpc3RzKCdnOnJ1Ynljb21wbGV0ZV9yYWlscycpICYmIGc6cnVieWNvbXBsZXRlX3JhaWxzIikKICAgICByYWlsc19sb2FkZWQgPSBWSU06OmV2YWx1YXRlKCdzOnJ1Ynljb21wbGV0ZV9yYWlsc19sb2FkZWQnKQotICAgIHJldHVybiBbXSBpZiBhbGxvd19yYWlscyAhPSAnMScgfHwgcmFpbHNfbG9hZGVkICE9ICcxJworICAgIHJldHVybiBbXSBpZiBhbGxvd19yYWlscy50b19pLnplcm8/IHx8IHJhaWxzX2xvYWRlZC50b19pLnplcm8/CiAKICAgICBiZWdpbgogICAgICAgICBldmFsKCAiI3tjbHN9LmVzdGFibGlzaF9jb25uZWN0aW9uIiApCkBAIC01MzQsNyArNTM0LDcgQEAKICAgZGVmIGdldF9yYWlsc192aWV3X21ldGhvZHMKICAgICBhbGxvd19yYWlscyA9IFZJTTo6ZXZhbHVhdGUoImV4aXN0cygnZzpydWJ5Y29tcGxldGVfcmFpbHMnKSAmJiBnOnJ1Ynljb21wbGV0ZV9yYWlscyIpCiAgICAgcmFpbHNfbG9hZGVkID0gVklNOjpldmFsdWF0ZSgnczpydWJ5Y29tcGxldGVfcmFpbHNfbG9hZGVkJykKLSAgICByZXR1cm4gW10gaWYgYWxsb3dfcmFpbHMgIT0gJzEnIHx8IHJhaWxzX2xvYWRlZCAhPSAnMScKKyAgICByZXR1cm4gW10gaWYgYWxsb3dfcmFpbHMudG9faS56ZXJvPyB8fCByYWlsc19sb2FkZWQudG9faS56ZXJvPwogCiAgICAgYnVmX3BhdGggPSBWSU06OmV2YWx1YXRlKCdleHBhbmQoIiU6cCIpJykKICAgICBidWZfcGF0aC5nc3ViISggL1xcLywgIi8iICkKQEAgLTU4MCw3ICs1ODAsNyBAQAogCiAgIGRlZiBnZXRfY29tcGxldGlvbnMoYmFzZSkKICAgICBsb2FkaW5nX2FsbG93ZWQgPSBWSU06OmV2YWx1YXRlKCJleGlzdHMoJ2c6cnVieWNvbXBsZXRlX2J1ZmZlcl9sb2FkaW5nJykgJiYgZzpydWJ5Y29tcGxldGVfYnVmZmVyX2xvYWRpbmciKQotICAgIGlmIGxvYWRpbmdfYWxsb3dlZCA9PSAnMScKKyAgICBpZiBsb2FkaW5nX2FsbG93ZWQudG9faSA9PSAxCiAgICAgICBsb2FkX3JlcXVpcmVzCiAgICAgICBsb2FkX3JhaWxzCiAgICAgZW5kCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL3Rhci52aW0gYi9ydW50aW1lL2F1dG9sb2FkL3Rhci52aW0KaW5kZXggMzVlZjdmZC4uYjE1MjlkNiAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC90YXIudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvdGFyLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgdGFyLnZpbTogSGFuZGxlcyBicm93c2luZyB0YXJmaWxlcwogIiAgICAgICAgICAgIEFVVE9MT0FEIFBPUlRJT04KLSIgRGF0ZToJCQlKdW4gMTIsIDIwMDgKLSIgVmVyc2lvbjoJCTE2CisiIERhdGU6CQkJSnVsIDEyLCAyMDA4CisiIFZlcnNpb246CQkxOSArIGNoYW5nZXMgYnkgQnJhbQogIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxOZHJPY2hpcEBTY2FtcGJlbGxQZmFtaWx5LkFiaXpNLU5PU1BBTT4KICIgTGljZW5zZToJCVZpbSBMaWNlbnNlICAoc2VlIHZpbSdzIDpoZWxwIGxpY2Vuc2UpCiAiCkBAIC0yNCw3ICsyNCw3IEBACiBpZiAmY3AgfHwgZXhpc3RzKCJnOmxvYWRlZF90YXIiKSB8fCB2OnZlcnNpb24gPCA3MDAKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfdGFyPSAidjE2IgorbGV0IGc6bG9hZGVkX3Rhcj0gInYxOStiIgogImNhbGwgRGVjaG8oImxvYWRpbmcgYXV0b2xvYWQvdGFyLnZpbSIpCiBpZiB2OnZlcnNpb24gPCA3MDEgfHwgKHY6dmVyc2lvbiA9PSA3MDEgJiYgIWhhcygicGF0Y2gyOTkiKSkKICBlY2hvZXJyICIoYXV0b2xvYWQvdGFyLnZpbSkgbmVlZCB2aW0gdjcuMSB3aXRoIHBhdGNobGV2ZWwgMjk5IgpAQCAtMTMwLDIxICsxMzAsMjEgQEAKICAgbGV0IHRhcmZpbGU9IGE6dGFyZmlsZQogICBpZiBoYXMoIndpbjMyIikgJiYgZXhlY3V0YWJsZSgiY3lncGF0aCIpCiAgICAiIGFzc3VtaW5nIGN5Z3dpbgotICAgbGV0IHRhcmZpbGU9c3Vic3RpdHV0ZShzeXN0ZW0oImN5Z3BhdGggLXUgIi5zOkVzY2FwZSh0YXJmaWxlKSksJ1xuJCcsJycsJ2UnKQorICAgbGV0IHRhcmZpbGU9c3Vic3RpdHV0ZShzeXN0ZW0oImN5Z3BhdGggLXUgIi5zOkVzY2FwZSh0YXJmaWxlLDApKSwnXG4kJywnJywnZScpCiAgIGVuZGlmCiAgIGxldCBjdXJsYXN0PSBsaW5lKCIkIikKICAgaWYgdGFyZmlsZSA9fiMgJ1wuXChnelx8dGd6XCkkJwotIiAgIGNhbGwgRGVjaG8oIjE6IGV4ZSBzaWxlbnQgciEgZ3ppcCAtZCAtYyAiLnM6RXNjYXBlKHRhcmZpbGUpLiIgfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIpCi0gICBleGUgInNpbGVudCByISBnemlwIC1kIC1jIC0tICIuczpFc2NhcGUodGFyZmlsZSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIgorIiAgIGNhbGwgRGVjaG8oIjE6IGV4ZSBzaWxlbnQgciEgZ3ppcCAtZCAtYyAiLnM6RXNjYXBlKHRhcmZpbGUsMSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIikKKyAgIGV4ZSAic2lsZW50IHIhIGd6aXAgLWQgLWMgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiIgfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIKICAgZWxzZWlmIHRhcmZpbGUgPX4jICdcLmxycCcKLSIgICBjYWxsIERlY2hvKCIyOiBleGUgc2lsZW50IHIhIGNhdCAtLSAiLnM6RXNjYXBlKHRhcmZpbGUpLiJ8Z3ppcCAtZCAtYyAtfCIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIikKLSAgIGV4ZSAic2lsZW50IHIhIGNhdCAtLSAiLnM6RXNjYXBlKHRhcmZpbGUpLiJ8Z3ppcCAtZCAtYyAtfCIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIgorIiAgIGNhbGwgRGVjaG8oIjI6IGV4ZSBzaWxlbnQgciEgY2F0IC0tICIuczpFc2NhcGUodGFyZmlsZSwxKS4ifGd6aXAgLWQgLWMgLXwiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIpCisgICBleGUgInNpbGVudCByISBjYXQgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiJ8Z3ppcCAtZCAtYyAtfCIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIgogICBlbHNlaWYgdGFyZmlsZSA9fiMgJ1wuYnoyJCcKLSIgICBjYWxsIERlY2hvKCIzOiBleGUgc2lsZW50IHIhIGJ6aXAyIC1kIC1jICIuczpFc2NhcGUodGFyZmlsZSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIikKLSAgIGV4ZSAic2lsZW50IHIhIGJ6aXAyIC1kIC1jIC0tICIuczpFc2NhcGUodGFyZmlsZSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIgorIiAgIGNhbGwgRGVjaG8oIjM6IGV4ZSBzaWxlbnQgciEgYnppcDIgLWQgLWMgIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiIgfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIpCisgICBleGUgInNpbGVudCByISBiemlwMiAtZCAtYyAtLSAiLnM6RXNjYXBlKHRhcmZpbGUsMSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIgogICBlbHNlCi0iICAgY2FsbCBEZWNobygiNDogZXhlIHNpbGVudCByISAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAiLnM6RXNjYXBlKHRhcmZpbGUpKQotICAgZXhlICJzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgIi5zOkVzY2FwZSh0YXJmaWxlKQorIiAgIGNhbGwgRGVjaG8oIjQ6IGV4ZSBzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgIi5zOkVzY2FwZSh0YXJmaWxlLDApKQorICAgZXhlICJzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9icm93c2VvcHRpb25zLiIgIi5zOkVzY2FwZSh0YXJmaWxlLDEpCiAgIGVuZGlmCiAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAogICAgcmVkcmF3IQpAQCAtMTYwLDcgKzE2MCw3IEBACiAgICBzaWxlbnQgJWQKICAgIGxldCBlaWtlZXA9ICZlaQogICAgc2V0IGVpPUJ1ZlJlYWRDbWQsRmlsZVJlYWRDbWQKLSAgIGV4ZSAiciAiLmE6dGFyZmlsZQorICAgZXhlICJyICIuZm5hbWVlc2NhcGUoYTp0YXJmaWxlKQogICAgbGV0ICZlaT0gZWlrZWVwCiAgICAxZAogIiAgIGNhbGwgRHJldCgidGFyI0Jyb3dzZSA6IGE6dGFyZmlsZTwiLmE6dGFyZmlsZS4iPiIpCkBAIC0xOTUsNyArMTk1LDcgQEAKICAgbGV0IGN1cmZpbGU9IGV4cGFuZCgiJSIpCiAgIGlmIGhhcygid2luMzIiKSAmJiBleGVjdXRhYmxlKCJjeWdwYXRoIikKICAgICIgYXNzdW1pbmcgY3lnd2luCi0gICBsZXQgdGFyZmlsZT1zdWJzdGl0dXRlKHN5c3RlbSgiY3lncGF0aCAtdSAiLnM6RXNjYXBlKHRhcmZpbGUpKSwnXG4kJywnJywnZScpCisgICBsZXQgdGFyZmlsZT1zdWJzdGl0dXRlKHN5c3RlbSgiY3lncGF0aCAtdSAiLnM6RXNjYXBlKHRhcmZpbGUsMCkpLCdcbiQnLCcnLCdlJykKICAgZW5kaWYKIAogICBuZXcKQEAgLTIyMCw3ICsyMjAsNyBAQAogICBsZXQgZm5hbWUgICA9IHN1YnN0aXR1dGUoYTpmbmFtZSwndGFyZmlsZTouXHstfTo6XCguKlwpJCcsJ1wxJywnJykKICAgaWYgaGFzKCJ3aW4zMiIpICYmIGV4ZWN1dGFibGUoImN5Z3BhdGgiKQogICAgIiBhc3N1bWluZyBjeWd3aW4KLSAgIGxldCB0YXJmaWxlPXN1YnN0aXR1dGUoc3lzdGVtKCJjeWdwYXRoIC11ICIuczpFc2NhcGUodGFyZmlsZSkpLCdcbiQnLCcnLCdlJykKKyAgIGxldCB0YXJmaWxlPXN1YnN0aXR1dGUoc3lzdGVtKCJjeWdwYXRoIC11ICIuczpFc2NhcGUodGFyZmlsZSwwKSksJ1xuJCcsJycsJ2UnKQogICBlbmRpZgogIiAgY2FsbCBEZWNobygidGFyZmlsZTwiLnRhcmZpbGUuIj4iKQogIiAgY2FsbCBEZWNobygiZm5hbWU8Ii5mbmFtZS4iPiIpCkBAIC0yNDAsMTcgKzI0MCwxNyBAQAogICBlbmRpZgogCiAgIGlmIHRhcmZpbGUgPX4jICdcLlwoZ3pcfHRnelwpJCcKLSIgICBjYWxsIERlY2hvKCI1OiBleGUgc2lsZW50IHIhIGd6aXAgLWQgLWMgLS0gIi5zOkVzY2FwZSh0YXJmaWxlKS4ifCAiLmc6dGFyX2NtZC4nIC0nLmc6dGFyX3JlYWRvcHRpb25zLicgLSAnLnM6RXNjYXBlKGZuYW1lKSkKLSAgIGV4ZSAic2lsZW50IHIhIGd6aXAgLWQgLWMgLS0gIi5zOkVzY2FwZSh0YXJmaWxlKS4ifCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAiLnM6RXNjYXBlKGZuYW1lKS5kZWNtcAorIiAgIGNhbGwgRGVjaG8oIjU6IGV4ZSBzaWxlbnQgciEgZ3ppcCAtZCAtYyAtLSAiLnM6RXNjYXBlKHRhcmZpbGUsMSkuInwgIi5nOnRhcl9jbWQuJyAtJy5nOnRhcl9yZWFkb3B0aW9ucy4nIC0gJy5zOkVzY2FwZShmbmFtZSwxKSkKKyAgIGV4ZSAic2lsZW50IHIhIGd6aXAgLWQgLWMgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiJ8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAtICIuczpFc2NhcGUoZm5hbWUsMSkuZGVjbXAKICAgZWxzZWlmIHRhcmZpbGUgPX4jICdcLmxycCQnCi0iICAgY2FsbCBEZWNobygiNjogZXhlIHNpbGVudCByISBjYXQgIi5zOkVzY2FwZSh0YXJmaWxlKS4iIHwgZ3ppcCAtZCAtYyAtIHwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0gIi5zOkVzY2FwZShmbmFtZSkuZGVjbXApCi0gICBleGUgInNpbGVudCByISBjYXQgLS0gIi5zOkVzY2FwZSh0YXJmaWxlKS4iIHwgZ3ppcCAtZCAtYyAtIHwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0gIi5zOkVzY2FwZShmbmFtZSkuZGVjbXAKKyIgICBjYWxsIERlY2hvKCI2OiBleGUgc2lsZW50IHIhIGNhdCAiLnM6RXNjYXBlKHRhcmZpbGUsMSkuIiB8IGd6aXAgLWQgLWMgLSB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAtICIuczpFc2NhcGUoZm5hbWUsMSkuZGVjbXApCisgICBleGUgInNpbGVudCByISBjYXQgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiIgfCBnemlwIC1kIC1jIC0gfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAiLnM6RXNjYXBlKGZuYW1lLDEpLmRlY21wCiAgIGVsc2VpZiB0YXJmaWxlID1+IyAnXC5iejIkJwotIiAgIGNhbGwgRGVjaG8oIjc6IGV4ZSBzaWxlbnQgciEgYnppcDIgLWQgLWMgIi5zOkVzY2FwZSh0YXJmaWxlKS4ifCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAiLnM6RXNjYXBlKGZuYW1lKS5kZWNtcCkKLSAgIGV4ZSAic2lsZW50IHIhIGJ6aXAyIC1kIC1jIC0tICIuczpFc2NhcGUodGFyZmlsZSkuInwgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0gIi5zOkVzY2FwZShmbmFtZSkuZGVjbXAKKyIgICBjYWxsIERlY2hvKCI3OiBleGUgc2lsZW50IHIhIGJ6aXAyIC1kIC1jICIuczpFc2NhcGUodGFyZmlsZSwxKS4ifCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX3JlYWRvcHRpb25zLiIgLSAiLnM6RXNjYXBlKGZuYW1lLDEpLmRlY21wKQorICAgZXhlICJzaWxlbnQgciEgYnppcDIgLWQgLWMgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDEpLiJ8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAtICIuczpFc2NhcGUoZm5hbWUsMSkuZGVjbXAKICAgZWxzZQotIiAgIGNhbGwgRGVjaG8oIjg6IGV4ZSBzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iIC0tICIuczpFc2NhcGUodGFyZmlsZSkuIiAiLnM6RXNjYXBlKGZuYW1lKSkKLSAgIGV4ZSAic2lsZW50IHIhICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAiLnM6RXNjYXBlKHRhcmZpbGUpLiIgLS0gIi5zOkVzY2FwZShmbmFtZSkuZGVjbXAKKyIgICBjYWxsIERlY2hvKCI4OiBleGUgc2lsZW50IHIhICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfcmVhZG9wdGlvbnMuIiAtLSAiLnM6RXNjYXBlKHRhcmZpbGUsMSkuIiAiLnM6RXNjYXBlKGZuYW1lLDEpKQorICAgZXhlICJzaWxlbnQgciEgIi5nOnRhcl9jbWQuIiAtIi5nOnRhcl9yZWFkb3B0aW9ucy4iICIuczpFc2NhcGUodGFyZmlsZSwxKS4iIC0tICIuczpFc2NhcGUoZm5hbWUsMSkuZGVjbXAKICAgZW5kaWYKIAogICBpZiBkb3JvCkBAIC0yNTksNyArMjU5LDcgQEAKICAgZW5kaWYKIAogICBsZXQgdzp0YXJmaWxlPSBhOmZuYW1lCi0gIGV4ZSAiZmlsZSB0YXJmaWxlOjoiLmZuYW1lCisgIGV4ZSAiZmlsZSB0YXJmaWxlOjoiLmZuYW1lZXNjYXBlKGZuYW1lKQogCiAgICIgY2xlYW51cAogICAwZApAQCAtMzI5LDE4ICszMjksMTggQEAKIAogICAiIGhhbmRsZSBjb21wcmVzc2VkIGFyY2hpdmVzCiAgIGlmIHRhcmZpbGUgPX4jICdcLmd6JwotICAgY2FsbCBzeXN0ZW0oImd6aXAgLWQgLS0gIi50YXJmaWxlKQorICAgY2FsbCBzeXN0ZW0oImd6aXAgLWQgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDApKQogICAgbGV0IHRhcmZpbGUgPSBzdWJzdGl0dXRlKHRhcmZpbGUsJ1wuZ3onLCcnLCdlJykKLSAgIGxldCBjb21wcmVzcz0gImd6aXAgIi5zOkVzY2FwZSh0YXJmaWxlKQorICAgbGV0IGNvbXByZXNzPSAiZ3ppcCAiLnM6RXNjYXBlKHRhcmZpbGUsMCkKICAgZWxzZWlmIHRhcmZpbGUgPX4jICdcLnRneicKLSAgIGNhbGwgc3lzdGVtKCJnemlwIC1kIC0tICIuczpFc2NhcGUodGFyZmlsZSkpCisgICBjYWxsIHN5c3RlbSgiZ3ppcCAtZCAtLSAiLnM6RXNjYXBlKHRhcmZpbGUsMCkpCiAgICBsZXQgdGFyZmlsZSA9IHN1YnN0aXR1dGUodGFyZmlsZSwnXC50Z3onLCcudGFyJywnZScpCi0gICBsZXQgY29tcHJlc3M9ICJnemlwIC0tICIuczpFc2NhcGUodGFyZmlsZSkKKyAgIGxldCBjb21wcmVzcz0gImd6aXAgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDApCiAgICBsZXQgdGd6ICAgICA9IDEKICAgZWxzZWlmIHRhcmZpbGUgPX4jICdcLmJ6MicKLSAgIGNhbGwgc3lzdGVtKCJiemlwMiAtZCAtLSAiLnM6RXNjYXBlKHRhcmZpbGUpKQorICAgY2FsbCBzeXN0ZW0oImJ6aXAyIC1kIC0tICIuczpFc2NhcGUodGFyZmlsZSwwKSkKICAgIGxldCB0YXJmaWxlID0gc3Vic3RpdHV0ZSh0YXJmaWxlLCdcLmJ6MicsJycsJ2UnKQotICAgbGV0IGNvbXByZXNzPSAiYnppcDIgLS0gIi5zOkVzY2FwZSh0YXJmaWxlKQorICAgbGV0IGNvbXByZXNzPSAiYnppcDIgLS0gIi5zOkVzY2FwZSh0YXJmaWxlLDApCiAgIGVuZGlmCiAiICBjYWxsIERlY2hvKCJ0YXJmaWxlPCIudGFyZmlsZS4iPiIpCiAiICBjYWxsIERlY2hvKCJjb21wcmVzczwiLmNvbXByZXNzLiI+IikKQEAgLTM1Niw3ICszNTYsNyBAQAogICAgaWYgZm5hbWUgPX4gJy8nCiAgICAgbGV0IGRpcnBhdGggPSBzdWJzdGl0dXRlKGZuYW1lLCcvW14vXVwrJCcsJycsJ2UnKQogICAgIGlmIGV4ZWN1dGFibGUoImN5Z3BhdGgiKQotICAgICBsZXQgZGlycGF0aCA9IHN1YnN0aXR1dGUoc3lzdGVtKCJjeWdwYXRoICIuZGlycGF0aCksJ1xuJywnJywnZScpCisgICAgIGxldCBkaXJwYXRoID0gc3Vic3RpdHV0ZShzeXN0ZW0oImN5Z3BhdGggIi5zOkVzY2FwZShkaXJwYXRoLCAwKSksJ1xuJywnJywnZScpCiAgICAgZW5kaWYKICAgICBjYWxsIG1rZGlyKGRpcnBhdGgsInAiKQogICAgZW5kaWYKQEAgLTM2NywxMiArMzY3LDEyIEBACiAgCiAgICBleGUgInchICIuZm5hbWVlc2NhcGUoZm5hbWUpCiAgICBpZiBleGVjdXRhYmxlKCJjeWdwYXRoIikKLSAgICBsZXQgdGFyZmlsZSA9IHN1YnN0aXR1dGUoc3lzdGVtKCJjeWdwYXRoICIuczpFc2NhcGUodGFyZmlsZSkpLCdcbicsJycsJ2UnKQorICAgIGxldCB0YXJmaWxlID0gc3Vic3RpdHV0ZShzeXN0ZW0oImN5Z3BhdGggIi5zOkVzY2FwZSh0YXJmaWxlLDApKSwnXG4nLCcnLCdlJykKICAgIGVuZGlmCiAgCiAgICAiIGRlbGV0ZSBvbGQgZmlsZSBmcm9tIHRhcmZpbGUKLSIgICBjYWxsIERlY2hvKCJzeXN0ZW0odGFyIC0tZGVsZXRlIC1mICIuczpFc2NhcGUodGFyZmlsZSkuIiAtLSAiLnM6RXNjYXBlKGZuYW1lKS4iKSIpCi0gICBjYWxsIHN5c3RlbSgidGFyIC0tZGVsZXRlIC1mICIuczpFc2NhcGUodGFyZmlsZSkuIiAtLSAiLnM6RXNjYXBlKGZuYW1lKSkKKyIgICBjYWxsIERlY2hvKCJzeXN0ZW0odGFyIC0tZGVsZXRlIC1mICIuczpFc2NhcGUodGFyZmlsZSwwKS4iIC0tICIuczpFc2NhcGUoZm5hbWUsMCkuIikiKQorICAgY2FsbCBzeXN0ZW0oInRhciAtLWRlbGV0ZSAtZiAiLnM6RXNjYXBlKHRhcmZpbGUsMCkuIiAtLSAiLnM6RXNjYXBlKGZuYW1lLDApKQogICAgaWYgdjpzaGVsbF9lcnJvciAhPSAwCiAgICAgcmVkcmF3IQogICAgIGVjaG9obCBFcnJvciB8IGVjaG8gIioqKmVycm9yKioqICh0YXIjV3JpdGUpIHNvcnJ5LCB1bmFibGUgdG8gdXBkYXRlICIuZm5hbWVlc2NhcGUodGFyZmlsZSkuIiB3aXRoICIuZm5hbWVlc2NhcGUoZm5hbWUpIHwgZWNob2hsIE5vbmUKQEAgLTM4MCw4ICszODAsOCBAQAogICAgZWxzZQogIAogICAgICIgdXBkYXRlIHRhcmZpbGUgd2l0aCBuZXcgZmlsZSAKLSIgICAgY2FsbCBEZWNobygidGFyIC0iLmc6dGFyX3dyaXRlb3B0aW9ucy4iICIuczpFc2NhcGUodGFyZmlsZSkuIiAtLSAiLnM6RXNjYXBlKGZuYW1lKSkKLSAgICBjYWxsIHN5c3RlbSgidGFyIC0iLmc6dGFyX3dyaXRlb3B0aW9ucy4iICIuczpFc2NhcGUodGFyZmlsZSkuIiAtLSAiLnM6RXNjYXBlKGZuYW1lKSkKKyIgICAgY2FsbCBEZWNobygidGFyIC0iLmc6dGFyX3dyaXRlb3B0aW9ucy4iICIuczpFc2NhcGUodGFyZmlsZSwwKS4iIC0tICIuczpFc2NhcGUoZm5hbWUsMCkpCisgICAgY2FsbCBzeXN0ZW0oInRhciAtIi5nOnRhcl93cml0ZW9wdGlvbnMuIiAiLnM6RXNjYXBlKHRhcmZpbGUsMCkuIiAtLSAiLnM6RXNjYXBlKGZuYW1lLDApKQogICAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAogICAgICByZWRyYXchCiAgICAgIGVjaG9obCBFcnJvciB8IGVjaG8gIioqKmVycm9yKioqICh0YXIjV3JpdGUpIHNvcnJ5LCB1bmFibGUgdG8gdXBkYXRlICIuZm5hbWVlc2NhcGUodGFyZmlsZSkuIiB3aXRoICIuZm5hbWVlc2NhcGUoZm5hbWUpIHwgZWNob2hsIE5vbmUKQEAgLTQwNCw3ICs0MDQsNyBAQAogICAgIGxldCBiaW5rZWVwPSAmYmluYXJ5CiAgICAgbGV0IGVpa2VlcCA9ICZlaQogICAgIHNldCBiaW5hcnkgZWk9YWxsCi0gICAgZXhlICJlISAiLnRhcmZpbGUKKyAgICBleGUgImUhICIuZm5hbWVlc2NhcGUodGFyZmlsZSkKICAgICBjYWxsIG5ldHJ3I05ldFdyaXRlKHRibGZpbGUpCiAgICAgbGV0ICZlaSAgICAgPSBlaWtlZXAKICAgICBsZXQgJmJpbmFyeSA9IGJpbmtlZXAKQEAgLTQxNiw3ICs0MTYsNyBAQAogICAiIGNsZWFudXAgYW5kIHJlc3RvcmUgY3VycmVudCBkaXJlY3RvcnkKICAgY2QgLi4KICAgY2FsbCBzOlJtZGlyKCJfWklQVklNXyIpCi0gIGV4ZSAiY2QgIi5lc2NhcGUoY3VyZGlyLCcgXCcpCisgIGV4ZSAiY2QgIi5mbmFtZWVzY2FwZShjdXJkaXIpCiAgIHNldGxvY2FsIG5vbW9kCiAKICAgbGV0ICZyZXBvcnQ9IHJlcGtlZXAKQEAgLTQyOCwxMiArNDI4LDEyIEBACiBmdW4hIHM6Um1kaXIoZm5hbWUpCiAiICBjYWxsIERmdW5jKCJSbWRpcihmbmFtZTwiLmE6Zm5hbWUuIj4pIikKICAgaWYgaGFzKCJ1bml4IikKLSAgIGNhbGwgc3lzdGVtKCIvYmluL3JtIC1yZiAtLSAiLnM6RXNjYXBlKGE6Zm5hbWUpKQorICAgY2FsbCBzeXN0ZW0oIi9iaW4vcm0gLXJmIC0tICIuczpFc2NhcGUoYTpmbmFtZSwwKSkKICAgZWxzZWlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQogICAgaWYgJnNoZWxsID1+PyAic2gkIgotICAgIGNhbGwgc3lzdGVtKCIvYmluL3JtIC1yZiAtLSAiLnM6RXNjYXBlKGE6Zm5hbWUpKQorICAgIGNhbGwgc3lzdGVtKCIvYmluL3JtIC1yZiAtLSAiLnM6RXNjYXBlKGE6Zm5hbWUsMCkpCiAgICBlbHNlCi0gICAgY2FsbCBzeXN0ZW0oImRlbCAvUyAiLnM6RXNjYXBlKGE6Zm5hbWUpKQorICAgIGNhbGwgc3lzdGVtKCJkZWwgL1MgIi5zOkVzY2FwZShhOmZuYW1lLDApKQogICAgZW5kaWYKICAgZW5kaWYKICIgIGNhbGwgRHJldCgiUm1kaXIiKQpAQCAtNDQxLDEwICs0NDEsMTQgQEAKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpFc2NhcGU6IHt7ezIKLWZ1biBzOkVzY2FwZShuYW1lKQorZnVuIHM6RXNjYXBlKG5hbWUsaXNmaWx0KQogICAiIHNoZWxsZXNjYXBlKCkgd2FzIGFkZGVkIGJ5IHBhdGNoIDcuMC4xMTEKICAgaWYgZXhpc3RzKCIqc2hlbGxlc2NhcGUiKQotICAgbGV0IHFuYW1lcT0gc2hlbGxlc2NhcGUoYTpuYW1lKQorICAgaWYgYTppc2ZpbHQKKyAgICBsZXQgcW5hbWVxPSBzaGVsbGVzY2FwZShhOm5hbWUsMSkKKyAgIGVsc2UKKyAgICBsZXQgcW5hbWVxPSBzaGVsbGVzY2FwZShhOm5hbWUpCisgICBlbmRpZgogICBlbHNlCiAgICBsZXQgcW5hbWVxPSBnOnRhcl9zaHEgLiBhOm5hbWUgLiBnOnRhcl9zaHEKICAgZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvemlwLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvemlwLnZpbQppbmRleCA1ODQyNzQxLi5iMzVhNDExIDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL3ppcC52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC96aXAudmltCkBAIC0xLDcgKzEsNyBAQAogIiB6aXAudmltOiBIYW5kbGVzIGJyb3dzaW5nIHppcGZpbGVzCiAiICAgICAgICAgICAgQVVUT0xPQUQgUE9SVElPTgotIiBEYXRlOgkJSnVuIDEyLCAyMDA4Ci0iIFZlcnNpb246CTE4CisiIERhdGU6CQlKdWwgMTIsIDIwMDgKKyIgVmVyc2lvbjoJMjEgKG1vZGlmaWVkIGJ5IEJyYW0pCiAiIE1haW50YWluZXI6CUNoYXJsZXMgRSBDYW1wYmVsbCwgSnIgPE5kck9jaGlwQFNjYW1wYmVsbFBmYW1pbHkuQWJpek0tTk9TUEFNPgogIiBMaWNlbnNlOglWaW0gTGljZW5zZSAgKHNlZSB2aW0ncyA6aGVscCBsaWNlbnNlKQogIiBDb3B5cmlnaHQ6ICAgIENvcHlyaWdodCAoQykgMjAwNS0yMDA4IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiB7e3sxCkBAIC0yMiw3ICsyMiw3IEBACiAgZmluaXNoCiBlbmRpZgogCi1sZXQgZzpsb2FkZWRfemlwICAgICA9ICJ2MTgiCitsZXQgZzpsb2FkZWRfemlwICAgICA9ICJ2MjErYiIKIGxldCBzOnppcGZpbGVfZXNjYXBlID0gJyA/JjtcJwogbGV0IHM6RVJST1IgICAgICAgICAgPSAyCiBsZXQgczpXQVJOSU5HICAgICAgICA9IDEKQEAgLTkxLDIzICs5MSwyNCBAQAogICBzZXQgZnQ9dGFyCiAKICAgIiBnaXZlIGhlYWRlcgotICBleGUgIiRwdXQgPSciLidcIicuIiB6aXAudmltIHZlcnNpb24gIi5nOmxvYWRlZF96aXAuIiciCi0gIGV4ZSAiJHB1dCA9JyIuJ1wiJy4iIEJyb3dzaW5nIHppcGZpbGUgIi5hOnppcGZpbGUuIiciCi0gIGV4ZSAiJHB1dCA9JyIuJ1wiJy4iIFNlbGVjdCBhIGZpbGUgd2l0aCBjdXJzb3IgYW5kIHByZXNzIEVOVEVSIi4iJyIKKyAgbGV0IGxhc3RsaW5lPSBsaW5lKCIkIikKKyAgY2FsbCBzZXRsaW5lKGxhc3RsaW5lKzEsJyIgemlwLnZpbSB2ZXJzaW9uICcuZzpsb2FkZWRfemlwKQorICBjYWxsIHNldGxpbmUobGFzdGxpbmUrMiwnIiBCcm93c2luZyB6aXBmaWxlICcuYTp6aXBmaWxlKQorICBjYWxsIHNldGxpbmUobGFzdGxpbmUrMywnIiBTZWxlY3QgYSBmaWxlIHdpdGggY3Vyc29yIGFuZCBwcmVzcyBFTlRFUicpCiAgICRwdXQgPScnCiAgIDBkCiAgICQKIAotIiAgY2FsbCBEZWNobygiZXhlIHNpbGVudCByISAiLmc6emlwX3VuemlwY21kLiIgLWwgIi5zOlF1b3RlRmlsZURpcihhOnppcGZpbGUpKQotICBleGUgInNpbGVudCByISAiLmc6emlwX3VuemlwY21kLiIgLWwgIi5zOlF1b3RlRmlsZURpcihhOnppcGZpbGUpCisiICBjYWxsIERlY2hvKCJleGUgc2lsZW50IHIhICIuZzp6aXBfdW56aXBjbWQuIiAtbCAiLnM6RXNjYXBlKGE6emlwZmlsZSwxKSkKKyAgZXhlICJzaWxlbnQgciEgIi5nOnppcF91bnppcGNtZC4iIC1sICIuczpFc2NhcGUoYTp6aXBmaWxlLDEpCiAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAogICAgcmVkcmF3IQotICAgZWNob2hsIFdhcm5pbmdNc2cgfCBlY2hvICIqKip3YXJuaW5nKioqICh6aXAjQnJvd3NlKSAiLmE6emlwZmlsZS4iIGlzIG5vdCBhIHppcCBmaWxlIiB8IGVjaG9obCBOb25lCisgICBlY2hvaGwgV2FybmluZ01zZyB8IGVjaG8gIioqKndhcm5pbmcqKiogKHppcCNCcm93c2UpICIuZm5hbWVlc2NhcGUoYTp6aXBmaWxlKS4iIGlzIG5vdCBhIHppcCBmaWxlIiB8IGVjaG9obCBOb25lCiAiICAgY2FsbCBpbnB1dHNhdmUoKXxjYWxsIGlucHV0KCJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIil8Y2FsbCBpbnB1dHJlc3RvcmUoKQogICAgc2lsZW50ICVkCiAgICBsZXQgZWlrZWVwPSAmZWkKICAgIHNldCBlaT1CdWZSZWFkQ21kLEZpbGVSZWFkQ21kCi0gICBleGUgInIgIi5hOnppcGZpbGUKKyAgIGV4ZSAiciAiLmZuYW1lZXNjYXBlKGE6emlwZmlsZSkKICAgIGxldCAmZWk9IGVpa2VlcAogICAgMWQKICIgICBjYWxsIERyZXQoInppcCNCcm93c2UiKQpAQCAtMTY2LDggKzE2Nyw4IEBACiAgICB3aW5jbWQgXwogICBlbmRpZgogICBsZXQgczp6aXBmaWxlX3t3aW5ucigpfT0gY3VyZmlsZQotIiAgY2FsbCBEZWNobygiZXhlIGUgemlwZmlsZToiLmVzY2FwZSh6aXBmaWxlLHM6emlwZmlsZV9lc2NhcGUpLic6OicuZXNjYXBlKGZuYW1lLHM6emlwZmlsZV9lc2NhcGUpKQotICBleGUgImUgemlwZmlsZToiLmVzY2FwZSh6aXBmaWxlLHM6emlwZmlsZV9lc2NhcGUpLic6OicuZXNjYXBlKGZuYW1lLHM6emlwZmlsZV9lc2NhcGUpCisiICBjYWxsIERlY2hvKCJleGUgZSAiLmZuYW1lZXNjYXBlKCJ6aXBmaWxlOiIuemlwZmlsZS4nOjonLmZuYW1lKSkKKyAgZXhlICJlICIuZm5hbWVlc2NhcGUoInppcGZpbGU6Ii56aXBmaWxlLic6OicuZm5hbWUpCiAgIGZpbGV0eXBlIGRldGVjdAogCiAgIGxldCAmcmVwb3J0PSByZXBrZWVwCkBAIC0xOTIsOCArMTkzLDggQEAKICIgIGNhbGwgRGVjaG8oInppcGZpbGU8Ii56aXBmaWxlLiI+IikKICIgIGNhbGwgRGVjaG8oImZuYW1lICA8Ii5mbmFtZS4iPiIpCiAKLSIgIGNhbGwgRGVjaG8oImV4ZSByISAiLmc6emlwX3VuemlwY21kLiIgLXAgIi5zOlF1b3RlRmlsZURpcih6aXBmaWxlKS4iICIuczpRdW90ZUZpbGVEaXIoZm5hbWUpKQotICBleGUgInNpbGVudCByISAiLmc6emlwX3VuemlwY21kLiIgLXAgIi5zOlF1b3RlRmlsZURpcih6aXBmaWxlKS4iICIuczpRdW90ZUZpbGVEaXIoZm5hbWUpCisiICBjYWxsIERlY2hvKCJleGUgciEgIi5nOnppcF91bnppcGNtZC4iIC1wICIuczpFc2NhcGUoemlwZmlsZSwxKS4iICIuczpFc2NhcGUoZm5hbWUsMSkpCisgIGV4ZSAic2lsZW50IHIhICIuZzp6aXBfdW56aXBjbWQuIiAtcCAiLnM6RXNjYXBlKHppcGZpbGUsMSkuIiAiLnM6RXNjYXBlKGZuYW1lLDEpCiAKICAgIiBjbGVhbnVwCiAgIDBkCkBAIC0yNjYsNyArMjY3LDcgQEAKICAgaWYgZm5hbWUgPX4gJy8nCiAgICBsZXQgZGlycGF0aCA9IHN1YnN0aXR1dGUoZm5hbWUsJy9bXi9dXCskJywnJywnZScpCiAgICBpZiBleGVjdXRhYmxlKCJjeWdwYXRoIikKLSAgICBsZXQgZGlycGF0aCA9IHN1YnN0aXR1dGUoc3lzdGVtKCJjeWdwYXRoICIuZGlycGF0aCksJ1xuJywnJywnZScpCisgICAgbGV0IGRpcnBhdGggPSBzdWJzdGl0dXRlKHN5c3RlbSgiY3lncGF0aCAiLnM6RXNjYXBlKGRpcnBhdGgsMCkpLCdcbicsJycsJ2UnKQogICAgZW5kaWYKICIgICBjYWxsIERlY2hvKCJta2RpcihkaXJwYXRoPCIuZGlycGF0aC4iPixwKSIpCiAgICBjYWxsIG1rZGlyKGRpcnBhdGgsInAiKQpAQCAtMjc2LDE3ICsyNzcsMTcgQEAKICAgZW5kaWYKICIgIGNhbGwgRGVjaG8oInppcGZpbGU8Ii56aXBmaWxlLiI+IGZuYW1lPCIuZm5hbWUuIj4iKQogCi0gIGV4ZSAidyEgIi5lc2NhcGUoZm5hbWUsczp6aXBmaWxlX2VzY2FwZSkKKyAgZXhlICJ3ISAiLmZuYW1lZXNjYXBlKGZuYW1lKQogICBpZiBleGVjdXRhYmxlKCJjeWdwYXRoIikKLSAgIGxldCB6aXBmaWxlID0gc3Vic3RpdHV0ZShzeXN0ZW0oImN5Z3BhdGggIi56aXBmaWxlKSwnXG4nLCcnLCdlJykKKyAgIGxldCB6aXBmaWxlID0gc3Vic3RpdHV0ZShzeXN0ZW0oImN5Z3BhdGggIi5zOkVzY2FwZSh6aXBmaWxlLDApKSwnXG4nLCcnLCdlJykKICAgZW5kaWYKIAogICBpZiAoaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpKSAmJiAmc2hlbGwgIX4/ICdzaCQnCiAgICAgbGV0IGZuYW1lID0gc3Vic3RpdHV0ZShmbmFtZSwgJ1snLCAnW1tdJywgJ2cnKQogICBlbmRpZgogCi0iICBjYWxsIERlY2hvKGc6emlwX3ppcGNtZC4iIC11ICIuczpRdW90ZUZpbGVEaXIoemlwZmlsZSkuIiAiLnM6UXVvdGVGaWxlRGlyKGZuYW1lKSkKLSAgY2FsbCBzeXN0ZW0oZzp6aXBfemlwY21kLiIgLXUgIi5zOlF1b3RlRmlsZURpcih6aXBmaWxlKS4iICIuczpRdW90ZUZpbGVEaXIoZm5hbWUpKQorIiAgY2FsbCBEZWNobyhnOnppcF96aXBjbWQuIiAtdSAiLnM6RXNjYXBlKHppcGZpbGUsMCkuIiAiLnM6RXNjYXBlKGZuYW1lLDApKQorICBjYWxsIHN5c3RlbShnOnppcF96aXBjbWQuIiAtdSAiLnM6RXNjYXBlKHppcGZpbGUsMCkuIiAiLnM6RXNjYXBlKGZuYW1lLDApKQogICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKICAgIHJlZHJhdyEKICAgIGVjaG9obCBFcnJvciB8IGVjaG8gIioqKmVycm9yKioqICh6aXAjV3JpdGUpIHNvcnJ5LCB1bmFibGUgdG8gdXBkYXRlICIuemlwZmlsZS4iIHdpdGggIi5mbmFtZSB8IGVjaG9obCBOb25lCkBAIC0zMDAsNyArMzAxLDcgQEAKICAgIGxldCBiaW5rZWVwPSAmYmluYXJ5CiAgICBsZXQgZWlrZWVwID0gJmVpCiAgICBzZXQgYmluYXJ5IGVpPWFsbAotICAgZXhlICJlISAiLnppcGZpbGUKKyAgIGV4ZSAiZSEgIi5mbmFtZWVzY2FwZSh6aXBmaWxlKQogICAgY2FsbCBuZXRydyNOZXRXcml0ZShuZXR6aXBmaWxlKQogICAgbGV0ICZlaSAgICAgPSBlaWtlZXAKICAgIGxldCAmYmluYXJ5ID0gYmlua2VlcApAQCAtMzIwLDExICszMjEsMTUgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBRdW90ZUZpbGVEaXI6IHt7ezIKLWZ1biEgczpRdW90ZUZpbGVEaXIoZm5hbWUpCi0iICBjYWxsIERmdW5jKCJRdW90ZUZpbGVEaXIoZm5hbWU8Ii5hOmZuYW1lLiI+KSIpCi0gIGlmIGhhcygiKnNoZWxsZXNjYXBlIikKLSAgIGxldCBxbmFtZXE9IHNoZWxsZXNjYXBlKGE6Zm5hbWUpCisiIHM6RXNjYXBlOiB7e3syCitmdW4hIHM6RXNjYXBlKGZuYW1lLGlzZmlsdCkKKyIgIGNhbGwgRGZ1bmMoIlF1b3RlRmlsZURpcihmbmFtZTwiLmE6Zm5hbWUuIj4gaXNmaWx0PSIuYTppc2ZpbHQuIikiKQorICBpZiBleGlzdHMoIipzaGVsbGVzY2FwZSIpCisgICBpZiBhOmlzZmlsdAorICAgIGxldCBxbmFtZXE9IHNoZWxsZXNjYXBlKGE6Zm5hbWUsMSkKKyAgIGVsc2UKKyAgICBsZXQgcW5hbWVxPSBzaGVsbGVzY2FwZShhOmZuYW1lKQorICAgZW5kaWYKICAgZWxzZQogICAgbGV0IHFuYW1lcT0gZzp6aXBfc2hxLmVzY2FwZShhOmZuYW1lLGc6emlwX3NocSkuZzp6aXBfc2hxCiAgIGVuZGlmCkBAIC0zMzcsMTQgKzM0Miw5IEBACiBmdW4hIHM6Q2hnRGlyKG5ld2RpcixlcnJsdmwsZXJybXNnKQogIiAgY2FsbCBEZnVuYygiQ2hnRGlyKG5ld2RpcjwiLmE6bmV3ZGlyLiI+IGVycmx2bD0iLmE6ZXJybHZsLiIgIGVycm1zZzwiLmE6ZXJybXNnLiI+KSIpCiAKLSAgaWYgKGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKSkgJiYgJnNoZWxsICF+PyAnc2gkJwotICAgbGV0IG5ld2Rpcj0gZXNjYXBlKGE6bmV3ZGlyLCcgJykKLSAgZWxzZQotICAgbGV0IG5ld2Rpcj0gZXNjYXBlKGE6bmV3ZGlyLCdcICcpCi0gIGVuZGlmCiAKICAgdHJ5Ci0gICBleGUgImNkICIubmV3ZGlyCisgICBleGUgImNkICIuZm5hbWVlc2NhcGUobmV3ZGlyKQogICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RTM0NC8KICAgIHJlZHJhdyEKICAgIGlmIGE6ZXJybHZsID09IHM6Tk9URQpAQCAtMzY0LDEzICszNjQsMTMgQEAKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBSbWRpcjoge3t7MgorIiBzOlJtZGlyOiB7e3syCiBmdW4hIHM6Um1kaXIoZm5hbWUpCiAiICBjYWxsIERmdW5jKCJSbWRpcihmbmFtZTwiLmE6Zm5hbWUuIj4pIikKICAgaWYgKGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKSkgJiYgJnNoZWxsICF+PyAnc2gkJwotICAgY2FsbCBzeXN0ZW0oInJtZGlyIC9TL1EgIi5zOlF1b3RlRmlsZURpcihhOmZuYW1lKSkKKyAgIGNhbGwgc3lzdGVtKCJybWRpciAvUy9RICIuczpFc2NhcGUoYTpmbmFtZSwwKSkKICAgZWxzZQotICAgY2FsbCBzeXN0ZW0oIi9iaW4vcm0gLXJmICIuczpRdW90ZUZpbGVEaXIoYTpmbmFtZSkpCisgICBjYWxsIHN5c3RlbSgiL2Jpbi9ybSAtcmYgIi5zOkVzY2FwZShhOmZuYW1lLDApKQogICBlbmRpZgogIiAgY2FsbCBEcmV0KCJSbWRpciIpCiBlbmRmdW4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvZGVjYWRhLnZpbSBiL3J1bnRpbWUvY29tcGlsZXIvZGVjYWRhLnZpbQppbmRleCAxYjA5ZDM5Li40Yzc3N2ZlIDEwMDY0NAotLS0gYS9ydW50aW1lL2NvbXBpbGVyL2RlY2FkYS52aW0KKysrIGIvcnVudGltZS9jb21waWxlci9kZWNhZGEudmltCkBAIC0zLDE0ICszLDE1IEBACiAiICAgICBMYW5ndWFnZTogQWRhIChEZWMgQWRhKQogIiAgICAgICAgICAkSWQkCiAiICAgIENvcHlyaWdodDogQ29weXJpZ2h0IChDKSAyMDA2IE1hcnRpbiBLcmlzY2hpawotIiAgIE1haW50YWluZXI6CU1hcnRpbiBLcmlzY2hpaworIiAgIE1haW50YWluZXI6CU1hcnRpbiBLcmlzY2hpayA8a3Jpc2NoaWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogIiAgICAgICRBdXRob3IkCiAiICAgICAgICAkRGF0ZSQKLSIgICAgICBWZXJzaW9uOiA0LjIKKyIgICAgICBWZXJzaW9uOiA0LjYKICIgICAgJFJldmlzaW9uJAotIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vY29tcGlsZXIvZGVjYWRhLnZpbSAkCisiICAgICAkSGVhZFVSTDogaHR0cHM6Ly9nbnVhZGEuc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vY29tcGlsZXIvZGVjYWRhLnZpbSAkCiAiICAgICAgSGlzdG9yeTogMjEuMDcuMjAwNiBNSyBOZXcgRGVjIEFkYQogIiAgICAgICAgICAgICAgIDE1LjEwLjIwMDYgTUsgQnJhbSdzIHN1Z2dlc3Rpb24gZm9yIHJ1bnRpbWUgaW50ZWdyYXRpb24KKyIgICAgICAgICAgICAgICAwOC4wOS4yMDA2IE1LIENvcnJlY3QgZG91YmxlIGxvYWQgcHJvdGVjdGlvbi4KICIgICAgSGVscCBQYWdlOiBjb21waWxlci1kZWNhZGEKICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtMjQsNiArMjUsMTMgQEAKIAogaWYgIWV4aXN0cygiZzpkZWNhZGEiKQogICAgbGV0IGc6ZGVjYWRhID0gZGVjYWRhI05ldyAoKQorCisgICBjYWxsIGFkYSNNYXBfTWVudSAoCisgICAgIFwnRGVjIEFkYS5CdWlsZCcsCisgICAgIFwnPEY3PicsCisgICAgIFwnY2FsbCBkZWNhZGEuTWFrZSAoKScpCisKKyAgIGNhbGwgZzpkZWNhZGEuU2V0X1Nlc3Npb24gKCkKIGVuZGlmCiAKIGlmIGV4aXN0cygiOkNvbXBpbGVyU2V0IikgIT0gMgpAQCAtMzMsMTYgKzQxLDkgQEAKICAgIGNvbW1hbmQgLW5hcmdzPSogQ29tcGlsZXJTZXQgc2V0bG9jYWwgPGFyZ3M+CiBlbmRpZgogCi1jYWxsIGc6ZGVjYWRhLlNldF9TZXNzaW9uICgpCi0KIGV4ZWN1dGUgIkNvbXBpbGVyU2V0IG1ha2Vwcmc9IiAgICAgLiBlc2NhcGUgKGc6ZGVjYWRhLk1ha2VfQ29tbWFuZCwgJyAnKQogZXhlY3V0ZSAiQ29tcGlsZXJTZXQgZXJyb3Jmb3JtYXQ9IiAuIGVzY2FwZSAoZzpkZWNhZGEuRXJyb3JfRm9ybWF0LCAnICcpCiAKLWNhbGwgYWRhI01hcF9NZW51ICgKLSAgXCdEZWMgQWRhLkJ1aWxkJywKLSAgXCc8Rjc+JywKLSAgXCdjYWxsIGRlY2FkYS5NYWtlICgpJykKLQogZmluaXNoICIgMX19fQogCiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL2NvbXBpbGVyL2VydWJ5LnZpbSBiL3J1bnRpbWUvY29tcGlsZXIvZXJ1YnkudmltCmluZGV4IGYzMGZjYzMuLjQ0MTk0ZjUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvY29tcGlsZXIvZXJ1YnkudmltCisrKyBiL3J1bnRpbWUvY29tcGlsZXIvZXJ1YnkudmltCkBAIC0zOCw0ICszOCw0IEBACiBsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKIHVubGV0IHM6Y3BvX3NhdmUKIAotIiB2aW06IG5vd3JhcCBzdz0yIHN0cz0yOgorIiB2aW06IG5vd3JhcCBzdz0yIHN0cz0yIHRzPTg6CmRpZmYgLS1naXQgYS9ydW50aW1lL2NvbXBpbGVyL2duYXQudmltIGIvcnVudGltZS9jb21waWxlci9nbmF0LnZpbQppbmRleCA1OGU5Y2U4Li5hZDE2OTdhIDEwMDY0NAotLS0gYS9ydW50aW1lL2NvbXBpbGVyL2duYXQudmltCisrKyBiL3J1bnRpbWUvY29tcGlsZXIvZ25hdC52aW0KQEAgLTMsMTUgKzMsMTcgQEAKICIgICAgIExhbmd1YWdlOiBBZGEgKEdOQVQpCiAiICAgICAgICAgICRJZCQKICIgICAgQ29weXJpZ2h0OiBDb3B5cmlnaHQgKEMpIDIwMDYgTWFydGluIEtyaXNjaGlrCi0iICAgTWFpbnRhaW5lcjoJTWFydGluIEtyaXNjaGlrCisiICAgTWFpbnRhaW5lcjoJTWFydGluIEtyaXNjaGkgPGtyaXNjaGlrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD5rCisiCQlOZWQgT2tpZSA8bm9raWVAcmFkZm9yZC5lZHU+CiAiICAgICAgJEF1dGhvciQKICIgICAgICAgICREYXRlJAotIiAgICAgIFZlcnNpb246IDQuMgorIiAgICAgIFZlcnNpb246IDQuNgogIiAgICAkUmV2aXNpb24kCi0iICAgICAkSGVhZFVSTDogaHR0cHM6Ly9zdm4uc291cmNlZm9yZ2UubmV0L3N2bnJvb3QvZ251YWRhL3RydW5rL3Rvb2xzL3ZpbS9jb21waWxlci9nbmF0LnZpbSAkCisiICAgICAkSGVhZFVSTDogaHR0cHM6Ly9nbnVhZGEuc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vY29tcGlsZXIvZ25hdC52aW0gJAogIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCiAiCQkxNi4wNy4yMDA2IE1LIEFkYS1Nb2RlIGFzIHZpbS1iYWxsCiAiICAgICAgICAgICAgICAgMTUuMTAuMjAwNiBNSyBCcmFtJ3Mgc3VnZ2VzdGlvbiBmb3IgcnVudGltZSBpbnRlZ3JhdGlvbgorIgkJMTkuMDkuMjAwNyBOTyB1c2UgcHJvamVjdCBmaWxlIG9ubHkgd2hlbiB0aGVyZSBpcyBhIHByb2plY3QKICIgICAgSGVscCBQYWdlOiBjb21waWxlci1nbmF0CiAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTQ2LDYgKzQ4LDggQEAKICAgICAgIFwgJ0dOQVQuU2V0IFByb2plY3RmaWxlXC5cLlwuJywKICAgICAgIFwgJzpTZXRQcm9qZWN0JywKICAgICAgIFwgJ2NhbGwgZ25hdC5TZXRfUHJvamVjdF9GaWxlICgpJykKKworICAgY2FsbCBnOmduYXQuU2V0X1Nlc3Npb24gKCkKIGVuZGlmCiAKIGlmIGV4aXN0cygiOkNvbXBpbGVyU2V0IikgIT0gMgpAQCAtNTUsOCArNTksNiBAQAogICAgY29tbWFuZCAtbmFyZ3M9KiBDb21waWxlclNldCBzZXRsb2NhbCA8YXJncz4KIGVuZGlmCiAKLWNhbGwgZzpnbmF0LlNldF9TZXNzaW9uICgpCi0KIGV4ZWN1dGUgIkNvbXBpbGVyU2V0IG1ha2Vwcmc9IiAgICAgLiBlc2NhcGUgKGc6Z25hdC5HZXRfQ29tbWFuZCgnTWFrZScpLCAnICcpCiBleGVjdXRlICJDb21waWxlclNldCBlcnJvcmZvcm1hdD0iIC4gZXNjYXBlIChnOmduYXQuRXJyb3JfRm9ybWF0LCAnICcpCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvcnNwZWMudmltIGIvcnVudGltZS9jb21waWxlci9yc3BlYy52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTljNDEwZgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvY29tcGlsZXIvcnNwZWMudmltCkBAIC0wLDAgKzEsNDEgQEAKKyIgVmltIGNvbXBpbGVyIGZpbGUKKyIgTGFuZ3VhZ2U6CQlSU3BlYworIiBNYWludGFpbmVyOgkJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgorIiBJbmZvOgkJCSRJZCQKKyIgVVJMOgkJCWh0dHA6Ly92aW0tcnVieS5ydWJ5Zm9yZ2Uub3JnCisiIEFub24gQ1ZTOgkJU2VlIGFib3ZlIHNpdGUKKyIgUmVsZWFzZSBDb29yZGluYXRvcjoJRG91ZyBLZWFybnMgPGRvdWdrZWFybnNAZ21haWwuY29tPgorCitpZiBleGlzdHMoImN1cnJlbnRfY29tcGlsZXIiKQorICBmaW5pc2gKK2VuZGlmCitsZXQgY3VycmVudF9jb21waWxlciA9ICJyc3BlYyIKKworaWYgZXhpc3RzKCI6Q29tcGlsZXJTZXQiKSAhPSAyCQkiIG9sZGVyIFZpbSBhbHdheXMgdXNlZCA6c2V0bG9jYWwKKyAgY29tbWFuZCAtbmFyZ3M9KiBDb21waWxlclNldCBzZXRsb2NhbCA8YXJncz4KK2VuZGlmCisKK2xldCBzOmNwb19zYXZlID0gJmNwbworc2V0IGNwby09QworCitDb21waWxlclNldCBtYWtlcHJnPXNwZWMKKworQ29tcGlsZXJTZXQgZXJyb3Jmb3JtYXQ9CisgICAgXCUrVyclLiUjJ1wgRkFJTEVELAorICAgIFwlK0knJS4lIydcIEZJWEVELAorICAgIFwlLUNleHBlY3RlZDolLiUjLAorICAgIFwlLUNcIFwgXCBcIFwgZ290OiUuJSMsCisgICAgXCVFJS4lIzppblwgYGxvYWQnOlwgJWY6JWw6JW0sCisgICAgXCVDJWY6JWw6LAorICAgIFwlVyVmOiVsOlwgd2FybmluZzpcICVtLAorICAgIFwlRSVmOiVsOmluXCAlKlteOl06XCAlbSwKKyAgICBcJUUlZjolbDpcICVtLAorICAgIFwlLVolXHRmcm9tXCAlZjolbCwKKyAgICBcJS1aJXBeJS4lIywKKyAgICBcJS1DJS4lIywKKyAgICBcJS1HJS4lIworCitsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKK3VubGV0IHM6Y3BvX3NhdmUKKworIiB2aW06IG5vd3JhcCBzdz0yIHN0cz0yIHRzPTg6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9hcmFiaWMudHh0IGIvcnVudGltZS9kb2MvYXJhYmljLnR4dAppbmRleCA5NDQ1ZjJlLi5kYzhlOWIxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9hcmFiaWMudHh0CisrKyBiL3J1bnRpbWUvZG9jL2FyYWJpYy50eHQKQEAgLTEsNCArMSw0IEBACi0qYXJhYmljLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKyphcmFiaWMudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IE5hZGltIFNoYWlrbGkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2F1dG9jbWQudHh0IGIvcnVudGltZS9kb2MvYXV0b2NtZC50eHQKaW5kZXggODAwMzJlMC4uZTg5MmY0YyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvYXV0b2NtZC50eHQKKysrIGIvcnVudGltZS9kb2MvYXV0b2NtZC50eHQKQEAgLTEsNCArMSw0IEBACi0qYXV0b2NtZC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjQKKyphdXRvY21kLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDA2LDkgKzQwNiwxMCBAQAogCQkJCURvZXMgbm90IGhhcHBlbiBmb3IgfDpzcGxpdHwgd2l0aG91dAogCQkJCWFyZ3VtZW50cywgc2luY2UgeW91IGtlZXAgZWRpdGluZyB0aGUgc2FtZQogCQkJCWJ1ZmZlciwgb3IgIjpzcGxpdCIgd2l0aCBhIGZpbGUgdGhhdCdzIGFscmVhZHkKLQkJCQlvcGVuIGluIGEgd2luZG93LiAgQnV0IGl0IGRvZXMgaGFwcGVuIGZvcgotCQkJCWEgIjpzcGxpdCIgd2l0aCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudAotCQkJCWJ1ZmZlciwgc2luY2UgaXQgcmVsb2FkcyB0aGF0IGJ1ZmZlci4KKwkJCQlvcGVuIGluIGEgd2luZG93LCBiZWNhdXNlIGl0IHJlLXVzZXMgYW4KKwkJCQlleGlzdGluZyBidWZmZXIuICBCdXQgaXQgZG9lcyBoYXBwZW4gZm9yIGEKKwkJCQkiOnNwbGl0IiB3aXRoIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGJ1ZmZlciwKKwkJCQlzaW5jZSBpdCByZWxvYWRzIHRoYXQgYnVmZmVyLgogCQkJCQkJCSpCdWZXaW5MZWF2ZSoKIEJ1ZldpbkxlYXZlCQkJQmVmb3JlIGEgYnVmZmVyIGlzIHJlbW92ZWQgZnJvbSBhIHdpbmRvdy4KIAkJCQlOb3Qgd2hlbiBpdCdzIHN0aWxsIHZpc2libGUgaW4gYW5vdGhlciB3aW5kb3cuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9jaGFuZ2UudHh0IGIvcnVudGltZS9kb2MvY2hhbmdlLnR4dAppbmRleCAyNGNmM2ZlLi42NWFmNWZjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CisrKyBiL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKQEAgLTEsNCArMSw0IEBACi0qY2hhbmdlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjIKKypjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1bCAwOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNzcyLDkgKzc3Miw5IEBACiB0aGUgZXhwcmVzc2lvbiBjYW5ub3QgdXNlICJcPSIgZm9yIHRoZSBzdWJzdGl0dXRlIHN0cmluZy4KIAogVGhlIHNwZWNpYWwgbWVhbmluZyBmb3IgY2hhcmFjdGVycyBhcyBtZW50aW9uZWQgYXQgfHN1Yi1yZXBsYWNlLXNwZWNpYWx8IGRvZXMKLW5vdCBhcHBseSBleGNlcHQgIjxDUj4iLCAiXDxDUj4iIGFuZCAiXFwiLiAgVGh1cyBpbiB0aGUgcmVzdWx0IG9mIHRoZQotZXhwcmVzc2lvbiB5b3UgbmVlZCB0byB1c2UgdHdvIGJhY2tzbGFzaGVzIGdldCBvbmUsIHB1dCBhIGJhY2tzbGFzaCBiZWZvcmUgYQotPENSPiB5b3Ugd2FudCB0byBpbnNlcnQgYW5kIHVzZSBhIDxDUj4gd2l0aG91dCBhIGJhY2tzbGFzaCB3aGVyZSB5b3Ugd2FudCB0bworbm90IGFwcGx5IGV4Y2VwdCBmb3IgIjxDUj4iLCAiXDxDUj4iIGFuZCAiXFwiLiAgVGh1cyBpbiB0aGUgcmVzdWx0IG9mIHRoZQorZXhwcmVzc2lvbiB5b3UgbmVlZCB0byB1c2UgdHdvIGJhY2tzbGFzaGVzIHRvIGdldCBvbmUsIHB1dCBhIGJhY2tzbGFzaCBiZWZvcmUgYQorPENSPiB5b3Ugd2FudCB0byBpbnNlcnQsIGFuZCB1c2UgYSA8Q1I+IHdpdGhvdXQgYSBiYWNrc2xhc2ggd2hlcmUgeW91IHdhbnQgdG8KIGJyZWFrIHRoZSBsaW5lLgogCiBGb3IgY29udmVuaWVuY2UgYSA8Tkw+IGNoYXJhY3RlciBpcyBhbHNvIHVzZWQgYXMgYSBsaW5lIGJyZWFrLiAgUHJlcGVuZCBhCkBAIC03OTcsNyArNzk3LDcgQEAKIFRoaXMgcmVwbGFjZXMgYW4gZW5kLW9mLWxpbmUgd2l0aCBhIG5ldyBsaW5lIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mICRIT01FLiA+CiAKIAlzL0UvXD0iXDxDaGFyLTB4MjBhYz4iL2cKLVRoaXMgcmVwbGFjZXMgJ0UnIGNoYXJhY3RlcnMgd2l0aCBhbiBldXJvIHNpZ24uIFJlYWQgbW9yZSBpbiB8PENoYXItPnwuCitUaGlzIHJlcGxhY2VzIGVhY2ggJ0UnIGNoYXJhY3RlciB3aXRoIGEgZXVybyBzaWduLiAgUmVhZCBtb3JlIGluIHw8Q2hhci0+fC4KIAogCiA0LjMgU2VhcmNoIGFuZCByZXBsYWNlCQkJCQkqc2VhcmNoLXJlcGxhY2UqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9jbWRsaW5lLnR4dCBiL3J1bnRpbWUvZG9jL2NtZGxpbmUudHh0CmluZGV4IGJjNmJiZDcuLjhmNTc3YzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2NtZGxpbmUudHh0CisrKyBiL3J1bnRpbWUvZG9jL2NtZGxpbmUudHh0CkBAIC0xLDQgKzEsNCBAQAotKmNtZGxpbmUudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCisqY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdWwgMTEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTM2OSw3ICszNjksOSBAQAogLSBWYXJpYWJsZSBhbmQgZnVuY3Rpb24gbmFtZXM6IE9ubHkgYWZ0ZXIgYSAiOmlmIiwgIjpjYWxsIiBvciBzaW1pbGFyIGNvbW1hbmQuCiAKIFdoZW4gVmltIHdhcyBjb21waWxlZCB3aXRoIHRoZSB8K2NtZGxpbmVfY29tcGx8IGZlYXR1cmUgZGlzYWJsZWQsIG9ubHkgZmlsZQotbmFtZXMsIGRpcmVjdG9yaWVzIGFuZCBoZWxwIGl0ZW1zIGNhbiBiZSBjb21wbGV0ZWQuCituYW1lcywgZGlyZWN0b3JpZXMgYW5kIGhlbHAgaXRlbXMgY2FuIGJlIGNvbXBsZXRlZC4gIFRoZSBudW1iZXIgb2YgaGVscCBpdGVtCittYXRjaGVzIGlzIGxpbWl0ZWQgKGN1cnJlbnRseSB0byAzMDApIHRvIGF2b2lkIGEgbG9uZyBkZWxheSB3aGVuIHRoZXJlIGFyZQordmVyeSBtYW55IG1hdGNoZXMuCiAKIFRoZXNlIGFyZSB0aGUgY29tbWFuZHMgdGhhdCBjYW4gYmUgdXNlZDoKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZGVidWcudHh0IGIvcnVudGltZS9kb2MvZGVidWcudHh0CmluZGV4IDBlODNlYzcuLjFlYjIwYWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RlYnVnLnR4dAorKysgYi9ydW50aW1lL2RvYy9kZWJ1Zy50eHQKQEAgLTEsNCArMSw0IEBACi0qZGVidWcudHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXkgMDEKKypkZWJ1Zy50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1heSAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZGVidWdnZXIudHh0IGIvcnVudGltZS9kb2MvZGVidWdnZXIudHh0CmluZGV4IDBhMTUyYTYuLmVhOTg1OGEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RlYnVnZ2VyLnR4dAorKysgYi9ydW50aW1lL2RvYy9kZWJ1Z2dlci50eHQKQEAgLTEsNCArMSw0IEBACi0qZGVidWdnZXIudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypkZWJ1Z2dlci50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHb3Jkb24gUHJpZXVyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kZXZlbG9wLnR4dCBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CmluZGV4IDY3YWRjYjguLjg1YmYxYzUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDExCisqZGV2ZWxvcC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNyBNYXkgMTEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2RpZmYudHh0IGIvcnVudGltZS9kb2MvZGlmZi50eHQKaW5kZXggMWFkZWY2MC4uMzc5ZjZhNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZGlmZi50eHQKKysrIGIvcnVudGltZS9kb2MvZGlmZi50eHQKQEAgLTEsNCArMSw0IEBACi0qZGlmZi50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBPY3QgMDIKKypkaWZmLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IE9jdCAwMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZGlncmFwaC50eHQgYi9ydW50aW1lL2RvYy9kaWdyYXBoLnR4dAppbmRleCBmNWI1Y2U3Li5iMTU2NTFkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9kaWdyYXBoLnR4dAorKysgYi9ydW50aW1lL2RvYy9kaWdyYXBoLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpkaWdyYXBoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IFNlcCAxMAorKmRpZ3JhcGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDcgU2VwIDEwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9lZGl0aW5nLnR4dCBiL3J1bnRpbWUvZG9jL2VkaXRpbmcudHh0CmluZGV4IDJlZjNmOTYuLjY1YTExMzQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2VkaXRpbmcudHh0CisrKyBiL3J1bnRpbWUvZG9jL2VkaXRpbmcudHh0CkBAIC0xLDQgKzEsNCBAQAotKmVkaXRpbmcudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggQXByIDI5CisqZWRpdGluZy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdWwgMDUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTMwMiw5ICszMDIsOSBAQAogCQkJVXNlcyB0aGUgJ2lzZm5hbWUnIG9wdGlvbiB0byBmaW5kIG91dCB3aGljaCBjaGFyYWN0ZXJzCiAJCQlhcmUgc3VwcG9zZWQgdG8gYmUgaW4gYSBmaWxlIG5hbWUuICBUcmFpbGluZwogCQkJcHVuY3R1YXRpb24gY2hhcmFjdGVycyAiLiw6OyEiIGFyZSBpZ25vcmVkLgotCQkJVXNlcyB0aGUgJ3BhdGgnIG9wdGlvbiBhcyBhIGxpc3Qgb2YgZGlyZWN0b3J5IG5hbWVzCi0JCQl0byBsb29rIGZvciB0aGUgZmlsZS4gIEFsc28gbG9va3MgZm9yIHRoZSBmaWxlCi0JCQlyZWxhdGl2ZSB0byB0aGUgY3VycmVudCBmaWxlLgorCQkJVXNlcyB0aGUgJ3BhdGgnIG9wdGlvbiBhcyBhIGxpc3Qgb2YgZGlyZWN0b3J5IG5hbWVzIHRvCisJCQlsb29rIGZvciB0aGUgZmlsZS4gIFNlZSB0aGUgJ3BhdGgnIG9wdGlvbiBmb3IgZGV0YWlscworCQkJYWJvdXQgcmVsYXRpdmUgZGlyZWN0b3JpZXMgYW5kIHdpbGRjYXJkcy4KIAkJCVVzZXMgdGhlICdzdWZmaXhlc2FkZCcgb3B0aW9uIHRvIGNoZWNrIGZvciBmaWxlIG5hbWVzCiAJCQl3aXRoIGEgc3VmZml4IGFkZGVkLgogCQkJSWYgdGhlIGZpbGUgY2FuJ3QgYmUgZm91bmQsICdpbmNsdWRlZXhwcicgaXMgdXNlZCB0bwpAQCAtMzY3LDEzICszNjcsMTMgQEAKIEJlc2lkZXMgdGhlIHRoaW5ncyBtZW50aW9uZWQgaGVyZSwgbW9yZSBzcGVjaWFsIGl0ZW1zIGZvciB3aGVyZSBhIGZpbGVuYW1lIGlzCiBleHBlY3RlZCBhcmUgbWVudGlvbmVkIGF0IHxjbWRsaW5lLXNwZWNpYWx8LgogCi1Ob3RlIGZvciBzeXN0ZW1zIG90aGVyIHRoYW4gVW5peCBhbmQgTVMtRE9TOiBXaGVuIHVzaW5nIGEgY29tbWFuZCB0aGF0Ci1hY2NlcHRzIGEgc2luZ2xlIGZpbGUgbmFtZSAobGlrZSAiOmVkaXQgZmlsZSIpIHNwYWNlcyBpbiB0aGUgZmlsZSBuYW1lIGFyZQotYWxsb3dlZCwgYnV0IHRyYWlsaW5nIHNwYWNlcyBhcmUgaWdub3JlZC4gIFRoaXMgaXMgdXNlZnVsIG9uIHN5c3RlbXMgdGhhdAotYWxsb3cgZmlsZSBuYW1lcyB3aXRoIGVtYmVkZGVkIHNwYWNlcyAobGlrZSBNUy1XaW5kb3dzIGFuZCB0aGUgQW1pZ2EpLgotRXhhbXBsZTogVGhlIGNvbW1hbmQgIjplICAgTG9uZyBGaWxlIE5hbWUgIiB3aWxsIGVkaXQgdGhlIGZpbGUgIkxvbmcgRmlsZQotTmFtZSIuICBXaGVuIHVzaW5nIGEgY29tbWFuZCB0aGF0IGFjY2VwdHMgbW9yZSB0aGFuIG9uZSBmaWxlIG5hbWUgKGxpa2UgIjpuZXh0Ci1maWxlMSBmaWxlMiIpIGVtYmVkZGVkIHNwYWNlcyBtdXN0IGJlIGVzY2FwZWQgd2l0aCBhIGJhY2tzbGFzaC4KK05vdGUgZm9yIHN5c3RlbXMgb3RoZXIgdGhhbiBVbml4OiBXaGVuIHVzaW5nIGEgY29tbWFuZCB0aGF0IGFjY2VwdHMgYSBzaW5nbGUKK2ZpbGUgbmFtZSAobGlrZSAiOmVkaXQgZmlsZSIpIHNwYWNlcyBpbiB0aGUgZmlsZSBuYW1lIGFyZSBhbGxvd2VkLCBidXQKK3RyYWlsaW5nIHNwYWNlcyBhcmUgaWdub3JlZC4gIFRoaXMgaXMgdXNlZnVsIG9uIHN5c3RlbXMgdGhhdCByZWd1bGFybHkgZW1iZWQKK3NwYWNlcyBpbiBmaWxlIG5hbWVzIChsaWtlIE1TLVdpbmRvd3MgYW5kIHRoZSBBbWlnYSkuICBFeGFtcGxlOiBUaGUgY29tbWFuZAorIjplICAgTG9uZyBGaWxlIE5hbWUgIiB3aWxsIGVkaXQgdGhlIGZpbGUgIkxvbmcgRmlsZSBOYW1lIi4gIFdoZW4gdXNpbmcgYQorY29tbWFuZCB0aGF0IGFjY2VwdHMgbW9yZSB0aGFuIG9uZSBmaWxlIG5hbWUgKGxpa2UgIjpuZXh0IGZpbGUxIGZpbGUyIikKK2VtYmVkZGVkIHNwYWNlcyBtdXN0IGJlIGVzY2FwZWQgd2l0aCBhIGJhY2tzbGFzaC4KIAogCQkJCQkJKndpbGRjYXJkKiAqd2lsZGNhcmRzKgogV2lsZGNhcmRzIGluIHtmaWxlfSBhcmUgZXhwYW5kZWQuICBXaGljaCB3aWxkY2FyZHMgYXJlIHN1cHBvcnRlZCBkZXBlbmRzIG9uCkBAIC0zOTEsNiArMzkxLDggQEAKIAkJCQkJKnN0YXJzdGFyLXdpbGRjYXJkKgogRXhwYW5kaW5nICIqKiIgaXMgcG9zc2libGUgb24gVW5peCwgV2luMzIsIE1hYyBPUy9YIGFuZCBhIGZldyBvdGhlciBzeXN0ZW1zLgogVGhpcyBhbGxvd3Mgc2VhcmNoaW5nIGEgZGlyZWN0b3J5IHRyZWUuICBUaGlzIGdvZXMgdXAgdG8gMTAwIGRpcmVjdG9yaWVzIGRlZXAuCitOb3RlIHRoZXJlIGFyZSBzb21lIGNvbW1hbmRzIHdoZXJlIHRoaXMgd29ya3Mgc2xpZ2h0bHkgZGlmZmVyZW50LCBzZWUKK3xmaWxlLXNlYXJjaGluZ3wuCiBFeGFtcGxlOiA+CiAJOm4gKiovKi50eHQKIEZpbmRzIGZpbGVzOgpAQCAtMTQ3NiwxNCArMTQ3OCwxNiBAQAoge25vdCBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRob3V0IHRoZSB8K3BhdGhfZXh0cmF8IGZlYXR1cmV9CiAKIFRoZSBmaWxlIHNlYXJjaGluZyBpcyBjdXJyZW50bHkgdXNlZCBmb3IgdGhlICdwYXRoJywgJ2NkcGF0aCcgYW5kICd0YWdzJwotb3B0aW9ucywgZm9yIHxmaW5kZGlyKCl8IGFuZCB8ZmluZGZpbGUoKXwuCitvcHRpb25zLCBmb3IgfGZpbmRkaXIoKXwgYW5kIHxmaW5kZmlsZSgpfC4gIE90aGVyIGNvbW1hbmRzIHVzZSB8d2lsZGNhcmRzfAord2hpY2ggaXMgc2xpZ2h0bHkgZGlmZmVyZW50LgogCiBUaGVyZSBhcmUgdGhyZWUgZGlmZmVyZW50IHR5cGVzIG9mIHNlYXJjaGluZzoKIAogMSkgRG93bndhcmQgc2VhcmNoOgkJCQkJKnN0YXJzdGFyKgogICAgRG93bndhcmQgc2VhcmNoIHVzZXMgdGhlIHdpbGRjYXJkcyAnKicsICcqKicgYW5kIHBvc3NpYmx5IG90aGVycwotICAgc3VwcG9ydGVkIGJ5IHlvdXIgb3BlcmF0aW5nIHN5c3RlbS4gICcqJyBhbmQgJyoqJyBhcmUgaGFuZGxlZCBpbnNpZGUgVmltLCBzbwotICAgdGhleSB3b3JrIG9uIGFsbCBvcGVyYXRpbmcgc3lzdGVtcy4KKyAgIHN1cHBvcnRlZCBieSB5b3VyIG9wZXJhdGluZyBzeXN0ZW0uICAnKicgYW5kICcqKicgYXJlIGhhbmRsZWQgaW5zaWRlIFZpbSwKKyAgIHNvIHRoZXkgd29yayBvbiBhbGwgb3BlcmF0aW5nIHN5c3RlbXMuICBOb3RlIHRoYXQgIioqIiBvbmx5IGFjdHMgYXMgYQorICAgc3BlY2lhbCB3aWxkY2FyZCB3aGVuIGl0IGlzIGF0IHRoZSBzdGFydCBvZiBhIG5hbWUuCiAKICAgIFRoZSB1c2FnZSBvZiAnKicgaXMgcXVpdGUgc2ltcGxlOiBJdCBtYXRjaGVzIDAgb3IgbW9yZSBjaGFyYWN0ZXJzLiAgSW4gYQogICAgc2VhcmNoIHBhdHRlcm4gdGhpcyB3b3VsZCBiZSAiLioiLiAgTm90ZSB0aGF0IHRoZSAiLiIgaXMgbm90IHVzZWQgZm9yIGZpbGUKQEAgLTE0OTEsOCArMTQ5NSw4IEBACiAKICAgICcqKicgaXMgbW9yZSBzb3BoaXN0aWNhdGVkOgogICAgICAgLSBJdCBPTkxZIG1hdGNoZXMgZGlyZWN0b3JpZXMuCi0gICAgICAtIEl0IG1hdGNoZXMgdXAgdG8gMzAgZGlyZWN0b3JpZXMgZGVlcCwgc28geW91IGNhbiB1c2UgaXQgdG8gc2VhcmNoIGFuCi0JZW50aXJlIGRpcmVjdG9yeSB0cmVlCisgICAgICAtIEl0IG1hdGNoZXMgdXAgdG8gMzAgZGlyZWN0b3JpZXMgZGVlcCBieSBkZWZhdWx0LCBzbyB5b3UgY2FuIHVzZSBpdCB0bworCXNlYXJjaCBhbiBlbnRpcmUgZGlyZWN0b3J5IHRyZWUKICAgICAgIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGxldmVscyBtYXRjaGVkIGNhbiBiZSBnaXZlbiBieSBhcHBlbmRpbmcgYSBudW1iZXIKIAl0byAnKionLgogCVRodXMgJy91c3IvKioyJyBjYW4gbWF0Y2g6ID4KQEAgLTE1MDUsMTUgKzE1MDksMTYgQEAKIAkJLi4uLgogPAlJdCBkb2VzIE5PVCBtYXRjaCAnL3Vzci9pbmNsdWRlL2crKy9zdGQnIGFzIHRoaXMgd291bGQgYmUgdGhyZWUKIAlsZXZlbHMuCi0JVGhlIGFsbG93ZWQgbnVtYmVyIHJhbmdlIGlzIDAgKCcqKjAnIGlzIHJlbW92ZWQpIHRvIDI1NS4KKwlUaGUgYWxsb3dlZCBudW1iZXIgcmFuZ2UgaXMgMCAoJyoqMCcgaXMgcmVtb3ZlZCkgdG8gMTAwCiAJSWYgdGhlIGdpdmVuIG51bWJlciBpcyBzbWFsbGVyIHRoYW4gMCBpdCBkZWZhdWx0cyB0byAzMCwgaWYgaXQncwotCWJpZ2dlciB0aGFuIDI1NSB0aGVuIDI1NSBpcyB1c2VkLgorCWJpZ2dlciB0aGFuIDEwMCB0aGVuIDEwMCBpcyB1c2VkLiAgVGhlIHN5c3RlbSBhbHNvIGhhcyBhIGxpbWl0IG9uIHRoZQorCXBhdGggbGVuZ3RoLCB1c3VhbGx5IDI1NiBvciAxMDI0IGJ5dGVzLgogICAgICAgLSAnKionIGNhbiBvbmx5IGJlIGF0IHRoZSBlbmQgb2YgdGhlIHBhdGggb3IgYmUgZm9sbG93ZWQgYnkgYSBwYXRoCiAJc2VwYXJhdG9yIG9yIGJ5IGEgbnVtYmVyIGFuZCBhIHBhdGggc2VwYXJhdG9yLgogCiAgICBZb3UgY2FuIGNvbWJpbmUgJyonIGFuZCAnKionIGluIGFueSBvcmRlcjogPgogCS91c3IvKiovc3lzLyoKLQkvdXNyLyovc3lzLyoqCisJL3Vzci8qdG9yeS9zeXMvKioKIAkvdXNyLyoqMi9zeXMvKgogCiAyKSBVcHdhcmQgc2VhcmNoOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZXZhbC50eHQgYi9ydW50aW1lL2RvYy9ldmFsLnR4dAppbmRleCA2ZmQwYWUxLi4yMGZhMzYxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ldmFsLnR4dAorKysgYi9ydW50aW1lL2RvYy9ldmFsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpldmFsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjQKKypldmFsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdWwgMDkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjUyNCw5ICsyNTI0LDE1IEBACiAJCQkJCXxpbnRlcm5hbC12YXJpYWJsZXN8KS4JQWxzbyB3b3JrcwogCQkJCQlmb3IgfGN1cmx5LWJyYWNlcy1uYW1lc3wsIHxEaWN0aW9uYXJ5fAogCQkJCQllbnRyaWVzLCB8TGlzdHwgaXRlbXMsIGV0Yy4gIEJld2FyZQotCQkJCQl0aGF0IHRoaXMgbWF5IGNhdXNlIGZ1bmN0aW9ucyB0byBiZQotCQkJCQlpbnZva2VkIGNhdXNlIGFuIGVycm9yIG1lc3NhZ2UgZm9yIGFuCi0JCQkJCWludmFsaWQgZXhwcmVzc2lvbi4KKwkJCQkJdGhhdCBldmFsdWF0aW5nIGFuIGluZGV4IG1heSBjYXVzZSBhbgorCQkJCQllcnJvciBtZXNzYWdlIGZvciBhbiBpbnZhbGlkCisJCQkJCWV4cHJlc3Npb24uICBFLmcuOiA+CisJCQkJCSAgIDpsZXQgbCA9IFsxLCAyLCAzXQorCQkJCQkgICA6ZWNobyBleGlzdHMoImxbNV0iKQorPAkJCQkJICAgMCA+CisJCQkJCSAgIDplY2hvIGV4aXN0cygibFt4eF0iKQorPAkJCQkJICAgRTEyMTogVW5kZWZpbmVkIHZhcmlhYmxlOiB4eAorCQkJCQkgICAwCiAJCQk6Y21kbmFtZQlFeCBjb21tYW5kOiBidWlsdC1pbiBjb21tYW5kLCB1c2VyCiAJCQkJCWNvbW1hbmQgb3IgY29tbWFuZCBtb2RpZmllciB8OmNvbW1hbmR8LgogCQkJCQlSZXR1cm5zOgpAQCAtMjk0NSw2ICsyOTUxLDggQEAKIAkJVGhlIHJlc3VsdCBpcyB0aGUgdmFsdWUgb2Ygb3B0aW9uIG9yIGxvY2FsIGJ1ZmZlciB2YXJpYWJsZQogCQl7dmFybmFtZX0gaW4gYnVmZmVyIHtleHByfS4gIE5vdGUgdGhhdCB0aGUgbmFtZSB3aXRob3V0ICJiOiIKIAkJbXVzdCBiZSB1c2VkLgorCQlXaGVuIHt2YXJuYW1lfSBpcyBlbXB0eSByZXR1cm5zIGEgZGljdGlvbmFyeSB3aXRoIGFsbCB0aGUKKwkJYnVmZmVyLWxvY2FsIHZhcmlhYmxlcy4KIAkJVGhpcyBhbHNvIHdvcmtzIGZvciBhIGdsb2JhbCBvciBidWZmZXItbG9jYWwgb3B0aW9uLCBidXQgaXQKIAkJZG9lc24ndCB3b3JrIGZvciBhIGdsb2JhbCB2YXJpYWJsZSwgd2luZG93LWxvY2FsIHZhcmlhYmxlIG9yCiAJCXdpbmRvdy1sb2NhbCBvcHRpb24uCkBAIC0zMjk2LDcgKzMzMDQsOSBAQAogCQlGb3IgZXhhbXBsZSwgdG8gZmluZCBhbGwgIlJFQURNRS50eHQiIGZpbGVzIGluIHRoZSBkaXJlY3RvcmllcwogCQlpbiAncnVudGltZXBhdGgnIGFuZCBiZWxvdzogPgogCQkJOmVjaG8gZ2xvYnBhdGgoJnJ0cCwgIioqL1JFQURNRS50eHQiKQotPAorPAkJVXB3YXJkcyBzZWFyY2ggYW5kIGxpbWl0aW5nIHRoZSBkZXB0aCBvZiAiKioiIGlzIG5vdAorCQlzdXBwb3J0ZWQsIHRodXMgdXNpbmcgJ3BhdGgnIHdpbGwgbm90IGFsd2F5cyB3b3JrIHByb3Blcmx5LgorCiAJCQkJCQkJKmhhcygpKgogaGFzKHtmZWF0dXJlfSkJVGhlIHJlc3VsdCBpcyBhIE51bWJlciwgd2hpY2ggaXMgMSBpZiB0aGUgZmVhdHVyZSB7ZmVhdHVyZX0gaXMKIAkJc3VwcG9ydGVkLCB6ZXJvIG90aGVyd2lzZS4gIFRoZSB7ZmVhdHVyZX0gYXJndW1lbnQgaXMgYQpAQCAtMzM2MSwxMyArMzM3MSwxMyBAQAogCQlDbGVhciB7aGlzdG9yeX0sIGkuZS4gZGVsZXRlIGFsbCBpdHMgZW50cmllcy4gIFNlZSB8aGlzdC1uYW1lc3wKIAkJZm9yIHRoZSBwb3NzaWJsZSB2YWx1ZXMgb2Yge2hpc3Rvcnl9LgogCi0JCUlmIHRoZSBwYXJhbWV0ZXIge2l0ZW19IGlzIGdpdmVuIGFzIFN0cmluZywgdGhpcyBpcyBzZWVuCi0JCWFzIHJlZ3VsYXIgZXhwcmVzc2lvbi4JQWxsIGVudHJpZXMgbWF0Y2hpbmcgdGhhdCBleHByZXNzaW9uCi0JCXdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBoaXN0b3J5IChpZiB0aGVyZSBhcmUgYW55KS4KKwkJSWYgdGhlIHBhcmFtZXRlciB7aXRlbX0gZXZhbHVhdGVzIHRvIGEgU3RyaW5nLCBpdCBpcyB1c2VkIGFzIGEKKwkJcmVndWxhciBleHByZXNzaW9uLiAgQWxsIGVudHJpZXMgbWF0Y2hpbmcgdGhhdCBleHByZXNzaW9uIHdpbGwKKwkJYmUgcmVtb3ZlZCBmcm9tIHRoZSBoaXN0b3J5IChpZiB0aGVyZSBhcmUgYW55KS4KIAkJVXBwZXIvbG93ZXJjYXNlIG11c3QgbWF0Y2gsIHVubGVzcyAiXGMiIGlzIHVzZWQgfC9cY3wuCi0JCUlmIHtpdGVtfSBpcyBhIE51bWJlciwgaXQgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBpbmRleCwgc2VlCi0JCXw6aGlzdG9yeS1pbmRleGluZ3wuICBUaGUgcmVzcGVjdGl2ZSBlbnRyeSB3aWxsIGJlIHJlbW92ZWQKLQkJaWYgaXQgZXhpc3RzLgorCQlJZiB7aXRlbX0gZXZhbHVhdGVzIHRvIGEgTnVtYmVyLCBpdCB3aWxsIGJlIGludGVycHJldGVkIGFzCisJCWFuIGluZGV4LCBzZWUgfDpoaXN0b3J5LWluZGV4aW5nfC4gIFRoZSByZXNwZWN0aXZlIGVudHJ5IHdpbGwKKwkJYmUgcmVtb3ZlZCBpZiBpdCBleGlzdHMuCiAKIAkJVGhlIHJlc3VsdCBpcyBhIE51bWJlcjogMSBmb3IgYSBzdWNjZXNzZnVsIG9wZXJhdGlvbiwKIAkJb3RoZXJ3aXNlIDAgaXMgcmV0dXJuZWQuCkBAIC00Mjc4LDkgKzQyODgsMTEgQEAKIAkJJQlBICclJyBpcyB3cml0dGVuLiAgTm8gYXJndW1lbnQgaXMgY29udmVydGVkLiAgVGhlCiAJCQljb21wbGV0ZSBjb252ZXJzaW9uIHNwZWNpZmljYXRpb24gaXMgIiUlIi4KIAotCQlFYWNoIGFyZ3VtZW50IGNhbiBiZSBOdW1iZXIgb3IgU3RyaW5nIGFuZCBpcyBjb252ZXJ0ZWQKLQkJYXV0b21hdGljYWxseSB0byBmaXQgdGhlIGNvbnZlcnNpb24gc3BlY2lmaWVyLglBbnkgb3RoZXIKLQkJYXJndW1lbnQgdHlwZSByZXN1bHRzIGluIGFuIGVycm9yIG1lc3NhZ2UuCisJCVdoZW4gYSBOdW1iZXIgYXJndW1lbnQgaXMgZXhwZWN0ZWQgYSBTdHJpbmcgYXJndW1lbnQgaXMgYWxzbworCQlhY2NlcHRlZCBhbmQgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQuCisJCVdoZW4gYSBGbG9hdCBvciBTdHJpbmcgYXJndW1lbnQgaXMgZXhwZWN0ZWQgYSBOdW1iZXIgYXJndW1lbnQKKwkJaXMgYWxzbyBhY2NlcHRlZCBhbmQgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQuCisJCUFueSBvdGhlciBhcmd1bWVudCB0eXBlIHJlc3VsdHMgaW4gYW4gZXJyb3IgbWVzc2FnZS4KIAogCQkJCQkJCSpFNzY2KiAqRTc2NyoKIAkJVGhlIG51bWJlciBvZiB7ZXhwck59IGFyZ3VtZW50cyBtdXN0IGV4YWN0bHkgbWF0Y2ggdGhlIG51bWJlcgpAQCAtNDUwNiw3ICs0NTE4LDcgQEAKIAkJCTpsZXQgcmV2bGlzdCA9IHJldmVyc2UoY29weShteWxpc3QpKQogCiByb3VuZCh7ZXhwcn0pCQkJCQkJCSpyb3VuZCgpKgotCQlSb3VuZCBvZmYge2V4cHJ9IHRvIGEgdGhlIG5lYXJlc3QgaW50ZWdyYWwgdmFsdWUgYW5kIHJldHVybiBpdAorCQlSb3VuZCBvZmYge2V4cHJ9IHRvIHRoZSBuZWFyZXN0IGludGVncmFsIHZhbHVlIGFuZCByZXR1cm4gaXQKIAkJYXMgYSB8RmxvYXR8LiAgSWYge2V4cHJ9IGxpZXMgaGFsZndheSBiZXR3ZWVuIHR3byBpbnRlZ3JhbAogCQl2YWx1ZXMsIHRoZW4gdXNlIHRoZSBsYXJnZXIgb25lIChhd2F5IGZyb20gemVybykuCiAJCXtleHByfSBtdXN0IGV2YWx1YXRlIHRvIGEgfEZsb2F0fCBvciBhIHxOdW1iZXJ8LgpAQCAtNTA5OCw2ICs1MTEwLDcgQEAKIDwJCQkxMC4wID4KIAkJCTplY2hvIHNxcnQoLTQuMDEpCiA8CQkJbmFuCisJCSJuYW4iIG1heSBiZSBkaWZmZXJlbnQsIGl0IGRlcGVuZHMgb24gc3lzdGVtIGxpYnJhcmllcy4KIAkJe29ubHkgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aCB0aGUgfCtmbG9hdHwgZmVhdHVyZX0KIAkJCiAKQEAgLTU0ODQsNyArNTQ5Nyw3IEBACiA8CQlyZXR1cm5zICJ7YmxvYn0iCiAKIHRydW5jKHtleHByfSkJCQkJCQkJKnRydW5jKCkqCi0JCVJldHVybiB0aGUgbGFyZ2VzdCBpbnRlZ3JhbCB2YWx1ZSB3aXRoIG1hZ25pdHV0ZWQgbGVzcyB0aGFuIG9yCisJCVJldHVybiB0aGUgbGFyZ2VzdCBpbnRlZ3JhbCB2YWx1ZSB3aXRoIG1hZ25pdHVkZSBsZXNzIHRoYW4gb3IKIAkJZXF1YWwgdG8ge2V4cHJ9IGFzIGEgfEZsb2F0fCAodHJ1bmNhdGUgdG93YXJkcyB6ZXJvKS4KIAkJe2V4cHJ9IG11c3QgZXZhbHVhdGUgdG8gYSB8RmxvYXR8IG9yIGEgfE51bWJlcnwuCiAJCUV4YW1wbGVzOiA+CkBAIC02Mzk0LDYgKzY0MDcsMTEgQEAKIDwJCQlPbmUgaXRlbSBmcm9tIGEgfERpY3Rpb25hcnl8IGNhbiBiZSByZW1vdmVkIGF0IGEgdGltZTogPgogCQkJCTp1bmxldCBkaWN0Wyd0d28nXQogCQkJCTp1bmxldCBkaWN0LnR3bworPAkJCVRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgdG8gY2xlYW4gdXAgdXNlZCBnbG9iYWwKKwkJCXZhcmlhYmxlcyBhbmQgc2NyaXB0LWxvY2FsIHZhcmlhYmxlcyAodGhlc2UgYXJlIG5vdAorCQkJZGVsZXRlZCB3aGVuIHRoZSBzY3JpcHQgZW5kcykuICBGdW5jdGlvbi1sb2NhbAorCQkJdmFyaWFibGVzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQgd2hlbiB0aGUgZnVuY3Rpb24KKwkJCWVuZHMuCiAKIDpsb2Nrdlthcl1bIV0gW2RlcHRoXSB7bmFtZX0gLi4uCQkJKjpsb2NrdmFyKiAqOmxvY2t2KgogCQkJTG9jayB0aGUgaW50ZXJuYWwgdmFyaWFibGUge25hbWV9LiAgTG9ja2luZyBtZWFucyB0aGF0CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9mYXJzaS50eHQgYi9ydW50aW1lL2RvYy9mYXJzaS50eHQKaW5kZXggZjQ4OWE3YS4uNWE0MmU0MyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZmFyc2kudHh0CisrKyBiL3J1bnRpbWUvZG9jL2ZhcnNpLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpmYXJzaS50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmZhcnNpLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IE1vcnRhemEgR2hhc3NhYiBTaGlyYW4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2ZpbGV0eXBlLnR4dCBiL3J1bnRpbWUvZG9jL2ZpbGV0eXBlLnR4dAppbmRleCBkYjNmZTRlLi40YmZmNDJkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9maWxldHlwZS50eHQKKysrIGIvcnVudGltZS9kb2MvZmlsZXR5cGUudHh0CkBAIC0xLDQgKzEsNCBAQAotKmZpbGV0eXBlLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCisqZmlsZXR5cGUudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjcKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTU1LDcgKzU1LDcgQEAKIAogSWYgdGhlIGZpbGUgdHlwZSBpcyBub3QgZGV0ZWN0ZWQgYXV0b21hdGljYWxseSwgb3IgaXQgZmluZHMgdGhlIHdyb25nIHR5cGUsCiB5b3UgY2FuIGVpdGhlciBzZXQgdGhlICdmaWxldHlwZScgb3B0aW9uIG1hbnVhbGx5LCBvciBhZGQgYSBtb2RlbGluZSB0byB5b3VyCi1maWxlLiAgRXhhbXBsZSwgZm9yIGluIGFuIElETCBmaWxlIHVzZSB0aGUgY29tbWFuZDogPgorZmlsZS4gIEV4YW1wbGUsIGZvciBhbiBJREwgZmlsZSB1c2UgdGhlIGNvbW1hbmQ6ID4KIAk6c2V0IGZpbGV0eXBlPWlkbAogCiBvciBhZGQgdGhpcyB8bW9kZWxpbmV8IHRvIHRoZSBmaWxlOgpAQCAtMjg0LDggKzI4NCw4IEBACiAKIFRoaXMgd2lsbCBtYXRjaDoKIAotLSBBbnkgZmlsZSB3aG9zZSBuYW1lIGVuZHMgaW4gYC5odG1sJwotLSBBbnkgZmlsZSB3aG9zZSB0eXBlIGlzIGAmZmFmJyBvciAnSFRNTCcsIHdoZXJlIHRoZSBtZWFuaW5nIG9mIHRoZXNlIHR5cGVzCistIEFueSBmaWxlIHdob3NlIG5hbWUgZW5kcyBpbiAiLmh0bWwiCistIEFueSBmaWxlIHdob3NlIHR5cGUgaXMgIiZmYWYiIG9yICJIVE1MIiwgd2hlcmUgdGhlIG1lYW5pbmcgb2YgdGhlc2UgdHlwZXMKICAgZGVwZW5kcyBvbiB3aGljaCB2ZXJzaW9uIG9mIFZpbSB5b3UgYXJlIHVzaW5nLgogICBVbmtub3duIHR5cGVzIGFyZSBjb25zaWRlcmVkIE5PVCB0byBtYXRjaC4KIApAQCAtMjk0LDcgKzI5NCw3IEBACiAKIAk6YXUgQnVmUmVhZCA8JmZmZj5kaWZmKgogCi1UaGlzIHdpbGwgbWF0Y2ggZmlsZXMgb2YgdHlwZSBgJmZmZicgd2hvc2UgbmFtZXMgc3RhcnQgd2l0aCBgZGlmZicuCitUaGlzIHdpbGwgbWF0Y2ggZmlsZXMgb2YgdHlwZSAiJmZmZiIgd2hvc2UgbmFtZXMgc3RhcnQgd2l0aCAiZGlmZiIuCiAKIE5vdGUgdGhhdCBvc2ZpbGV0eXBlIGNoZWNraW5nIGlzIHNraXBwZWQgaWYgVmltIGlzIGNvbXBpbGVkIHdpdGhvdXQgdGhlCiB8K29zZmlsZXR5cGV8IGZlYXR1cmUuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9mb2xkLnR4dCBiL3J1bnRpbWUvZG9jL2ZvbGQudHh0CmluZGV4IGM4MTQwOTMuLjhhOGQ4MDAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2ZvbGQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2ZvbGQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmZvbGQudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDExCisqZm9sZC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNyBNYXkgMTEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2Z0X2FkYS50eHQgYi9ydW50aW1lL2RvYy9mdF9hZGEudHh0CmluZGV4IGJlYzBmNzguLjYyMWQ1ODMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2Z0X2FkYS50eHQKKysrIGIvcnVudGltZS9kb2MvZnRfYWRhLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpmdF9hZGEudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyMQorKmZ0X2FkYS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCiAKIAogCQkgICAgQURBIEZJTEUgVFlQRSBQTFVHLUlOUyBSRUZFUkVOQ0UgTUFOVUFMfgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZnRfc3FsLnR4dCBiL3J1bnRpbWUvZG9jL2Z0X3NxbC50eHQKaW5kZXggNzk0NmM0Zi4uOGQyMzZhMSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZnRfc3FsLnR4dAorKysgYi9ydW50aW1lL2RvYy9mdF9zcWwudHh0CkBAIC0xLDQgKzEsNCBAQAotKmZ0X3NxbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IFdlZCBBcHIgMjYgMjAwNiAzOjA1OjMzIFBNCisqZnRfc3FsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogV2VkIEFwciAyNiAyMDA2IDM6MDU6MzMgUE0KIAogYnkgRGF2aWQgRmlzaGJ1cm4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZ3VpLnR4dCBiL3J1bnRpbWUvZG9jL2d1aS50eHQKaW5kZXggZDE5MWJiMC4uNTgxMjNiMSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ3VpLnR4dAorKysgYi9ydW50aW1lL2RvYy9ndWkudHh0CkBAIC0xLDQgKzEsNCBAQAotKmd1aS50eHQqICAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDE0CisqZ3VpLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2d1aV93MTYudHh0IGIvcnVudGltZS9kb2MvZ3VpX3cxNi50eHQKaW5kZXggOTU0ZTEzOC4uZGIxZjgzMSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ3VpX3cxNi50eHQKKysrIGIvcnVudGltZS9kb2MvZ3VpX3cxNi50eHQKQEAgLTEsNCArMSw0IEBACi0qZ3VpX3cxNi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypndWlfdzE2LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZ3VpX3czMi50eHQgYi9ydW50aW1lL2RvYy9ndWlfdzMyLnR4dAppbmRleCA3OGQ2OTZlLi44NWI5MTBmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ndWlfdzMyLnR4dAorKysgYi9ydW50aW1lL2RvYy9ndWlfdzMyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpndWlfdzMyLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IEF1ZyAzMAorKmd1aV93MzIudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDcgQXVnIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMjksNyArMTI5LDcgQEAKIHRoZSBtYWtlZmlsZS4KIAogWW91IGNhbiBzZWxlY3QgYW55IGZpbGVzIGFuZCByaWdodC1jbGljayB0byBzZWUgYSBtZW51IG9wdGlvbiBjYWxsZWQgIkVkaXQKLXdpdGggZ3ZpbSIuICBDaG9zaW5nIHRoaXMgbWVudSBvcHRpb24gd2lsbCBpbnZva2UgZ3ZpbSB3aXRoIHRoZSBmaWxlIHlvdSBoYXZlCit3aXRoIGd2aW0iLiAgQ2hvb3NpbmcgdGhpcyBtZW51IG9wdGlvbiB3aWxsIGludm9rZSBndmltIHdpdGggdGhlIGZpbGUgeW91IGhhdmUKIHNlbGVjdGVkLiAgSWYgeW91IHNlbGVjdCBtdWx0aXBsZSBmaWxlcywgeW91IHdpbGwgZmluZCB0d28gZ3ZpbS1yZWxhdGVkIG1lbnUKIG9wdGlvbnM6CiAiRWRpdCB3aXRoIG11bHRpcGxlIGd2aW1zIiAgLS0gb25lIGd2aW0gZm9yIGVhY2ggZmlsZSBpbiB0aGUgc2VsZWN0aW9uCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ndWlfeDExLnR4dCBiL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0CmluZGV4IDQ1N2QyY2MuLmZmODQ4NTYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0CisrKyBiL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0CkBAIC0xLDQgKzEsNCBAQAotKmd1aV94MTEudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgRGVjIDA5CisqZ3VpX3gxMS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNyBEZWMgMDkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2hhbmd1bGluLnR4dCBiL3J1bnRpbWUvZG9jL2hhbmd1bGluLnR4dAppbmRleCBmMWZhM2IzLi4yOWE4MjhhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9oYW5ndWxpbi50eHQKKysrIGIvcnVudGltZS9kb2MvaGFuZ3VsaW4udHh0CkBAIC0xLDQgKzEsNCBAQAotKmhhbmd1bGluLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDAyCisqaGFuZ3VsaW4udHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMDIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQ2hpLURlb2sgSHdhbmcgYW5kIFN1bmctSHl1biBOYW0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2hlYnJldy50eHQgYi9ydW50aW1lL2RvYy9oZWJyZXcudHh0CmluZGV4IDYwMGYyNzcuLmQyOGMzM2QgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2hlYnJldy50eHQKKysrIGIvcnVudGltZS9kb2MvaGVicmV3LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpoZWJyZXcudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IEp1biAxNAorKmhlYnJldy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDcgSnVuIDE0CiAKIAogCSAgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFJvbiBBYXJvbiAoYW5kIEF2bmVyIExvdHRlbSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2hlbHAudHh0IGIvcnVudGltZS9kb2MvaGVscC50eHQKaW5kZXggNWNhZDJiZi4uZTgxZGQzYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaGVscC50eHQKKysrIGIvcnVudGltZS9kb2MvaGVscC50eHQKQEAgLTEsNCArMSw0IEBACi0qaGVscC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCisqaGVscC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCiAKIAkJCVZJTSAtIG1haW4gaGVscCBmaWxlCiAJCQkJCQkJCQkgawpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaG93dG8udHh0IGIvcnVudGltZS9kb2MvaG93dG8udHh0CmluZGV4IDNhZDhmNGYuLmZiYWQ3YmUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2hvd3RvLnR4dAorKysgYi9ydW50aW1lL2RvYy9ob3d0by50eHQKQEAgLTEsNCArMSw0IEBACi0qaG93dG8udHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAwMgorKmhvd3RvLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMDIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfY3Njb3AudHh0IGIvcnVudGltZS9kb2MvaWZfY3Njb3AudHh0CmluZGV4IDc0NDgwNjIuLjk3YmI0YjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2lmX2NzY29wLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9jc2NvcC50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfY3Njb3AudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKyppZl9jc2NvcC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBBbmR5IEthaG4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX216c2NoLnR4dCBiL3J1bnRpbWUvZG9jL2lmX216c2NoLnR4dAppbmRleCBkZDUzOGFjLi41NTljNDM5IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9tenNjaC50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfbXpzY2gudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX216c2NoLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDAzCisqaWZfbXpzY2gudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjgKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgU2VyZ2V5IEtob3JldgpAQCAtNTUsNyArNTUsNyBAQAogSW4gdGhlIGNhc2Ugb2YgOm16ZmlsZSwgdGhlIGNvZGUgdG8gZXhlY3V0ZSBpcyB0aGUgY29udGVudHMgb2YgdGhlIGdpdmVuIGZpbGUuCiAKIEVhY2ggYnVmZmVyIGhhcyBpdHMgb3duIE16U2NoZW1lIG5hbWVzcGFjZS4gR2xvYmFsIG5hbWVzcGFjZSBpcyBib3VuZCB0bwotdGhlIGBnbG9iYWwtbmFtZXNwYWNlJyB2YWx1ZSBmcm9tIHRoZSAndmltZXh0JyBtb2R1bGUuCit0aGUgImdsb2JhbC1uYW1lc3BhY2UiIHZhbHVlIGZyb20gdGhlICd2aW1leHQnIG1vZHVsZS4KIE16U2NoZW1lIGludGVyZmFjZSBkZWZpbmVzIGV4Y2VwdGlvbiBleG46dmltLCBkZXJpdmVkIGZyb20gZXhuLgogSXQgaXMgcmFpc2VkIGZvciB2YXJpb3VzIFZpbSBlcnJvcnMuCiAKQEAgLTIxOCw3ICsyMTgsNyBAQAogCQkJCSAgICB7bGluZW5yfS4gSWYge2xpbmVucn0gaXMgMCwgbGluZXMgd2lsbCBiZQogCQkJCSAgICBpbnNlcnRlZCBhdCBzdGFydC4KICAgICAoY3Vyci1idWZmKQkJCSAgICBHZXQgdGhlIGN1cnJlbnQgYnVmZmVyLiBVc2UgcHJvY2VkdXJlcwotCQkJCSAgICBmcm9tIGB2aW1jbWQnIG1vZHVsZSB0byBjaGFuZ2UgaXQuCisJCQkJICAgIGZyb20gInZpbWNtZCIgbW9kdWxlIHRvIGNoYW5nZSBpdC4KICAgICAoYnVmZi1jb3VudCkJCSAgICBHZXQgY291bnQgb2YgdG90YWwgYnVmZmVycyBpbiB0aGUgZWRpdG9yLgogICAgIChnZXQtbmV4dC1idWZmIFtidWZmZXJdKQkgICAgR2V0IG5leHQgYnVmZmVyLgogICAgIChnZXQtcHJldi1idWZmIFtidWZmZXJdKQkgICAgR2V0IHByZXZpb3VzIGJ1ZmZlci4gUmV0dXJuICNmIHdoZW4gdGhlcmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX29sZS50eHQgYi9ydW50aW1lL2RvYy9pZl9vbGUudHh0CmluZGV4IDA4YjRjNDkuLmQxYTMwNjMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2lmX29sZS50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfb2xlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9vbGUudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IE1heSAxMAorKmlmX29sZS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDEwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFBhdWwgTW9vcmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX3BlcmwudHh0IGIvcnVudGltZS9kb2MvaWZfcGVybC50eHQKaW5kZXggNjc1ZWQzNy4uOTdlOTliOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfcGVybC50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfcGVybC50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfcGVybC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDYKKyppZl9wZXJsLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBTdmVuIFZlcmRvb2xhZWdlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9weXRoLnR4dCBiL3J1bnRpbWUvZG9jL2lmX3B5dGgudHh0CmluZGV4IGY4YjBmODYuLmVmZGMzN2UgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2lmX3B5dGgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX3B5dGgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX3B5dGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCisqaWZfcHl0aC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgUGF1bCBNb29yZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfcnVieS50eHQgYi9ydW50aW1lL2RvYy9pZl9ydWJ5LnR4dAppbmRleCBjMzgxYTYzLi42ZGUxZjEwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9ydWJ5LnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9ydWJ5LnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9ydWJ5LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAorKmlmX3J1YnkudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFNodWdvIE1hZWRhCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9zbmlmZi50eHQgYi9ydW50aW1lL2RvYy9pZl9zbmlmZi50eHQKaW5kZXggOTU2ODk1ZC4uMzEyOWMxNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfc25pZmYudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX3NuaWZmLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9zbmlmZi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CisqaWZfc25pZmYudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfdGNsLnR4dCBiL3J1bnRpbWUvZG9jL2lmX3RjbC50eHQKaW5kZXggMzQ0NTkyYi4uYTlmNWFmNyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfdGNsLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl90Y2wudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX3RjbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDA2CisqaWZfdGNsLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgSW5nbyBXaWxrZW4KQEAgLTQwNyw3ICs0MDcsNyBAQAogPAlTZWUgfHRjbC13aW5kb3ctY21kc3wgZm9yIHRoZSBhdmFpbGFibGUgb3B0aW9ucy4KIAogCSRidWYgY29tbWFuZCBbLXF1aWV0XSB7Y21kfQkJCSp0Y2wtYnVmZmVyLWNvbW1hbmQqCi0JJGJ1ZiBleHByIHtleHJ9CQkJCQkqdGNsLWJ1ZmZlci1leHByKgorCSRidWYgZXhwciB7ZXhwcn0JCQkJKnRjbC1idWZmZXItZXhwcioKIAkkYnVmIG9wdGlvbiB7b3B0fSBbdmFsXQkJCQkqdGNsLWJ1ZmZlci1vcHRpb24qCiAJVGhlc2UgYXJlIHNpbWlsYXIgdG8gIjo6dmltOjpjb21tYW5kIiBldGMuLCBleGNlcHQgdGhhdCBldmVyeXRoaW5nIGlzCiAJZG9uZSBpbiB0aGUgY29udGV4dCBvZiB0aGUgYnVmZmVyIHJlcHJlc2VudGVkIGJ5ICRidWYsIGluc3RlYWQgb2YgdGhlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbmRlbnQudHh0IGIvcnVudGltZS9kb2MvaW5kZW50LnR4dAppbmRleCA4ZTViN2EzLi41NDJlMDNkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbmRlbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luZGVudC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5kZW50LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjEKKyppbmRlbnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNTA2LDYgKzUwNiw4MSBAQAogb3RoZXIgZXh0ZW5zaW9ucyBzdWNoIGFzIC5mb3IuCiAKIAorUEhQCQkJCSpmdC1waHAtaW5kZW50KiAqcGhwLWluZGVudCogKnBocC1pbmRlbnRpbmcqCisKK05PVEU6CVBIUCBmaWxlcyB3aWxsIGJlIGluZGVudGVkIGNvcnJlY3RseSBvbmx5IGlmIFBIUCB8c3ludGF4fCBpcyBhY3RpdmUuCisKK0lmIHlvdSBhcmUgZWRpdGluZyBhIGZpbGUgaW4gVW5peCAnZmlsZWZvcm1hdCcgYW5kICdccicgY2hhcmFjdGVycyBhcmUgcHJlc2VudAorYmVmb3JlIG5ldyBsaW5lcywgaW5kZW50YXRpb24gd29uJ3QgcHJvY2VlZCBjb3JyZWN0bHkgOyB5b3UgaGF2ZSB0byByZW1vdmUKK3Rob3NlIHVzZWxlc3MgY2hhcmFjdGVycyBmaXJzdCB3aXRoIGEgY29tbWFuZCBsaWtlOiA+CisKKyAgICA6JXMgL1xyJC8vZworCitPciwgeW91IGNhbiBzaW1wbHkgfDpsZXR8IHRoZSB2YXJpYWJsZSBQSFBfcmVtb3ZlQ1J3aGVuVW5peCB0byAxIGFuZCB0aGUKK3NjcmlwdCB3aWxsIHNpbGVudGx5IHJlbW92ZSB0aGVtIHdoZW4gVmltIGxvYWRzIGEgUEhQIGZpbGUgKGF0IGVhY2h8QnVmUmVhZHwpLgorCitPUFRJT05TOiB+CisKK1BIUCBpbmRlbnRpbmcgY2FuIGJlIGFsdGVyZWQgaW4gc2V2ZXJhbCB3YXlzIGJ5IG1vZGlmeWluZyB0aGUgdmFsdWVzIG9mIHNvbWUKK3ZhcmlhYmxlczoKKworCQkJCQkJCQkqcGhwLWNvbW1lbnQqCitUbyBub3QgZW5hYmxlIGF1dG8tZm9ybWF0aW5nIG9mIGNvbW1lbnRzIGJ5IGRlZmF1bHQgKGlmIHlvdSB3YW50IHRvIHVzZSB5b3VyCitvd24gJ2Zvcm1hdG9wdGlvbnMnKTogPgorICAgIDpsZXQgZzpQSFBfYXV0b2Zvcm1hdGNvbW1lbnQgPSAwCisKK0Vsc2UsICd0JyB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgJ2Zvcm1hdG9wdGlvbnMnIHN0cmluZyBhbmQgInFyb3djYiIgd2lsbCBiZQorYWRkZWQsIHNlZXxmby10YWJsZXxmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKy0tLS0tLS0tLS0tLS0KKworVG8gYWRkIGFuIGV4dHJhIGluZGVudCB0byBldmVyeSBQSFAgbGluZXMgd2l0aCBOIGJlaW5nIHRoZSBudW1iZXIgb2YKKydzaGlmdHdpZHRoJyB0byBhZGQ6ID4KKyAgICA6bGV0IGc6UEhQX2RlZmF1bHRfaW5kZW50aW5nID0gTgorCitGb3IgZXhhbXBsZSwgd2l0aCBOID0gMSwgdGhpcyB3aWxsIGdpdmU6Cis+CisgICAgPD9waHAKKwlpZiAoIWlzc2V0KCRIaXN0b3J5X2xzdF9zZWwpKQorCSAgICBpZiAoIWlzc2V0KCRIaXN0b3J5X2xzdF9zZWwpKQorCQlpZiAoIWlzc2V0KCRIaXN0b3J5X2xzdF9zZWwpKSB7CisJCSAgICAkSGlzdG9yeV9sc3Rfc2VsPTA7CisJCX0gZWxzZQorCQkgICAgJGZvbz0iYmFyIjsKKworCSRjb21tYW5kX2hpc3QgPSBUUlVFOworICAgID8+CisoTm90aWNlIHRoZSBleHRyYSBpbmRlbnQgYmV0d2VlbiB0aGUgUEhQIGNvbnRhaW5lciBtYXJrZXJzIGFuZCB0aGUgY29kZSkKKy0tLS0tLS0tLS0tLS0KKworVG8gYXV0b21hdGljYWxseSByZW1vdmUgJ1xyJyBjaGFyYWN0ZXJzIHdoZW4gdGhlICdmaWxlZm9ybWF0JyBpcyBzZXQgdG8gVW5peDogPgorICAgIDpsZXQgZzpQSFBfcmVtb3ZlQ1J3aGVuVW5peCA9IDEKKy0tLS0tLS0tLS0tLS0KKworVG8gaW5kZW50IGJyYWNlcyBhdCB0aGUgc2FtZSBsZXZlbCB0aGFuIHRoZSBjb2RlIHRoZXkgY29udGFpbjogPgorICAgIDpsZXQgZzpQSFBfQnJhY2VzQXRDb2RlTGV2ZWwgPSAxCisgICAgCitUaGlzIHdpbGwgZ2l2ZSB0aGUgZm9sbG93aW5nIHJlc3VsdDogPgorICAgIGlmICgkZm9vKQorCXsKKwlmb28oKTsKKwl9CitJbnN0ZWFkIG9mOiA+CisgICAgaWYgKCRmb28pCisgICAgeworCWZvbygpOworICAgIH0KKworTk9URToJSW5kZW50aW5nIHdpbGwgYmUgYSBiaXQgc2xvd2VyIGlmIHRoaXMgb3B0aW9uIGlzIHVzZWQgYmVjYXVzZSBzb21lCisJb3B0aW1pemF0aW9ucyB3b24ndCBiZSBhdmFpbGFibGUuCistLS0tLS0tLS0tLS0tCisKK1RvIGluZGVudCAnY2FzZTonIGFuZCAnZGVmYXVsdDonIHN0YXRlbWVudHMgaW4gc3dpdGNoKCkgYmxvY2tzOiA+CisgICAgOmxldCBnOlBIUF92aW50YWdlX2Nhc2VfZGVmYXVsdF9pbmRlbnQgPSAxCisKKyhCeSBkZWZhdWx0IHRoZXkgYXJlIGluZGVudGVkIGF0IHRoZSBzYW1lIGxldmVsIHRoYW4gdGhlICdzd2l0Y2goKScgdG8gYXZvaWQKK3VubmVjZXNzYXJ5IGluZGVudGF0aW9uKQorCisKIFBZVEhPTgkJCQkJCQkqZnQtcHl0aG9uLWluZGVudCoKIAogVGhlIGFtb3VudCBvZiBpbmRlbnQgY2FuIGJlIHNldCBmb3IgdGhlIGZvbGxvd2luZyBzaXR1YXRpb25zLiAgVGhlIGV4YW1wbGVzCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbmRleC50eHQgYi9ydW50aW1lL2RvYy9pbmRleC50eHQKaW5kZXggZjQ5NDMyOC4uMzVmNTA0NCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5kZXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luZGV4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSppbmRleC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IE1heSAwNAorKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggTWF5IDA0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0IGIvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAppbmRleCBkYjBiYTBlLi42NzUyYmE2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjEKKyppbnNlcnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW50cm8udHh0IGIvcnVudGltZS9kb2MvaW50cm8udHh0CmluZGV4IGI4MzBjNTcuLmFjNzUwZWUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2ludHJvLnR4dAorKysgYi9ydW50aW1lL2RvYy9pbnRyby50eHQKQEAgLTEsNCArMSw0IEBACi0qaW50cm8udHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjQKKyppbnRyby50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjA4LDcgKzIwOCw3IEBACiAJQmlsbCBGb3N0ZXIJCUF0aGVuYSBHVUkgcG9ydAogCUdvb2dsZQkJCUxldHMgbWUgd29yayBvbiBWaW0gb25lIGRheSBhIHdlZWsKIAlMb2ljIEdyZW5pZQkJeHZpbSAoaWRlYXMgZm9yIG11bHRpIHdpbmRvd3MgdmVyc2lvbikKLQlTdmVuIEd1Y2tlcwkJVmltIHByb21vdG9yIGFuZCBwcmV2aW91cyBXV1cgcGFnZSBtYWludGFpbmVyCisJU3ZlbiBHdWNrZXMJCVZpbSBwcm9tb3RlciBhbmQgcHJldmlvdXMgV1dXIHBhZ2UgbWFpbnRhaW5lcgogCURhcnJlbiBIaWViZXJ0CQlFeHViZXJhbnQgY3RhZ3MKIAlKYXNvbiBIaWxkZWJyYW5kCUdUSysgMiBwb3J0CiAJQnJ1Y2UgSHVuc2FrZXIJCWltcHJvdmVtZW50cyBmb3IgVk1TIHBvcnQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL21hcC50eHQgYi9ydW50aW1lL2RvYy9tYXAudHh0CmluZGV4IDQxYjk2MTUuLjEzMWUxYmQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL21hcC50eHQKKysrIGIvcnVudGltZS9kb2MvbWFwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptYXAudHh0KiAgICAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyMQorKm1hcC50eHQqICAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVsIDA5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNjIsOCArMTYyLDggQEAKIG90aGVyIGFyZ3VtZW50cy4KIAogCQkJCSo6bWFwLWxvY2FsKiAqOm1hcC08YnVmZmVyPiogKkUyMjQqICpFMjI1KgotSWYgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIG9uZSBvZiB0aGVzZSBjb21tYW5kcyBpcyAiPGJ1ZmZlcj4iIGl0IHdpbGwgYXBwbHkgdG8KLW1hcHBpbmdzIGxvY2FsbHkgdG8gdGhlIGN1cnJlbnQgYnVmZmVyIG9ubHkuICBFeGFtcGxlOiA+CitJZiB0aGUgZmlyc3QgYXJndW1lbnQgdG8gb25lIG9mIHRoZXNlIGNvbW1hbmRzIGlzICI8YnVmZmVyPiIgdGhlIG1hcHBpbmcgd2lsbAorYmUgZWZmZWN0aXZlIGluIHRoZSBjdXJyZW50IGJ1ZmZlciBvbmx5LiAgRXhhbXBsZTogPgogCTptYXAgPGJ1ZmZlcj4gICx3ICAvWy4sO108Q1I+CiBUaGVuIHlvdSBjYW4gbWFwICIsdyIgdG8gc29tZXRoaW5nIGVsc2UgaW4gYW5vdGhlciBidWZmZXI6ID4KIAk6bWFwIDxidWZmZXI+ICAsdyAgL1sjJiFdPENSPgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbWJ5dGUudHh0IGIvcnVudGltZS9kb2MvbWJ5dGUudHh0CmluZGV4IDRlYWJjZjcuLjYwNDQ1ZDEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL21ieXRlLnR4dAorKysgYi9ydW50aW1lL2RvYy9tYnl0ZS50eHQKQEAgLTEsNCArMSw0IEBACi0qbWJ5dGUudHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjEKKyptYnl0ZS50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyIGV0IGFsLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbWVzc2FnZS50eHQgYi9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dAppbmRleCA5ZjhiYmZiLi40NzMxYTcxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dAorKysgYi9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptZXNzYWdlLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IEF1ZyAxOQorKm1lc3NhZ2UudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDcgQXVnIDE5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tbGFuZy50eHQgYi9ydW50aW1lL2RvYy9tbGFuZy50eHQKaW5kZXggMmU5NGQ4NS4uZDIxNGMyNyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWxhbmcudHh0CisrKyBiL3J1bnRpbWUvZG9jL21sYW5nLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptbGFuZy50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAwOAorKm1sYW5nLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDA4CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tb3Rpb24udHh0IGIvcnVudGltZS9kb2MvbW90aW9uLnR4dAppbmRleCBjZGViNGY5Li5jMWI4ZDM4IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tb3Rpb24udHh0CisrKyBiL3J1bnRpbWUvZG9jL21vdGlvbi50eHQKQEAgLTEsNCArMSw0IEBACi0qbW90aW9uLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBNYXkgMDIKKyptb3Rpb24udHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IE1heSAwMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbmV0YmVhbnMudHh0IGIvcnVudGltZS9kb2MvbmV0YmVhbnMudHh0CmluZGV4IDM1MzkxMTEuLmI4MDc0YzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL25ldGJlYW5zLnR4dAorKysgYi9ydW50aW1lL2RvYy9uZXRiZWFucy50eHQKQEAgLTEsNCArMSw0IEBACi0qbmV0YmVhbnMudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjIKKypuZXRiZWFucy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyOAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHb3Jkb24gUHJpZXVyIGV0IGFsLgpAQCAtNjksNyArNjksNyBAQAogaW4gcmVjZW50IHJlbGVhc2VzLgogCiBGb3IgbW9yZSBpbmZvcm1hdGlvbiB2aXNpdCB0aGUgbWFpbiBOZXRCZWFucyB3ZWIgc2l0ZSBodHRwOi8vd3d3Lm5ldGJlYW5zLm9yZy4KLVRoZSBFeHRlcm5hbCBFZGl0b3IgaXMgbm93LCB1bmZvcnR1bmF0ZWx5LCBkZWNsYXJlZCBPYnNvbHRlLiAgU2VlCitUaGUgRXh0ZXJuYWwgRWRpdG9yIGlzIG5vdywgdW5mb3J0dW5hdGVseSwgZGVjbGFyZWQgb2Jzb2xldGUuICBTZWUKICBodHRwOi8vZXh0ZXJuYWxlZGl0b3IubmV0YmVhbnMub3JnLgogCiBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIGFsc28gc2hpcHMgTmV0QmVhbnMgdW5kZXIgdGhlIG5hbWUgU3VuIE9ORSBTdHVkaW8uCkBAIC00MTgsNyArNDE4LDcgQEAKIAkJTm90IGltcGxlbWVudGVkLgogCiBuZXRiZWFuc0J1ZmZlciBpc05ldGJlYW5zQnVmZmVyCi0JCUlmICJpc05ldGJlYW5zQnVmZmVyIiBpcyAiVCIgdGhlbiB0aGlzIGJ1ZmZlciBpcyBgYG93bmVkJycgYnkKKwkJSWYgImlzTmV0YmVhbnNCdWZmZXIiIGlzICJUIiB0aGVuIHRoaXMgYnVmZmVyIGlzICJvd25lZCIgYnkKIAkJTmV0QmVhbnMuCiAJCU5ldyBpbiB2ZXJzaW9uIDIuMi4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCA1NjhkYWI2Li4yMmMwNDE5IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjQKKypvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdWwgMDUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTI4MCw3ICsxMjgwLDggQEAKIAkJCXwrZmlsZV9pbl9wYXRofCBmZWF0dXJlfQogCVRoaXMgaXMgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIHdoaWNoIHdpbGwgYmUgc2VhcmNoZWQgd2hlbiB1c2luZyB0aGUKIAl8OmNkfCBhbmQgfDpsY2R8IGNvbW1hbmRzLCBwcm92aWRlZCB0aGF0IHRoZSBkaXJlY3RvcnkgYmVpbmcgc2VhcmNoZWQKLQlmb3IgaGFzIGEgcmVsYXRpdmUgcGF0aCAobm90IHN0YXJ0aW5nIHdpdGggIi8iLCAiLi8iIG9yICIuLi8iKS4KKwlmb3IgaGFzIGEgcmVsYXRpdmUgcGF0aCwgbm90IGFuIGFic29sdXRlIHBhcnQgc3RhcnRpbmcgd2l0aCAiLyIsICIuLyIKKwlvciAiLi4vIiwgdGhlICdjZHBhdGgnIG9wdGlvbiBpcyBub3QgdXNlZCB0aGVuLgogCVRoZSAnY2RwYXRoJyBvcHRpb24ncyB2YWx1ZSBoYXMgdGhlIHNhbWUgZm9ybSBhbmQgc2VtYW50aWNzIGFzCiAJfCdwYXRoJ3wuICBBbHNvIHNlZSB8ZmlsZS1zZWFyY2hpbmd8LgogCVRoZSBkZWZhdWx0IHZhbHVlIGlzIHRha2VuIGZyb20gJENEUEFUSCwgd2l0aCBhICIsIiBwcmVwZW5kZWQgdG8gbG9vawpAQCAtNTAxMSw5ICs1MDEyLDEwIEBACiAJCQlnbG9iYWwgb3IgbG9jYWwgdG8gYnVmZmVyIHxnbG9iYWwtbG9jYWx8CiAJCQl7bm90IGluIFZpfQogCVRoaXMgaXMgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIHdoaWNoIHdpbGwgYmUgc2VhcmNoZWQgd2hlbiB1c2luZyB0aGUKLQl8Z2Z8LCBbZiwgXWYsIF5XZiwgfDpmaW5kfCBhbmQgb3RoZXIgY29tbWFuZHMsIHByb3ZpZGVkIHRoYXQgdGhlIGZpbGUKLQliZWluZyBzZWFyY2hlZCBmb3IgaGFzIGEgcmVsYXRpdmUgcGF0aCAobm90IHN0YXJ0aW5nIHdpdGggJy8nKS4gIFRoZQotCWRpcmVjdG9yaWVzIGluIHRoZSAncGF0aCcgb3B0aW9uIG1heSBiZSByZWxhdGl2ZSBvciBhYnNvbHV0ZS4KKwl8Z2Z8LCBbZiwgXWYsIF5XZiwgfDpmaW5kfCwgfDpzZmluZHwsIHw6dGFiZmluZHwgYW5kIG90aGVyIGNvbW1hbmRzLAorCXByb3ZpZGVkIHRoYXQgdGhlIGZpbGUgYmVpbmcgc2VhcmNoZWQgZm9yIGhhcyBhIHJlbGF0aXZlIHBhdGggKG5vdAorCXN0YXJ0aW5nIHdpdGggIi8iLCAiLi8iIG9yICIuLi8iKS4gIFRoZSBkaXJlY3RvcmllcyBpbiB0aGUgJ3BhdGgnCisJb3B0aW9uIG1heSBiZSByZWxhdGl2ZSBvciBhYnNvbHV0ZS4KIAktIFVzZSBjb21tYXMgdG8gc2VwYXJhdGUgZGlyZWN0b3J5IG5hbWVzOiA+CiAJCTpzZXQgcGF0aD0uLC91c3IvbG9jYWwvaW5jbHVkZSwvdXNyL2luY2x1ZGUKIDwJLSBTcGFjZXMgY2FuIGFsc28gYmUgdXNlZCB0byBzZXBhcmF0ZSBkaXJlY3RvcnkgbmFtZXMgKGZvciBiYWNrd2FyZHMKQEAgLTUwMzIsMTkgKzUwMzQsOCBAQAogCS0gRW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBleHBhbmRlZCB8OnNldF9lbnZ8LgogCS0gV2hlbiB1c2luZyB8bmV0cncudmltfCBVUkxzIGNhbiBiZSB1c2VkLiAgRm9yIGV4YW1wbGUsIGFkZGluZwogCSAgImh0dHA6Ly93d3cudmltLm9yZyIgd2lsbCBtYWtlICI6ZmluZCBpbmRleC5odG1sIiB3b3JrLgotCS0gU2VhcmNoIHVwd2FyZHMgYW5kIGRvd253YXJkcyBpbiBhIGRpcmVjdG9yeSB0cmVlOgotCSAgMSkgIioiIG1hdGNoZXMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzLCBlLmcuOiA+Ci0JCTpzZXQgcGF0aD0vdXNyL2luY2x1ZGUvKgotPAkgICAgIG1lYW5zIGFsbCBzdWJkaXJlY3RvcmllcyBpbiAvdXNyL2luY2x1ZGUgKGJ1dCBub3QgL3Vzci9pbmNsdWRlCi0JICAgICBpdHNlbGYpLiA+Ci0JCTpzZXQgcGF0aD0vdXNyLypjCi08CSAgICAgbWF0Y2hlcyAvdXNyL2RvYyBhbmQgL3Vzci9zcmMuCi0JICAyKSAiKioiIG1hdGNoZXMgYSBzdWJ0cmVlLCB1cCB0byAxMDAgZGlyZWN0b3JpZXMgZGVlcC4gIEV4YW1wbGU6ID4KLQkJOnNldCBwYXRoPS9ob21lL3VzZXJfeC9zcmMvKioKLTwJICAgICBtZWFucyBzZWFyY2ggaW4gdGhlIHdob2xlIHN1YnRyZWUgdW5kZXIgIi9ob21lL3Vzcl94L3NyYyIuCi0JICAzKSBJZiB0aGUgcGF0aCBlbmRzIHdpdGggYSAnOycsIHRoaXMgcGF0aCBpcyB0aGUgc3RhcnRwb2ludAotCSAgICAgZm9yIHVwd2FyZCBzZWFyY2guCi0JICBTZWUgfGZpbGUtc2VhcmNoaW5nfCBmb3IgbW9yZSBpbmZvIGFuZCBleGFjdCBzeW50YXguCisJLSBTZWFyY2ggdXB3YXJkcyBhbmQgZG93bndhcmRzIGluIGEgZGlyZWN0b3J5IHRyZWUgdXNpbmcgIioiLCAiKioiIGFuZAorCSAgIjsiLiAgU2VlIHxmaWxlLXNlYXJjaGluZ3wgZm9yIGluZm8gYW5kIHN5bnRheC4KIAkgIHtub3QgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUgfCtwYXRoX2V4dHJhfCBmZWF0dXJlfQogCS0gQ2FyZWZ1bCB3aXRoICdcJyBjaGFyYWN0ZXJzLCB0eXBlIHR3byB0byBnZXQgb25lIGluIHRoZSBvcHRpb246ID4KIAkJOnNldCBwYXRoPS4sYzpcXGluY2x1ZGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zXzM5MC50eHQgYi9ydW50aW1lL2RvYy9vc18zOTAudHh0CmluZGV4IDljN2MwZGMuLjU5MDc0YTYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zXzM5MC50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfMzkwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc18zOTAudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKm9zXzM5MC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgUmFsZiBTY2hhbmRsCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19hbWlnYS50eHQgYi9ydW50aW1lL2RvYy9vc19hbWlnYS50eHQKaW5kZXggM2YyNjQ3Zi4uMWUyMTEyMSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfYW1pZ2EudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX2FtaWdhLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19hbWlnYS50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKm9zX2FtaWdhLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19iZW9zLnR4dCBiL3J1bnRpbWUvZG9jL29zX2Jlb3MudHh0CmluZGV4IDZhZDNhNTAuLmM3YmJmMzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX2Jlb3MudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX2Jlb3MudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX2Jlb3MudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKm9zX2Jlb3MudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfZG9zLnR4dCBiL3J1bnRpbWUvZG9jL29zX2Rvcy50eHQKaW5kZXggMjE1NmY2NS4uZTRjZmI3MCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfZG9zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19kb3MudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX2Rvcy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDMwCisqb3NfZG9zLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX21hYy50eHQgYi9ydW50aW1lL2RvYy9vc19tYWMudHh0CmluZGV4IDdjODhmOWUuLjY4ZGJjZmIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX21hYy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfbWFjLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19tYWMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAorKm9zX21hYy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyIGV0IGFsLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfbWludC50eHQgYi9ydW50aW1lL2RvYy9vc19taW50LnR4dAppbmRleCBiZGEzNTg2Li4xYWZkMzM1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19taW50LnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19taW50LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19taW50LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKm9zX21pbnQudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEplbnMgTS4gRmVsZGVyaG9mZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfbXNkb3MudHh0IGIvcnVudGltZS9kb2Mvb3NfbXNkb3MudHh0CmluZGV4IDZhYTgwNzIuLmE5ZmQ3YmUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX21zZG9zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19tc2Rvcy50eHQKQEAgLTEsNCArMSw0IEBACi0qb3NfbXNkb3MudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc19tc2Rvcy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3Nfb3MyLnR4dCBiL3J1bnRpbWUvZG9jL29zX29zMi50eHQKaW5kZXggMTM3NDM0Ni4uZmJhZTVmOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3Nfb3MyLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19vczIudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX29zMi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgQXByIDIyCisqb3Nfb3MyLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNyBBcHIgMjIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgUGF1bCBTbG9vdG1hbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfcW54LnR4dCBiL3J1bnRpbWUvZG9jL29zX3FueC50eHQKaW5kZXggNmQxNWU1MS4uYzE5OWE5NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfcW54LnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19xbngudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX3FueC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5Cisqb3NfcW54LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgSnVsaWFuIEtpbnJhaWQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX3Jpc2MudHh0IGIvcnVudGltZS9kb2Mvb3NfcmlzYy50eHQKaW5kZXggMGY2ZDJiYi4uZTdmYjgwNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfcmlzYy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfcmlzYy50eHQKQEAgLTEsNCArMSw0IEBACi0qb3NfcmlzYy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc19yaXNjLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyOAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBUaG9tYXMgTGVvbmFyZApAQCAtNyw3ICs3LDcgQEAKIAkJCQkJCSpyaXNjb3MqICpSSVNDT1MqICpSSVNDLU9TKgogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBwYXJ0aWN1bGFyaXRpZXMgZm9yIHRoZSBSSVNDIE9TIHZlcnNpb24gb2YgVmltLgogCi1UaGUgUklTQyBPUyBwb3J0IGlzIGEgY29tcGxldGVseSBuZXcgcG9ydCBhbmQgaXMgbm90IGJhc2VkIG9uIHRoZSBvbGQgYGFyY2hpJworVGhlIFJJU0MgT1MgcG9ydCBpcyBhIGNvbXBsZXRlbHkgbmV3IHBvcnQgYW5kIGlzIG5vdCBiYXNlZCBvbiB0aGUgb2xkICJhcmNoaSIKIHBvcnQuCiAKIDEuICBGaWxlIGxvY2F0aW9ucwkJfHJpc2Nvcy1sb2NhdGlvbnN8CkBAIC00Niw3ICs0Niw3IEBACiBkaXN0cmlidXRpb24sIGJ1dCBtb2RpZmllZCBzbGlnaHRseSB0byB3b3JrIHdpdGhpbiB0aGUgbGltaXRzIG9mIEFERlMsIHBsdXMKIHNvbWUgZXh0cmEgZmlsZXMgc3VjaCBhcyB0aGUgd2luZG93IHRlbXBsYXRlcy4KIAotVXNlciBjaG9pY2VzIGFyZSByZWFkIGZyb20gYENob2ljZXM6KicgYW5kIGFyZSBzYXZlZCB0byBgPENob2ljZXMkV3JpdGU+LionLgorVXNlciBjaG9pY2VzIGFyZSByZWFkIGZyb20gIkNob2ljZXM6KiIgYW5kIGFyZSBzYXZlZCB0byAiPENob2ljZXMkV3JpdGU+LioiLgogSWYgeW91IGhhdmUgdGhlIG5ldyAhQm9vdCBzdHJ1Y3R1cmUgdGhlbiB0aGVzZSBzaG91bGQgYmUgc2V0IHVwIGFscmVhZHkuICBJZgogbm90LCBzZXQgQ2hvaWNlcyRQYXRoIHRvIGEgbGlzdCBvZiBkaXJlY3RvcmllcyB0byBzZWFyY2ggd2hlbiBsb29raW5nIGZvcgogdXNlciBjb25maWd1cmF0aW9uIGZpbGVzLiAgU2V0IENob2ljZXMkV3JpdGUgdG8gdGhlIGRpcmVjdG9yeSB5b3Ugd2FudCBmaWxlcwpAQCAtNTgsMjIgKzU4LDIyIEBACiAyLiBGaWxlbmFtZSBtdW5naW5nCiAKIEFsbCBwYXRobmFtZSBtdW5naW5nIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQsIHNvIFZpbSBzaG91bGQgYmVoYXZlIGxpa2UgYQotbm9ybWFsIFJJU0MgT1MgYXBwbGljYXRpb24gbm93LiAgU28sIGlmIHlvdSB3YW50IHRvIGVkaXQgYGRvYy9odG1sJyB0aGVuIHlvdQotYWN0dWFsbHkgdHlwZSBgKnZpIGRvYy9odG1sJy4KK25vcm1hbCBSSVNDIE9TIGFwcGxpY2F0aW9uIG5vdy4gIFNvLCBpZiB5b3Ugd2FudCB0byBlZGl0ICJkb2MvaHRtbCIgdGhlbiB5b3UKK2FjdHVhbGx5IHR5cGUgIip2aSBkb2MvaHRtbCIuCiAKIFRoZSBvbmx5IHRpbWVzIG11bmdpbmcgaXMgZG9uZSBpcyB3aGVuOgogCiAtIFNlYXJjaGluZyBpbmNsdWRlZCBmaWxlcyBmcm9tIEMgcHJvZ3JhbXMsIHNpbmNlIHRoZXNlIGFyZSBhbHdheXMgbXVuZ2VkLgogICBTZWUgfFtJfC4KICAgTm90ZTogbWFrZSBzdXJlIHlvdSBhcmUgaW4gdGhlIHJpZ2h0IGRpcmVjdG9yeSB3aGVuIHlvdSB1c2UgdGhpcwotCWNvbW1hbmQgKGkuZS4gdGhlIG9uZSB3aXRoIHN1YmRpcmVjdG9yaWVzICdjJyBhbmQgJ2gnKS4KKwljb21tYW5kIChpLmUuIHRoZSBvbmUgd2l0aCBzdWJkaXJlY3RvcmllcyAiYyIgYW5kICJoIikuCiAKIC0gU291cmNpbmcgZmlsZXMgdXNpbmcgfDpzb3wuCi0gIFBhdGhzIHN0YXJ0aW5nIGAkVklNLycgYXJlIG11bmdlZCBsaWtlIHRoaXM6CisgIFBhdGhzIHN0YXJ0aW5nICIkVklNLyIgYXJlIG11bmdlZCBsaWtlIHRoaXM6CiAKICAgJFZJTS9zeW50YXgvaGVscC52aW0gIC0+ICBWaW06c3ludGF4LmhlbHAKIAotICBBbHNvLCBmaWxlcyBlbmRpbmcgaW4gYC52aW0nIGhhdmUgdGhlaXIgZXh0ZW5zaW9ucyByZW1vdmVkLCBhbmQgc2xhc2hlcworICBBbHNvLCBmaWxlcyBlbmRpbmcgaW4gIi52aW0iIGhhdmUgdGhlaXIgZXh0ZW5zaW9ucyByZW1vdmVkLCBhbmQgc2xhc2hlcwogICByZXBsYWNlZCB3aXRoIGRvdHMuCiAKIFNvbWUgdGFnIGZpbGVzIGFuZCBzY3JpcHQgZmlsZXMgbWF5IGhhdmUgdG8gYmUgZWRpdGVkIHRvIHdvcmsgdW5kZXIgdGhpcyBwb3J0LgpAQCAtODIsMTAgKzgyLDEwIEBACiAJCQkJCQkJKnJpc2Nvcy1jb21tYW5kbGluZSoKIDMuIENvbW1hbmQtbGluZSB1c2UKIAotVG8gdXNlIFZpbSBmcm9tIHRoZSBjb21tYW5kLWxpbmUgdXNlIHRoZSBgKnZpJyBjb21tYW5kIChvciAnKmV4JyBmb3IKK1RvIHVzZSBWaW0gZnJvbSB0aGUgY29tbWFuZC1saW5lIHVzZSB0aGUgIip2aSIgY29tbWFuZCAob3IgIipleCIgZm9yCiB8RXgtbW9kZXwpLgogCi1UeXBlIGAqdmkgLWgnIGZvciBhIGxpc3Qgb2Ygb3B0aW9ucy4KK1R5cGUgIip2aSAtaCIgZm9yIGEgbGlzdCBvZiBvcHRpb25zLgogCiBSdW5uaW5nIHRoZSBjb21tYW5kLWxpbmUgdmVyc2lvbiBvZiBWaW0gaW4gYSBsYXJnZSBoaWdoLWNvbG9yIG1vZGUgbWF5IGNhdXNlCiB0aGUgc2Nyb2xsaW5nIHRvIGJlIHZlcnkgc2xvdy4gIEVpdGhlciBjaGFuZ2UgdG8gYSBtb2RlIHdpdGggZmV3ZXIgY29sb3JzIG9yCkBAIC0xNDksNyArMTQ5LDcgQEAKIAkJCXBvaW50IGlzIHVzZWQuCiAKIFRoYW5rcyB0byBKb2huIEtvcnRpbmssIFZpbSBjYW4gdXNlIHRoZSBaYXBSZWRyYXcgbW9kdWxlLiAgU3RhcnQgdGhlIGZvbnQgbmFtZQotd2l0aCAnIScgKG9yICchIScgZm9yIGRvdWJsZSBoZWlnaHQpLCBsaWtlIHRoaXM6ID4KK3dpdGggIiEiIChvciAiISEiIGZvciBkb3VibGUgaGVpZ2h0KSwgbGlrZSB0aGlzOiA+CiAKICAgOnNldCBndWlmb250PSEhCiA8CQkJVXNlIHRoZSBzeXN0ZW0gZm9udCwgYnV0IHZpYSBaYXBSZWRyYXcuICBUaGlzIGdpdmVzIGEKQEAgLTE1OCwxMyArMTU4LDEzIEBACiA+CiAgIDpzZXQgZ3VpZm9udD0hc2NyaXB0CiA8CQkJVXNlcyB0aGUgbmFtZWQgWmFwIGZvbnQgKGEgZGlyZWN0b3J5IGluIFZpbUZvbnQkUGF0aCkuCi0JCQlUaGUgcmVkcmF3IGlzIHRoZSBzYW1lIHNwZWVkIGFzIGZvciAnISEnLCBidXQgeW91IGdldAorCQkJVGhlIHJlZHJhdyBpcyB0aGUgc2FtZSBzcGVlZCBhcyBmb3IgIiEhIiwgYnV0IHlvdSBnZXQKIAkJCWEgbmljZXIgbG9va2luZyBmb250LgogCQkJT25seSB0aGUgIm1hbisiIGFuZCAic2NyaXB0IiBmb250cyBhcmUgc3VwcGxpZWQKIAkJCWN1cnJlbnRseSwgYnV0IHlvdSBjYW4gdXNlIGFueSBvZiB0aGUgWmFwIGZvbnRzIGlmCiAJCQl0aGV5IGFyZSBpbiBWaW1Gb250JFBhdGguCi0JCQlWaW0gd2lsbCB0cnkgdG8gbG9hZCBmb250IGZpbGVzICcwJywgJ0InLCAnSScgYW5kICdJQicKLQkJCWZyb20gdGhlIG5hbWVkIGRpcmVjdG9yeS4gIE9ubHkgJzAnIChub3JtYWwgc3R5bGUpIE1VU1QKKwkJCVZpbSB3aWxsIHRyeSB0byBsb2FkIGZvbnQgZmlsZXMgIjAiLCAiQiIsICJJIiBhbmQgIklCIgorCQkJZnJvbSB0aGUgbmFtZWQgZGlyZWN0b3J5LiAgT25seSAiMCIgKG5vcm1hbCBzdHlsZSkgTVVTVAogCQkJYmUgcHJlc2VudC4gIExpbmsgZmlsZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLgogCiBOb3RlIHRoYXQgd2hlbiB1c2luZyBaYXBSZWRyYXcgdGhlIGVkaXQgYmFyIGlzIGRyYXduIGluIGZyb250IG9mIHRoZSBjaGFyYWN0ZXIKQEAgLTE5MSw3ICsxOTEsNyBAQAogQWx0aG91Z2ggSSBkbyBub3QgaGF2ZSBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIG15IEFjb3JuLCBJIGhhdmUgbWFuYWdlZCB0bwogcnVuIFZpbSBpbiBhIEZyZWVUZXJtIHdpbmRvdyB1c2luZyB0aGUgbG9vcGJhY2sgY29ubmVjdGlvbi4KIAotSXQgc2VlbXMgdG8gd29yayBwcmV0dHkgd2VsbCBub3csIHVzaW5nICcqdmkgLVQgYW5zaScuCitJdCBzZWVtcyB0byB3b3JrIHByZXR0eSB3ZWxsIG5vdywgdXNpbmcgIip2aSAtVCBhbnNpIi4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAJCQkJCQkJKnJpc2Nvcy10ZW1wLWZpbGVzKgpAQCAtMjAzLDcgKzIwMyw3IEBACiBkaXJlY3RvcnkgeW91IHdlcmUgc2F2aW5nIHRvLiAgVmltIHdpbGwgYWxsb3cgeW91IHRvIHRyeSBhbmQgcmVjb3ZlciB0aGUgZmlsZQogd2hlbiB5b3UgbmV4dCB0cnkgdG8gZWRpdCBpdC4KIAotVG8gc2VlIGEgbGlzdCBvZiBzd2FwIGZpbGVzLCBwcmVzcyA8RjEyPiBhbmQgdHlwZSBgKnZpIC1yJy4KK1RvIHNlZSBhIGxpc3Qgb2Ygc3dhcCBmaWxlcywgcHJlc3MgPEYxMj4gYW5kIHR5cGUgIip2aSAtciIuCiAKIFZpbSBubyBsb25nZXIgYnJpbmdzIHVwIEFUVEVOVElPTiB3YXJuaW5ncyBpZiB5b3UgdHJ5IHRvIGVkaXQgdHdvIGZpbGVzIHdpdGgKIHRoZSBzYW1lIG5hbWUgaW4gZGlmZmVyZW50IGRpcmVjdG9yaWVzLgpAQCAtMjI4LDggKzIyOCw4IEBACiBkb2VzIGJ5IGRlZmF1bHQgb24gdGhlc2UgbWFjaGluZXMgc28gSSdtIHBsYXlpbmcgc2FmZS4KIAogSXQgZG9lc24ndCB3b3JrIGF0IGFsbCB3ZWxsIHdpdGhvdXQgZHluYW1pYyBhcmVhcywgc2luY2UgaXQgY2FuJ3QgY2hhbmdlIGl0cwotbWVtb3J5IGFsbG9jYXRpb24gb25jZSBydW5uaW5nLiAgSGVuY2UgeW91IHNob3VsZCBlZGl0IGAhVmltLkdWaW0nIGFuZAotYCFWaW0uIVJ1blR4dCcgdG8gY2hvb3NlIHRoZSBiZXN0IHNpemUgZm9yIHlvdS4gIFlvdSBwcm9iYWJseSBuZWVkIGF0IGxlYXN0CittZW1vcnkgYWxsb2NhdGlvbiBvbmNlIHJ1bm5pbmcuICBIZW5jZSB5b3Ugc2hvdWxkIGVkaXQgIiFWaW0uR1ZpbSIgYW5kCisiIVZpbS4hUnVuVHh0IiB0byBjaG9vc2UgdGhlIGJlc3Qgc2l6ZSBmb3IgeW91LiAgWW91IHByb2JhYmx5IG5lZWQgYXQgbGVhc3QKIGFib3V0IDE0MDBLLgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTI1Miw3ICsyNTIsNyBAQAogU29tZSBleGFtcGxlcyBtYXkgbWFrZSB0aGlzIGNsZWFyZXI6CiAKICAgS2luZCBvZiBmaWxlIGxvYWRlZAlvc2ZpbGV0eXBlCWZpbGV0eXBlIH4KLSAgQyBjb2RlICdjLmhlbGxvdycJVGV4dCAoJmZmZikJQworICBDIGNvZGUgImMuaGVsbG93IglUZXh0ICgmZmZmKQlDCiAgIExhVGVYIGRvY3VtZW50CUxhVGVYICgmMmE4KQlUZVgKICAgRHJhdyBkb2N1bWVudAkJRHJhd0ZpbGUgKCZhZmYpCShub3QgY2hhbmdlZCkKIApAQCAtMjYzLDcgKzI2Myw3IEBACiAtIEJhbmdzICghcykgYXJlIG9ubHkgcmVwbGFjZWQgaWYgdGhleSBhcmUgZm9sbG93ZWQgYnkgYSBzcGFjZSBvciBlbmQtb2YtbGluZSwKICAgc2luY2UgbWFueSBwYXRobmFtZXMgY29udGFpbiB0aGVtLgogCi0tIFlvdSBjYW4gcHJlZml4IHRoZSBjb21tYW5kIHdpdGggJ34nLCB3aGljaCBzdG9wcyBhbnkgb3V0cHV0IGZyb20gYmVpbmcKKy0gWW91IGNhbiBwcmVmaXggdGhlIGNvbW1hbmQgd2l0aCAifiIsIHdoaWNoIHN0b3BzIGFueSBvdXRwdXQgZnJvbSBiZWluZwogICBkaXNwbGF5ZWQuICBUaGlzIGFsc28gbWVhbnMgdGhhdCB5b3UgZG9uJ3QgaGF2ZSB0byBwcmVzcyA8RW50ZXI+IGFmdGVyd2FyZHMsCiAgIGFuZCBzdG9wcyB0aGUgc2NyZWVuIGZyb20gYmVpbmcgcmVkcmF3bi4ge29ubHkgaW4gdGhlIEdVSSB2ZXJzaW9ufQogCkBAIC0yNzUsNyArMjc1LDcgQEAKIAogLSBHZXQgdGhlIGxhdGVzdCBzb3VyY2UgZGlzdHJpYnV0aW9uIChzZWUgd3d3LnZpbS5vcmcpCiAtIEdldCB0aGUgcnVudGltZSBlbnZpcm9ubWVudCBmaWxlcyAoZS5nLiB0aGVzZSBoZWxwIGZpbGVzKQotLSBHZXQgdGhlIGBleHRyYScgYXJjaGl2ZSAoY29udGFpbnMgdGhlIFJJU0MgT1Mgc3BlY2lmaWMgYml0cykKKy0gR2V0IHRoZSAiZXh0cmEiIGFyY2hpdmUgKGNvbnRhaW5zIHRoZSBSSVNDIE9TIHNwZWNpZmljIGJpdHMpCiAtIEdldCB0aGUgUklTQyBPUyBiaW5hcnkgZGlzdHJpYnV0aW9uIChpZiBwb3NzaWJsZSkKIAogCkBAIC0yODksMTkgKzI4OSwxOSBAQAogUmVjb21waWxpbmcgdGhlIHNvdXJjZXM6CiAKIC0gQ3JlYXRlIGMsIHMsIGFuZCBoIGRpcmVjdG9yaWVzLgotLSBQdXQgYWxsIHRoZSBoZWFkZXIgZmlsZXMgaW4gJ2gnLgkgICAgIFwKLS0gUHV0IGFsbCB0aGUgQyBmaWxlcyBpbiBgYycuCQkgICAgIHwgQW5kIGxvc2UgdGhlIGV4dGVuc2lvbnMKLS0gUHV0IHRoZSBhc3NlbWJsZXIgZmlsZSAoYHN3aXMvcycpIGluICdzJy4gIC8KLS0gUmVuYW1lIGFsbCB0aGUgZmlsZXMgaW4gYHByb3RvJyB0byBgaCcsIGxpa2UgdGhpczoKKy0gUHV0IGFsbCB0aGUgaGVhZGVyIGZpbGVzIGluICJoIi4JICAgICBcCistIFB1dCBhbGwgdGhlIEMgZmlsZXMgaW4gImMiLgkJICAgICB8IEFuZCBsb3NlIHRoZSBleHRlbnNpb25zCistIFB1dCB0aGUgYXNzZW1ibGVyIGZpbGUgKCJzd2lzL3MiKSBpbiAicyIuICAvCistIFJlbmFtZSBhbGwgdGhlIGZpbGVzIGluICJwcm90byIgdG8gImgiLCBsaWtlIHRoaXM6CiAgICAgcmFGUzo6VmltU3JjLnNvdXJjZS5wcm90by5maWxlL3BybwogCSAgYmVjb21lcwogICAgIHJhRlM6OlZpbVNyYy5zb3VyY2UuaC5maWxlX3BybwotLSBJbiB0aGUgZmlsZXMgYGgucHJvdG8nIGFuZCBgYy50ZXJtbGliJywgc2VhcmNoIGFuZCByZXBsYWNlCistIEluIHRoZSBmaWxlcyAiaC5wcm90byIgYW5kICJjLnRlcm1saWIiLCBzZWFyY2ggYW5kIHJlcGxhY2UKICAgICAucHJvIgogICAgICAgIHdpdGgKICAgICBfcHJvLmgiCi0tIENyZWF0ZSBhIHNpbXBsZSBNYWtlZmlsZSBpZiBkZXNpcmVkIGFuZCBkbyAnKm1ha2UgLWsnLgotICBVc2UgJ0NDID0gZ2NjIC1EUklTQ09TIC1EVVNFX0dVSSAtTzIgLXggYycgaW4gdGhlIE1ha2VmaWxlLgorLSBDcmVhdGUgYSBzaW1wbGUgTWFrZWZpbGUgaWYgZGVzaXJlZCBhbmQgZG8gIiptYWtlIC1rIi4KKyAgVXNlICJDQyA9IGdjYyAtRFJJU0NPUyAtRFVTRV9HVUkgLU8yIC14IGMiIGluIHRoZSBNYWtlZmlsZS4KIC0gU2F2ZSB0aGUgYmluYXJ5IGFzICFWaW0uVmltIGluIHRoZSBiaW5hcnkgZGlzdHJpYnV0aW9uLgogCiAKQEAgLTMwOSwxNSArMzA5LDE1IEBACiAKIC0gUmVwbGFjZSBvbGQgb3IgbWlzc2luZyBmaWxlcyBpbnNpZGUgIVZpbS5SZXNvdXJjZXMgd2l0aCB0aGUKICAgbmV3IGZpbGVzLgotLSBSZW1vdmUgZmlsZXMgaW4gYGRvYycgbm90IGVuZGluZyBpbiBgL3R4dCcsIGV4Y2VwdCBmb3IgYHRhZ3MnLgotLSBMb3NlIHRoZSBleHRlbnNpb25zIGZyb20gdGhlIGZpbGVzIGluIGBkb2MnLgotLSBFZGl0IHRoZSBgZG9jLnRhZ3MnIGZpbGUuICBSZW1vdmUgZXh0ZW5zaW9ucyBmcm9tIHRoZSBzZWNvbmQgY29sdW1uOiA+CistIFJlbW92ZSBmaWxlcyBpbiAiZG9jIiBub3QgZW5kaW5nIGluICIvdHh0IiwgZXhjZXB0IGZvciAidGFncyIuCistIExvc2UgdGhlIGV4dGVuc2lvbnMgZnJvbSB0aGUgZmlsZXMgaW4gImRvYyIuCistIEVkaXQgdGhlICJkb2MudGFncyIgZmlsZS4gIFJlbW92ZSBleHRlbnNpb25zIGZyb20gdGhlIHNlY29uZCBjb2x1bW46ID4KIAk6JXMvXlwoLlteXHRdKlx0LipcKVwudHh0XHQvXDFcdC8KIC0gUmVtb3ZlIGV4dGVuc2lvbnMgZnJvbSB0aGUgc3ludGF4IGZpbGVzLiAgU3BsaXQgdGhlbSBpbnRvIHR3byBkaXJlY3RvcmllcwogICB0byBhdm9pZCB0aGUgNzcgZW50cnkgbGltaXQgb24gb2xkIEFERlMgZmlsZXN5c3RlbXMuCi0tIEVkaXQgYFZpbTpGaWxlVHlwZScgdG8gbWF0Y2ggYCouYy4qJyBhcyB3ZWxsIGFzIGAqL2MnIGFuZCBzbyBvbi4KKy0gRWRpdCAiVmltOkZpbGVUeXBlIiB0byBtYXRjaCAiKi5jLioiIGFzIHdlbGwgYXMgIiovYyIgYW5kIHNvIG9uLgogICBBZGQgZmlsZXR5cGUgY2hlY2tpbmcgdG9vLgotLSBFZGl0IGBWaW06TWVudScgYW5kIHJlbW92ZSBhbGwgdGhlIGtleXMgZnJvbSB0aGUgbWVudXM6ID4KKy0gRWRpdCAiVmltOk1lbnUiIGFuZCByZW1vdmUgYWxsIHRoZSBrZXlzIGZyb20gdGhlIG1lbnVzOiA+CiAJOiVzLzxUYWI+W14gXHRdKi8vCiA8CiAgdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfdW5peC50eHQgYi9ydW50aW1lL2RvYy9vc191bml4LnR4dAppbmRleCBjZjIwMGYwLi4wMzZmNTk3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc191bml4LnR4dAorKysgYi9ydW50aW1lL2RvYy9vc191bml4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc191bml4LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKm9zX3VuaXgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc192bXMudHh0IGIvcnVudGltZS9kb2Mvb3Nfdm1zLnR4dAppbmRleCA2MjA4ZDYzLi44Yjk2OTI5IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc192bXMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX3Ztcy50eHQKQEAgLTEsNCArMSw0IEBACi0qb3Nfdm1zLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBOb3YgMTgKKypvc192bXMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IE5vdiAxOAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3Nfd2luMzIudHh0IGIvcnVudGltZS9kb2Mvb3Nfd2luMzIudHh0CmluZGV4IGFmYzA1ZGQuLjczZDU1ZTkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX3dpbjMyLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc193aW4zMi50eHQKQEAgLTEsNCArMSw0IEBACi0qb3Nfd2luMzIudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBNYXkgMDIKKypvc193aW4zMi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IE1heSAwMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHZW9yZ2UgUmVpbGx5CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9wYXR0ZXJuLnR4dCBiL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CmluZGV4IGNiMzY3ZDAuLmFlNjBiODMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CisrKyBiL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CkBAIC0xLDQgKzEsNCBAQAotKnBhdHRlcm4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCisqcGF0dGVybi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX2dldHNjcmlwdC50eHQgYi9ydW50aW1lL2RvYy9waV9nZXRzY3JpcHQudHh0CmluZGV4IDVmNDZkZTAuLjJkN2VkYjggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX2dldHNjcmlwdC50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfZ2V0c2NyaXB0LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9nZXRzY3JpcHQudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKYW4gMDcKKypwaV9nZXRzY3JpcHQudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjkKID4KIAkJR0VUU0NSSVBUIFJFRkVSRU5DRSBNQU5VQUwgIGJ5IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgogPApAQCAtMzM1LDYgKzMzNSw5IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDkuIEdldExhdGVzdFZpbVNjcmlwdHMgSGlzdG9yeQkJKmdldHNjcmlwdC1oaXN0b3J5KiAqZ2x2cy1oaXN0KiB7e3sxCiAKK3YzMSBKdW4gMjksIDIwMDggOiAqIChCaWxsIE1jQ2FydGh5KSBmaXhlZCBoYXZpbmcgaGxzIGVuYWJsZWQgd2l0aCBnZXRzY3JpcHQKK3YzMCBKdW4gMTMsIDIwMDggOiAqIEdMVlMgbm93IGNoZWNrcyBmb3IgZXhpc3RlbmNlIG9mIGZuYW1lZXNjYXBlKCkgYW5kIHdpbGwKKwkJICAgICBpc3N1ZSBhbiBlcnJvciBtZXNzYWdlIGlmIGl0cyBub3Qgc3VwcG9ydGVkCiB2MjkgSmFuIDA3LCAyMDA4IDogKiBCcmFtIE0gcG9pbnRlZCBvdXQgdGhhdCBjcG8gaXMgYSBnbG9iYWwgb3B0aW9uIGFuZCB0aGF0CiAgICAgICAgICAgICAgICAgICAgICBnZXRzY3JpcHRQbHVnaW4udmltIHdhcyBzZXR0aW5nIGl0IGJ1dCBub3QgcmVzdG9yaW5nIGl0LgogdjI4IEphbiAwMiwgMjAwOCA6ICogaW1wcm92ZWQgc2hlbGwgcXVvdGluZyBjaGFyYWN0ZXIgaGFuZGxpbmcsIGN5Z3dpbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGlfZ3ppcC50eHQgYi9ydW50aW1lL2RvYy9waV9nemlwLnR4dAppbmRleCAzMzM0Mzc5Li5lOWUyMjRiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV9nemlwLnR4dAorKysgYi9ydW50aW1lL2RvYy9waV9nemlwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9nemlwLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDAyIE9jdCAyOQorKnBpX2d6aXAudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDIgT2N0IDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9uZXRydy50eHQgYi9ydW50aW1lL2RvYy9waV9uZXRydy50eHQKaW5kZXggNjhhMDI5OS4uN2UwYzU5NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfbmV0cncudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9uZXRydy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyMQorKnBpX25ldHJ3LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVsIDEzCiAKIAkgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkgICAgTkVUUlcgUkVGRVJFTkNFIE1BTlVBTCAgICBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4KQEAgLTMxNCwxMyArMzE0LDYgQEAKIAkJCUFsc28gYWZmZWN0cyB0aGUgInByZXZpb3VzIHdpbmRvdyIgKHNlZSB8bmV0cnctUHwpIGluCiAJCQl0aGUgc2FtZSB3YXkuCiAKLSAqZzpuZXRyd19zaHEqCQk9ICInIiBmb3IgVW5peC9MaW51eCBzeXN0ZW1zIChpZS4gYSBzaW5nbGUgcXVvdGUpCi0JCQk9ICInIiBmb3IgV2luZG93cyArIGN5Z3dpbiBzeXN0ZW1zIChpZS4gYSBzaW5nbGUgcXVvdGUpCi0JCQk9ICciJyBmb3IgV2luZG93cyBzeXN0ZW1zLCBub3QgdXNpbmcgY3lnd2luCi0JCQkgICAgICAoaWUuIGEgZG91YmxlIHF1b3RlKQotCQkJQ29udHJvbHMgdGhlIHF1b3RpbmcgY2hhcmFjdGVyIHVzZWQgZHVyaW5nIHNjcCBhbmQgZnRwCi0JCQljb21tYW5kcy4KLQogICpnOm5ldHJ3X3NjcHBvcnQqICAgICAgPSAiLVAiIDogb3B0aW9uIHRvIHVzZSB0byBzZXQgcG9ydCBmb3Igc2NwCiAgKmc6bmV0cndfc3NocG9ydCogICAgICA9ICItcCIgOiBvcHRpb24gdG8gdXNlIHRvIHNldCBwb3J0IGZvciBzc2gKIApAQCAtODY0LDYgKzg1Nyw3IEBACiAJU29ydGVkIGJ5CiAJICBTZWxlY3Qgc29ydGluZyBzdHlsZSAobmFtZS90aW1lL3NpemUpLi4uLi4uLi4ufG5ldHJ3LXN8CiAJICBFZGl0aW5nIHRoZSBzb3J0aW5nIHNlcXVlbmNlLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LVN8CisJICBTb3J0aW5nIG9wdGlvbnMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufGc6bmV0cndfc29ydF9vcHRpb25zfAogCSAgQXNzb2NpYXRlZCBzZXR0aW5nIHZhcmlhYmxlLi4uLi4uLi4uLi4uLi4uLi4uLnxnOm5ldHJ3X3NvcnRfc2VxdWVuY2V8CiAJICBSZXZlcnNlIHNvcnRpbmcgb3JkZXIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LXJ8CiAKQEAgLTkyMSw2ICs5MTUsOCBAQAogCSAgIAlicm93c2VyIHdpbmRvdy4gIEEgdmVydGljYWwgc3BsaXQgaXMgdXNlZC4KIAkgICB4CVZpZXcgZmlsZSB3aXRoIGFuIGFzc29jaWF0ZWQgcHJvZ3JhbSAgICAgICAgICAgICAgICAgfG5ldHJ3LXh8CiAKKwkgICAlCU9wZW4gYSBuZXcgZmlsZSBpbiBuZXRydydzIGN1cnJlbnQgZGlyZWN0b3J5ICAgICAgICAgfG5ldHJ3LSV8CisKIAk8bGVmdG1vdXNlPgkoZ3ZpbSBvbmx5KSBzZWxlY3RzIHdvcmQgdW5kZXIgbW91c2UgYXMgaWYgYSA8Y3I+CiAJCQloYWQgYmVlbiBwcmVzc2VkIChpZS4gZWRpdCBmaWxlLCBjaGFuZ2UgZGlyZWN0b3J5KQogCTxtaWRkbGVtb3VzZT4JKGd2aW0gb25seSkgc2FtZSBhcyBQIHNlbGVjdGluZyB3b3JkIHVuZGVyIG1vdXNlOwpAQCAtMTM2Miw4ICsxMzU4LDggQEAKIGc6bmV0cndfc29ydF9zZXF1ZW5jZSB2YXJpYWJsZSAoZWl0aGVyIG1hbnVhbGx5IG9yIGluIHlvdXIgPC52aW1yYz4pIG9yIGJ5CiB1c2luZyB0aGUgIlMiIG1hcC4KIAotUmVsYXRlZCB0b3BpY3M6ICAgICAgICAgICAgICB8bmV0cnctc3wKLUFzc29jaWF0ZWQgc2V0dGluZyB2YXJpYWJsZTogfGc6bmV0cndfc29ydF9zZXF1ZW5jZXwKK1JlbGF0ZWQgdG9waWNzOiAgICAgICAgICAgICAgIHxuZXRydy1zfCAgICAgICAgICAgICAgIHxuZXRydy1TfAorQXNzb2NpYXRlZCBzZXR0aW5nIHZhcmlhYmxlczogfGc6bmV0cndfc29ydF9zZXF1ZW5jZXwgfGc6bmV0cndfc29ydF9vcHRpb25zfAogCiAKIEdPSU5HIFVQCQkJCQkJCSpuZXRydy0tKiB7e3syCkBAIC0xNjU3LDcgKzE2NTMsNyBAQAogCSAgICAoU2VlIHxuZXRydy1tZnwgYW5kIHxuZXRydy1tcnwgZm9yIGhvdyB0byBtYXJrIGZpbGVzKQogCQkgICAgICAodXNlcyB0aGUgZ2xvYmFsIG1hcmtlZCBmaWxlIGxpc3QpCiAKLVRoZSAibXQiIG1hcHBpbmcgd2lsbCBhcHBseSB0aGUgY29tbWFuZCBpbiBnOm5ldHJ3X2N0YWdzIChieSBkZWZhdWx0LCBpdHMKK1RoZSAibXQiIG1hcHBpbmcgd2lsbCBhcHBseSB0aGUgY29tbWFuZCBpbiB8ZzpuZXRyd19jdGFnc3wgKGJ5IGRlZmF1bHQsIGl0cwogImN0YWdzIikgdG8gbWFya2VkIGZpbGVzLiAgRm9yIHJlbW90ZSBicm93c2luZywgaW4gb3JkZXIgdG8gY3JlYXRlIGEgdGFncyBmaWxlCiBuZXRydyB3aWxsIHVzZSBzc2ggKHNlZSB8ZzpuZXRyd19zc2hfY21kfCksIGFuZCBzbyBzc2ggbXVzdCBiZSBhdmFpbGFibGUgZm9yCiB0aGlzIHRvIHdvcmsgb24gcmVtb3RlIHN5c3RlbXMuICBGb3IgeW91ciBsb2NhbCBzeXN0ZW0sIHNlZSB8Y3RhZ3N8IG9uIGhvdyB0bwpAQCAtMTY3Niw3ICsxNjcyLDcgQEAKIHVzZXMgb25lIG9mIHRoZSBnbyB0byB0YWcgYWN0aW9ucyAofHRhZ3N8KSwgdGhlIHVybCB3aWxsIGJlIHVzZWQgYnkgbmV0cncgdG8KIGVkaXQgdGhlIGRlc2lyZWQgZmlsZSBhbmQgZ28gdG8gdGhlIHRhZy4KIAotQXNzb2NpYXRlZCBzZXR0aW5nIHZhcmlhYmxlczogfGc6bmV0cndfc3NoX2NtZHwKK0Fzc29jaWF0ZWQgc2V0dGluZyB2YXJpYWJsZXM6IHxnOm5ldHJ3X2N0YWdzfCB8ZzpuZXRyd19zc2hfY21kfAogCiAKIE1BUktFRCBGSUxFUzogU0VUVElORyBUSEUgVEFSR0VUIERJUkVDVE9SWQkJCSpuZXRydy1tdCoge3t7MgpAQCAtMTczOCwxNCArMTczNCwxMyBAQAogCQkJCWEgc2NyaXB0L2Z1bmN0aW9uIHRvIGhhbmRsZSB0aGUgZ2l2ZW4KIAkJCQlleHRlbnNpb24uICAoc2VlIHxuZXRyd19maWxlaGFuZGxlcnwpLgogCi0gICpnOm5ldHJ3X2NkX2VzY2FwZSoJCT0iW10jKiQlJ1wiID9gISYoKTs8PlxcIgotICAJCQkJVGhpcyBvcHRpb24gaXMgdXNlZCB0byBlc2NhcGUgZGlyZWN0b3J5IG5hbWVzCi0JCQkJYmVmb3JlIGNoYW5naW5nIGRpcmVjdG9yeSB0byB0aGVtLgotCiAgICpnOm5ldHJ3X2NvbXByZXNzKgkJPSJnemlwIgogCQkJCSAgICBXaWxsIGNvbXByZXNzIG1hcmtlZCBmaWxlcyB3aXRoIHRoaXMKIAkJCQkgICAgY29tbWFuZAogCisgICpnOm5ldHJ3X2N0YWdzKgkJPSJjdGFncyIKKwkJCQlUaGUgZGVmYXVsdCBleHRlcm5hbCBwcm9ncmFtIHVzZWQgdG8gY3JlYXRlIHRhZ3MKKwogICAqZzpuZXRyd19kZWNvbXByZXNzKgkJPSB7ICIuZ3oiIDogImd1bnppcCIgLAogCQkJCSAgICAiLmJ6MiIgOiAiYnVuemlwMiIgLAogCQkJCSAgICAiLnppcCIgOiAidW56aXAiICwKQEAgLTE4ODgsNiArMTg4MywxNCBAQAogICAqZzpuZXRyd19zb3J0X2RpcmVjdGlvbioJc29ydGluZyBkaXJlY3Rpb246ICJub3JtYWwiIG9yICJyZXZlcnNlIgogCQkJCSBkZWZhdWx0OiAibm9ybWFsIgogCisgICpnOm5ldHJ3X3NvcnRfb3B0aW9ucyoJc29ydGluZyBpcyBkb25lIHVzaW5nIHw6c29ydHw7IHRoaXMKKwkJCQl2YXJpYWJsZSdzIHZhbHVlIGlzIGFwcGVuZGVkIHRvIHRoZQorCQkJCXNvcnQgY29tbWFuZC4gIFRodXMgb25lIG1heSBpZ25vcmUgY2FzZSwKKwkJCQlmb3IgZXhhbXBsZSwgd2l0aCB0aGUgZm9sbG93aW5nIGluIHlvdXIKKwkJCQkudmltcmM6ID4KKwkJCQkJbGV0IGc6bmV0cndfc29ydF9vcHRpb25zPSJpIgorPAkJCQkgZGVmYXVsdDogIiIKKwogICAqZzpuZXRyd19zb3J0X3NlcXVlbmNlKgl3aGVuIHNvcnRpbmcgYnkgbmFtZSwgZmlyc3Qgc29ydCBieSB0aGUKIAkJCQljb21tYS1zZXBhcmF0ZWQgcGF0dGVybiBzZXF1ZW5jZQogCQkJCSBkZWZhdWx0OiAnW1wvXSQsKixcLmJhayQsXC5vJCxcLmgkLApAQCAtMjAzMSw2ICsyMDM0LDEzIEBACiAgICBkaXJlY3RvcnksIHNlZSB8ZzpuZXRyd19rZWVwZGlyfC4KIAogCitPUEVOIEEgTkVXIEZJTEUgSU4gTkVUUlcnUyBDVVJSRU5UIERJUkVDVE9SWQkJKm5ldHJ3LSUqCisKK1RvIG9wZW4gYSBmaWxlIGluIG5ldHJ3J3MgY3VycmVudCBkaXJlY3RvcnksIHByZXNzICIlIi4gIFRoaXMgbWFwIHdpbGwKK3F1ZXJ5IHRoZSB1c2VyIGZvciBhIG5ldyBmaWxlbmFtZTsgYW4gZW1wdHkgZmlsZSBieSB0aGF0IG5hbWUgd2lsbCBiZQorcGxhY2VkIGluIHRoZSBuZXRydydzIGN1cnJlbnQgZGlyZWN0b3J5IChpZS4gYjpuZXRyd19jdXJkaXIpLgorCisKIFBSRVZJRVcgV0lORE9XCQkJCSpuZXRydy1wKiAqbmV0cnctcHJldmlldyoge3t7MgogCiBPbmUgbWF5IHVzZSBhIHByZXZpZXcgd2luZG93IGJ5IHVzaW5nIHRoZSAicCIga2V5IHdoZW4gdGhlIGN1cnNvciBpcyBhdG9wIHRoZQpAQCAtMjM3Nyw2ICsyMzg3LDIzIEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDEyLiBIaXN0b3J5CQkJCQkJKm5ldHJ3LWhpc3RvcnkqIHt7ezEKIAorCXYxMjY6IEp1biAzMCwgMjAwOCAqIGFmdGVyIGhhdmluZyBnb25lIHRvIGEgcmVtb3RlIGRpcmVjdG9yeSwKKwkgICAgICAgICAgICAgICAgICAgICA8ZjE+IHdhcyBubyBsb25nZXIgdGFraW5nIG9uZSB0byB0aGUgY29ycmVjdAorCQkJICAgICBlbnRyeSBpbiB0aGUgaGVscCAofG5ldHJ3LXF1aWNraGVscHwpLiAgRml4ZWQuCisJICAgICAgSnVsIDAxLCAyMDA4ICogZXh0cmFjdGluZyB0aGUgbGFzdCBmaWxlbmFtZSBmcm9tIGEgd2lkZSBsaXN0aW5nCisJCQkgICAgIG1pc3NlZCB0aGUgbGFzdCBsZXR0ZXIgd2hlbiB8J3ZpcnR1YWxlZGl0J3wgbm90CisJCQkgICAgIGVuYWJsZWQuCisJICAgICAgSnVsIDAxLCAyMDA4ICogdmltIGZvby9iYXIgIHdhcyBjcmVhdGluZyBbU2NyYXRjaF0gYnVmZmVycywKKwkJCSAgICAgd2hlcmUgYmFyIHdhcyBhbHNvIGEgZGlyZWN0b3J5CisJICAgICAgSnVsIDAxLCAyMDA4ICogbnVtZXJvdXMgYWRkaXRpb25hbCBjaGFuZ2VzIHdlcmUgbWFkZSB0byBuZXRydworCQkJICAgICB0byB1c2UgZm5hbWVlc2NhcGUoKSBhbmQgc2hlbGxlc2NhcGUoKSBpbnN0ZWFkCisJCQkgICAgIG9mIGVzY2FwZSgpLiAgTm90IGFsbCBjaGFuZ2VzIGhhdmUgYmVlbiB0ZXN0ZWQKKwkJCSAgICAgYXMgeWV0Li4uCisJICAgICAgSnVsIDAxLCAyMDA4ICogKEphbWVzIFZlZ2EgcmVwb3J0ZWQpIHNvbWUgcHJvYmxlbXMgd2l0aAorCQkJICAgICA6TmV0cndTZXR0aW5ncyAoZHVlIHRvIG5vIGxvbmdlciB1c2VkIHNldHRpbmcKKwkJCSAgICAgdmFyaWFibGVzKS4KKwkgICAgICBKdWwgMDcsIDIwMDggKiBBZGRpdGlvbmFsIG51bWVyb3VzIGNoYW5nZXMgdG8gc3VwcG9ydCBzZWN1cml0eTsKKwkgICAgICAgICAgICAgICAgICAgICBzaGVsbGVzY2FwZShhcmcsMSksIGV0Yy4KIAl2MTI1OiBBcHIgMDcsIDIwMDggKiAoQ3Jpc3RpYW4gUmlnYW1vbnRpKSBDUiBwcm92aWRlcyBhIHBhdGNoOyBoZQogCQkJICAgICBub3RlZCB0aGF0IGd4IHdhcyBmYWlsaW5nIHNpbmNlIGl0cyBjYWxsIHRvCiAJCQkgICAgIG5ldHJ3I05ldEJyb3dzZVgoKSB3YXNuJ3QgdXBkYXRlZCB0bwpAQCAtMjU3MCw3ICsyNTk3LDcgQEAKIAl2MTEwOiBNYXkgMTAsIDIwMDcgKiBhZGRlZCBbIGFuZCBdIG1hcHMgdG8gTmV0cndUcmVlTGlzdGluZwogCSAgICAgIE1heSAyNSwgMjAwNyAqIHxnOm5ldHJ3X3ByZXZpZXd8IGluY2x1ZGVkCiAJICAgICAgTWF5IDI5LCAyMDA3ICogbW9kaWZlZCBuZXRydyNOZXRCcm93c2VYIHRvIGNvbnNpc3RlbnRseSB1c2UKLQkJCSAgICB8ZzpuZXRyd19zaHF8IGluc3RlYWQgb2YgaGFyZGNvZGVkIHF1b3RlcywKKwkJCSAgICAgZzpuZXRyd19zaHEgaW5zdGVhZCBvZiBoYXJkY29kZWQgcXVvdGVzLAogCQkJICAgICBhbmQgbW9kaWZpZWQgdGhlIHNuaXBwZXQgdGhhdCBzZXRzIHVwIHJlZGlyCiAJCQkgICAgIHNvIFdpbmRvd3MgbWFjaGluZXMgdXNlICJudWwiIGluc3RlYWQgb2YKIAkJCSAgICAgIi9kZXYvbnVsbCIuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9wYXJlbi50eHQgYi9ydW50aW1lL2RvYy9waV9wYXJlbi50eHQKaW5kZXggODEwNTMyNy4uZmFhODg5YiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfcGFyZW4udHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX3BhcmVuLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9wYXJlbi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAxNgorKnBpX3BhcmVuLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDE2CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9zcGVjLnR4dCBiL3J1bnRpbWUvZG9jL3BpX3NwZWMudHh0CmluZGV4IDkwMGU3NjguLmU1Y2IzZGEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX3NwZWMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX3NwZWMudHh0CkBAIC0xLDQgKzEsNCBAQAotKnBpX3NwZWMudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqcGlfc3BlYy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogYnkgR3VzdGF2byBOaWVtZXllciB+CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX3Rhci50eHQgYi9ydW50aW1lL2RvYy9waV90YXIudHh0CmluZGV4IGM1MGUwZDEuLmM2OTI2Y2QgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX3Rhci50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfdGFyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV90YXIudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAxMgorKnBpX3Rhci50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVsIDEzCiAKIAkJICAgICAgICs9PT09PT09PT09PT09PT09PT09PSsKIAkJICAgICAgIHwgVGFyIEZpbGUgSW50ZXJmYWNlIHwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX3ZpbWJhbGwudHh0IGIvcnVudGltZS9kb2MvcGlfdmltYmFsbC50eHQKaW5kZXggZTMxZjhhNy4uNzIyMGQwZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfdmltYmFsbC50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfdmltYmFsbC50eHQKQEAgLTEsNCArMSw0IEBACi0qcGlfdmltYmFsbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDA1CisqcGlfdmltYmFsbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDA1CiAKIAkJCSAgICAgICAtLS0tLS0tLS0tLS0tLS0tCiAJCQkgICAgICAgVmltYmFsbCBBcmNoaXZlcgpAQCAtMTY0LDcgKzE2NCw3IEBACiAJCQkgICAgd2lsbCBleHRyYWN0IHBsdWdpbi9zb21lZmlsZSB0byB0aGUgQXNOZWVkZWQvCiAJCQkgICAgZGlyZWN0b3J5CiAJMTcgOiBKdW4gMjgsIDIwMDYgKiBjaGFuZ2VzIGFsbCBccyB0byAvcyBpbnRlcm5hbGx5IGZvciBXaW5kb3dzCi0JMTYgOiBKdW4gMTUsIDIwMDYgKiBBLiBNZWNoeWx5bmNrJ3MgaWRlYSB0byBhbGxvdyB1c2VycyB0byBzcGVjaWZ5CisJMTYgOiBKdW4gMTUsIDIwMDYgKiBBLiBNZWNoZWx5bmNrJ3MgaWRlYSB0byBhbGxvdyB1c2VycyB0byBzcGVjaWZ5CiAJCQkgICAgaW5zdGFsbGF0aW9uIHJvb3QgcGF0aHMgaW1wbGVtZW50ZWQgZm9yCiAJCQkgICAgVXNlVmltYmFsbCwgTWtWaW1iYWxsLCBhbmQgUm1WaW1iYWxsLgogCQkJICAqIFJtVmltYmFsbCBpbXBsZW1lbnRlZApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGlfemlwLnR4dCBiL3J1bnRpbWUvZG9jL3BpX3ppcC50eHQKaW5kZXggODMwZDVjNi4uZDRlM2Y2NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfemlwLnR4dAorKysgYi9ydW50aW1lL2RvYy9waV96aXAudHh0CkBAIC0xLDQgKzEsNCBAQAotKnBpX3ppcC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDEyCisqcGlfemlwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjkKIAogCQkJCSs9PT09PT09PT09PT09PT09PT09PSsKIAkJCQl8IFppcCBGaWxlIEludGVyZmFjZSB8CkBAIC03MCw3ICs3MCw3IEBACiAKIAlhdSBCdWZSZWFkQ21kICouamFyLCoueHBpIGNhbGwgemlwI0Jyb3dzZShleHBhbmQoIjxhbWF0Y2g+IikpCiA8Ci0gICBPbmUgc2ltcGx5IGNhbiBleHRlbmQgdGhpcyBsaW5lIHRvIGFjY29tb2RhdGUgYWRkaXRpb25hbCBleHRlbnNpb25zIHRoYXQKKyAgIE9uZSBjYW4gc2ltcGx5IGV4dGVuZCB0aGlzIGxpbmUgdG8gYWNjb21tb2RhdGUgYWRkaXRpb25hbCBleHRlbnNpb25zIHRoYXQKICAgIHNob3VsZCBiZSB0cmVhdGVkIGFzIHppcCBmaWxlcy4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9wcmludC50eHQgYi9ydW50aW1lL2RvYy9wcmludC50eHQKaW5kZXggY2I0ZGU0My4uYWYxZTJjMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcHJpbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ByaW50LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwcmludC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEFwciAzMAorKnByaW50LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9xdWlja2ZpeC50eHQgYi9ydW50aW1lL2RvYy9xdWlja2ZpeC50eHQKaW5kZXggMjZlMmU3ZS4uNWM0OGU2NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcXVpY2tmaXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL3F1aWNrZml4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpxdWlja2ZpeC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IE1hciAxNAorKnF1aWNrZml4LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggTWFyIDE0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQgYi9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQKaW5kZXggZmM0OWNmYS4uMjMwYTExMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0CisrKyBiL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpxdWlja3JlZi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEphbiAyMgorKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSmFuIDIyCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9xdW90ZXMudHh0IGIvcnVudGltZS9kb2MvcXVvdGVzLnR4dAppbmRleCAwN2IyMTI2Li5hZjg3NDUxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9xdW90ZXMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3F1b3Rlcy50eHQKQEAgLTEsNCArMSw0IEBACi0qcXVvdGVzLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKypxdW90ZXMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcmVjb3Zlci50eHQgYi9ydW50aW1lL2RvYy9yZWNvdmVyLnR4dAppbmRleCA1NzhjODAxLi43NWY1ZDdlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9yZWNvdmVyLnR4dAorKysgYi9ydW50aW1lL2RvYy9yZWNvdmVyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpyZWNvdmVyLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnJlY292ZXIudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9yZW1vdGUudHh0IGIvcnVudGltZS9kb2MvcmVtb3RlLnR4dAppbmRleCA4NWIwNTA3Li5iYmYxYzEyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9yZW1vdGUudHh0CisrKyBiL3J1bnRpbWUvZG9jL3JlbW90ZS50eHQKQEAgLTEsNCArMSw0IEBACi0qcmVtb3RlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBNYXkgMjQKKypyZW1vdGUudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IE1heSAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcmVwZWF0LnR4dCBiL3J1bnRpbWUvZG9jL3JlcGVhdC50eHQKaW5kZXggMzhhNDg1Ny4uNTc3YzBkZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcmVwZWF0LnR4dAorKysgYi9ydW50aW1lL2RvYy9yZXBlYXQudHh0CkBAIC0xLDQgKzEsNCBAQAotKnJlcGVhdC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgQXVnIDEyCisqcmVwZWF0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNyBBdWcgMTIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3JpbGVmdC50eHQgYi9ydW50aW1lL2RvYy9yaWxlZnQudHh0CmluZGV4IGQyNzA3NDAuLjQwZjAwYmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3JpbGVmdC50eHQKKysrIGIvcnVudGltZS9kb2MvcmlsZWZ0LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpyaWxlZnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnJpbGVmdC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEF2bmVyIExvdHRlbQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcnVzc2lhbi50eHQgYi9ydW50aW1lL2RvYy9ydXNzaWFuLnR4dAppbmRleCBkYWJjYTQyLi4wYmE5YmU3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ydXNzaWFuLnR4dAorKysgYi9ydW50aW1lL2RvYy9ydXNzaWFuLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpydXNzaWFuLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnJ1c3NpYW4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFZhc3NpbHkgUmFnb3NpbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc2Nyb2xsLnR4dCBiL3J1bnRpbWUvZG9jL3Njcm9sbC50eHQKaW5kZXggOTFmYzRjOC4uMTQxZWVlNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc2Nyb2xsLnR4dAorKysgYi9ydW50aW1lL2RvYy9zY3JvbGwudHh0CkBAIC0xLDQgKzEsNCBAQAotKnNjcm9sbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXVnIDI3Cisqc2Nyb2xsLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBBdWcgMjcKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3NpZ24udHh0IGIvcnVudGltZS9kb2Mvc2lnbi50eHQKaW5kZXggNTQzNDI3OS4uN2UyOTUyMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc2lnbi50eHQKKysrIGIvcnVudGltZS9kb2Mvc2lnbi50eHQKQEAgLTEsNCArMSw0IEBACi0qc2lnbi50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKypzaWduLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHb3Jkb24gUHJpZXVyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zcGVsbC50eHQgYi9ydW50aW1lL2RvYy9zcGVsbC50eHQKaW5kZXggZTZjNDBjOC4uZWE0ZGEyNSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3BlbGwudHh0CisrKyBiL3J1bnRpbWUvZG9jL3NwZWxsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzcGVsbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCisqc3BlbGwudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zcG9uc29yLnR4dCBiL3J1bnRpbWUvZG9jL3Nwb25zb3IudHh0CmluZGV4IGFjMjVmNDkuLjllNjdlYzQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Nwb25zb3IudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Nwb25zb3IudHh0CkBAIC0xLDQgKzEsNCBAQAotKnNwb25zb3IudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCisqc3BvbnNvci50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dCBiL3J1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dAppbmRleCBjMDE3ZmI0Li5kZmI0MDNiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zdGFydGluZy50eHQKKysrIGIvcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnN0YXJ0aW5nLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCisqc3RhcnRpbmcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CmluZGV4IDBhMGMwYTguLjgzOWFiMzQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzeW50YXgudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyMQorKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhYnBhZ2UudHh0IGIvcnVudGltZS9kb2MvdGFicGFnZS50eHQKaW5kZXggNjQxMGIxMS4uNTE4Zjk4MCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFicGFnZS50eHQKKysrIGIvcnVudGltZS9kb2MvdGFicGFnZS50eHQKQEAgLTEsNCArMSw0IEBACi0qdGFicGFnZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNyBNYXIgMTEKKyp0YWJwYWdlLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA3IE1hciAxMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFncyBiL3J1bnRpbWUvZG9jL3RhZ3MKaW5kZXggNGY5NGZlNS4uYjk1NWFhZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFncworKysgYi9ydW50aW1lL2RvYy90YWdzCkBAIC01NDYwLDYgKzU0NjAsNyBAQAogZnQtcGFzY2FsLXN5bnRheAlzeW50YXgudHh0CS8qZnQtcGFzY2FsLXN5bnRheCoKIGZ0LXBkZi1wbHVnaW4JZmlsZXR5cGUudHh0CS8qZnQtcGRmLXBsdWdpbioKIGZ0LXBlcmwtc3ludGF4CXN5bnRheC50eHQJLypmdC1wZXJsLXN5bnRheCoKK2Z0LXBocC1pbmRlbnQJaW5kZW50LnR4dAkvKmZ0LXBocC1pbmRlbnQqCiBmdC1waHAtb21uaQlpbnNlcnQudHh0CS8qZnQtcGhwLW9tbmkqCiBmdC1waHAtc3ludGF4CXN5bnRheC50eHQJLypmdC1waHAtc3ludGF4KgogZnQtcGhwMy1zeW50YXgJc3ludGF4LnR4dAkvKmZ0LXBocDMtc3ludGF4KgpAQCAtNTU4Myw4ICs1NTg0LDggQEAKIGc6bmV0cndfYWx0dglwaV9uZXRydy50eHQJLypnOm5ldHJ3X2FsdHYqCiBnOm5ldHJ3X2Jyb3dzZV9zcGxpdAlwaV9uZXRydy50eHQJLypnOm5ldHJ3X2Jyb3dzZV9zcGxpdCoKIGc6bmV0cndfYnJvd3NleF92aWV3ZXIJcGlfbmV0cncudHh0CS8qZzpuZXRyd19icm93c2V4X3ZpZXdlcioKLWc6bmV0cndfY2RfZXNjYXBlCXBpX25ldHJ3LnR4dAkvKmc6bmV0cndfY2RfZXNjYXBlKgogZzpuZXRyd19jb21wcmVzcwlwaV9uZXRydy50eHQJLypnOm5ldHJ3X2NvbXByZXNzKgorZzpuZXRyd19jdGFncwlwaV9uZXRydy50eHQJLypnOm5ldHJ3X2N0YWdzKgogZzpuZXRyd19jeWd3aW4JcGlfbmV0cncudHh0CS8qZzpuZXRyd19jeWd3aW4qCiBnOm5ldHJ3X2Rhdl9jbWQJcGlfbmV0cncudHh0CS8qZzpuZXRyd19kYXZfY21kKgogZzpuZXRyd19kZWNvbXByZXNzCXBpX25ldHJ3LnR4dAkvKmc6bmV0cndfZGVjb21wcmVzcyoKQEAgLTU2MjUsMTAgKzU2MjYsMTAgQEAKIGc6bmV0cndfc2NwX2NtZAlwaV9uZXRydy50eHQJLypnOm5ldHJ3X3NjcF9jbWQqCiBnOm5ldHJ3X3NjcHBvcnQJcGlfbmV0cncudHh0CS8qZzpuZXRyd19zY3Bwb3J0KgogZzpuZXRyd19zZnRwX2NtZAlwaV9uZXRydy50eHQJLypnOm5ldHJ3X3NmdHBfY21kKgotZzpuZXRyd19zaHEJcGlfbmV0cncudHh0CS8qZzpuZXRyd19zaHEqCiBnOm5ldHJ3X3NpbGVudAlwaV9uZXRydy50eHQJLypnOm5ldHJ3X3NpbGVudCoKIGc6bmV0cndfc29ydF9ieQlwaV9uZXRydy50eHQJLypnOm5ldHJ3X3NvcnRfYnkqCiBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uCXBpX25ldHJ3LnR4dAkvKmc6bmV0cndfc29ydF9kaXJlY3Rpb24qCitnOm5ldHJ3X3NvcnRfb3B0aW9ucwlwaV9uZXRydy50eHQJLypnOm5ldHJ3X3NvcnRfb3B0aW9ucyoKIGc6bmV0cndfc29ydF9zZXF1ZW5jZQlwaV9uZXRydy50eHQJLypnOm5ldHJ3X3NvcnRfc2VxdWVuY2UqCiBnOm5ldHJ3X3NwZWNpYWxfc3ludGF4CXBpX25ldHJ3LnR4dAkvKmc6bmV0cndfc3BlY2lhbF9zeW50YXgqCiBnOm5ldHJ3X3NzaF9icm93c2VfcmVqZWN0CXBpX25ldHJ3LnR4dAkvKmc6bmV0cndfc3NoX2Jyb3dzZV9yZWplY3QqCkBAIC02NDc1LDYgKzY0NzYsNyBAQAogbmV0YmVhbnMudHh0CW5ldGJlYW5zLnR4dAkvKm5ldGJlYW5zLnR4dCoKIG5ldHJlYWRmaXh1cAlwaV9uZXRydy50eHQJLypuZXRyZWFkZml4dXAqCiBuZXRydwlwaV9uZXRydy50eHQJLypuZXRydyoKK25ldHJ3LSUJcGlfbmV0cncudHh0CS8qbmV0cnctJSoKIG5ldHJ3LS0JcGlfbmV0cncudHh0CS8qbmV0cnctLSoKIG5ldHJ3LUQJcGlfbmV0cncudHh0CS8qbmV0cnctRCoKIG5ldHJ3LU8JcGlfbmV0cncudHh0CS8qbmV0cnctTyoKQEAgLTY3MDcsNiArNjcwOSw3IEBACiBuby1ldmFsLWZlYXR1cmUJZXZhbC50eHQJLypuby1ldmFsLWZlYXR1cmUqCiBub19idWZmZXJzX21lbnUJZ3VpLnR4dAkvKm5vX2J1ZmZlcnNfbWVudSoKIG5vbi1ncmVlZHkJcGF0dGVybi50eHQJLypub24tZ3JlZWR5Kgorbm9uLXplcm8tYXJnCWV2YWwudHh0CS8qbm9uLXplcm8tYXJnKgogbm9ybWFsLWluZGV4CWluZGV4LnR4dAkvKm5vcm1hbC1pbmRleCoKIG5vdC1jb21wYXRpYmxlCXVzcl8wMS50eHQJLypub3QtY29tcGF0aWJsZSoKIG5vdC1lZGl0ZWQJZWRpdGluZy50eHQJLypub3QtZWRpdGVkKgpAQCAtNjgxMiw2ICs2ODE1LDkgQEAKIHBoZWFkZXItb3B0aW9uCXByaW50LnR4dAkvKnBoZWFkZXItb3B0aW9uKgogcGhvdG9uLWZvbnRzCW9zX3FueC50eHQJLypwaG90b24tZm9udHMqCiBwaG90b24tZ3VpCW9zX3FueC50eHQJLypwaG90b24tZ3VpKgorcGhwLWNvbW1lbnQJaW5kZW50LnR4dAkvKnBocC1jb21tZW50KgorcGhwLWluZGVudAlpbmRlbnQudHh0CS8qcGhwLWluZGVudCoKK3BocC1pbmRlbnRpbmcJaW5kZW50LnR4dAkvKnBocC1pbmRlbnRpbmcqCiBwaHAudmltCXN5bnRheC50eHQJLypwaHAudmltKgogcGhwMy52aW0Jc3ludGF4LnR4dAkvKnBocDMudmltKgogcGh0bWwudmltCXN5bnRheC50eHQJLypwaHRtbC52aW0qCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YWdzcmNoLnR4dCBiL3J1bnRpbWUvZG9jL3RhZ3NyY2gudHh0CmluZGV4IDQ2ZGMxOGUuLjk1MmJiOTYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3NyY2gudHh0CisrKyBiL3J1bnRpbWUvZG9jL3RhZ3NyY2gudHh0CkBAIC0xLDQgKzEsNCBAQAotKnRhZ3NyY2gudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdGFnc3JjaC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Rlcm0udHh0IGIvcnVudGltZS9kb2MvdGVybS50eHQKaW5kZXggNTVhOWFlMS4uY2Y5NjBiZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGVybS50eHQKKysrIGIvcnVudGltZS9kb2MvdGVybS50eHQKQEAgLTEsNCArMSw0IEBACi0qdGVybS50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjEKKyp0ZXJtLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGlwcy50eHQgYi9ydW50aW1lL2RvYy90aXBzLnR4dAppbmRleCAwYmRjZmEwLi5mZmVlYTBmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90aXBzLnR4dAorKysgYi9ydW50aW1lL2RvYy90aXBzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0aXBzLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEp1bCAyNAorKnRpcHMudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgSnVsIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IGI2MDY5NjguLjAzZTQ5ODEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDI0CisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdWwgMTMKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsMTAgKzMwLDIwIEBACiAJCQkJCQkJKmtub3duLWJ1Z3MqCiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBLbm93biBidWdzIGFuZCBjdXJyZW50IHdvcmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorIjpwZWRpdCAlIiB3aXRoIGEgQnVmUmVhZFByZSBhdXRvY29tbWFuZCBjYXVzZXMgdGhlIGN1cnNvciB0byBtb3ZlIHRvIHRoZQorZmlyc3QgbGluZS4gKEluZ28gS2Fya2F0LCAyMDA4IEp1bCAxKQorCiBIYXZlIGEgbG9vayBhdCBwYXRjaCBmb3IgdXRmLTggbGluZSBicmVha2luZy4gKFlvbmd3ZWkgV3UsIDIwMDggTWFyIDEsIE1hciAyMykKIAotRHJhd2luZyBwb3B1cCBtZW51IGlzbid0IHF1aXRlIHJpZ2h0IHdoZW4gdGhlcmUgYXJlIGRvdWJsZS13aWRlIGNoYXJhY3RlcnMuCi1ZdWtpaGlybyBOYWthZGFpcmEgaXMgd29ya2luZyBvbiBhIHNvbHV0aW9uICgyMDA4IEp1biAyMikuICBVc2UgbWJfZml4X2NvbCgpLgorUnVudGltZSBmaWxlcyBmb3IgQ2xvanVyZS4gKFRvcmFsZiBXaXR0bmVyLCAyMDA4IEp1biAyNSkKKworUGF0Y2ggdG8gYWRkIGV4dHJhIGFyZ3VtZW50IHRvIGdsb2IoKSBhbmQgZ2xvYnBhdGgoKSB0byBpZ25vcmUgJ3dpbGRpZ25vcmUnLgorKEluZ28gS2Fya2F0LCAyMDA4IEp1biAyNSkKKworQ3Jhc2ggd2l0aCBkcmFnbi1uLWRyb3Agb2YgZmlsZSBjb21iaW5lZCB3aXRoIG5ldHJ3IChNYXJpdXMgR2VkbWluYXMsIDIwMDggSnVuCisxMSkgIEkgY2FuJ3QgcmVwcm9kdWNlIGl0LiAgSXQncyBwcm9iYWJseSBjYXVzZWQgYnkgYSBoYW5kbGVfZHJvcCgpIGNhbGwKK2luIGNvbWJpbmF0aW9uIHdpdGggYXV0b2NvbW1hbmRzIHRoYXQgaW52b2tlIGEgIjpyZWRyYXciIGNvbW1hbmQuCitBbm90aGVyIHZhbGdyaW5kIG91dHB1dCBKdW4gMzAuCiAKIFdoZW4gcmVhbGxvY2F0aW5nIGNtZGxpbmUgeHBfcGF0dGVybiBiZWNvbWVzIGludmFsaWQuICBNb3ZlIGV4cGFuZF9UIHhwYyBpbnRvCiBjY2xpbmU/ICAoRG9taW5pcXVlIFBlbGxlKQpAQCAtNDQsMTQgKzU0LDkgQEAKIAogRml4IGZvciBtYXRjaHBhcmVuIEhMIGRvZXNuJ3Qgd29yay4gIGJlZXAuCiAKLUNyYXNoIHdpdGggZHJhZ24tbi1kcm9wIG9mIGZpbGUgY29tYmluZWQgd2l0aCBuZXRydyAoTWFyaXVzIEdlZG1pbmFzLCAyMDA4IEp1bgotMTEpICBJIGNhbid0IHJlcHJvZHVjZSBpdC4KLQogV2luMzI6IGFzc29jaWF0aW5nIGEgdHlwZSB3aXRoIFZpbSBkb2Vzbid0IHRha2UgY2FyZSBvZiBzcGFjZSBhZnRlciBhCiBiYWNrc2xhc2g/IChSb2JlcnQgVmlicmFudCwgMjAwOCBKdW4gNSkKIAotIjpsZXQgJmc6dHcgPSA0NCIgc2V0cyB0aGUgbG9jYWwgb3B0aW9uIHZhbHVlLiAoQ3lyaWwgU2xvYmluLCAyMDA4IEFwciAyNSkKLQogQWZ0ZXIgdXNpbmcgPFRhYj4gZm9yIGNvbW1hbmQgbGluZSBjb21wbGV0aW9uIGFmdGVyICI6dGEgYmxhaCIgYW5kIGdldHRpbmcgRTMzCiAobm8gdGFncyBmaWxlKSwgZnVydGhlciBlZGl0aW5nIHRoZSBjb21tYW5kIHRvIGUuZy4sICI6ZWNobyAnYmxhaCciLCB0aGUKIGNvbW1hbmQgaXMgbm90IGV4ZWN1dGVkLgpAQCAtNjksMTAgKzc0LDggQEAKIChJdmFuIFRpc2hjaGVua28sIExpdSBZdWJhbykgIFN1Z2dlc3RlZCBwYXRjaCBieSBDaHJpcyBMdWJpbnNraTogQXZvaWQKIGVzY2FwaW5nIGNoYXJhY3RlcnMgd2hlcmUgdGhlIGJhY2tzbGFzaCBpcyBub3QgcmVtb3ZlZCBsYXRlci4gIEFza2VkIENocmlzIGZvcgogYW4gYWx0ZXJuYXRlIHNvbHV0aW9uLCBhbHNvIGZvciBzcmMvZXhfZ2V0bG4uYy4KLQotV2hlbiBhZGRpbmcgcGF0aCB0byAndGFncycgd2l0aCBhIHdpbGRjYXJkLCBpdCBhcHBlYXJzIG9ubHkgYSBmaXJzdCBtYXRjaCBpcwotdXNlZC4gKEVyaWsgRmFsb3IsIDIwMDggQXByaWwgMTgpICBPciBpcyBpdCB0aGF0IGEgd2lsZGNhcmQgaW4gdGhlIGZpbGUgbmFtZQotaXMgbm90IHN1cHBvcnRlZCwgb25seSBpbiB0aGUgcGF0aD8KK1RoaXMgYWxzbyBmYWlscyB3aGVuIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSBuYW1lIGNvbnRhaW5zICIlIi4gKFRob21sLCAyMDA4CitKdWx5IDcpCiAKIFRoZSBzdHIyc3BlY2lhbCgpIGZ1bmN0aW9uIGRvZXNuJ3QgaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBwcm9wZXJseS4KIFBhdGNoIGZyb20gVmxhZGltaXIgVmljaG5pYWtvdiwgMjAwNyBBcHIgMjQuCkBAIC0xMDIsOCArMTA1LDYgQEAKIEdVSTogSW4gTm9ybWFsIG1vZGUgY2FuJ3QgeWFuayB0aGUgbW9kZWxlc3Mgc2VsZWN0aW9uLiAgTWFrZSAiZ3kiIGRvIHRoaXM/CiBXb3JrcyBsaWtlIENUUkwtWSBpbiBDb21tYW5kIGxpbmUgbW9kZS4KIAotTWFjOiBwYXRjaCBmb3IgbW91c2Ugd2hlZWwgc2Nyb2xsIHVuZGVyIExlb3BhcmQuIChFY2tlaGFyZCBCZXJucywgMjAwNyBEZWMgNykKLQogTWFjOiBBZnRlciBhICI6dnNwbGl0IiB0aGUgbGVmdCBzY3JvbGxiYXIgZG9lc24ndCBhcHBlYXIgdW50aWwgJ2NvbHVtbnMnIGlzCiBjaGFuZ2VkIG9yIHRoZSB3aW5kb3cgaXMgcmVzaXplZC4KIApAQCAtMTY3LDkgKzE2OCw2IEBACiAKIE1vcmUgQW1pZ2FPUzQgcGF0Y2hlcy4gKFBldGVyIEJlbmd0c3NvbiwgTm92IDkpCiAKLWdsb2JwYXRoKCkgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLiAgVGhlIGV4YW1wbGUgc2hvd3MgdXNpbmcgJ3BhdGgnLCBidXQgdGhlCi0iKio4IiBmb3JtIGFuZCB1cHdhcmRzIHNlYXJjaCBhcmUgbm90IHN1cHBvcnRlZC4KLQogRXJyb3Igd2hlbiBjYW5jZWxsaW5nIGNvbXBsZXRpb24gbWVudSBhbmQgYXV0by1mb3JtYXR0aW5nLiAoVGltIFdlYmVyLCAyMDA4CiBBcHIgMTcpCiAKQEAgLTIwNSw2ICsyMDMsMTIgQEAKIENvbXBsZXRpb246IFNjYW5uaW5nIGZvciB0YWdzIGRvZXNuJ3QgY2hlY2sgZm9yIHR5cGVkIGtleSBub3cgYW5kIHRoZW4/CiBIYW5ncyBmb3IgYWJvdXQgNSBzZWNvbmRzLiAgQXBwZWFycyB0byBiZSBjYXVzZWQgYnkgZmluZGluZyBpbmNsdWRlIGZpbGVzIHdpdGgKICJmb28vKioiIGluICdwYXRoJy4gIChLYWxpc2lhaywgMjAwNiBKdWx5IDE1KQorQWRkaXRpb25hbCBpbmZvOiBXaGVuIHVzaW5nIHRoZSB8d2lsZGNhcmRzfCAqKiBnbG9iaW5nLCB2aW0gaGFuZ3MKK2luZGVmaW5pdGVseSBvbiBsb3RzIG9mIGRpcmVjdG9yaWVzLiBUaGUgfGZpbGUtc2VhcmNoaW5nfCBnbG9iaW5nLCBsaWtlIGluCisiOnNldCBwYXRoPS8qKiIgZG9lcyBub3QgaGFuZyBhcyBvZnRlbiBhcyB3aXRoIGdsb2Jpbmcgd2l0aCB8d2lsZGNhcmRzfCwgbGlrZQoraW4gIjoxZmluZCAvKiovZmlsZSIuICBUaGlzIGlzIGZvciBhIGZpbGVzIHRoYXQgdW5peCAiZmluZCIgY2FuIGZpbmQgdmVyeQorcXVpY2suIE1lcmdpbmcgdGhlIDIga2luZHMgb2YgZ2xvYmluZyBtaWdodCBtYWtlIHRoaXMgYW4gZWFzaWVyIGZpeC4gKElhbgorS2VsbGluZywgMjAwOCBKdWx5IDQpCiAKIFdoZW4gdGhlIGZpbGUgbmFtZSBoYXMgcGFyZW50aGVzaXMsIGUuZy4sICJmb28gKGJhcikudHh0IiwgIjohbHMgJyUnIiBoYXMgdGhlCiBwYXJlbnRoZXNpcyBlc2NhcGVkIGJ1dCBub3QgdGhlIHNwYWNlLiAgVGhhdCdzIGluY29uc2lzdGVudC4gIEVpdGhlciBlc2NhcGUKQEAgLTMwOSw3ICszMTMsNyBAQAogIjpsb2NrdmFyIiBzaG91bGQgdXNlIGNvcHlJRCB0byBhdm9pZCBlbmRsZXNzIGxvb3AuCiAKIFdoZW4gdXNpbmcgLS1yZW1vdGUtc2lsZW50IGFuZCB0aGUgZmlsZSBuYW1lIG1hdGNoZXMgJ3dpbGRpZ25vcmUnIGdldCBhbiBFNDc5Ci1lcnJvci4gIHdpdGhvdXQgLS1yZW1vZXRlLXNpbGVudCBpdCB3b3JrcyBmaW5lLiAoQmVuIEZyaXR6LCAyMDA4IEp1biAyMCkKK2Vycm9yLiAgd2l0aG91dCAtLXJlbW90ZS1zaWxlbnQgaXQgd29ya3MgZmluZS4gKEJlbiBGcml0eiwgMjAwOCBKdW4gMjApCiAKIEd2aW06IGRpYWxvZyBmb3IgY2xvc2luZyBWaW0gc2hvdWxkIGNoZWNrIGlmIFZpbSBpcyBidXN5IHdyaXRpbmcgYSBmaWxlLiAgVGhlbgogdXNlIGEgZGlmZmVyZW50IGRpYWxvZzogImJ1c3kgc2F2aW5nLCByZWFsbHkgcXVpdD8geWVzIC8gbm8iLgpAQCAtMzMyLDcgKzMzNiw3IEBACiBUZXN0IDYxIGZhaWxzIHNvbWV0aW1lcy4gIFRoaXMgaXMgYSB0aW1pbmcgcHJvYmxlbTogInNsZWVwIDIiIHNvbWV0aW1lcyB0YWtlcwogbG9uZ2VyIHRoYW4gMiBzZWNvbmRzLgogCi1DaGFuZ2luZyAnZ3VpZm9udCcgaW4gdGhlIGNvbnNvbGUgY2F1c2VzIGFuIHVuZWNjZXNzYXJ5IHJlZHJhdy4KK0NoYW5naW5nICdndWlmb250JyBpbiB0aGUgY29uc29sZSBjYXVzZXMgYW4gdW5uZWNlc3NhcnkgcmVkcmF3LgogCiAidmltIC1DIiBvZnRlbiBoYXMgJ25vY29tcGF0aWJsZScsIGJlY2F1c2UgaXQncyBzZXQgaW4gc29tZSBzdGFydHVwIHNjcmlwdC4KIFNldCAnY29tcGF0aWJsZScgYWZ0ZXIgc3RhcnR1cCBpcyBkb25lPyAgUGF0Y2ggYnkgSmFtZXMgVmVnYSwgMjAwOCBGZWIgNy4KQEAgLTM2OCw3ICszNzIsNyBAQAogR3ZpbWV4dDogcGF0Y2ggdG8gYWRkICJFZGl0IHdpdGggc2luZ2xlIFZpbSAmdGFiYmVkIiBtZW51IGVudHJ5LgogSnVzdCBoYXZlIHR3byBjaG9pY2VzLCBhbHdheXMgdXNpbmcgb25lIFZpbSBhbmQgc2VsZWN0aW5nIGJldHdlZW4gdXNpbmcgYW4KIGFyZ3VtZW50IGxpc3Qgb3Igb3BlbmluZyBlYWNoIGZpbGUgaW4gYSBzZXBhcmF0ZSB0YWIuCi0oRXJpayBGYWxvciwgMjAwOCBNYXkgMjEpCisoRXJpayBGYWxvciwgMjAwOCBNYXkgMjEsIDIwMDggSnVuIDI2KQogCiBHVUk6IFdoZW4gY29tYmluaW5nIGZnIGVuIGJnIG1ha2Ugc3VyZSB0aGV5IGFyZSBub3QgZXF1YWwuCiAKQEAgLTU4MSw2ICs1ODUsOSBAQAogVkVSQVNFIGtleSBpcyBEZWxldGUuICBTZXQgVkVSQVNFIHRvIEJhY2tzcGFjZT8gKHBhdGNoIGJ5IFN0ZXBoYW5lIENoYXplbGFzLAogMjAwNyBPY3QgMTYpCiAKK1doZW4gZW50ZXJpbmcgYSBDIC8qIGNvbW1lbnQsIGFmdGVyIHR5cGluZyA8RW50ZXI+IGZvciA3MCB0aW1lcyB0aGUgaW5kZW50CitkaXNhcHBlYXJzLiAoVmluY2VudCBCZWZmYXJhLCAyMDA4IEp1bCAzKQorCiBUZXJtUmVzcG9uc2UgYXV0b2NvbW1hbmQgaXNuJ3QgYWx3YXlzIHRyaWdnZXJlZCB3aGVuIHVzaW5nIHZpbWRpZmYuIChBcm9uCiBHcmlmZmlzLCAyMDA3IFNlcCAxOSkKIApAQCAtNTkwLDcgKzU5Nyw3IEBACiAKIAogVmltIDcuMzoKLS0gICBBZGQgcGF0Y2ggZm9yICdyZWxhdGl2ZW51bWJlcicgb3B0aW9uPyAgTWFya3VzIEhlaWRlbGJlcmcsIDIwMDggRmViIDIxCistICAgQWRkIHBhdGNoIGZvciAncmVsYXRpdmVudW1iZXInIG9wdGlvbj8gIE1hcmt1cyBIZWlkZWxiZXJnLCAyMDA4IEp1biAyNy4KIC0gICBBZGQgYmxvd2Zpc2ggZW5jcnlwdGlvbi4gIE9wZW5zc2wgaGFzIGFuIGltcGxlbWVudGF0aW9uLiAgQWxzbyBieSBQYXVsCiAgICAgS29jaGVyIChMR1BMKSwgY2xvc2UgdG8gb3JpZ2luYWwuICBNb2hzaW4gYWxzbyBoYXMgc29tZSBpZGVhcy4KICAgICBUYWtlIGZvdXIgYnl0ZXMgYW5kIHR1cm4gdGhlbSBpbnRvIHVuc2lnbmVkIHRvIGF2b2lkIGJ5dGUtb3JkZXIgcHJvYmxlbXMuCkBAIC02NzEsNiArNjc4LDggQEAKIAkJCVNlYXJjaCBpbiAncnVudGltZXBhdGgnPwogCQkJTW9yZSBkb2NzIG5lZWRlZCBhYm91dCBob3cgdG8gdXNlIHRoaXMuCiAJCQlIb3cgdG8gZ2V0IHRoZSBtZXNzYWdlcyBpbnRvIHRoZSAucG8gZmlsZXM/CisgICAgY2hhcmxlbigpCQlMaWtlIHN0cmxlbigpIGJ1dCBjb3VudGluZyBjaGFyYWN0ZXJzIGluc3RlYWQgb2YKKwkJCWJ5dGVzLgogICAgIGNvbmZpcm0oKQkJYWRkICJmbGFncyIgYXJndW1lbnQsIHdpdGggJ3YnIGZvciB2ZXJ0aWNhbAogCQkJICAgIGxheW91dCBhbmQgJ2MnIGZvciBjb25zb2xlIGRpYWxvZy4gKEhhZWdnKQogCQkJICAgIEZsZW1taW5nIE1hZHNlbiBoYXMgYSBwYXRjaCBmb3IgdGhlICdjJyBmbGFnCkBAIC0xMTg5LDcgKzExOTgsOCBAQAogOSAgIEZvciBUdXJraXNoIHZpbV90b2xvd2VyKCkgYW5kIHZpbV90b3VwcGVyKCkgYWxzbyBuZWVkIHRvIHVzZSB1dGZfCiAgICAgZnVuY3Rpb25zIGZvciBjaGFyYWN0ZXJzIGJlbG93IDB4ODAuIChTZXJ0YWN5aWxkaXopCiA5ICAgV2hlbiB0aGUgbGFzdCBlZGl0ZWQgZmlsZSBpcyBhIGhlbHAgZmlsZSwgdXNpbmcgJzAgaW4gYSBuZXcgVmltIGRvZXNuJ3QKLSAgICBlZGl0IHRoZSBmaWxlIGFzIGEgaGVscCBmaWxlLgorICAgIGVkaXQgdGhlIGZpbGUgYXMgYSBoZWxwIGZpbGUuICAnZmlsZXR5cGUnIGlzIE9LLCBidXQgJ2lza2V5d29yZCcgaXNuJ3QsCisgICAgZmlsZSBpc24ndCByZWFkb25seSwgZXRjLgogOCAgIFdoZW4gYW4gIjplZGl0IiBpcyBpbnNpZGUgYSB0cnkgY29tbWFuZCBhbmQgdGhlIEFUVEVOVElPTiBwcm9tcHQgaXMgdXNlZCwKICAgICB0aGUgOmNhdGNoIGNvbW1hbmRzIGFyZSBhbHdheXMgZXhlY3V0ZWQsIGFsc28gd2hlbiB0aGUgZmlsZSBpcyBlZGl0ZWQKICAgICBub3JtYWxseS4gIFNob3VsZCByZXNldCBkaWRfZW1zZyBhbmQgdW5kbyBzaWRlIGVmZmVjdHMuICBBbHNvIG1ha2Ugc3VyZQpAQCAtMTE5OCw2ICsxMjA4LDcgQEAKICAgICAnZmlsZWVuY29kaW5nJyBzZXQgdG8gImJhciIsIHRoZW4gZG9fZWNtZCgpIHVzZXMgdGhhdCBidWZmZXIsIGV2ZW4gdGhvdWdoCiAgICAgdGhlIGZpbGVlbmNvZGluZyBkaWZmZXJzLiAgUmVsb2FkIHRoZSBidWZmZXIgaW4gdGhpcyBzaXR1YXRpb24/ICBOZWVkIHRvCiAgICAgY2hlY2sgZm9yIHRoZSBidWZmZXIgdG8gYmUgdW5tb2RpZmllZC4KKyAgICBVbmZpbmlzaGVkIHBhdGNoIGJ5IElhbiBLZWxsaW5nLCAyMDA4IEp1bCAxMS4KIDggICAiOmcvLyIgZ2l2ZXMgIlBhdHRlcm4gbm90IGZvdW5kIGVycm9yIiB3aXRoIEU0ODYuICBTaG91bGQgbm90IHVzZSB0aGUKICAgICBlcnJvciBudW1iZXIsIGl0J3Mgbm90IGEgcmVndWxhciBlcnJvciBtZXNzYWdlLgogNyAgIFZpbXR1dG9yIGxlYXZlcyBlc2NhcGUgc2VxdWVuY2UgaW4gdGVybWluYWwuIFRoaXMgaXMgdGhlIHh0ZXJtIHJlc3BvbnNlIHRvCkBAIC0xMjk2LDE1ICsxMzA3LDEzIEBACiA5ICAgV2hlbiBlZGl0aW5nIGEgZmlsZSB3aXRoICdyZWFkb25seScgc2V0LCB0aGVyZSBpcyBubyBjaGVjayBmb3IgYW4gZXhpc3RpbmcKICAgICBzd2FwIGZpbGUuICBUaGVuIHVzaW5nICI6d3JpdGUiICh3aXRob3V0IG1ha2luZyBhbnkgY2hhbmdlcykgZG9lc24ndCBnaXZlCiAgICAgYSB3YXJuaW5nIGVpdGhlci4gIFNob3VsZCBjaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3dhcCBmaWxlIHdpdGhvdXQgY3JlYXRpbmcKLSAgICBvbmUuCisgICAgb25lLiBVbmZpbmlzaGVkIHBhdGNoIGJ5IElhbiBLZWxsaW5nLCAyMDA4IEp1bHkgNy4KIDcgICBXaGVuICdzaG93YnJlYWsnIGlzIHNldCwgdGhlIGFtb3VudCBvZiBzcGFjZSBhIFRhYiBvY2N1cGllcyBjaGFuZ2VzLgogICAgIFNob3VsZCB3b3JrIGxpa2UgJ3Nob3dicmVhaycgaXMgaW5zZXJ0ZWQgd2l0aG91dCBjaGFuZ2luZyB0aGUgVGFicy4KIDcgICBXaGVuICdtb3VzZWZvY3VzJyBpcyBzZXQgYW5kIHN3aXRjaGluZyB0byBhbm90aGVyIHdpbmRvdyB3aXRoIGEgdHlwZWQKICAgICBjb21tYW5kLCB0aGUgbW91c2UgcG9pbnRlciBtYXkgYmUgbW92ZWQgdG8gYSBwYXJ0IG9mIHRoZSB3aW5kb3cgdGhhdCdzCiAgICAgY292ZXJlZCBieSBhbm90aGVyIHdpbmRvdyBhbmQgd2UgbG9zZSBmb2N1cy4gIE9ubHkgbW92ZSBpbiB0aGUgeQogICAgIGRpcmVjdGlvbiwgbm90IGhvcml6b250YWxseT8KLTggICBXaGVuIHVzaW5nIENUUkwtRCBhZnRlciAiOmhlbHAiLCByZXN0cmljdCB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgdG8gYQotICAgIHRob3VzYW5kLCBvdGhlcndpc2UgdXNpbmcgQ1RSTC1EIHdpdGhvdXQgYW4gYXJndW1lbnQgdGFrZXMgdG9vIGxvbmcuCiA4ICAgIjpoYXJkY29weSI6CiAgICAgLSBVc2luZyB0aGUgY3Rlcm1fY29sb3JbXSB0YWJsZSBpcyB3cm9uZyB3aGVuIHRfY29sb3JzIGlzID4gMTYuCiAgICAgLSBOZWVkIHRvIGhhbmRsZSB1bnByaW50YWJsZSBjaGFyYWN0ZXJzLgpAQCAtMTcwMyw2ICsxNzEyLDEwIEBACiAKIAogU3BlbGwgY2hlY2tpbmc6CistICAgaGF2ZSBzb21lIHdheSBub3QgdG8gZ2l2ZSBzcGVsbGluZyBlcnJvcnMgZm9yIGEgcmFuZ2Ugb2YgY2hhcmFjdGVycy4KKyAgICBFLmcuIGZvciBDaGluZXNlIGFuZCBvdGhlciBsYW5ndWFnZXMgd2l0aCBzcGVjaWZpYyBjaGFyYWN0ZXJzIGZvciB3aGljaCB3ZQorICAgIGRvbid0IGhhdmUgYSBzcGVsbCBmaWxlLiAgVXNlZnVsIHdoZW4gdGhlcmUgaXMgYWxzbyB0ZXh0IGluIG90aGVyCisgICAgbGFuZ3VhZ2VzIGluIHRoZSBmaWxlLgogLSAgIFN1cHBvcnQgbW9yZSByZWdpb25zPyBDYW9sYW4gTWNOYW1hcmEgYXJndWVzIGl0J3MgbmVlZGVkIGZvciBlc19YWC4KICAgICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIxOTc3NyAgICAKIC0gICBVbmljb2RlIGRlZmluZXMgYW5vdGhlciBxdW90ZSBjaGFyYWN0ZXI6IDB4MjAxOS4gIFVzZSBpdCBhcyBhbiBlcXVpdmFsZW50CkBAIC0xNzI3LDcgKzE3NDAsNyBAQAogICAgIFdGUF9DT01QUEVSTUlUIGFuZCBXRlBfQ09NUEZPUkJJRAogOCAgIGltcGxlbWVudCB1c2Ugb2YgPGNvbXBvcHRpb25zPiBpbiAuc3BsIGZpbGU6CiAgICAgaW1wbGVtZW50IENIRUNLQ09NUE9VTkRSRVA6IHdoZW4gYSBjb21wb3VuZCB3b3JkIHNlZW1zIHRvIGJlIE9LIGFwcGx5IFJFUAotICAgIGl0ZW1zIGFuZCB0aGVjayBpZiB0aGUgcmVzdWx0IGlzIGEgdmFsaWQgd29yZC4KKyAgICBpdGVtcyBhbmQgY2hlY2sgaWYgdGhlIHJlc3VsdCBpcyBhIHZhbGlkIHdvcmQuCiAgICAgaW1wbGVtZW50IENIRUNLQ09NUE9VTkREVVAKICAgICBpbXBsZW1lbnQgQ0hFQ0tDT01QT1VORFRSSVBMRQogICAgIEFkZCBDSEVDS0NPTVBPVU5EQ0FTRTogd2hlbiBjb21wb3VuZGluZyBtYWtlIGxlYWRpbmcgY2FwaXRhbCBsb3dlciBjYXNlLgpAQCAtMjI1MSw4ICsyMjY0LDEyIEBACiAKIAogUGVyZm9ybWFuY2U6Ci03ICAgRm9yIHN0cmluZ3MgdXAgdG8gMyBieXRlcyBkb24ndCBhbGxvY2F0ZSBtZW1vcnksIHVzZSB2X2xpc3QgaXRzZWxmIGFzIGEKLSAgICBjaGFyYWN0ZXIgYXJyYXkuICBVc2UgVkFSX1NTVFJJTkcgKHNob3J0IHN0cmluZykuCis3ICAgRm9yIHN0cmluZyB2YXJpYWJsZXMgdXAgdG8gMyBieXRlcyBkb24ndCBhbGxvY2F0ZSBtZW1vcnksIHVzZSB2X2xpc3QKKyAgICBpdHNlbGYgYXMgYSBjaGFyYWN0ZXIgYXJyYXkuICBVc2UgVkFSX1NTVFJJTkcgKHNob3J0IHN0cmluZykuCis4ICAgbW92ZV9saW5lcygpIGNvcGllcyBldmVyeSBsaW5lIGludG8gYWxsb2NhdGVkIG1lbW9yeSwgbWFraW5nIHJlbG9hZGluZyBhCisgICAgYnVmZmVyIGEgbG90IHNsb3dlciB0aGFuIHJlLWVkaXRpbmcgdGhlIGZpbGUuICBDYW4gdGhlIG1lbWxpbmUgYmUgbG9ja2VkCisgICAgc28gdGhhdCB3ZSBkb24ndCBuZWVkIHRvIG1ha2UgYSBjb3B5PyAgT3IgYXZvaWQgaW52b2tpbmcgbWxfdXBkYXRlY2h1bmsoKSwKKyAgICB0aGF0IGlzIHRha2luZyBhIGxvdCBvZiB0aW1lLiAgKFJhbGYgV2lsZGVuaHVlcywgMjAwOCBKdWwgNykKIDggICBJbnN0ZWFkIG9mIGxvYWRpbmcgcmdiLnR4dCBldmVyeSB0aW1lIGEgY29sb3Igd2Fzbid0IHJlY29nbml6ZWQgbG9hZCBpdAogICAgIG9uY2UgYW5kIGtlZXAgaXQgaW4gbWVtb3J5LiAgTW92ZSB0aGUgY29kZSB0byBhIGNvbW1vbiBwbGFjZSB0byBhdm9pZAogICAgIHJlcGVhdGluZyBpdCBpbiB2YXJpb3VzIHN5c3RlbSBmaWxlcy4KQEAgLTI0NzEsNiArMjQ4OCwxMSBAQAogICAgIG1hdGNoLiAgUmVtb3ZlIHRhZ19mbmFtZSBmcm9tIHRoZSBtYXRjaCBhbmQgY29tYmluZSBpdCB3aXRoIHRoZSBmbmFtZSBpbgogICAgIHRoZSBtYXRjaCAod2l0aG91dCBleHBhbmRpbmcgb3Igb3RoZXIgdGhpbmdzIHRoYXQgdGFrZSB0aW1lKS4gIFdoZW4KICAgICAndGFncmVsYXRpdmUnIGlzIG9mZiB0YWdfZm5hbWUgaXNuJ3QgbmVlZGVkIGF0IGFsbC4KKzggICBGb3IgJ3RhZ3MnIHdpbGRjYXJkIGluIHRoZSBmaWxlIG5hbWUgaXMgbm90IHN1cHBvcnRlZCwgb25seSBpbiB0aGUgcGF0aC4KKyAgICBUaGlzIGlzIGR1ZSB0byBpdCB1c2luZyB8ZmlsZS1zZWFyY2hpbmd8LiBTdWJvcHRpbWFsIHNvbHV0aW9uIHdvdWxkIGJlIHRvCisgICAgbWFrZSB0aGUgZmlsZW5hbWUgb3IgdGhlIHdob2xlIG9wdGlvbiB1c2UgfHdpbGRjYXJkc3wgZ2xvYmluZywgYmV0dGVyCisgICAgd291bGQgYmUgdG8gbWVyZ2UgdGhlIDIga2luZHMgb2YgZ2xvYmluZy4gb3JpZ2luYWxsIChFcmlrIEZhbG9yLCAyMDA4CisgICAgQXByaWwgMTgpLCB1cGRhdGVkIChJYW4gS2VsbGluZywgMjAwOCBKdWx5IDQpCiA4ICAgVXNlIGEgbWVjaGFuaXNtIHNpbWlsYXIgdG8gb21uaSBjb21wbGV0aW9uIHRvIGZpZ3VyZSBvdXQgdGhlIGtpbmQgb2YgdGFiCiAgICAgZm9yIENUUkwtXSBhbmQganVtcCB0byB0aGUgYXBwcm9wcmlhdGUgbWF0Y2hpbmcgdGFnIChpZiB0aGVyZSBhcmUKICAgICBzZXZlcmFsKS4KQEAgLTI3MjQsNiArMjc0Niw4IEBACiAKIAogT21uaSBjb21wbGV0aW9uOgorLSAgIEFkZCBhIGZsYWcgdG8gJ2NvbXBsZXRlJyB0byBiZSBhYmxlIHRvIGRvIG9tbmkgY29tcGxldGlvbiB3aXRoIENUUkwtTiAoYW5kCisgICAgbWl4IGl0IHdpdGggb3RoZXIga2luZHMgb2YgY29tcGxldGlvbikuCiAtICAgSWRlYXMgZnJvbSB0aGUgVmltIDcgQk9GIGF0IFNBTkU6CiAJLSBGb3IgaW50ZXJwcmV0ZWQgbGFuZ3VhZ2VzLCB1c2UgdGhlIGludGVycHJldGVyIHRvIG9idGFpbiBpbmZvcm1hdGlvbi4KIAkgIFNob3VsZCB3b3JrIGZvciBKYXZhIChFY2xpcHNlIGRvZXMgdGhpcyksIFB5dGhvbiwgVGNsLCBldGMuCkBAIC0yNzU1LDYgKzI3NzksOSBAQAogLSAgIEdVSSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcG9wdXAgbWVudS4KIDcgICBXaGVuIHNlYXJjaGluZyBpbiBvdGhlciBmaWxlcyB0aGUgbmFtZSBmbGFzaCBieSwgdG9vIGZhc3QgdG8gcmVhZC4gIE9ubHkKICAgICBkaXNwbGF5IGEgbmFtZSBldmVyeSBzZWNvbmQgb3Igc28sIGxpa2Ugd2l0aCAiOnZpbWdyZXAiLgorNyAgIFdoZW4gZXhwYW5kaW5nIGZpbGUgbmFtZXMgd2l0aCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYWRkIHRoZSBtYXRjaCB3aXRoCisgICAgdGhlIHVuZXhwYW5kZWQgdmFyLiAgU28gJEhPTUUvdG0gZXhwYW5kcyB0byAiL2hvbWUvZ3V5L3RtcCIgYW5kCisgICAgIiRIT01FL3RtcCIKIDggICBXaGVuIHRoZXJlIGlzIG5vIHdvcmQgYmVmb3JlIHRoZSBjdXJzb3IgYnV0IHNvbWV0aGluZyBsaWtlICJzeXMuIiBjb21wbGV0ZQogICAgIHdpdGggInN5cy4iLiAgV29ya3Mgd2VsbCBmb3IgQyBhbmQgc2ltaWxhciBsYW5ndWFnZXMuCiA5ICAgXlheTCBjb21wbGV0aW9uIGRvZXNuJ3QgcmVwZWF0IGNvcnJlY3RseS4gIEl0IHVzZXMgdGhlIGZpcnN0IG1hdGNoIHdpdGgKQEAgLTI5MDMsNiArMjkzMCw3IEBACiAgICAgc2FtZSBjaGFuZ2UsIHNvIHRoYXQgIi4iIHJlcGVhdHMgdGhlIHdob2xlIGluc2VydC4KIDcgICBVc2UgQ1RSTC1HIDxjb3VudD4gdG8gcmVwZWF0IHdoYXQgZm9sbG93cy4gIFVzZWZ1bCBmb3IgaW5zZXJ0aW5nIGEKICAgICBjaGFyYWN0ZXIgbXVsdGlwbGUgdGltZXMgb3IgcmVwZWF0aW5nIENUUkwtWS4KKy0gICBNYWtlICdyZXZpbnMnIHdvcmsgaW4gUmVwbGFjZSBtb2RlLgogNyAgIFVzZSAnbWF0Y2hwYWlycycgZm9yICdzaG93bWF0Y2gnOiBXaGVuIGluc2VydGluZyBhIGNoYXJhY3RlciBjaGVjayBpZiBpdAogICAgIGFwcGVhcnMgaW4gdGhlIHJocyBvZiAnbWF0Y2hwYWlycycuCiAtICAgSW4gSW5zZXJ0IG1vZGUgKGFuZCBjb21tYW5kIGxpbmUgZWRpdGluZz8pOiBBbGxvdyB1bmRvIG9mIHRoZSBsYXN0IHR5cGVkCkBAIC0zNTU4LDYgKzM1ODYsOCBAQAogNyAgIFVzZSBDVFJMLVcgPFRhYj4sIGxpa2UgYWx0LXRhYiwgdG8gc3dpdGNoIGJldHdlZW4gYnVmZmVycy4gIFJlcGVhdCA8VGFiPgogICAgIHRvIHNlbGVjdCBhbm90aGVyIGJ1ZmZlciAob25seSBsb2FkZWQgb25lcz8pLCA8QlM+IHRvIGdvIGJhY2ssIDxFbnRlcj4gdG8KICAgICBzZWxlY3QgYnVmZmVyLCA8RXNjPiB0byBnbyBiYWNrIHRvIG9yaWdpbmFsIGJ1ZmZlci4KKzcgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGVkaXQgYSBuZXcgYnVmZmVyIGluIHRoZSBwcmV2aWV3IHdpbmRvdy4gIEEgc2NyaXB0IGNhbgorICAgIHRoZW4gZmlsbCBpdCB3aXRoIHNvbWV0aGluZy4gICI6cG9wZW4iPwogNyAgIEFkZCBhICd0b29sJyB3aW5kb3c6IGJlaGF2ZXMgbGlrZSBhIHByZXZpZXcgd2luZG93IGJ1dCB0aGVyZSBjYW4gYmUKICAgICBzZXZlcmFsLiAgRG9uJ3QgY291bnQgaXQgaW4gb25seV9vbmVfd2luZG93KCkuIChBbGV4ZWkgQWxleGFuZHJvdikKIDYgICBBZGQgYW4gb3B0aW9uIHRvIHJlc2l6ZSB0aGUgc2hlbGwgd2hlbiBzcGxpdHRpbmcgYW5kL29yIGNsb3NpbmcgYSB3aW5kb3cuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91Z2FuZGEudHh0IGIvcnVudGltZS9kb2MvdWdhbmRhLnR4dAppbmRleCA0ODQyNzY5Li42NTU3MjVmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91Z2FuZGEudHh0CisrKyBiL3J1bnRpbWUvZG9jL3VnYW5kYS50eHQKQEAgLTEsNCArMSw0IEBACi0qdWdhbmRhLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjEKKyp1Z2FuZGEudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdW5kby50eHQgYi9ydW50aW1lL2RvYy91bmRvLnR4dAppbmRleCAzM2Q0ZTMxLi42OTQwMTAyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91bmRvLnR4dAorKysgYi9ydW50aW1lL2RvYy91bmRvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1bmRvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAorKnVuZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDEudHh0IGIvcnVudGltZS9kb2MvdXNyXzAxLnR4dAppbmRleCAxZTAwYTExLi4zYTU2YWJlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDEudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wMS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzAxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBNYXkgMDcKKyp1c3JfMDEudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IE1heSAwNwogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzAyLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wMi50eHQKaW5kZXggNDQ5MDdiMC4uZjQ3YzYzZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzAyLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDIudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgRmViIDI4CisqdXNyXzAyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNyBGZWIgMjgKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wMy50eHQgYi9ydW50aW1lL2RvYy91c3JfMDMudHh0CmluZGV4IGM1ZjExNGMuLjQ3ZDI0ZDQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wMy50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzAzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDMudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEp1biAyMQorKnVzcl8wMy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgSnVuIDIxCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDQudHh0IGIvcnVudGltZS9kb2MvdXNyXzA0LnR4dAppbmRleCBiOGY5YzRkLi5kZDZhODRjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wNC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzA0LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBKdW4gMjEKKyp1c3JfMDQudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IEp1biAyMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzA1LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wNS50eHQKaW5kZXggYmZhMzkyNi4uOTNjMzRkZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzA1LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDUudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wNS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDExCisqdXNyXzA1LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNyBNYXkgMTEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wNi50eHQgYi9ydW50aW1lL2RvYy91c3JfMDYudHh0CmluZGV4IDYyNmFmM2QuLjhlZTMyYzQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wNi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzA2LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDYudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8wNi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDcudHh0IGIvcnVudGltZS9kb2MvdXNyXzA3LnR4dAppbmRleCA4NmE0NmVjLi5hYzIxNjQ5IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzA3LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMDcudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzA4LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wOC50eHQKaW5kZXggMTQ0ZjZjYy4uNWMzYTkzZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzA4LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wOC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgSnVsIDE4CisqdXNyXzA4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBKdWwgMTgKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wOS50eHQgYi9ydW50aW1lL2RvYy91c3JfMDkudHh0CmluZGV4IDY5YTQzMWMuLmQyYzY1MmUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wOS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzA5LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDkudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8wOS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMTAudHh0IGIvcnVudGltZS9kb2MvdXNyXzEwLnR4dAppbmRleCAxNjhiMDg5Li5iNDE5NzZmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMTAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8xMC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzEwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBOb3YgMDUKKyp1c3JfMTAudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IE5vdiAwNQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzExLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8xMS50eHQKaW5kZXggZWRiNDU5OC4uZDIzNzQzYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzExLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMTEudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8xMS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzExLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8xMi50eHQgYi9ydW50aW1lL2RvYy91c3JfMTIudHh0CmluZGV4IDdlMmY0MTMuLjM5ODhkZTggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8xMi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzEyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMTIudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IE1heSAxMQorKnVzcl8xMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDExCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjAudHh0IGIvcnVudGltZS9kb2MvdXNyXzIwLnR4dAppbmRleCA4NGM1OGY3Li44NjQ1NTljIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yMC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzIwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMjAudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzIxLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8yMS50eHQKaW5kZXggM2VhYmI2OC4uYjE1ZTdmMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzIxLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMjEudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8yMS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDAxCisqdXNyXzIxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNyBNYXkgMDEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yMi50eHQgYi9ydW50aW1lL2RvYy91c3JfMjIudHh0CmluZGV4IDVhMTNiODcuLmE2NDJjNTkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yMi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzIyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjIudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IEF1ZyAxNAorKnVzcl8yMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDcgQXVnIDE0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjMudHh0IGIvcnVudGltZS9kb2MvdXNyXzIzLnR4dAppbmRleCBlMGFhMDVkLi5lYWQ4NzExIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yMy50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzIzLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMjMudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzI0LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8yNC50eHQKaW5kZXggMzU5MTFiZC4uZWFiOGEzNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzI0LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMjQudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8yNC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgSnVsIDIzCisqdXNyXzI0LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBKdWwgMjMKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yNS50eHQgYi9ydW50aW1lL2RvYy91c3JfMjUudHh0CmluZGV4IDYzMzc4NzEuLjIyZGRkZGYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yNS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzI1LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjUudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IE1heSAxMQorKnVzcl8yNS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDExCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjYudHh0IGIvcnVudGltZS9kb2MvdXNyXzI2LnR4dAppbmRleCAwYzlmMmM4Li5iODI1MmRkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjYudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yNi50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzI2LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMjYudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzI3LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8yNy50eHQKaW5kZXggNzFiZmRkYS4uZDJkMGNjNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzI3LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMjcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8yNy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTm92IDEwCisqdXNyXzI3LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNyBOb3YgMTAKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yOC50eHQgYi9ydW50aW1lL2RvYy91c3JfMjgudHh0CmluZGV4IDc2NjQ0YmIuLjA0NWFlZjggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yOC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzI4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjgudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAxNAorKnVzcl8yOC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDE0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjkudHh0IGIvcnVudGltZS9kb2MvdXNyXzI5LnR4dAppbmRleCBhMzE0MjU2Li4yMGY3MmVhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjkudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yOS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzI5LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNyBOb3YgMTAKKyp1c3JfMjkudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyOAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtNTk0LDggKzU5NCw4IEBACiAKIFRoaXMgd2lsbCBnbyBiYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBmdW5jdGlvbiBhbmQgZmluZCB0aGUgZmlyc3QKIG9jY3VycmVuY2Ugb2YgdGhlIHdvcmQgdW5kZXIgdGhlIGN1cnNvci4gIEFjdHVhbGx5LCBpdCBzZWFyY2hlcyBiYWNrd2FyZHMgdG8KLWFuIGVtcHR5IGxpbmUgYWJvdmUgdGhlIGEgInsiIGluIHRoZSBmaXJzdCBjb2x1bW4uICBGcm9tIHRoZXJlIGl0IHNlYXJjaGVzCi1mb3J3YXJkIGZvciB0aGUgaWRlbnRpZmllci4gIEV4YW1wbGUgKGN1cnNvciBvbiAiaWR4Iik6CithbiBlbXB0eSBsaW5lIGFib3ZlIGEgInsiIGluIHRoZSBmaXJzdCBjb2x1bW4uICBGcm9tIHRoZXJlIGl0IHNlYXJjaGVzIGZvcndhcmQKK2ZvciB0aGUgaWRlbnRpZmllci4gIEV4YW1wbGUgKGN1cnNvciBvbiAiaWR4Iik6CiAKIAkJaW50IGZpbmRfZW50cnkoY2hhciAqbmFtZSkKIAkJewpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzMwLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8zMC50eHQKaW5kZXggNDk5ODUxMS4uNTFmZmNkZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzMwLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMzAudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8zMC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTm92IDEwCisqdXNyXzMwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNyBOb3YgMTAKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8zMS50eHQgYi9ydW50aW1lL2RvYy91c3JfMzEudHh0CmluZGV4IDk0MWFiNjguLjQwMzA4NmYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8zMS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzMxLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMzEudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IE1heSAwOAorKnVzcl8zMS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDA4CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMzIudHh0IGIvcnVudGltZS9kb2MvdXNyXzMyLnR4dAppbmRleCBlZDk1YTBkLi5iMDQ5NTQwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMzIudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8zMi50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzMyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKKyp1c3JfMzIudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzQwLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl80MC50eHQKaW5kZXggZGQ5MGJhOS4uY2M4YWNjMSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzQwLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfNDAudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl80MC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgSnVuIDIxCisqdXNyXzQwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBKdW4gMjEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQgYi9ydW50aW1lL2RvYy91c3JfNDEudHh0CmluZGV4IDM4ZTUxMWYuLjI1ZTkxMWEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzQxLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfNDEudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA4IEp1biAyMQorKnVzcl80MS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDIxCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfNDIudHh0IGIvcnVudGltZS9kb2MvdXNyXzQyLnR4dAppbmRleCBhNDBiZjNiLi5iOGM0ZWVhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfNDIudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl80Mi50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzQyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBNYXkgMDUKKyp1c3JfNDIudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IE1heSAwNQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzQzLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl80My50eHQKaW5kZXggNjVhYzliNi4uZGJmM2I4NiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzQzLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfNDMudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl80My50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzQzLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl80NC50eHQgYi9ydW50aW1lL2RvYy91c3JfNDQudHh0CmluZGV4IGI5ZjI5ZTMuLjE5MTY1ZDQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl80NC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzQ0LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfNDQudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl80NC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfNDUudHh0IGIvcnVudGltZS9kb2MvdXNyXzQ1LnR4dAppbmRleCA1YzgzZDFjLi41ZjZhMTRmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfNDUudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl80NS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzQ1LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwOCBBcHIgMzAKKyp1c3JfNDUudHh0KglGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA4IEFwciAzMAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzkwLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl85MC50eHQKaW5kZXggZjgwYzBhZi4uMjRlZmRhMiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzkwLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfOTAudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl85MC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzkwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl90b2MudHh0IGIvcnVudGltZS9kb2MvdXNyX3RvYy50eHQKaW5kZXggZDY0OWFjYS4uNzVmMjljZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyX3RvYy50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyX3RvYy50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyX3RvYy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyX3RvYy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dCBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CmluZGV4IDE2YjJkMGQuLmU4ZjRkZTEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZhcmlvdXMudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDA4CisqdmFyaW91cy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMDgKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTgxNiw3ICs4MTYsNyBAQAogIml0Ii4KIAogV2hlbiB1c2luZyBjb21tYW5kLWxpbmUgY29tcGxldGlvbiBmb3IgdGhlICI6aGVscCIgY29tbWFuZCwgdGhlICJAZW4iCi1leHRlbnRpb24gaXMgb25seSBzaG93biB3aGVuIGEgdGFnIGV4aXN0cyBmb3IgbXVsdGlwbGUgbGFuZ3VhZ2VzLiAgV2hlbiB0aGUKK2V4dGVuc2lvbiBpcyBvbmx5IHNob3duIHdoZW4gYSB0YWcgZXhpc3RzIGZvciBtdWx0aXBsZSBsYW5ndWFnZXMuICBXaGVuIHRoZQogdGFnIG9ubHkgZXhpc3RzIGZvciBFbmdsaXNoICJAZW4iIGlzIG9taXR0ZWQuCiAKIFdoZW4gdXNpbmcgfENUUkwtXXwgb3IgIjpoZWxwISIgaW4gYSBub24tRW5nbGlzaCBoZWxwIGZpbGUgVmltIHdpbGwgdHJ5IHRvCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNC50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNC50eHQKaW5kZXggODIxMWE4ZC4uNWViNjI0MSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb240LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnZlcnNpb240LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNS50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNS50eHQKaW5kZXggNTM4YzI0NS4uODEyMDU3NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjUudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb241LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNS50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IE1heSAxMQorKnZlcnNpb241LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDI4CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xOTkyLDcgKzE5OTIsNyBAQAogYWxyZWFkeSB0aGVyZSwgIm1udUZpbGUiIHdvdWxkIGJlIHNraXBwZWQuIChOZWdyaSkKIAogV2hlbiBzY3JvbGxpbmcgdXAvZG93biwgYSBzeW50YXggaXRlbSB3aXRoICJrZWVwZW5kIiBkaWRuJ3Qgd29yayBwcm9wZXJseS4KLU5vdyB0aGUgZmxhZ3MgYXJlIGFsc28gc3RvcmVkIGZvciB0aGUgc3ludGF4IHN0YXRlIGEgdGhlIHN0YXJ0IG9mIGVhY2ggbGluZS4KK05vdyB0aGUgZmxhZ3MgYXJlIGFsc28gc3RvcmVkIGZvciB0aGUgc3ludGF4IHN0YXRlIGF0IHRoZSBzdGFydCBvZiBlYWNoIGxpbmUuCiAKIFdoZW4gJ2ljJyB3YXMgY2hhbmdlZCB3aGlsZSAnaGxzZWFyY2gnIGlzIG9uLCB0aGVyZSB3YXMgbm8gcmVkcmF3IHRvIHNob3cgdGhlCiBlZmZlY3QuCkBAIC0zMDY3LDcgKzMwNjcsNyBAQAogCiA1LjIuNzogV2luMzIgR1VJOiBzY3JvbGxiYXIgd2FzIG9uZSBwaXhlbCB0b28gYmlnLgogCi01LjIuODogQ29tcGxldGlvbiBvZiAiUG9wVXAiIG1lbnUgc2hvd2VkIHRoZSBkZXJpdmF0ZXMgIlBvcFVwYyIsICJQb3BVUGkiLAorNS4yLjg6IENvbXBsZXRpb24gb2YgIlBvcFVwIiBtZW51IHNob3dlZCB0aGUgZGVyaXZhdGl2ZXMgIlBvcFVwYyIsICJQb3BVUGkiLAogZXRjLiAgIjptZW51IiBhbHNvIHNob3dlZCB0aGVzZS4KIAogNS4yLjk6IFdoZW4gdXNpbmcgdHdvIGlucHV0KCkgZnVuY3Rpb25zIG9uIGEgcm93LCB0aGUgcHJvbXB0IHdvdWxkIG5vdCBiZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmVyc2lvbjYudHh0IGIvcnVudGltZS9kb2MvdmVyc2lvbjYudHh0CmluZGV4IDFmMzY5OWMuLjBhYjRkMWQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZlcnNpb242LnR4dAorKysgYi9ydW50aW1lL2RvYy92ZXJzaW9uNi50eHQKQEAgLTEsNCArMSw0IEBACi0qdmVyc2lvbjYudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNyBNYXkgMTEKKyp2ZXJzaW9uNi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA3IE1heSAxMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTMyMzUsNyArMTMyMzUsNyBAQAogCiBQYXRjaCA2LjIuNDk5CiBQcm9ibGVtOiAgICBXaGVuIHdyaXRpbmcgYSBmaWxlIGFuZCBoYWx0aW5nIHRoZSBzeXN0ZW0sIHRoZSBmaWxlIG1pZ2h0IGJlIGxvc3QKLQkgICAgd2hlbiB1c2luZyBhIGpvdXJuYWxsaW5nIGZpbGUgc3lzdGVtLgorCSAgICB3aGVuIHVzaW5nIGEgam91cm5hbGluZyBmaWxlIHN5c3RlbS4KIFNvbHV0aW9uOiAgIFVzZSBmc3luYygpIHRvIGZsdXNoIHRoZSBmaWxlIGRhdGEgdG8gZGlzayBhZnRlciB3cml0aW5nIGEgZmlsZS4KIAkgICAgKFJhZGltIEtvbGFyKQogRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dCBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAppbmRleCA3ODZhMGIzLi43ZjQ1MGY0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKKysrIGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVuIDI0CisqdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdWwgMTMKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTI2Myw3ICsyNjMsNyBAQAogCVJ1YnkJCQkJCXxmdC1ydWJ5LW9tbml8CiAJU1FMCQkJCQl8ZnQtc3FsLW9tbml8CiAJWE1MCQkJCQl8ZnQteG1sLW9tbml8Ci0JYW55IGxhbmd1YWdlIHdpaCBzeW50YXggaGlnaGxpZ3RpbmcJfGZ0LXN5bnRheC1vbW5pfAorCWFueSBsYW5ndWFnZSB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcJfGZ0LXN5bnRheC1vbW5pfAogCiBZb3UgY2FuIGFkZCB5b3VyIG93biBvbW5pIGNvbXBsZXRpb24gc2NyaXB0cy4KIApAQCAtMzM5Nyw3ICszMzk3LDcgQEAKIEZpbGVzOgkgICAgc3JjL2lmX29sZS5jcHAKIAogUGF0Y2ggNy4wLjA1OAotUHJvYmxlbTogICAgVGhlIGdiayBhbmQgYW5kIGdiMTgwMzAgZW5jb2RpbmdzIGFyZSBub3QgcmVjb2duaXplZC4KK1Byb2JsZW06ICAgIFRoZSBnYmsgYW5kIGdiMTgwMzAgZW5jb2RpbmdzIGFyZSBub3QgcmVjb2duaXplZC4KIFNvbHV0aW9uOiAgIEFkZCBhbGlhc2VzIHRvIGNwOTM2LiAoRWR3YXJkIEwuIEZveCkKIEZpbGVzOgkgICAgc3JjL21ieXRlLmMKIApAQCAtNDY1NSwyNyArNDY1NSwzNSBAQAogSW50cm9kdWNlIG1hY3JvIFNUUk1PVkUoZCwgcyksIGxpa2UgU1RSQ1BZKCkgZm9yIG92ZXJsYXBwaW5nIHN0cmluZ3MuCiBVc2UgaXQgaW5zdGVhZCBvZiBtY2hfbWVtbW92ZShwLCBwICsgeCwgU1RSTEVOKHAgKyB4KSArIDEpLgogCitSZW1vdmVkIHRoZSBidWxnYXJpYW4udmltIGtleW1hcCBmaWxlLCB0d28gbW9yZSBzdGFuZGFyZCBvbmVzIHJlcGxhY2UgaXQuCisoQm95a28gQmFudGNoZXYpCisKK0luY3JlYXNlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGFnIG1hdGNoZXMgZm9yIGNvbW1hbmQgbGluZSBjb21wbGV0aW9uIGZyb20KKzIwMCB0byAzMDAuCisKIAogQWRkZWQJCQkJCQkJKmFkZGVkLTcuMioKIC0tLS0tCiAKIE5ldyBzeW50YXggZmlsZXM6CisJQ1VEQSAoVGltb3RoeSBCLiBUZXJyaWJlcnJ5KQogCUNkcmRhbyBjb25maWcgKE5pa29sYWkgV2VpYnVsbCkKIAlDb2NvL1IgKEFzaGlzaCBTaHVrbGEpCi0JQ1VEQSAoVGltb3RoeSBCLiBUZXJyaWJlcnJ5KQotCWRlbnlob3N0cyBjb25maWcgKE5pa29sYWkgV2VpYnVsbCkKIAlEdHJhY2Ugc2NyaXB0IChOaWNvbGFzIFdlYmVyKQogCUdpdCBvdXRwdXQsIGNvbW1pdCwgY29uZmlnLCByZWJhc2UsIHNlbmQtZW1haWwgKFRpbSBQb3BlKQotCUhBU1RFIChNLiBUcmFuY2hlcm8pCisJSEFTVEUgYW5kIEhhc3RlUHJlUHJvYyAoTS4gVHJhbmNoZXJvKQorCUhhbWwgKFRpbSBQb3BlKQogCUhvc3QgY29uZiAoTmlrb2xhaSBXZWlidWxsKQogCUxpbmRlbiBzY3JpcHQgKFRpbW8gRnJlbmF5KQotCVN5bWJpYW4gbWV0YS1tYWtlZmlsZSwgTU1QIChSb24gQWFyb24pCiAJTVMgbWVzc2FnZXMgKEtldmluIExvY2tlKQogCVBERiAoVGltIFBvcGUpCiAJUHJvTWVMYSAoTWF1cml6aW8gVHJhbmNoZXJvKQogCVJldmEgRm90aCAoUm9uIEFhcm9uKQorCVNhc3MgKFRpbSBQb3BlKQorCVN5bWJpYW4gbWV0YS1tYWtlZmlsZSwgTU1QIChSb24gQWFyb24pCiAJVk9TIENNIG1hY3JvIChBbmRyZXcgTWNHaWxsKQogCVhCTCAoRG91ZyBLZWFybnMpCisJZGVueWhvc3RzIGNvbmZpZyAoTmlrb2xhaSBXZWlidWxsKQogCiBOZXcgdHV0b3IgZmlsZXM6CiAJTWFkZSBVVEYtOCB2ZXJzaW9ucyBvZiBhbGwgdGhlIHR1dG9yIGZpbGVzLgpAQCAtNDY5MCwyMSArNDY5OCwzMSBAQAogCURvcyAuaW5pIGZpbGUgKE5pa29sYWkgV2VpYnVsbCkKIAlEdHJhY2Ugc2NyaXB0IChOaWNvbGFzIFdlYmVyKQogCUdpdCwgR2l0IGNvbmZpZywgR2l0IGNvbW1pdCwgR2l0IHJlYmFzZSwgR2l0IHNlbmQtZW1haWwgKFRpbSBQb3BlKQorCUhhbWwgKFRpbSBQb3BlKQogCUhvc3QgY29uZiAoTmlrb2xhaSBXZWlidWxsKQorCUxvZ3RhbGsgKFBhdWxvIE1vdXJhKQogCU1TIG1lc3NhZ2VzIChLZXZpbiBMb2NrZSkKIAlQREYgKFRpbSBQb3BlKQogCVJldmEgRm9ydGggKFJvbiBBYXJvbikKKwlTYXNzIChUaW0gUG9wZSkKIAogTmV3IGluZGVudCBmaWxlczoKIAlEdHJhY2Ugc2NyaXB0IChOaWNvbGFzIFdlYmVyKQogCUVybGFuZyAoQ3NhYmEgSG9jaCkKIAlHaXQgY29uZmlnIChUaW0gUG9wZSkKKwlIYW1sIChUaW0gUG9wZSkKKwlMb2d0YWxrIChQYXVsbyBNb3VyYSkKKwlTYXNzIChUaW0gUG9wZSkKIAlUaW55IEZ1Z3VlIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pCiAKK05ldyBjb21waWxlciBwbHVnaW5zOgorCVJTcGVjIChUaW0gUG9wZSkKKwogTmV3IGtleW1hcCBmaWxlczoKIAlDcm9hdGlhbiAoUGF1bCBCLiBNYWhvbCkKIAlSdXNzaWFuIER2b3JhayAoU2VyaGl5IEJvaWtvKQogCVVrcmFpbmlhbiBEdm9yYWsgKFNlcmhpeSBCb2lrbykKKwlSZW1vdmVkIHBsYWluIEJ1bGdhcmlhbiwgImJkcyIgYW5kIHBob25ldGljIGFyZSBzdWZmaWNpZW50LgogCiBPdGhlciBuZXcgcnVudGltZSBmaWxlczoKIAlFc3BlcmFudG8gbWVudXMgYW5kIG1lc3NhZ2UgdHJhbnNsYXRpb25zLiAoRG9taW5pcXVlIFBlbGxlKQpAQCAtNTExNiw3ICs1MTM0LDcgQEAKIEZpbGVzOgkgICAgc3JjL21pc2MxLmMKIAogUGF0Y2ggNy4xLjA2MyAoYWZ0ZXIgNy4xLjA0MCkKLVByb2JsZW06ICAgIFdhcm5pbmcgZm9yIHVuaXRpYWxpemVkIHZhcmlhYmxlLgorUHJvYmxlbTogICAgV2FybmluZyBmb3IgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KIFNvbHV0aW9uOiAgIEluaXRpYWxpc2UgaXQgdG8gTlVMTC4KIEZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKIApAQCAtNTE4NCw3ICs1MjAyLDcgQEAKIEZpbGVzOgkgICAgc3JjL21pc2MxLmMKIAogUGF0Y2ggNy4xLjA3NAotUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBjYWxsaW5nIHN0cmluZygpIG9uIGEgcmVjdXJpdmVseSBuZXN0ZWQgTGlzdC4KK1Byb2JsZW06ICAgIENyYXNoIHdoZW4gY2FsbGluZyBzdHJpbmcoKSBvbiBhIHJlY3Vyc2l2ZWx5IG5lc3RlZCBMaXN0LgogU29sdXRpb246ICAgQ2hlY2sgcmVzdWx0IHZhbHVlIGZvciBiZWluZyBOVUxMLiAoWXVraWhpcm8gTmFrYWRhaXJhKQogRmlsZXM6CSAgICBzcmMvZXZhbC5jCiAKQEAgLTU0ODcsNyArNTUwNSw3IEBACiBQcm9ibGVtOiAgICBNYWM6IFdoZW4gZHJvcHBpbmcgYSBmaWxlIG9uIFZpbS5hcHAgdGhhdCBpcyBhbHJlYWR5IGluIHRoZSBidWZmZXIKIAkgICAgbGlzdCAoZnJvbSAudmltaW5mbykgcmVzdWx0cyBpbiBlZGl0aW5nIGFuIGVtcHR5LCB1bm5hbWVkIGJ1ZmZlci4KIAkgICAgKEF4ZWwgS2llbGhvcm4pICBBbHNvOiB3YXJuaW5nIGZvciB1bnVzZWQgdmFyaWFibGUuCi1Tb2x1dGlvbjogICBNb3ZlIHRvIHRoZSBidWZmZXIgb2YgdGhlIGZpcnN0IGFndW1lbnQuICBEZWxldGUgdW51c2VkIHZhcmlhYmxlLgorU29sdXRpb246ICAgTW92ZSB0byB0aGUgYnVmZmVyIG9mIHRoZSBmaXJzdCBhcmd1bWVudC4gIERlbGV0ZSB1bnVzZWQgdmFyaWFibGUuCiBGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMKIAogUGF0Y2ggNy4xLjEyNQpAQCAtNjA5OCw3ICs2MTE2LDcgQEAKIEZpbGVzOgkgICAgc3JjL21haW4uYwogCiBQYXRjaCA3LjEuMjI1Ci1Qcm9ibGVtOiAgICBVc2luZyB1bml0aWFsaXplZCB2YWx1ZSB3aGVuIFhHZXRXTU5vcm1hbEhpbnRzKCkgZmFpbHMuCitQcm9ibGVtOiAgICBVc2luZyB1bmluaXRpYWxpemVkIHZhbHVlIHdoZW4gWEdldFdNTm9ybWFsSGludHMoKSBmYWlscy4KIFNvbHV0aW9uOiAgIENoZWNrIHRoZSByZXR1cm4gdmFsdWUuIChEb21pbmlxdWUgUGVsbGUpCiBGaWxlczoJICAgIHNyYy9vc191bml4LmMKIApAQCAtNjE5NSw3ICs2MjEzLDcgQEAKIAkgICAgbm90IGNoYW5nZWQgdG8gU1MgdGhlcmUuCiBTb2x1dGlvbjogICBNYWtlIHN1cmUgYWxsIHRoZSBjaGFyYWN0ZXJzIGFyZSBvcGVyYXRlZCB1cG9uLiAgRGV0ZWN0IHRoZSBzaGFycAogCSAgICBzIGluIGxhdGluMi4gIEFsc28gZml4ZXMgdGhhdCBjaGFuZ2luZyBjYXNlIG9mIGEgbXVsdGktYnl0ZQotCSAgICBjaGFyYWN0ZXIgdGhhdCBjaGFuZ2VzIHRoZSBieXRlIGNvdW5kIGRvZXNuJ3QgYWx3YXlzIHdvcmsuCisJICAgIGNoYXJhY3RlciB0aGF0IGNoYW5nZXMgdGhlIGJ5dGUgY291bnQgZG9lc24ndCBhbHdheXMgd29yay4KIEZpbGVzOgkgICAgc3JjL29wcy5jCiAKIFBhdGNoIDcuMS4yNDEKQEAgLTYzNTAsNyArNjM2OCw3IEBACiBGaWxlczoJICAgIHNyYy90ZXJtLmMKIAogUGF0Y2ggNy4xLjI2NwotUHJvYmxlbTogICAgV2hlbiBjaGFuZ2luZyBmb2xkcyBjdXJzb3IgbWF5IGJlIHBvc2lvbmVkIGluIHRoZSB3cm9uZyBwbGFjZS4KK1Byb2JsZW06ICAgIFdoZW4gY2hhbmdpbmcgZm9sZHMgY3Vyc29yIG1heSBiZSBwb3NpdGlvbmVkIGluIHRoZSB3cm9uZyBwbGFjZS4KIFNvbHV0aW9uOiAgIENhbGwgY2hhbmdlZF93aW5kb3dfc2V0dGluZ193aW4oKSBpbnN0ZWFkIG9mCiAJICAgIGNoYW5nZWRfd2luZG93X3NldHRpbmcoKS4KIEZpbGVzOgkgICAgc3JjL2ZvbGQuYwpAQCAtNjY3Niw3ICs2Njk0LDcgQEAKIEZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMKIAogUGF0Y2ggNy4xLjMyMwotUHJvYmxlbTogICAgVGVzdCAxOSBmYWlscyB3aXRoIHNvbWUgdGVybWNhcHMuIChEb21pbnF1ZSBQZWxsZSkKK1Byb2JsZW06ICAgIFRlc3QgMTkgZmFpbHMgd2l0aCBzb21lIHRlcm1jYXBzLiAoRG9taW5pcXVlIFBlbGxlKQogU29sdXRpb246ICAgU2V0IHRoZSB0X2tiIGFuZCB0X2tEIHRlcm1jYXAgdmFsdWVzLgogRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0MTkuaW4sIHNyYy90ZXN0ZGlyL3Rlc3QzOC5pbgogCkBAIC02NzcxLDUgKzY3ODksMTUyIEBACiAnaWMnIGFuZCAnc21hcnRjYXNlJyBkb24ndCB3b3JrIHByb3Blcmx5IHdoZW4gdXNpbmcgXCVWIGluIGEgc2VhcmNoIHBhdHRlcm4uCiAoS2FuYSBOYXRzdW5vKQogCitQYXRjaCA3LjJhLjAwMQorUHJvYmxlbTogICAgT24gc29tZSBzeXN0ZW1zIFgxMS9YbGliLmggZXhpc3RzIChmcm9tIFgxMS1kZXYgcGFja2FnZSkgYnV0CisJICAgIFgxMS9JbnRyaW5zaWMuaCBkb2VzIG5vdCAoaW4gWHQtZGV2IHBhY2thZ2UpLiAgVGhpcyBicmVha3MgdGhlCisJICAgIGJ1aWxkLiAgQWxzbywgb24gU29sYXJpcyA5IHN5cy9wdGVtLmggaXNuJ3QgZm91bmQuCitTb2x1dGlvbjogICBIYXZlIGNvbmZpZ3VyZSBvbmx5IGFjY2VwdCBYMTEgd2hlbiBYMTEvSW50cmluc2ljLmggZXhpc3RzLgorCSAgICBDaGVjayBmb3Igc3lzL3B0ZW0uaCB3aGlsZSBpbmNsdWRpbmcgc3lzL3N0cmVhbS5oLiAoVmxhZGltaXIKKwkgICAgTWFyZWspCitGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgorCitQYXRjaCA3LjJhLjAwMgorUHJvYmxlbTogICAgZ2V0YnVmdmFyKE4sICIiKSBnZXRzIHRoZSBkaWN0aW9uYXJ5IG9mIHRoZSBjdXJyZW50IGJ1ZmZlciBpbnN0ZWFkCisJICAgIG9mIGJ1ZmZlciBOLgorU29sdXRpb246ICAgU2V0IGN1cmJ1ZiBiZWZvcmUgY2FsbGluZyBmaW5kX3Zhcl9pbl9odCgpLiAoS2FuYSBOYXRzdW5vKQorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMmEuMDAzCitQcm9ibGVtOiAgICBMZWFraW5nIG1lbW9yeSB3aGVuIHVzaW5nICI6ZmlsZSBuYW1lIiBhbmQgdXNpbmcgYWNjZXNzIGNvbnRyb2wKKwkgICAgbGlzdHMuCitTb2x1dGlvbjogICBJbnZva2UgbWNoX2ZyZWVfYWNsKCkgaW4gdmltX3JlbmFtZSgpLiAoRG9taW5pcXVlIFBlbGxlKQorRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKKworUGF0Y2ggNy4yYS4wMDQKK1Byb2JsZW06ICAgIFNvbWUgc3lzdGVtcyBjYW4ndCBnZXQgc3BlbGwgZmlsZXMgYnkgZnRwLgorU29sdXRpb246ICAgVXNlIGh0dHAgd2hlbiBpdCBsb29rcyBsaWtlIGl0J3MgcG9zc2libGUuIChKYW1lcyBWZWdhKQorRmlsZXM6CSAgICBydW50aW1lL2F1dG9sb2FkL3NwZWxsZmlsZS52aW0KKworUGF0Y2ggNy4yYS4wMDUKK1Byb2JsZW06ICAgIEEgZmV3IGVycm9yIG1lc3NhZ2VzIHVzZSBjb25mdXNpbmcgbmFtZXMuICBNaXNzcGVsbGluZy4KK1NvbHV0aW9uOiAgIENoYW5nZSAiZGlzc2FsbG93cyIgdG8gImRpc2FsbG93cyIuIChEb21pbmlxdWUgUGVsbGUpICBDaGFuZ2UKKwkgICAgIm51bWJlciIgdG8gIk51bWJlciIuCitGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9maWxlaW8uYworCitQYXRjaCA3LjJhLjAwNgorUHJvYmxlbTogICAgUmVhZGluZyBwYXN0IE5VTCBpbiBhIHN0cmluZy4KK1NvbHV0aW9uOiAgIENoZWNrIGZvciBpbnZhbGlkIHV0Zi04IGJ5dGUgc2VxdWVuY2UuIChEb21pbmlxdWUgUGVsbGUpCitGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMKKworUGF0Y2ggNy4yYS4wMDcKK1Byb2JsZW06ICAgICI6bGV0IHYgPSAxLjIuMyIgd2FzIE9LIGluIFZpbSA3LjEsIG5vdyBpdCBnaXZlcyBhbiBlcnJvci4KK1NvbHV0aW9uOiAgIERvbid0IGxvb2sgZm9yIGEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGFmdGVyIHRoZSAiLiIgb3BlcmF0b3IuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4yYS4wMDgKK1Byb2JsZW06ICAgIHByaW50ZigiJWciLCAxKSBkb2Vzbid0IHdvcmsuCitTb2x1dGlvbjogICBDb252ZXJ0IE51bWJlciB0byBGbG9hdCB3aGVuIG5lZWRlZC4KK0ZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYworCitQYXRjaCA3LjJhLjAwOQorUHJvYmxlbTogICAgY3lnd2luX2NvbnZfdG9fcG9zaXhfcGF0aCgpIGRvZXMgbm90IHNwZWNpZnkgYnVmZmVyIHNpemUuCitTb2x1dGlvbjogICBVc2UgbmV3IEN5Z3dpbiBmdW5jdGlvbjogY3lnd2luX2NvbnZfcGF0aCgpLiAoQ29yaW5uYSBWaW5zY2hlbikKK0ZpbGVzOgkgICAgc3JjL21haW4uYywgc3JjL29zX3VuaXguYworCitQYXRjaCA3LjJhLjAxMAorUHJvYmxlbTogICAgV2hlbiBhIGZpbGUgbmFtZSBoYXMgYW4gaWxsZWdhbCBieXRlIHNlcXVlbmNlIFZpbSBtYXkgcmVhZAorCSAgICB1bmluaXRpYWxpc2VkIG1lbW9yeS4KK1NvbHV0aW9uOiAgIERvbid0IHVzZSBVVEZfQ09NUE9TSU5HTElLRSgpIG9uIGFuIGlsbGVnYWwgYnl0ZS4gIEluCisJICAgIG1zZ19vdXR0cmFuc19sZW5fYXR0cigpIHVzZSBjaGFyMmNlbGxzKCkgaW5zdGVhZCBvZiBwdHIyY2VsbHMoKS4KKwkgICAgSW4gdXRmX3B0cjJjaGFyKCkgZG9uJ3QgY2hlY2sgc2Vjb25kIGJ5dGUgd2hlbiBmaXJzdCBieXRlIGlzCisJICAgIGlsbGVnYS4gIChEb21pbmlxdWUgUGVsbGUpCitGaWxlczoJICAgIHNyYy9tYnl0ZS5jLCBzcmMvbWVzc2FnZS5jCisKK1BhdGNoIDcuMmEuMDExCitQcm9ibGVtOiAgICBUaGUgRWRpdC9TdGFydHVwIFNldHRpbmdzIG1lbnUgZG9lc24ndCB3b3JrLgorU29sdXRpb246ICAgRXhwYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcy4gKEJlbiBTY2htaWR0KQorRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCisKK1BhdGNoIDcuMmEuMDEyCitQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyBmb3IgY2FzdGluZyBpbnQgdG8gcG9pbnRlci4KK1NvbHV0aW9uOiAgIEFkZCBjYXN0IHRvIGxvbmcgaW4gYmV0d2Vlbi4gKE1hcnRpbiBUb2Z0KQorRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYworCitQYXRjaCA3LjJhLjAxMworUHJvYmxlbTogICAgc2hlbGxlc2NhcGUoKSBkb2VzIG5vdCBlc2NhcGUgIiUiIGFuZCAiIyIgY2hhcmFjdGVycy4KK1NvbHV0aW9uOiAgIEFkZCBmaW5kX2NtZGxpbmVfdmFyKCkgYW5kIHVzZSBpdCB3aGVuIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8KKwkgICAgc2hlbGxlc2NhcGUoKSBpcyBub24temVyby4KK0ZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMsIHNyYy9leF9kb2NtZC5jLAorCSAgICBzcmMvcHJvdG8vZXhfZG9jbWQucHJvLCBzcmMvcHJvdG8vbWlzYzIucHJvLCBzcmMvbWlzYzIuYworCitQYXRjaCA3LjJhLjAxNAorUHJvYmxlbTogICAgUHJvYmxlbSB3aXRoICUgaW4gbWVzc2FnZS4KK1NvbHV0aW9uOiAgIFB1dCAlIGluIHNpbmdsZSBxdW90ZXMuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4yYS4wMTUgKGFmdGVyIDcuMmEuMDEwKQorUHJvYmxlbTogICAgTWlzYWxpZ25lZCBtZXNzYWdlcy4KK1NvbHV0aW9uOiAgIENvbXB1dGUgbGVuZ3RoIG9mIHVucHJpbnRhYmxlIGNoYXJzIGNvcnJlY3RseS4KK0ZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYworCitQYXRjaCA3LjJhLjAxNgorUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1XIHYgaW4gdGhlIHF1aWNrZml4IHdpbmRvdyByZXN1bHRzIGluIHR3byBxdWlja2ZpeAorCSAgICB3aW5kb3dzLCB3aGljaCBpcyBub3QgYWxsb3dlZC4gICI6dGFiIHNwbGl0IiBzaG91bGQgYmUgYWxsb3dlZCB0bworCSAgICBvcGVuIGEgbmV3IHF1aWNrZml4IHdpbmRvdyBpbiBhbm90aGVyIHRhYi4KK1NvbHV0aW9uOiAgIEZvciBDVFJMLVcgdiBpbnN0ZWFkIG9mIHNwbGl0dGluZyB0aGUgd2luZG93IG9wZW4gYSBuZXcgb25lLgorCSAgICBXaGVuIHVzaW5nICI6dGFiIiBkbyBhbGxvdyBzcGxpdHRpbmcgdGhlIHF1aWNrZml4IHdpbmRvdyAod2FzCisJICAgIGFscmVhZHkgaW5jbHVkZWQgaW4gcGF0Y2ggNy4yYS4wMTMpLgorRmlsZXM6CSAgICBzcmMvd2luZG93LmMKKworUGF0Y2ggNy4yYS4wMTcKK1Byb2JsZW06ICAgICI6ZG9hdXRvYWxsIiBleGVjdXRlcyBhdXRvY29tbWFuZHMgZm9yIGFsbCBidWZmZXJzIGluc3RlYWQgb2YganVzdAorCSAgICBmb3IgbG9hZGVkIGJ1ZmZlcnMuCitTb2x1dGlvbjogICBDaGFuZ2UgImN1cmJ1ZiIgdG8gImJ1ZiIuCitGaWxlczoJICAgIHNyYy9maWxlaW8uYworCitQYXRjaCA3LjJhLjAxOAorUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgd2l0aCBHbm9tZS4gKFRvbnkgTWVjaGVseW5jaykKK1NvbHV0aW9uOiAgIEFkZCB0eXBlIGNhc3RzLgorRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYworCitQYXRjaCA3LjJhLjAxOQorUHJvYmxlbTogICAgIjpsZXQgJmc6dHcgPSA0NCIgc2V0cyB0aGUgbG9jYWwgb3B0aW9uIHZhbHVlLiAoQ3lyaWwgU2xvYmluKQorU29sdXRpb246ICAgVXNlIGdldF92YXJwX3Njb3BlKCkgaW5zdGVhZCBvZiBnZXRfdmFycCgpLiAoSWFuIEtlbGxpbmcpCitGaWxlczoJICAgIHNyYy9vcHRpb24uYworCitUaGVyZSBpcyBubyB3YXkgdG8gYXZvaWQgYWRkaW5nIC91c3IvbG9jYWwve2luY2x1ZGV8bGlifSB0byB0aGUgYnVpbGQKK2NvbW1hbmRzLiAgQWRkIHRoZSAtLXdpdGgtbG9jYWwtZGlyIGFyZ3VtZW50IHRvIGNvbmZpZ3VyZS4gKE1pY2hhZWwKK0hhdWJlbndhbGxuZXIpCisKK1doZW4gdXNpbmcgQ1RSTC1EIGFmdGVyICI6aGVscCIsIHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBjb3VsZCBiZSB0aG91c2FuZHMuCitSZXN0cmljdCB0byBUQUdfTUFOWSB0byBhdm9pZCB0aGlzIHRha2luZyB0b28gbG9uZy4gKElhbiBLZWxsaW5nKQorCitUaGUgcG9wdXAgbWVudSBjb3VsZCBiZSBwbGFjZWQgYXQgYSB3ZWlyZCBsb2NhdGlvbi4gIENhdXNlZCBieSB3X3djb2wgY29tcHV0ZWQKK2J5IGN1cnNfY29sdW1ucygpLiAgKERvbWluaXF1ZSBQZWxsZSkKKworT3ZlcmxhcHBpbmcgU1RSQ1BZKCkgYXJndW1lbnRzIHdoZW4gdXNpbmcgJXIgaXRlbSBpbiAnZXJyb3Jmb3JtYXQnLiAgVXNlCitTVFJNT1ZFKCkgaW5zdGVhZC4gKFJhbGYgV2lsZGVuaHVlcykKKworTWFjOiBPbiBMZW9wYXJkIGd2aW0sIHdoZW4gdXNpbmcgdGhlIG1vdXNlIHdoZWVsIG5vdGhpbmcgd291bGQgaGFwcGVuIHVudGlsCithbm90aGVyIGV2ZW50IG9jY3VyZXMsIHN1Y2ggYXMgbW92aW5nIHRoZSBtb3VzZS4gIFRoZW4gdGhlIHJlY29yZGVkIHNjcm9sbGluZword291bGQgdGFrZSBwbGFjZSBhbGwgYXQgb25jZS4gKEVja2VoYXJkIEJlcm5zKQorCitTb2x1dGlvbiBmb3IgY3Vyc29yIGNvbG9yIG5vdCByZWZsZWN0aW5nIElNIHN0YXR1cyBmb3IgR1RLIDIuICBBZGQKK3ByZWVkaXRfaXNfYWN0aXZlIGZsYWcuIChTdW5nSHl1biBOYW0pCisKK2ZpbGVyZWFkYWJsZSgpIGNhbiBoYW5nIG9uIGEgRklGTyBvbiBMaW51eC4gIFVzZSBvcGVuKCkgaW5zdGVhZCBvZiBmb3BlbigpLAord2l0aCBPX05PTkJMT0NLLiAoc3VnZ2VzdGVkIGJ5IExhcnMgS290dGhvZmYpCisKK0luY2x1ZGVkIHBhdGNoIHRvIHN1cHBvcnQgUGVybCA1LjEwLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQorCitXaGVuIGZpbGVzIGFyZSBkcm9wcGVkIG9uIGd2aW0gd2hpbGUgdGhlIHNjcmVlbiBpcyBiZWluZyB1cGRhdGVkLCBpZ25vcmUgdGhlCitkcm9wIGNvbW1hbmQgdG8gYXZvaWQgZnJlZWluZyBtZW1vcnkgdGhhdCBpcyBiZWluZyB1c2VkLgorCitJbiBhIHRlcm1pbmFsLCB3aGVuIGRyYXdpbmcgdGhlIHBvcHVwIG1lbnUgb3ZlciBkb3VibGUtd2lkZSBjaGFyYWN0ZXJzLCBoYWxmCitjaGFyYWN0ZXJzIG1heSBub3QgYmUgY2xlYXJlZCBwcm9wZXJseS4gKFl1a2loaXJvIE5ha2FkYWlyYSkKKworVGhlICNpZmRlZiBmb3IgaW5jbHVkaW5nICJ2aW1pby5oIiB3YXMgaW5jb25zaXN0ZW50LiAgSW4gYSBmZXcgZmlsZXMgaXQKK2RlcGVuZGVkIG9uIE1TV0lOLCB3aGljaCBpc24ndCBkZWZpbmVkIHVudGlsIGxhdGVyLgorCiAKICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aV9kaWZmLnR4dCBiL3J1bnRpbWUvZG9jL3ZpX2RpZmYudHh0CmluZGV4IGRmMTQ1MmQuLmJkNWRmNjQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZpX2RpZmYudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZpX2RpZmYudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZpX2RpZmYudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggTWF5IDA1CisqdmlfZGlmZi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmIuICBMYXN0IGNoYW5nZTogMjAwOCBKdW4gMjgKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTM4Myw3ICszODMsNyBAQAogU2VhcmNoaW5nIGZvciB3b3JkcyBpbiBpbmNsdWRlZCBmaWxlcy4JCQl8aW5jbHVkZS1zZWFyY2h8CiAJVGhlIHxbaXwgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGEgbWF0Y2ggb2YgdGhlIHdvcmQgdW5kZXIKIAl0aGUgY3Vyc29yIGluIHRoZSBjdXJyZW50IGFuZCBpbmNsdWRlZCBmaWxlcy4gIFRoZSAnaW5jbHVkZScgb3B0aW9uCi0JY2FuIGJlIHNldCB0aGUgYSBwYXR0ZXJuIHRoYXQgZGVzY3JpYmVzIGEgY29tbWFuZCB0byBpbmNsdWRlIGEgZmlsZQorCWNhbiBiZSBzZXQgdG8gYSBwYXR0ZXJuIHRoYXQgZGVzY3JpYmVzIGEgY29tbWFuZCB0byBpbmNsdWRlIGEgZmlsZQogCSh0aGUgZGVmYXVsdCBpcyBmb3IgQyBwcm9ncmFtcykuCiAJVGhlIHxbSXwgY29tbWFuZCBsaXN0cyBhbGwgbWF0Y2hlcywgdGhlIHxbX0NUUkwtSXwgY29tbWFuZCBqdW1wcyB0bwogCWEgbWF0Y2guCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aXN1YWwudHh0IGIvcnVudGltZS9kb2MvdmlzdWFsLnR4dAppbmRleCA0ODU4YmI4Li5mY2E3MWYzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92aXN1YWwudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Zpc3VhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qdmlzdWFsLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBTZXAgMjYKKyp2aXN1YWwudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4yYi4gIExhc3QgY2hhbmdlOiAyMDA2IFNlcCAyNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvd2luZG93cy50eHQgYi9ydW50aW1lL2RvYy93aW5kb3dzLnR4dAppbmRleCBkYzljMjBjLi40MGU5OGM0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy93aW5kb3dzLnR4dAorKysgYi9ydW50aW1lL2RvYy93aW5kb3dzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp3aW5kb3dzLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA3IE9jdCAwNworKndpbmRvd3MudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDggSnVsIDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xOTAsOCArMTkwLDggQEAKIAkJU2FtZSBhcyAiOnNwbGl0IiwgYnV0IHNldCAncmVhZG9ubHknIG9wdGlvbiBmb3IgdGhpcyBidWZmZXIuCiAKIDpbTl1zZltpbmRdIFsrK29wdF0gWytjbWRdIHtmaWxlfQkJKjpzZiogKjpzZmluZCogKnNwbGl0ZmluZCoKLQkJU2FtZSBhcyAiOnNwbGl0IiwgYnV0IHNlYXJjaCBmb3Ige2ZpbGV9IGluICdwYXRoJy4gIERvZXNuJ3QKLQkJc3BsaXQgaWYge2ZpbGV9IGlzIG5vdCBmb3VuZC4KKwkJU2FtZSBhcyAiOnNwbGl0IiwgYnV0IHNlYXJjaCBmb3Ige2ZpbGV9IGluICdwYXRoJyBsaWtlIGluCisJCXw6ZmluZHwuICBEb2Vzbid0IHNwbGl0IGlmIHtmaWxlfSBpcyBub3QgZm91bmQuCiAKIENUUkwtVyBDVFJMLV4JCQkJCSpDVFJMLVdfQ1RSTC1eKiAqQ1RSTC1XX14qCiBDVFJMLVcgXglEb2VzICI6c3BsaXQgIyIsIHNwbGl0IHdpbmRvdyBpbiB0d28gYW5kIGVkaXQgYWx0ZXJuYXRlIGZpbGUuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy93b3Jrc2hvcC50eHQgYi9ydW50aW1lL2RvYy93b3Jrc2hvcC50eHQKaW5kZXggYzE0YmY3MS4uZTY3Njg1MiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvd29ya3Nob3AudHh0CisrKyBiL3J1bnRpbWUvZG9jL3dvcmtzaG9wLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp3b3Jrc2hvcC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKndvcmtzaG9wLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjJiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEdvcmRvbiBQcmlldXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZmlsZXR5cGUudmltIGIvcnVudGltZS9maWxldHlwZS52aW0KaW5kZXggODlhZjA0Yy4uMmJhMmJmZSAxMDA2NDQKLS0tIGEvcnVudGltZS9maWxldHlwZS52aW0KKysrIGIvcnVudGltZS9maWxldHlwZS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzdXBwb3J0IGZpbGUgdG8gZGV0ZWN0IGZpbGUgdHlwZXMKICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDggSnVuIDIwCisiIExhc3QgQ2hhbmdlOgkyMDA4IEp1bCAwOAogCiAiIExpc3RlbiB2ZXJ5IGNhcmVmdWxseSwgSSB3aWxsIHNheSB0aGlzIG9ubHkgb25jZQogaWYgZXhpc3RzKCJkaWRfbG9hZF9maWxldHlwZXMiKQpAQCAtMTcsNyArMTcsNyBAQAogCiAiIElnbm9yZWQgZXh0ZW5zaW9ucwogaWYgZXhpc3RzKCIqZm5hbWVlc2NhcGUiKQotYXUgQnVmTmV3RmlsZSxCdWZSZWFkID9cKy5vcmlnLD9cKy5iYWssP1wrLm9sZCw/XCsubmV3LD9cKy5ycG1zYXZlLD9cKy5ycG1uZXcKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCA/XCsub3JpZyw/XCsuYmFrLD9cKy5vbGQsP1wrLm5ldyw/XCsuZHBrZy1kaXN0LD9cKy5kcGtnLW9sZCw/XCsucnBtc2F2ZSw/XCsucnBtbmV3CiAJXCBleGUgImRvYXUgZmlsZXR5cGVkZXRlY3QgQnVmUmVhZCAiIC4gZm5hbWVlc2NhcGUoZXhwYW5kKCI8YWZpbGU+OnIiKSkKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqfgogCVwgbGV0IHM6bmFtZSA9IGV4cGFuZCgiPGFmaWxlPiIpIHwKQEAgLTYzMyw3ICs2MzMsNyBAQAogZW5kZnVuYwogCiAiIEVSaWNzc29uIExBTkd1YWdlOyBZYXdzIGlzIGVybGFuZyB0b28KLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmVybCwqLnlhd3MJCXNldGYgZXJsYW5nCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5lcmwsKi5ocmwsKi55YXdzCXNldGYgZXJsYW5nCiAKICIgRWxtIEZpbHRlciBSdWxlcyBmaWxlCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgZmlsdGVyLXJ1bGVzCQlzZXRmIGVsbWZpbHQKQEAgLTczOSwxMSArNzM5LDE0IEBACiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5nc3AJCQlzZXRmIGdzcAogCiAiIEdyb3VwIGZpbGUKLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAvZXRjL2dyb3VwCQlzZXRmIGdyb3VwCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgL2V0Yy9ncm91cCwvZXRjL2dyb3VwLSwvZXRjL2dyb3VwLmVkaXQsL2V0Yy9nc2hhZG93LC9ldGMvZ3NoYWRvdy0sL2V0Yy9nc2hhZG93LmVkaXQsL3Zhci9iYWNrdXBzL2dyb3VwLmJhaywvdmFyL2JhY2t1cHMvZ3NoYWRvdy5iYWsJCXNldGYgZ3JvdXAKIAogIiBHVEsgUkMKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAuZ3RrcmMsZ3RrcmMJCXNldGYgZ3RrcmMKIAorIiBIYW1sCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5oYW1sCQkJc2V0ZiBoYW1sCisKICIgSGFtc3RlciBDbGFzc2ljIHwgUGxheWdyb3VuZCBmaWxlcwogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouaHNjLCouaHNtCQlzZXRmIGhhbXN0ZXIKIApAQCAtNzU0LDYgKzc1Nyw3IEBACiAKICIgSGFzdGUKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmh0CQkJc2V0ZiBoYXN0ZQorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouaHRwcAkJCXNldGYgaGFzdGVwcmVwcm9jCiAKICIgSGVyY3VsZXMKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnZjLCouZXYsKi5ycywqLnN1bSwqLmVycnN1bQlzZXRmIGhlcmN1bGVzCkBAIC0xMDE2LDYgKzEwMjAsOSBAQAogIiBNYXBsZSBWCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5tdiwqLm1wbCwqLm13cwkJc2V0ZiBtYXBsZQogCisiIE1hcCAoVU1OIG1hcHNlcnZlciBjb25maWcgZmlsZSkKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLm1hcAkJCXNldGYgbWFwCisKICIgTWFzb24KIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLm1hc29uLCoubWh0bWwJCXNldGYgbWFzb24KIApAQCAtMTIyNiw3ICsxMjMzLDcgQEAKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnBhcHAsKi5weG1sLCoucHhzbAlzZXRmIHBhcHAKIAogIiBQYXNzd29yZCBmaWxlCi1hdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgL2V0Yy9wYXNzd2QsL2V0Yy9zaGFkb3csL2V0Yy9zaGFkb3ctIHNldGYgcGFzc3dkCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgL2V0Yy9wYXNzd2QsL2V0Yy9wYXNzd2QtLC9ldGMvcGFzc3dkLmVkaXQsL2V0Yy9zaGFkb3csL2V0Yy9zaGFkb3ctLC92YXIvYmFja3Vwcy9wYXNzd2QuYmFrLC92YXIvYmFja3Vwcy9zaGFkb3cuYmFrIHNldGYgcGFzc3dkCiAKICIgUGFzY2FsIChhbHNvICoucCkKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnBhcwkJCXNldGYgcGFzY2FsCkBAIC0xNTcyLDYgKzE1NzksOSBAQAogIiBTQVMgc2NyaXB0CiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5zYXMJCQlzZXRmIHNhcwogCisiIFNhc3MKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnNhc3MJCQlzZXRmIHNhc3MKKwogIiBTYXRoZXIKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnNhCQkJc2V0ZiBzYXRoZXIKIApAQCAtMTc5Niw3ICsxODA2LDcgQEAKIAogbGV0IHM6ZnRfcnVsZXNfdWRldl9ydWxlc19wYXR0ZXJuID0gJ15ccypcY3VkZXZfcnVsZXNccyo9XHMqIlwoW14iXVx7LTEsfVwpLyoiLionCiBmdW5jISBzOkZUUnVsZXMoKQotICBpZiBleHBhbmQoJzxhbWF0Y2g+OnAnKSA9fiAnXi9ldGMvdWRldi9ydWxlc1wuZC8uKlwucnVsZXMkJworICBpZiBleHBhbmQoJzxhbWF0Y2g+OnAnKSA9fiAnXi9ldGMvdWRldi9cJShydWxlc1wuZC9cKVw9LipcLnJ1bGVzJCcKICAgICBzZXRmIHVkZXZydWxlcwogICAgIHJldHVybgogICBlbmRpZgpAQCAtMjI1Nyw2ICsyMjY3LDkgQEAKICIgTW9zdCBvZiB0aGVzZSBzaG91bGQgY2FsbCBzOlN0YXJTZXRmKCkgdG8gYXZvaWQgbmFtZXMgZW5kaW5nIGluIC5neiBhbmQgdGhlCiAiIGxpa2UgYXJlIHVzZWQuCiAKKyIgTW9yZSBBcGFjaGUgZmlsZXMuCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgL2V0Yy9hcGFjaGUyL2NvbmYuKi8qLC9ldGMvYXBhY2hlMi9zaXRlcy0qLyosL2V0Yy9hcGFjaGUyL21vZHMtKi8qCQljYWxsIHM6U3RhclNldGYoJ2FwYWNoZScpCisKICIgQXN0ZXJpc2sgY29uZmlnIGZpbGUKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqYXN0ZXJpc2svKi5jb25mKgkJY2FsbCBzOlN0YXJTZXRmKCdhc3RlcmlzaycpCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKmFzdGVyaXNrKi8qdm9pY2VtYWlsLmNvbmYqIGNhbGwgczpTdGFyU2V0ZignYXN0ZXJpc2t2bScpCkBAIC0yMjc2LDcgKzIyODksNyBAQAogCVx8ZW5kaWYKIAogIiBDcm9udGFiCi1hdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgY3JvbnRhYixjcm9udGFiLioJCWNhbGwgczpTdGFyU2V0ZignY3JvbnRhYicpCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgY3JvbnRhYixjcm9udGFiLiosL2V0Yy9jcm9uLmQvKgkJY2FsbCBzOlN0YXJTZXRmKCdjcm9udGFiJykKIAogIiBEZWJpYW4gU291cmNlcy5saXN0CiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgL2V0Yy9hcHQvc291cmNlcy5saXN0LmQvKgljYWxsIHM6U3RhclNldGYoJ2RlYnNvdXJjZXMnKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9hZGEudmltIGIvcnVudGltZS9mdHBsdWdpbi9hZGEudmltCmluZGV4IDY4OGNmOTcuLjA0NTY0NWQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vYWRhLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2FkYS52aW0KQEAgLTIsMTMgKzIsMTQgQEAKICIgIERlc2NyaXB0aW9uOiBQZXJmb3JtIEFkYSBzcGVjaWZpYyBjb21wbGV0aW9uICYgdGFnZ2luZy4KICIgICAgIExhbmd1YWdlOiBBZGEgKDIwMDUpCiAiCSAgICRJZCQKLSIgICBNYWludGFpbmVyOiBNYXJ0aW4gS3Jpc2NoaWsKKyIgICBNYWludGFpbmVyOiBNYXJ0aW4gS3Jpc2NoaWsgPGtyaXNjaGlrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyIJCVRheWxvciBWZW5hYmxlIDx0YXlsb3JAbWV0YXN5bnRheC5uZXQ+CiAiCQlOZWlsIEJpcmQgPG5laWxAZm54d2ViLmNvbT4KICIgICAgICAkQXV0aG9yJAogIgkgJERhdGUkCi0iICAgICAgVmVyc2lvbjogNC4yCisiICAgICAgVmVyc2lvbjogNC42CiAiICAgICRSZXZpc2lvbiQKLSIgICAgICRIZWFkVVJMOiBodHRwczovL3N2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9nbnVhZGEvdHJ1bmsvdG9vbHMvdmltL2Z0cGx1Z2luL2FkYS52aW0gJAorIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vZ251YWRhLnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9nbnVhZGEvdHJ1bmsvdG9vbHMvdmltL2Z0cGx1Z2luL2FkYS52aW0gJAogIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCiAiCQkyNi4wNS4yMDA2IE1LICcgc2hvdWxkIG5vdCBiZSBpbiBpc2tleXdvcmQuCiAiCQkxNi4wNy4yMDA2IE1LIEFkYS1Nb2RlIGFzIHZpbS1iYWxsCkBAIC0xNyw2ICsxOCw3IEBACiAiICAgICAgICAgICAgICAgMDUuMTEuMjAwNiBNSyBCcmFtIHN1Z2dlc3RlZCBub3QgdG8gdXNlIGluY2x1ZGUgcHJvdGVjdGlvbiBmb3IKICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9sb2FkCiAiCQkwNS4xMS4yMDA2IE1LIEJyYW0gc3VnZ2VzdGVkIHRvIHNhdmUgb24gc3BhY2VzCisiCQkwOC4wNy4yMDA3IFRWIGZpeCBkZWZhdWx0IGNvbXBpbGVyIHByb2JsZW1zLgogIiAgICBIZWxwIFBhZ2U6IGZ0LWFkYS1wbHVnaW4KICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgUHJvdmlkZXMgbWFwcGluZyBvdmVycmlkZXMgZm9yIHRhZyBqdW1waW5nIHRoYXQgZmlndXJlIG91dCB0aGUgY3VycmVudApAQCAtMzAsNyArMzIsNyBAQAogZW5kaWYKIAogIiBEb24ndCBsb2FkIGFub3RoZXIgcGx1Z2luIGZvciB0aGlzIGJ1ZmZlcgotbGV0IGI6ZGlkX2Z0cGx1Z2luID0gMzgKK2xldCBiOmRpZF9mdHBsdWdpbiA9IDQ1CiAKICIKICIgVGVtcG9yYXJpbHkgc2V0IGNwb3B0aW9ucyB0byBlbnN1cmUgdGhlIHNjcmlwdCBsb2FkcyBPSwpAQCAtMzgsMTIgKzQwLDIxIEBACiBsZXQgczpjcG9wdGlvbnMgPSAmY3BvcHRpb25zCiBzZXQgY3BvcHRpb25zLT1DCiAKLSIgU2VjdGlvbjogQ29tbWVudHMge3t7MQorIiBTZWN0aW9uOiBDb21tZW50cyAge3t7MQogIgogc2V0bG9jYWwgY29tbWVudHM9TzotLSw6LS1cIFwKIHNldGxvY2FsIGNvbW1lbnRzdHJpbmc9LS1cIFwgJXMKIHNldGxvY2FsIGNvbXBsZXRlPS4sdyxiLHUsdCxpCiAKKyIgU2VjdGlvbjogY2FzZQkgICAgIHt7ezEKKyIKK3NldGxvY2FsIG5vc21hcnRjYXNlCitzZXRsb2NhbCBpZ25vcmVjYXNlCisKKyIgU2VjdGlvbjogZm9ybWF0b3B0aW9ucyB7e3sxCisiCitzZXRsb2NhbCBmb3JtYXRvcHRpb25zKz1yb24KKwogIiBTZWN0aW9uOiBUYWdnaW5nIHt7ezEKICIKIGlmIGV4aXN0cyAoImc6YWRhX2V4dGVuZGVkX3RhZ2dpbmciKQpAQCAtMTA0LDggKzExNSwxNyBAQAogICAgICAgXCBzOm5vdGVuZCAuICdcPHJlY29yZFw+Olw8ZW5kXD5cc1wrXDxyZWNvcmRcPicKIGVuZGlmCiAKKwogIiBTZWN0aW9uOiBDb21waWxlciB7e3sxCiAiCitpZiAhIGV4aXN0cygiZzphZGFfZGVmYXVsdF9jb21waWxlciIpCisgICBpZiBoYXMoInZtcyIpCisgICAgICBsZXQgZzphZGFfZGVmYXVsdF9jb21waWxlciA9ICdkZWNhZGEnCisgICBlbHNlCisgICAgICBsZXQgZzphZGFfZGVmYXVsdF9jb21waWxlciA9ICdnbmF0JworICAgZW5kaWYKK2VuZGlmCisKIGlmICEgZXhpc3RzKCJjdXJyZW50X2NvbXBpbGVyIikJCQl8fAogICAgXCBjdXJyZW50X2NvbXBpbGVyICE9IGc6YWRhX2RlZmF1bHRfY29tcGlsZXIKICAgIGV4ZWN1dGUgImNvbXBpbGVyICIgLiBnOmFkYV9kZWZhdWx0X2NvbXBpbGVyCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2RlYmNoYW5nZWxvZy52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2RlYmNoYW5nZWxvZy52aW0KaW5kZXggY2Q1YjA3MS4uMDBhMDI1YiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9kZWJjaGFuZ2Vsb2cudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vZGViY2hhbmdlbG9nLnZpbQpAQCAtNyw2ICs3LDkgQEAKICIgTGljZW5zZToJR05VIEdQTCwgdmVyc2lvbiAyLjAgb3IgbGF0ZXIKICIgVVJMOgkJaHR0cDovL2dpdC5kZWJpYW4ub3JnLz9wPXBrZy12aW0vdmltLmdpdDthPWJsb2JfcGxhaW47Zj1ydW50aW1lL2Z0cGx1Z2luL2RlYmNoYW5nZWxvZy52aW07aGI9ZGViaWFuCiAKKyIgQnVnIGNvbXBsZXRpb24gcmVxdWlyZXMgYXB0LWxpc3RidWdzIGluc3RhbGxlZCBmb3IgRGViaWFuIHBhY2thZ2VzIG9yCisiIHB5dGhvbi1sYXVuY2hwYWQtYnVncyBpbnN0YWxsZWQgZm9yIFVidW50dSBwYWNrYWdlcworCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikKICAgZmluaXNoCiBlbmRpZgpAQCAtMTE2LDcgKzExOSw5IEBACiAgICAgbm9ybWFsIGgKICAgICBub3JtYWwgAQogICAgIGNhbGwgc2V0bGluZSgxLCBzdWJzdGl0dXRlKGdldGxpbmUoMSksICctXCRcJCcsICctJywgJycpKQotICAgIG5vcm1hbCB6bworICAgIGlmIGV4aXN0cygiZzpkZWJjaGFuZ2Vsb2dfZm9sZF9lbmFibGUiKQorICAgICAgICBmb2xkb3BlbgorICAgIGVuZGlmCiAgICAgY2FsbCBBZGRFbnRyeSgpCiBlbmRmdW5jdGlvbgogCkBAIC0yNzksNyArMjg0LDkgQEAKICAgcmV0dXJuICc9JwogZW5kZnVuY3Rpb24KIAotc2lsZW50ISBmb2xkb3BlbiEgICAiIHVuZm9sZCB0aGUgZW50cnkgdGhlIGN1cnNvciBpcyBvbiAodXN1YWxseSB0aGUgZmlyc3Qgb25lKQoraWYgZXhpc3RzKCJnOmRlYmNoYW5nZWxvZ19mb2xkX2VuYWJsZSIpCisgIHNpbGVudCEgZm9sZG9wZW4hICAgIiB1bmZvbGQgdGhlIGVudHJ5IHRoZSBjdXJzb3IgaXMgb24gKHVzdWFsbHkgdGhlIGZpcnN0IG9uZSkKK2VuZGlmCiAKICIgfX19CiAKQEAgLTI5MSwyNyArMjk4LDY1IEBACiAKIGZ1biEgRGViQ29tcGxldGVCdWdzKGZpbmRzdGFydCwgYmFzZSkKICAgaWYgYTpmaW5kc3RhcnQKLSAgICAiIGl0IHdlIGFyZSBqdXN0IGFmdGVyIGFuICcjJywgdGhlIGNvbXBsZXRpb24gc2hvdWxkIHN0YXJ0IGF0IHRoZSAnIycsCi0gICAgIiBvdGhlcndpc2Ugbm8gY29tcGxldGlvbiBpcyBwb3NzaWJsZQogICAgIGxldCBsaW5lID0gZ2V0bGluZSgnLicpCi0gICAgbGV0IGNvbGlkeCA9IGNvbCgnLicpCi0gICAgaWYgY29saWR4ID4gMSAmJiBsaW5lW2NvbGlkeCAtIDJdID1+ICcjJwotICAgICAgbGV0IGNvbGlkeCA9IGNvbGlkeCAtIDIKLSAgICBlbHNlCi0gICAgICBsZXQgY29saWR4ID0gLTEKLSAgICBlbmRpZgorCisgICAgIiB0cnkgdG8gZGV0ZWN0IHdoZXRoZXIgdGhpcyBpcyBjbG9zZXM6IG9yIGxwOgorICAgIGxldCBnOmRlYmNoYW5nZWxvZ19jb21wbGV0ZV9tb2RlID0gJ2RlYmJ1Z3MnCisgICAgbGV0IHRyeV9jb2xpZHggPSBjb2woJy4nKSAtIDEKKyAgICBsZXQgY29saWR4ID0gLTEgIiBkZWZhdWx0IHRvIG5vLWNvbXBsZXRpb24tcG9zc2libGUKKworICAgIHdoaWxlIHRyeV9jb2xpZHggPiAwICYmIGxpbmVbdHJ5X2NvbGlkeCAtIDFdID1+ICdcc1x8XGRcfCNcfCxcfDonCisgICAgICBsZXQgdHJ5X2NvbGlkeCA9IHRyeV9jb2xpZHggLSAxCisgICAgICBpZiBsaW5lW3RyeV9jb2xpZHhdID09ICcjJyAmJiBjb2xpZHggPT0gLTEKKyAgICAgICAgIiBmb3VuZCBoYXNoLCB3aGVyZSB3ZSBjb21wbGV0ZSBmcm9tOgorICAgICAgICBsZXQgY29saWR4ID0gdHJ5X2NvbGlkeAorICAgICAgZWxzZWlmIGxpbmVbdHJ5X2NvbGlkeF0gPT0gJzonCisgICAgICAgIGlmIHRyeV9jb2xpZHggPiAxICYmIHN0cnBhcnQobGluZSwgdHJ5X2NvbGlkeCAtIDIsIDMpID1+ICdcY2xwOicKKyAgICAgICAgICBsZXQgZzpkZWJjaGFuZ2Vsb2dfY29tcGxldGVfbW9kZSA9ICdscCcKKyAgICAgICAgZW5kaWYKKyAgICAgICAgYnJlYWsKKyAgICAgIGVuZGlmCisgICAgZW5kd2hpbGUKICAgICByZXR1cm4gY29saWR4Ci0gIGVsc2UKLSAgICBpZiAhIGZpbGVyZWFkYWJsZSgnL3Vzci9zYmluL2FwdC1saXN0YnVncycpCi0gICAgICBlY2hvZXJyICdhcHQtbGlzdGJ1Z3Mgbm90IGZvdW5kLCB5b3Ugc2hvdWxkIGluc3RhbGwgaXQgdG8gdXNlIENsb3NlcyBidWcgY29tcGxldGlvbicKLSAgICAgIHJldHVybgorICBlbHNlICIgcmV0dXJuIG1hdGNoZXM6CisgICAgbGV0IGJ1Z19saW5lcyA9IFtdCisgICAgaWYgZzpkZWJjaGFuZ2Vsb2dfY29tcGxldGVfbW9kZSA9PSAnbHAnCisgICAgICBpZiAhIGhhcygncHl0aG9uJykKKyAgICAgICAgZWNob2VyciAndmltIG11c3QgYmUgYnVpbHQgd2l0aCBQeXRob24gc3VwcG9ydCB0byB1c2UgTFAgYnVnIGNvbXBsZXRpb24nCisgICAgICAgIHJldHVybgorICAgICAgZW5kaWYKKyAgICAgIGxldCBwa2dzcmMgPSBEZWJHZXRQa2dTcmNOYW1lKGxpbmUoJy4nKSkKKyAgICAgIHB5dGhvbiA8PCBFT0YKK2ltcG9ydCB2aW0KK3RyeToKKyAgICBmcm9tIGxhdW5jaHBhZGJ1Z3MgaW1wb3J0IGNvbm5lY3RvcgorICAgIGJ1Z2xpc3QgPSBjb25uZWN0b3IuQ29ubmVjdEJ1Z0xpc3QoKQorICAgIGJsID0gbGlzdChidWdsaXN0KCdodHRwczovL2J1Z3MubGF1bmNocGFkLm5ldC91YnVudHUvK3NvdXJjZS8lcycgJSB2aW0uZXZhbCgncGtnc3JjJykpKQorICAgIGJsLnNvcnQoTm9uZSwgaW50KQorICAgIGxpc3RzdHIgPSAnWycKKyAgICBmb3IgYnVnIGluIGJsOgorICAgICAgICBsaXN0c3RyICs9ICInIyVkIC0gJXMnLCIgJSAoaW50KGJ1ZyksIGJ1Zy5zdW1tYXJ5LnJlcGxhY2UoJ1wnJywgJ1wnXCcnKSkKKyAgICBsaXN0c3RyICs9ICddJworICAgIHZpbS5jb21tYW5kKCdzaWxlbnQgbGV0IGJ1Z19saW5lcyA9ICVzJyAlIGxpc3RzdHIpCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgdmltLmNvbW1hbmQoJ2VjaG9lcnIgXCdweXRob24tbGF1bmNocGFkLWJ1Z3MgbmVlZHMgdG8gYmUgaW5zdGFsbGVkIHRvIHVzZSBMYXVuY2hwYWQgYnVnIGNvbXBsZXRpb25cJycpCitFT0YKKyAgICBlbHNlCisgICAgICBpZiAhIGZpbGVyZWFkYWJsZSgnL3Vzci9zYmluL2FwdC1saXN0YnVncycpCisgICAgICAgIGVjaG9lcnIgJ2FwdC1saXN0YnVncyBub3QgZm91bmQsIHlvdSBzaG91bGQgaW5zdGFsbCBpdCB0byB1c2UgQ2xvc2VzIGJ1ZyBjb21wbGV0aW9uJworICAgICAgICByZXR1cm4KKyAgICAgIGVuZGlmCisgICAgICBsZXQgcGtnc3JjID0gRGViR2V0UGtnU3JjTmFtZShsaW5lKCcuJykpCisgICAgICBsZXQgbGlzdGJ1Z3Nfb3V0cHV0ID0gc3lzdGVtKCcvdXNyL3NiaW4vYXB0LWxpc3RidWdzIC1zICcgLiBnOmRlYmNoYW5nZWxvZ19saXN0YnVnc19zZXZlcml0aWVzIC4gJyBsaXN0ICcgLiBwa2dzcmMgLiAnIHwgZ3JlcCAiXiAjIiAyPiAvZGV2L251bGwnKQorICAgICAgbGV0IGJ1Z19saW5lcyA9IHNwbGl0KGxpc3RidWdzX291dHB1dCwgJ1xuJykKICAgICBlbmRpZgotICAgIGxldCBwa2dzcmMgPSBEZWJHZXRQa2dTcmNOYW1lKGxpbmUoJy4nKSkKLSAgICBsZXQgbGlzdGJ1Z3Nfb3V0cHV0ID0gc3lzdGVtKCdhcHQtbGlzdGJ1Z3MgLXMgJyAuIGc6ZGViY2hhbmdlbG9nX2xpc3RidWdzX3NldmVyaXRpZXMgLiAnIGxpc3QgJyAuIHBrZ3NyYyAuICcgfCBncmVwICJeICMiIDI+IC9kZXYvbnVsbCcpCi0gICAgbGV0IGJ1Z19saW5lcyA9IHNwbGl0KGxpc3RidWdzX291dHB1dCwgJ1xuJykKICAgICBsZXQgY29tcGxldGlvbnMgPSBbXQogICAgIGZvciBsaW5lIGluIGJ1Z19saW5lcwogICAgICAgbGV0IHBhcnRzID0gbWF0Y2hsaXN0KGxpbmUsICdeXHMqXCgjXFNcK1wpXHMqLVxzKlwoLipcKSQnKQorICAgICAgIiBmaWx0ZXIgb25seSB0aG9zZSB3aGljaCBtYXRjaCBhOmJhc2U6CisgICAgICBpZiBwYXJ0c1sxXSAhfiAiXiIgLiBhOmJhc2UKKyAgICAgICAgY29udGludWUKKyAgICAgIGVuZGlmCiAgICAgICBsZXQgY29tcGxldGlvbiA9IHt9CiAgICAgICBsZXQgY29tcGxldGlvblsnd29yZCddID0gcGFydHNbMV0KICAgICAgIGxldCBjb21wbGV0aW9uWydtZW51J10gPSBwYXJ0c1syXQpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9lcnVieS52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2VydWJ5LnZpbQppbmRleCA4YjE4OWRmLi44MDJmNTk2IDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2VydWJ5LnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2VydWJ5LnZpbQpAQCAtMjcsNyArMjcsNyBAQAogICBsZXQgczpsaW5lcyA9IGdldGxpbmUoMSkuIlxuIi5nZXRsaW5lKDIpLiJcbiIuZ2V0bGluZSgzKS4iXG4iLmdldGxpbmUoNCkuIlxuIi5nZXRsaW5lKDUpLiJcbiIuZ2V0bGluZSgiJCIpCiAgIGxldCBiOmVydWJ5X3N1YnR5cGUgPSBtYXRjaHN0cihzOmxpbmVzLCdlcnVieV9zdWJ0eXBlPVx6c1x3XCsnKQogICBpZiBiOmVydWJ5X3N1YnR5cGUgPT0gJycKLSAgICBsZXQgYjplcnVieV9zdWJ0eXBlID0gbWF0Y2hzdHIoc3Vic3RpdHV0ZShleHBhbmQoIiU6dCIpLCdcY1wlKFwuZXJiXClcKyQnLCcnLCcnKSwnXC5cenNcd1wrJCcpCisgICAgbGV0IGI6ZXJ1Ynlfc3VidHlwZSA9IG1hdGNoc3RyKHN1YnN0aXR1dGUoZXhwYW5kKCIlOnQiKSwnXGNcJShcLmVyYlx8XC5lcnVieVwpXCskJywnJywnJyksJ1wuXHpzXHdcKyQnKQogICBlbmRpZgogICBpZiBiOmVydWJ5X3N1YnR5cGUgPT0gJ3JodG1sJwogICAgIGxldCBiOmVydWJ5X3N1YnR5cGUgPSAnaHRtbCcKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vZ2l0LnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vZ2l0LnZpbQppbmRleCAzNzg4OGIxLi5mOGQzMzFmIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2dpdC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9naXQudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luCiAiIExhbmd1YWdlOglnZW5lcmljIGdpdCBvdXRwdXQKICIgTWFpbnRhaW5lcjoJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgotIiBMYXN0IENoYW5nZToJMjAwOCBGZWIgMjcKKyIgTGFzdCBDaGFuZ2U6CTIwMDggSnVuIDIwCiAKICIgT25seSBkbyB0aGlzIHdoZW4gbm90IGRvbmUgeWV0IGZvciB0aGlzIGJ1ZmZlcgogaWYgKGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKSkKQEAgLTE1LDcgKzE1LDcgQEAKICAgICBlbHNlaWYgJEdJVF9ESVIgIT0gJycKICAgICAgICAgbGV0IGI6Z2l0X2RpciA9ICRHSVRfRElSCiAgICAgZW5kaWYKLSAgICBpZiBoYXMoJ3dpbjMyJykgfHwgaGFzKCd3aW42NCcpCisgICAgaWYgKGhhcygnd2luMzInKSB8fCBoYXMoJ3dpbjY0JykpICYmIGV4aXN0cygnYjpnaXRfZGlyJykKICAgICAgICAgbGV0IGI6Z2l0X2RpciA9IHN1YnN0aXR1dGUoYjpnaXRfZGlyLCdcXCcsJy8nLCdnJykKICAgICBlbmRpZgogZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vaGFtbC52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2hhbWwudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMzlkNWUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2hhbWwudmltCkBAIC0wLDAgKzEsNjYgQEAKKyIgVmltIGZpbGV0eXBlIHBsdWdpbgorIiBMYW5ndWFnZToJCUhhbWwKKyIgTWFpbnRhaW5lcjoJCVRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUuaW5mbz4KKworIiBPbmx5IGRvIHRoaXMgd2hlbiBub3QgZG9uZSB5ZXQgZm9yIHRoaXMgYnVmZmVyCitpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikKKyAgZmluaXNoCitlbmRpZgorCitsZXQgczpzYXZlX2NwbyA9ICZjcG8KK3NldCBjcG8tPUMKKworIiBEZWZpbmUgc29tZSBkZWZhdWx0cyBpbiBjYXNlIHRoZSBpbmNsdWRlZCBmdHBsdWdpbnMgZG9uJ3Qgc2V0IHRoZW0uCitsZXQgczp1bmRvX2Z0cGx1Z2luID0gIiIKK2xldCBzOmJyb3dzZWZpbHRlciA9ICJBbGwgRmlsZXMgKCouKilcdCouKlxuIgorbGV0IHM6bWF0Y2hfd29yZHMgPSAiIgorCitydW50aW1lISBmdHBsdWdpbi9odG1sLnZpbSBmdHBsdWdpbi9odG1sXyoudmltIGZ0cGx1Z2luL2h0bWwvKi52aW0KK3VubGV0ISBiOmRpZF9mdHBsdWdpbgorCisiIE92ZXJyaWRlIG91ciBkZWZhdWx0cyBpZiB0aGVzZSB3ZXJlIHNldCBieSBhbiBpbmNsdWRlZCBmdHBsdWdpbi4KK2lmIGV4aXN0cygiYjp1bmRvX2Z0cGx1Z2luIikKKyAgbGV0IHM6dW5kb19mdHBsdWdpbiA9IGI6dW5kb19mdHBsdWdpbgorICB1bmxldCBiOnVuZG9fZnRwbHVnaW4KK2VuZGlmCitpZiBleGlzdHMoImI6YnJvd3NlZmlsdGVyIikKKyAgbGV0IHM6YnJvd3NlZmlsdGVyID0gYjpicm93c2VmaWx0ZXIKKyAgdW5sZXQgYjpicm93c2VmaWx0ZXIKK2VuZGlmCitpZiBleGlzdHMoImI6bWF0Y2hfd29yZHMiKQorICBsZXQgczptYXRjaF93b3JkcyA9IGI6bWF0Y2hfd29yZHMKKyAgdW5sZXQgYjptYXRjaF93b3JkcworZW5kaWYKKworcnVudGltZSEgZnRwbHVnaW4vcnVieS52aW0gZnRwbHVnaW4vcnVieV8qLnZpbSBmdHBsdWdpbi9ydWJ5LyoudmltCitsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCisKKyIgQ29tYmluZSB0aGUgbmV3IHNldCBvZiB2YWx1ZXMgd2l0aCB0aG9zZSBwcmV2aW91c2x5IGluY2x1ZGVkLgoraWYgZXhpc3RzKCJiOnVuZG9fZnRwbHVnaW4iKQorICBsZXQgczp1bmRvX2Z0cGx1Z2luID0gYjp1bmRvX2Z0cGx1Z2luIC4gIiB8ICIgLiBzOnVuZG9fZnRwbHVnaW4KK2VuZGlmCitpZiBleGlzdHMgKCJiOmJyb3dzZWZpbHRlciIpCisgIGxldCBzOmJyb3dzZWZpbHRlciA9IHN1YnN0aXR1dGUoYjpicm93c2VmaWx0ZXIsJ1xjQWxsIEZpbGVzIChcKlwuXCopXHRcKlwuXCpcbicsJycsJycpIC4gczpicm93c2VmaWx0ZXIKK2VuZGlmCitpZiBleGlzdHMoImI6bWF0Y2hfd29yZHMiKQorICBsZXQgczptYXRjaF93b3JkcyA9IGI6bWF0Y2hfd29yZHMgLiAnLCcgLiBzOm1hdGNoX3dvcmRzCitlbmRpZgorCisiIENoYW5nZSB0aGUgYnJvd3NlIGRpYWxvZyBvbiBXaW4zMiB0byBzaG93IG1haW5seSBIYW1sLXJlbGF0ZWQgZmlsZXMKK2lmIGhhcygiZ3VpX3dpbjMyIikKKyAgbGV0IGI6YnJvd3NlZmlsdGVyPSJIYW1sIEZpbGVzICgqLmhhbWwpXHQqLmhhbWxcblNhc3MgRmlsZXMgKCouc2FzcylcdCouc2Fzc1xuIiAuIHM6YnJvd3NlZmlsdGVyCitlbmRpZgorCisiIExvYWQgdGhlIGNvbWJpbmVkIGxpc3Qgb2YgbWF0Y2hfd29yZHMgZm9yIG1hdGNoaXQudmltCitpZiBleGlzdHMoImxvYWRlZF9tYXRjaGl0IikKKyAgbGV0IGI6bWF0Y2hfd29yZHMgPSBzOm1hdGNoX3dvcmRzCitlbmRpZgorCitzZXRsb2NhbCBjb21tZW50c3RyaW5nPS0jXCAlcworCitsZXQgYjp1bmRvX2Z0cGx1Z2luID0gInNldGwgY21zPCBjb208ICIKKyAgICAgIFwgIiB8IHVubGV0ISBiOmJyb3dzZWZpbHRlciBiOm1hdGNoX3dvcmRzIHwgIiAuIHM6dW5kb19mdHBsdWdpbgorCitsZXQgJmNwbyA9IHM6c2F2ZV9jcG8KKworIiB2aW06c2V0IHN3PTI6CmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2xvZ3RhbGsuZGljdCBiL3J1bnRpbWUvZnRwbHVnaW4vbG9ndGFsay5kaWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzYjllNmYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2xvZ3RhbGsuZGljdApAQCAtMCwwICsxLDE2NCBAQAorZW5jb2RpbmcKK2NhbGxzCitjYXRlZ29yeQorZHluYW1pYworZW5kX2NhdGVnb3J5CitlbmRfb2JqZWN0CitlbmRfcHJvdG9jb2wKK2luZm8KK2luaXRpYWxpemF0aW9uCitvYmplY3QKK3Byb3RvY29sCitzeW5jaHJvbml6ZWQKK3RocmVhZGVkCit1c2VzCithbGlhcworZGlzY29udGlndW91cworbWV0YV9wcmVkaWNhdGUKK21vZGUKK29wCitwcml2YXRlCitwcm90ZWN0ZWQKK3B1YmxpYworY3VycmVudF9vYmplY3QKK2N1cnJlbnRfcHJvdG9jb2wKK2N1cnJlbnRfY2F0ZWdvcnkKK29iamVjdF9wcm9wZXJ0eQorcHJvdG9jb2xfcHJvcGVydHkKK2NhdGVnb3J5X3Byb3BlcnR5CitjcmVhdGVfb2JqZWN0CitjcmVhdGVfcHJvdG9jb2wKK2NyZWF0ZV9jYXRlZ29yeQorYWJvbGlzaF9vYmplY3QKK2Fib2xpc2hfcHJvdG9jb2wKK2Fib2xpc2hfY2F0ZWdvcnkKK2NvbXBsZW1lbnRzCitjb21wbGVtZW50c19vYmplY3QKK2V4dGVuZHMKK2V4dGVuZHNfb2JqZWN0CitleHRlbmRzX3Byb3RvY29sCitleHRlbmRzX2NhdGVnb3J5CitpbXBsZW1lbnRzCitpbXBsZW1lbnRzX3Byb3RvY29sCitpbXBvcnRzCitpbXBvcnRzX2NhdGVnb3J5CitpbnN0YW50aWF0ZXMKK2luc3RhbnRpYXRlc19jbGFzcworc3BlY2lhbGl6ZXMKK3NwZWNpYWxpemVzX2NsYXNzCithYm9saXNoX2V2ZW50cworY3VycmVudF9ldmVudAorZGVmaW5lX2V2ZW50cworbG9ndGFsa19sb2FkCitsb2d0YWxrX2NvbXBpbGUKK2xvZ3RhbGtfbGlicmFyeV9wYXRoCitjdXJyZW50X2xvZ3RhbGtfZmxhZworc2V0X2xvZ3RhbGtfZmxhZwordGhyZWFkZWRfY2FsbAordGhyZWFkZWRfb25jZQordGhyZWFkZWRfaWdub3JlCit0aHJlYWRlZF9leGl0Cit0aHJlYWRlZF9wZWVrCit0aHJlYWRlZF93YWl0Cit0aHJlYWRlZF9ub3RpZnkKK3NlbGYKK3RoaXMKK3NlbmRlcgorcGFyYW1ldGVyCitiZWZvcmUKK2FmdGVyCitwaHJhc2UKK2V4cGFuZF90ZXJtCitnb2FsX2V4cGFuc2lvbgordGVybV9leHBhbnNpb24KK3RydWUKK2ZhaWwKK2NhbGwKK2NhdGNoCit0aHJvdwordW5pZnlfd2l0aF9vY2N1cnNfY2hlY2sKK3ZhcgorYXRvbQoraW50ZWdlcgorZmxvYXQKK2F0b21pYworY29tcG91bmQKK25vbnZhcgorbnVtYmVyCithcmcKK2NvcHlfdGVybQorZnVuY3RvcgorY3VycmVudF9wcmVkaWNhdGUKK3ByZWRpY2F0ZV9wcm9wZXJ0eQorYWJvbGlzaAorYXNzZXJ0egorYXNzZXJ0YQorY2xhdXNlCityZXRyYWN0CityZXRyYWN0YWxsCitiYWdvZgorZmluZGFsbAorZm9yYWxsCitzZXRvZgorY3VycmVudF9pbnB1dAorY3VycmVudF9vdXRwdXQKK3NldF9pbnB1dAorc2V0X291dHB1dAorb3BlbgorY2xvc2UKK2ZsdXNoX291dHB1dAorc3RyZWFtX3Byb3BlcnR5CithdF9lbmRfb2Zfc3RyZWFtCitzZXRfc3RyZWFtX3Bvc2l0aW9uCitnZXRfY2hhcgorZ2V0X2NvZGUKK3BlZWtfY2hhcgorcGVla19jb2RlCitwdXRfY2hhcgorcHV0X2NvZGUKK25sCitnZXRfYnl0ZQorcGVla19ieXRlCitwdXRfYnl0ZQorcmVhZAorcmVhZF90ZXJtCit3cml0ZQord3JpdGVxCit3cml0ZV9jYW5vbmljYWwKK2F0b21fY2hhcnMKK2F0b21fY29kZXMKK2F0b21fY29uY2F0CitudW1iZXJfY2hhcnMKK251bWJlcl9jb2RlcworY3VycmVudF9vcAorY2hhcl9jb252ZXJzaW9uCitjdXJyZW50X2NoYXJfY29udmVyc2lvbgorb25jZQorcmVwZWF0CithdG9tX2xlbmd0aAorYXRvbV9jb25jYXQKK3N1Yl9hdG9tCithdG9tX2NoYXJzCithdG9tX2NvZGVzCitjaGFyX2NvZGUKK251bWJlcl9jaGFycworbnVtYmVyX2NvZGVzCitzZXRfcHJvbG9nX2ZsYWcKK2N1cnJlbnRfcHJvbG9nX2ZsYWcKK2hhbHQKK2FicworYXRhbgorY2VpbGluZworY29zCitleHAKK2Zsb2F0X2ZyYWN0aW9uYWxfcGFydAorZmxvYXRfaW50ZWdlcl9wYXJ0CitmbG9vcgorbG9nCittb2QKK3JlbQorcm91bmQKK3NpZ24KK3Npbgorc3FydAordHJ1bmNhdGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vbG9ndGFsay52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2xvZ3RhbGsudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3MTMwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2xvZ3RhbGsudmltCkBAIC0wLDAgKzEsMTggQEAKKyIgTG9ndGFsayBmaWxldHlwZSBwbHVnaW4gZmlsZQorIiBMYW5ndWFnZTogICAgICAgICBMb2d0YWxrCisiIE1haW50YWluZXI6ICAgICAgIFBhdWxvIE1vdXJhIDxwbW91cmFAbG9ndGFsay5vcmc+CisiIExhdGVzdCBSZXZpc2lvbjogIDIwMDctMDctMDYKKworaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCisgIGZpbmlzaAorZW5kaWYKK2xldCBiOmRpZF9mdHBsdWdpbiA9IDEKKworbGV0IGI6dW5kb19mdHBsdWdpbiA9ICJzZXRsIHRzPCBzdzwgZmRtPCBmZGM8IGFpPCBkaWN0PCIKKworInNldGxvY2FsIHRzPTQKK3NldGxvY2FsIHN3PTQKK3NldGxvY2FsIGZkbT1zeW50YXgKK3NldGxvY2FsIGZkYz0yCitzZXRsb2NhbCBhdXRvaW5kZW50CitzZXRsb2NhbCBkaWN0PSRWSU1SVU5USU1FL2Z0cGx1Z2luL2xvZ3RhbGsuZGljdApkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9zYXNzLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vc2Fzcy52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQwMzk3NwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vc2Fzcy52aW0KQEAgLTAsMCArMSwxOCBAQAorIiBWaW0gZmlsZXR5cGUgcGx1Z2luCisiIExhbmd1YWdlOgkJU2FzcworIiBNYWludGFpbmVyOgkJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgorCisiIE9ubHkgZG8gdGhpcyB3aGVuIG5vdCBkb25lIHlldCBmb3IgdGhpcyBidWZmZXIKK2lmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKQorICBmaW5pc2gKK2VuZGlmCitsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCisKK2xldCBiOnVuZG9fZnRwbHVnaW4gPSAic2V0bCBjbXM8IGluYzwgb2Z1PCIKKworc2V0bG9jYWwgY29tbWVudHN0cmluZz0vL1wgJXMKK3NldGxvY2FsIG9tbmlmdW5jPWNzc2NvbXBsZXRlI0NvbXBsZXRlQ1NTCisKK2xldCAmbDppbmNsdWRlID0gJ15ccypAaW1wb3J0XHNcK1wlKHVybChcKVw9JworCisiIHZpbTpzZXQgc3c9MjoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L2FkYS52aW0gYi9ydW50aW1lL2luZGVudC9hZGEudmltCmluZGV4IGYyZmMxYWIuLmU1NmFhZmYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L2FkYS52aW0KKysrIGIvcnVudGltZS9pbmRlbnQvYWRhLnZpbQpAQCAtMywxNyArMywxOSBAQAogIiAgICAgTGFuZ3VhZ2U6IEFkYSAoMjAwNSkKICIJICAgJElkJAogIiAgICBDb3B5cmlnaHQ6IENvcHlyaWdodCAoQykgMjAwNiBNYXJ0aW4gS3Jpc2NoaWsKLSIgICBNYWludGFpbmVyOiBNYXJ0aW4gS3Jpc2NoaWsKKyIgICBNYWludGFpbmVyOiBNYXJ0aW4gS3Jpc2NoaWsgPGtyaXNjaGlrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KICIJCU5laWwgQmlyZCA8bmVpbEBmbnh3ZWIuY29tPgorIgkJTmVkIE9raWUgPG5va2llQHJhZGZvcmQuZWR1PgogIiAgICAgICRBdXRob3IkCiAiCSAkRGF0ZSQKLSIgICAgICBWZXJzaW9uOiA0LjIKKyIgICAgICBWZXJzaW9uOiA0LjYKICIgICAgJFJldmlzaW9uJAotIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vaW5kZW50L2FkYS52aW0gJAorIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vZ251YWRhLnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9nbnVhZGEvdHJ1bmsvdG9vbHMvdmltL2luZGVudC9hZGEudmltICQKICIgICAgICBIaXN0b3J5OiAyNC4wNS4yMDA2IE1LIFVuaWZpZWQgSGVhZGVycwogIgkJMTYuMDcuMjAwNiBNSyBBZGEtTW9kZSBhcyB2aW0tYmFsbAogIgkJMTUuMTAuMjAwNiBNSyBCcmFtJ3Mgc3VnZ2VzdGlvbiBmb3IgcnVudGltZSBpbnRlZ3JhdGlvbgogIgkJMDUuMTEuMjAwNiBNSyBCcmFtIHN1Z2dlc3RlZCB0byBzYXZlIG9uIHNwYWNlcworIgkJMTkuMDkuMjAwNyBOTyBnOiBtaXNzaW5nIGJlZm9yZSBhZGEjQ29tbWVudAogIiAgICBIZWxwIFBhZ2U6IGZ0LXZpbS1pbmRlbnQKICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgVG9EbzoKQEAgLTI3LDcgKzI5LDcgQEAKICAgIGZpbmlzaAogZW5kaWYKIAotbGV0IGI6ZGlkX2luZGVudCA9IDEKK2xldCBiOmRpZF9pbmRlbnQgPSA0NQogCiBzZXRsb2NhbCBpbmRlbnRleHByPUdldEFkYUluZGVudCgpCiBzZXRsb2NhbCBpbmRlbnRrZXlzLT0weywwfQpAQCAtNTgsNyArNjAsNyBAQAogIiBTZWVtcyB0byB3b3JrIE9LIGFzIGl0ICdzdGFydHMnIHdpdGggdGhlIGluZGVudCBvZiB0aGUgL3ByZXZpb3VzLyBsaW5lLgogZnVuY3Rpb24gczpNYWluQmxvY2tJbmRlbnQgKHByZXZfaW5kZW50LCBwcmV2X2xudW0sIGJsb2Nrc3RhcnQsIHN0b3BfYXQpCiAgICBsZXQgbG51bSA9IGE6cHJldl9sbnVtCi0gICBsZXQgbGluZSA9IHN1YnN0aXR1dGUoIGdldGxpbmUobG51bSksIGFkYSNDb21tZW50LCAnJywgJycgKQorICAgbGV0IGxpbmUgPSBzdWJzdGl0dXRlKCBnZXRsaW5lKGxudW0pLCBnOmFkYSNDb21tZW50LCAnJywgJycgKQogICAgd2hpbGUgbG51bSA+IDEKICAgICAgIGlmIGE6c3RvcF9hdCAhPSAnJyAgJiYgIGxpbmUgPX4gJ15ccyonIC4gYTpzdG9wX2F0ICAmJiAgaW5kZW50KGxudW0pIDwgYTpwcmV2X2luZGVudAogCSByZXR1cm4gYTpwcmV2X2luZGVudApAQCAtNzIsNyArNzQsNyBAQAogICAgICAgbGV0IGxudW0gPSBwcmV2bm9uYmxhbmsobG51bSAtIDEpCiAgICAgICAiIEdldCBwcmV2aW91cyBub24tYmxhbmsvbm9uLWNvbW1lbnQtb25seSBsaW5lCiAgICAgICB3aGlsZSAxCi0JIGxldCBsaW5lID0gc3Vic3RpdHV0ZSggZ2V0bGluZShsbnVtKSwgYWRhI0NvbW1lbnQsICcnLCAnJyApCisJIGxldCBsaW5lID0gc3Vic3RpdHV0ZSggZ2V0bGluZShsbnVtKSwgZzphZGEjQ29tbWVudCwgJycsICcnICkKIAkgaWYgbGluZSAhfiAnXlxzKiQnICYmIGxpbmUgIX4gJ15ccyojJwogCSAgICBicmVhawogCSBlbmRpZgpAQCAtMTE2LDcgKzExOCw3IEBACiAgICAgICAiIEdldCBwcmV2aW91cyBub24tYmxhbmsvbm9uLWNvbW1lbnQtb25seSBsaW5lCiAgICAgICB3aGlsZSAxCiAJIGxldCBsaW5lID0gZ2V0bGluZShsbnVtKQotCSBsZXQgbGluZSA9IHN1YnN0aXR1dGUoIGxpbmUsIGFkYSNDb21tZW50LCAnJywgJycgKQorCSBsZXQgbGluZSA9IHN1YnN0aXR1dGUoIGxpbmUsIGc6YWRhI0NvbW1lbnQsICcnLCAnJyApCiAJIGlmIGxpbmUgIX4gJ15ccyokJwogCSAgICBicmVhawogCSBlbmRpZgpAQCAtMTQzLDcgKzE0NSw4IEBACiAgICAgICBsZXQgbG51bSA9IHByZXZub25ibGFuayhsbnVtIC0gMSkKICAgICAgICIgR2V0IHByZXZpb3VzIG5vbi1ibGFuay9ub24tY29tbWVudC1vbmx5IGxpbmUKICAgICAgIHdoaWxlIDEKLQkgbGV0IGxpbmUgPSBzdWJzdGl0dXRlKCBnZXRsaW5lKGxudW0pLCBhZGEjQ29tbWVudCwgJycsICcnICkKKwkgbGV0IGxpbmUgPSBzdWJzdGl0dXRlKCBnZXRsaW5lKGxudW0pLCBnOmFkYSNDb21tZW50LCAnJywgJycgKQorCSAKIAkgaWYgbGluZSAhfiAnXlxzKiQnICYmIGxpbmUgIX4gJ15ccyojJwogCSAgICBicmVhawogCSBlbmRpZgpAQCAtMjIyLDcgKzIyNSw3IEBACiAgICAgICBleGUgbG51bQogICAgICAgZXhlICdub3JtYWwhICRGKSUnCiAgICAgICBpZiBnZXRsaW5lKCcuJykgPX4gJ15ccyooJwotCSAiIERpcmUgbGF5b3V0IC0gdXNlIHByZXZpb3VzIGluZGVudCAoY291bGQgY2hlY2sgZm9yIGFkYSNDb21tZW50IGhlcmUpCisJICIgRGlyZSBsYXlvdXQgLSB1c2UgcHJldmlvdXMgaW5kZW50IChjb3VsZCBjaGVjayBmb3IgZzphZGEjQ29tbWVudCBoZXJlKQogCSBsZXQgaW5kID0gaW5kZW50KCBwcmV2bm9uYmxhbmsoIGxpbmUoJy4nKS0xICkgKQogICAgICAgZWxzZQogCSBsZXQgaW5kID0gaW5kZW50KCcuJykKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L2VydWJ5LnZpbSBiL3J1bnRpbWUvaW5kZW50L2VydWJ5LnZpbQppbmRleCA4M2QwMTBlLi4zMWNiYjhiIDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9lcnVieS52aW0KKysrIGIvcnVudGltZS9pbmRlbnQvZXJ1YnkudmltCkBAIC0xMiw3ICsxMiw3IEBACiAKIHJ1bnRpbWUhIGluZGVudC9ydWJ5LnZpbQogdW5sZXQhIGI6ZGlkX2luZGVudAotc2V0IGluZGVudGV4cHI9CitzZXRsb2NhbCBpbmRlbnRleHByPQogCiBpZiBleGlzdHMoImI6ZXJ1Ynlfc3VidHlwZSIpCiAgIGV4ZSAicnVudGltZSEgaW5kZW50LyIuYjplcnVieV9zdWJ0eXBlLiIudmltIgpAQCAtNDAsMTIgKzQwLDE3IEBACiAgIGZpbmlzaAogZW5kaWYKIAotZnVuY3Rpb24hIEdldEVydWJ5SW5kZW50KCkKK2Z1bmN0aW9uISBHZXRFcnVieUluZGVudCguLi4pCisgIGlmIGE6MCAmJiBhOjEgPT0gJy4nCisgICAgbGV0IHY6bG51bSA9IGxpbmUoJy4nKQorICBlbHNlaWYgYTowICYmIGE6MSA9fiAnXlxkJworICAgIGxldCB2OmxudW0gPSBhOjEKKyAgZW5kaWYKICAgbGV0IHZjb2wgPSBjb2woJy4nKQogICBjYWxsIGN1cnNvcih2OmxudW0sMSkKICAgbGV0IGlucnVieSA9IHNlYXJjaHBhaXIoJzwlJywnJywnJT4nLCdXJykKICAgY2FsbCBjdXJzb3IodjpsbnVtLHZjb2wpCi0gIGlmIGlucnVieSAmJiBnZXRsaW5lKHY6bG51bSkgIX4gJ148JScKKyAgaWYgaW5ydWJ5ICYmIGdldGxpbmUodjpsbnVtKSAhfiAnXjwlXHxeXHMqLVw9JT4nCiAgICAgbGV0IGluZCA9IEdldFJ1YnlJbmRlbnQoKQogICBlbHNlCiAgICAgZXhlICJsZXQgaW5kID0gIi5iOmVydWJ5X3N1YnR5cGVfaW5kZW50ZXhwcgpAQCAtNTMsMTUgKzU4LDE1IEBACiAgIGxldCBsbnVtID0gcHJldm5vbmJsYW5rKHY6bG51bS0xKQogICBsZXQgbGluZSA9IGdldGxpbmUobG51bSkKICAgbGV0IGNsaW5lID0gZ2V0bGluZSh2OmxudW0pCi0gIGlmIGNsaW5lID1+IyAnPCVccypcJShlbmRcfGVsc2VcfFwlKGVuc3VyZVx8cmVzY3VlXHxlbHNpZlx8d2hlblwpLlx7LVx9XClccypcJSgtXD0lPlx8JFwpJworICBpZiBjbGluZSA9fiMgJzwlLVw9XHMqXCUofVx8ZW5kXHxlbHNlXHxcJShlbnN1cmVcfHJlc2N1ZVx8ZWxzaWZcfHdoZW5cKS5cey1cfVwpXHMqXCUoLVw9JT5cfCRcKScKICAgICBsZXQgaW5kID0gaW5kIC0gJnN3CiAgIGVuZGlmCi0gIGlmIGxpbmUgPX4jICdcPGRvXCUoXHMqfFtefF0qfFwpXD1ccyotXD0lPicKKyAgaWYgbGluZSA9fiMgJ1wlKHtcfFw8ZG9cKVwlKFxzKnxbXnxdKnxcKVw9XHMqLVw9JT4nCiAgICAgbGV0IGluZCA9IGluZCArICZzdwotICBlbHNlaWYgbGluZSA9fiMgJzwlXHMqXCUobW9kdWxlXHxjbGFzc1x8ZGVmXHxpZlx8Zm9yXHx3aGlsZVx8dW50aWxcfGVsc2VcfGVsc2lmXHxjYXNlXHx3aGVuXHx1bmxlc3NcfGJlZ2luXHxlbnN1cmVcfHJlc2N1ZVwpXD4uKiU+JworICBlbHNlaWYgbGluZSA9fiMgJzwlLVw9XHMqXCUobW9kdWxlXHxjbGFzc1x8ZGVmXHxpZlx8Zm9yXHx3aGlsZVx8dW50aWxcfGVsc2VcfGVsc2lmXHxjYXNlXHx3aGVuXHx1bmxlc3NcfGJlZ2luXHxlbnN1cmVcfHJlc2N1ZVwpXD4uKiU+JwogICAgIGxldCBpbmQgPSBpbmQgKyAmc3cKICAgZW5kaWYKLSAgaWYgbGluZSA9fiMgJ15ccyo8JVs9I11cPVxzKiQnICYmIGNsaW5lICF+IyAnXlxzKmVuZFw+JworICBpZiBsaW5lID1+IyAnXlxzKjwlWz0jLV1cPVxzKiQnICYmIGNsaW5lICF+IyAnXlxzKmVuZFw+JwogICAgIGxldCBpbmQgPSBpbmQgKyAmc3cKICAgZW5kaWYKICAgaWYgY2xpbmUgPX4jICdeXHMqLVw9JT5ccyokJwpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvaGFtbC52aW0gYi9ydW50aW1lL2luZGVudC9oYW1sLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWZlZWUwCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9pbmRlbnQvaGFtbC52aW0KQEAgLTAsMCArMSw3MyBAQAorIiBWaW0gaW5kZW50IGZpbGUKKyIgTGFuZ3VhZ2U6CUhBTUwKKyIgTWFpbnRhaW5lcjoJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgorIiBMYXN0IENoYW5nZToJMjAwNyBEZWMgMTYKKworaWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQorICBmaW5pc2gKK2VuZGlmCitydW50aW1lISBpbmRlbnQvcnVieS52aW0KK3VubGV0ISBiOmRpZF9pbmRlbnQKK2xldCBiOmRpZF9pbmRlbnQgPSAxCisKK3NldGxvY2FsIGF1dG9pbmRlbnQgc3c9MiBldAorc2V0bG9jYWwgaW5kZW50ZXhwcj1HZXRIYW1sSW5kZW50KCkKK3NldGxvY2FsIGluZGVudGtleXM9byxPLCo8UmV0dXJuPix9LF0sMCksIV5GLD1lbmQsPWVsc2UsPWVsc2lmLD1yZXNjdWUsPWVuc3VyZSw9d2hlbgorCisiIE9ubHkgZGVmaW5lIHRoZSBmdW5jdGlvbiBvbmNlLgoraWYgZXhpc3RzKCIqR2V0SGFtbEluZGVudCIpCisgIGZpbmlzaAorZW5kaWYKKworbGV0IHM6YXR0cmlidXRlcyA9ICdcJSh7Llx7LVx9fVx8XFsuXHstXH1cXVwpJworbGV0IHM6dGFnID0gJ1wlKFslLiNdW1s6YWxudW06XV8tXVwrXHwnLnM6YXR0cmlidXRlcy4nXCkqWzw+XSonCisKK2lmICFleGlzdHMoJ2c6aGFtbF9zZWxmX2Nsb3NpbmdfdGFncycpCisgIGxldCBnOmhhbWxfc2VsZl9jbG9zaW5nX3RhZ3MgPSAnbWV0YXxsaW5rfGltZ3xocnxicicKK2VuZGlmCisKK2Z1bmN0aW9uISBHZXRIYW1sSW5kZW50KCkKKyAgbGV0IGxudW0gPSBwcmV2bm9uYmxhbmsodjpsbnVtLTEpCisgIGlmIGxudW0gPT0gMAorICAgIHJldHVybiAwCisgIGVuZGlmCisgIGxldCBsaW5lID0gc3Vic3RpdHV0ZShnZXRsaW5lKGxudW0pLCdcc1wrJCcsJycsJycpCisgIGxldCBjbGluZSA9IHN1YnN0aXR1dGUoc3Vic3RpdHV0ZShnZXRsaW5lKHY6bG51bSksJ1xzXCskJywnJywnJyksJ15cc1wrJywnJywnJykKKyAgbGV0IGxhc3Rjb2wgPSBzdHJsZW4obGluZSkKKyAgbGV0IGxpbmUgPSBzdWJzdGl0dXRlKGxpbmUsJ15cc1wrJywnJywnJykKKyAgbGV0IGluZGVudCA9IGluZGVudChsbnVtKQorICBsZXQgY2luZGVudCA9IGluZGVudCh2OmxudW0pCisgIGlmIGNsaW5lID1+IyAnXHZeLVxzKiUoZWxzaWZ8ZWxzZXx3aGVuKT4nCisgICAgbGV0IGluZGVudCA9IGNpbmRlbnQgPCBpbmRlbnQgPyBjaW5kZW50IDogaW5kZW50IC0gJnN3CisgIGVuZGlmCisgIGxldCBpbmNyZWFzZSA9IGluZGVudCArICZzdworICBpZiBpbmRlbnQgPT0gaW5kZW50KGxudW0pCisgICAgbGV0IGluZGVudCA9IGNpbmRlbnQgPD0gaW5kZW50ID8gLTEgOiBpbmNyZWFzZQorICBlbmRpZgorICAibGV0IGluZGVudCA9IGluZGVudCA9PSBpbmRlbnQobG51bSkgPyAtMSA6IGluZGVudAorICAibGV0IGluZGVudCA9IGluZGVudCA+IGluZGVudChsbnVtKSArICZzdyA/IGluZGVudChsbnVtKSArICZzdyA6IGluZGVudAorCisgIGxldCBncm91cCA9IHN5bklEYXR0cihzeW5JRChsbnVtLGxhc3Rjb2wsMSksJ25hbWUnKQorCisgIGlmIGxpbmUgPX4gJ14hISEnCisgICAgcmV0dXJuIGluZGVudAorICBlbHNlaWYgbGluZSA9fiAnXi9cJShcW1teXV0qXF1cKVw9JCcKKyAgICByZXR1cm4gaW5jcmVhc2UKKyAgZWxzZWlmIGxpbmUgPX4gJ146JworICAgIHJldHVybiBpbmNyZWFzZQorICBlbHNlaWYgbGluZSA9fiAnXicuczp0YWcuJ1s9fi1dXHMqXCUoXCUoaWZcfGVsc2VcfGVsc2lmXHx1bmxlc3NcfGNhc2VcfHdoZW5cfHdoaWxlXHx1bnRpbFx8Zm9yXHxiZWdpblx8bW9kdWxlXHxjbGFzc1x8ZGVmXClcPlwlKC4qXDxlbmRcPlwpXEAhXHwuKmRvIHxbXnxdKnxccyokXCknCisgICAgcmV0dXJuIGluY3JlYXNlCisgIGVsc2VpZiBsaW5lID09ICctIycKKyAgICByZXR1cm4gaW5jcmVhc2UKKyAgZWxzZWlmIGdyb3VwID1+PyAnXHZeKGhhbWxTZWxmQ2xvc2VyKSQnIHx8IGxpbmUgPX4/ICdeJVx2JSgnLmc6aGFtbF9zZWxmX2Nsb3NpbmdfdGFncy4nKT4nCisgICAgcmV0dXJuIGluZGVudAorICBlbHNlaWYgZ3JvdXAgPX4/ICdcdl4lKGhhbWxUYWd8aGFtbEF0dHJpYnV0ZXNEZWxpbWl0ZXJ8aGFtbE9iamVjdERlbGltaXRlcnxoYW1sQ2xhc3N8aGFtbElkfGh0bWxUYWdOYW1lfGh0bWxTcGVjaWFsVGFnTmFtZSkkJworICAgIHJldHVybiBpbmNyZWFzZQorICBlbHNlaWYgc3luSURhdHRyKHN5bklEKHY6bG51bSwxLDEpLCduYW1lJykgPT0/ICdoYW1sUnVieUZpbHRlcicKKyAgICByZXR1cm4gR2V0UnVieUluZGVudCgpCisgIGVsc2UKKyAgICByZXR1cm4gaW5kZW50CisgIGVuZGlmCitlbmRmdW5jdGlvbgorCisiIHZpbTpzZXQgc3c9MjoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L2xvZ3RhbGsudmltIGIvcnVudGltZS9pbmRlbnQvbG9ndGFsay52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTllNmVjOAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvaW5kZW50L2xvZ3RhbGsudmltCkBAIC0wLDAgKzEsNjEgQEAKKyIgIE1haW50YWluZXI6CVBhdWxvIE1vdXJhIDxwbW91cmFAbG9ndGFsay5vcmc+CisiICBSZXZpc2VkIG9uOgkyMDA4LjA2LjAyCisiICBMYW5ndWFnZToJTG9ndGFsaworCisiIFRoaXMgTG9ndGFsayBpbmRlbnQgZmlsZSBpcyBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIFByb2xvZworIiBpbmRlbnQgZmlsZSB3cml0dGVuIGJ5IEdlcmdlbHkgS29udHJhCisKKyIgT25seSBsb2FkIHRoaXMgaW5kZW50IGZpbGUgd2hlbiBubyBvdGhlciB3YXMgbG9hZGVkLgoraWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQorCWZpbmlzaAorZW5kaWYKKworbGV0IGI6ZGlkX2luZGVudCA9IDEKKworc2V0bG9jYWwgaW5kZW50ZXhwcj1HZXRMb2d0YWxrSW5kZW50KCkKK3NldGxvY2FsIGluZGVudGtleXMtPTosMCMKK3NldGxvY2FsIGluZGVudGtleXMrPTAlLC0sMDssPiwwKQorCisiIE9ubHkgZGVmaW5lIHRoZSBmdW5jdGlvbiBvbmNlLgoraWYgZXhpc3RzKCIqR2V0TG9ndGFsa0luZGVudCIpCisJZmluaXNoCitlbmRpZgorCitmdW5jdGlvbiEgR2V0TG9ndGFsa0luZGVudCgpCisJIiBGaW5kIGEgbm9uLWJsYW5rIGxpbmUgYWJvdmUgdGhlIGN1cnJlbnQgbGluZS4KKwlsZXQgcG51bSA9IHByZXZub25ibGFuayh2OmxudW0gLSAxKQorCSIgSGl0IHRoZSBzdGFydCBvZiB0aGUgZmlsZSwgdXNlIHplcm8gaW5kZW50LgorCWlmIHBudW0gPT0gMAorCQlyZXR1cm4gMAorCWVuZGlmCisJbGV0IGxpbmUgPSBnZXRsaW5lKHY6bG51bSkKKwlsZXQgcGxpbmUgPSBnZXRsaW5lKHBudW0pCisKKwlsZXQgaW5kID0gaW5kZW50KHBudW0pCisJIiBQcmV2aW91cyBsaW5lIHdhcyBjb21tZW50IC0+IHVzZSBwcmV2aW91cyBsaW5lJ3MgaW5kZW50CisJaWYgcGxpbmUgPX4gJ15ccyolJworCQlyZXR1IGluZAorCWVuZGlmCisJIiBDaGVjayBmb3IgZW50aXR5IG9wZW5pbmcgZGlyZWN0aXZlIG9uIHByZXZpb3VzIGxpbmUKKwlpZiBwbGluZSA9fiAnXlxzKjotXHNcKG9iamVjdFx8cHJvdG9jb2xcfGNhdGVnb3J5XClcemUoLiosJCcKKwkJbGV0IGluZCA9IGluZCArICZzdworCSIgQ2hlY2sgZm9yIGNsYXVzZSBoZWFkIG9uIHByZXZpb3VzIGxpbmUKKwllbHNlaWYgcGxpbmUgPX4gJzotXHMqXCglLipcKVw/JCcKKwkJbGV0IGluZCA9IGluZCArICZzdworCSIgQ2hlY2sgZm9yIGVudGl0eSBjbG9zaW5nIGRpcmVjdGl2ZSBvbiBwcmV2aW91cyBsaW5lCisJZWxzZWlmIHBsaW5lID1+ICdeXHMqOi1cc2VuZF9cKG9iamVjdFx8cHJvdG9jb2xcfGNhdGVnb3J5XClcLlwoJS4qXClcPyQnCisJCWxldCBpbmQgPSBpbmQgLSAmc3cKKwkiIENoZWNrIGZvciBlbmQgb2YgY2xhdXNlIG9uIHByZXZpb3VzIGxpbmUKKwllbHNlaWYgcGxpbmUgPX4gJ1wuXHMqXCglLipcKVw/JCcKKwkJbGV0IGluZCA9IGluZCAtICZzdworCWVuZGlmCisJIiBDaGVjayBmb3Igb3BlbmluZyBjb25kaXRpb25hbCBvbiBwcmV2aW91cyBsaW5lCisJaWYgcGxpbmUgPX4gJ15ccypcKFsoO11cfC0+XCknICYmIHBsaW5lICF+ICdcLlxzKlwoJS4qXClcPyQnICYmIHBsaW5lICF+ICdeLipcKFspXVssXVxzKlwoJS4qXClcPyRcKScKKwkJbGV0IGluZCA9IGluZCArICZzdworCWVuZGlmCisJIiBDaGVjayBmb3IgY2xvc2luZyBhbiB1bmNsb3NlZCBwYXJlbiwgb3IgbWlkZGxlIDsgb3IgLT4KKwlpZiBsaW5lID1+ICdeXHMqXChbKTtdXHwtPlwpJworCQlsZXQgaW5kID0gaW5kIC0gJnN3CisJZW5kaWYKKwlyZXR1cm4gaW5kCitlbmRmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvcGhwLnZpbSBiL3J1bnRpbWUvaW5kZW50L3BocC52aW0KaW5kZXggZDczNDYwZC4uNjEyNGViMiAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvcGhwLnZpbQorKysgYi9ydW50aW1lL2luZGVudC9waHAudmltCkBAIC0yLDExICsyLDE0IEBACiAiIExhbmd1YWdlOglQSFAKICIgQXV0aG9yOglKb2huIFdlbGxlc3ogPEpvaG4ud2VsbGVzeiAoQVQpIHRlYXNlciAoRE9UKSBmcj4KICIgVVJMOgkJaHR0cDovL3d3dy4yMDcycHJvZHVjdGlvbnMuY29tL3ZpbS9pbmRlbnQvcGhwLnZpbQotIiBMYXN0IENoYW5nZTogIDIwMDcgSnVuIDI0CisiIExhc3QgQ2hhbmdlOiAgMjAwOCBKdW5lIDd0aAogIiBOZXdzbGV0dGVyOiAgIGh0dHA6Ly93d3cuMjA3MnByb2R1Y3Rpb25zLmNvbS8/dG89cGhwLWluZGVudC1mb3ItdmltLW5ld3NsZXR0ZXIucGhwCi0iIFZlcnNpb246CTEuMjQKKyIgVmVyc2lvbjoJMS4yOAogIgotIiAgVGhlIGNoYW5nZSBsb2cgYW5kIGFsbCB0aGUgY29tbWVudHMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGlzIGZpbGUuCisiICBJZiB5b3UgZmluZCBhIGJ1ZywgcGxlYXNlIGUtbWFpbCBtZSBhdCBKb2huLndlbGxlc3ogKEFUKSB0ZWFzZXIgKERPVCkgZnIKKyIgIHdpdGggYW4gZXhhbXBsZSBvZiBjb2RlIHRoYXQgYnJlYWtzIHRoZSBhbGdvcml0aG0uCisiCisiICAtLS0+IFRoZSBjaGFuZ2UgbG9nIGFuZCBhbGwgdGhlIGNvbW1lbnRzIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhpcyBmaWxlLgogIgogIiAgRm9yIGEgY29tcGxldGUgY2hhbmdlIGxvZyBhbmQgZnVsbHkgY29tbWVudGVkIGNvZGUsIGRvd25sb2FkIHRoZSBzY3JpcHQgb24KICIgIDIwNzJwcm9kdWN0aW9ucy5jb20gYXQgdGhlIFVSSSBwcm92aWRlZCBhYm92ZS4KQEAgLTE5LDEyICsyMiwxNSBAQAogIgogIgogIiBOT1RFOiBUaGlzIHNjcmlwdCBtdXN0IGJlIHVzZWQgd2l0aCBQSFAgc3ludGF4IE9OIGFuZCB3aXRoIHRoZSBwaHAgc3ludGF4Ci0iCXNjcmlwdCBieSBMdXR6IEV5bWVycyAoIGh0dHA6Ly93d3cuaXNwLmRlL2RhdGEvcGhwLnZpbSApIHRoYXQncyB0aGUgc2NyaXB0IGJ1bmRsZWQgd2l0aCBWaW0uCisiCXNjcmlwdCBieSBMdXR6IEV5bWVycyAoaHR0cDovL3d3dy5pc3AuZGUvZGF0YS9waHAudmltICkgb3Igd2l0aCB0aGUKKyIJc2NyaXB0IGJ5IFBldGVyIEhvZGdlIChodHRwOi8vd3d3LnZpbS5vcmcvc2NyaXB0cy9zY3JpcHQucGhwP3NjcmlwdF9pZD0xNTcxICkKKyIJdGhlIGxhdGVyIGlzIGJ1bmJkbGVkIGJ5IGRlZmF1bHQgd2l0aCB2aW0gNy4KICIKICIKLSIJSW4gdGhlIGNhc2UgeW91IGhhdmUgc3ludGF4IGVycm9ycyBpbiB5b3VyIHNjcmlwdCBzdWNoIGFzIGVuZCBvZiBIZXJlRG9jCi0iCXRhZ3Mgbm90IGF0IGNvbCAxIHlvdSdsbCBoYXZlIHRvIGluZGVudCB5b3VyIGZpbGUgMiB0aW1lcyAoVGhpcyBzY3JpcHQKLSIJd2lsbCBhdXRvbWF0aWNhbGx5IHB1dCBIZXJlRG9jIGVuZCB0YWdzIGF0IGNvbCAxKS4KKyIJSW4gdGhlIGNhc2UgeW91IGhhdmUgc3ludGF4IGVycm9ycyBpbiB5b3VyIHNjcmlwdCBzdWNoIGFzIEhlcmVEb2MgZW5kCisiCWlkZW50aWZpZXJzIG5vdCBhdCBjb2wgMSB5b3UnbGwgaGF2ZSB0byBpbmRlbnQgeW91ciBmaWxlIDIgdGltZXMgKFRoaXMKKyIJc2NyaXB0IHdpbGwgYXV0b21hdGljYWxseSBwdXQgSGVyZURvYyBlbmQgaWRlbnRpZmllcnMgYXQgY29sIDEgaWYKKyIJdGhleSBhcmUgZm9sbG93ZWQgYnkgYSAnOycpLgogIgogIgogIiBOT1RFOiBJZiB5b3UgYXJlIGVkaXRpbmcgZmlsZSBpbiBVbml4IGZpbGUgZm9ybWF0IGFuZCB0aGF0IChieSBhY2NpZGVudCkKQEAgLTM3LDggKzQzLDggQEAKICIKICIgb3Igc2ltcGx5ICdsZXQnIHRoZSBvcHRpb24gUEhQX3JlbW92ZUNSd2hlblVuaXggdG8gMSBhbmQgdGhlIHNjcmlwdCB3aWxsCiAiIHNpbGVudGx5IHJlbW92ZSB0aGVtIHdoZW4gVklNIGxvYWQgdGhpcyBzY3JpcHQgKGF0IGVhY2ggYnVmcmVhZCkuCi0KLQorIgorIgogIiBPcHRpb25zOiBQSFBfYXV0b2Zvcm1hdGNvbW1lbnQgPSAwIHRvIG5vdCBlbmFibGUgYXV0b2Zvcm1hdGluZyBvZiBjb21tZW50IGJ5CiAiCQkgICAgZGVmYXVsdCwgaWYgc2V0IHRvIDAsIHRoaXMgc2NyaXB0IHdpbGwgbGV0IHRoZSAnZm9ybWF0b3B0aW9ucycgc2V0dGluZyBpbnRhY3QuCiAiCkBAIC00OCw3ICs1NCw3IEBACiAiIE9wdGlvbnM6IFBIUF9yZW1vdmVDUndoZW5Vbml4ID0gMSB0byBtYWtlIHRoZSBzY3JpcHQgYXV0b21hdGljYWxseSByZW1vdmUgQ1IKICIJCSAgIGF0IGVuZCBvZiBsaW5lcyAoYnkgZGVmYXVsdCB0aGlzIG9wdGlvbiBpcyB1bnNldCksIE5PVEUgdGhhdCB5b3UKICIJCSAgIE1VU1QgcmVtb3ZlIENSIHdoZW4gdGhlIGZpbGVmb3JtYXQgaXMgVU5JWCBlbHNlIHRoZSBpbmRlbnRhdGlvbgotIgkJICAgd29uJ3QgYmUgY29ycmVjdC4uLgorIgkJICAgd29uJ3QgYmUgY29ycmVjdCEKICIKICIgT3B0aW9uczogUEhQX0JyYWNlc0F0Q29kZUxldmVsID0gMSB0byBpbmRlbnQgdGhlICd7JyBhbmQgJ30nIGF0IHRoZSBzYW1lCiAiCQkgICBsZXZlbCB0aGFuIHRoZSBjb2RlIHRoZXkgY29udGFpbi4KQEAgLTY3LDYgKzczLDEwIEBACiAiCiAiCQkJTk9URTogVGhlIHNjcmlwdCB3aWxsIGJlIGEgYml0IHNsb3dlciBpZiB5b3UgdXNlIHRoaXMgb3B0aW9uIGJlY2F1c2UKICIJCQlzb21lIG9wdGltaXphdGlvbnMgd29uJ3QgYmUgYXZhaWxhYmxlLgorIgorIiBPcHRpb25zOiBQSFBfdmludGFnZV9jYXNlX2RlZmF1bHRfaW5kZW50ID0gMSAoZGVmYXVsdHMgdG8gMCkgdG8gYWRkIGEgbWVhbmluZ2xlc3MgaW5kZW50CisiCQkgICAgYmVmYW9yZSAnY2FzZTonIGFuZCAnZGVmYXVsdCI6JyBzdGF0ZW1lbnQgaW4gc3dpdGNoIGJsb2NrCisiCiAKIGlmIGV4aXN0cygiYjpkaWRfaW5kZW50IikKICAgICBmaW5pc2gKQEAgLTg5LDEyICs5OSwyMSBAQAogICAgIGxldCBiOlBIUF9CcmFjZXNBdENvZGVMZXZlbCA9IDAKIGVuZGlmCiAKKwogaWYgZXhpc3RzKCJQSFBfYXV0b2Zvcm1hdGNvbW1lbnQiKQogICAgIGxldCBiOlBIUF9hdXRvZm9ybWF0Y29tbWVudCA9IFBIUF9hdXRvZm9ybWF0Y29tbWVudAogZWxzZQogICAgIGxldCBiOlBIUF9hdXRvZm9ybWF0Y29tbWVudCA9IDEKIGVuZGlmCiAKK2lmIGV4aXN0cygiUEhQX3ZpbnRhZ2VfY2FzZV9kZWZhdWx0X2luZGVudCIpCisgICAgbGV0IGI6UEhQX3ZpbnRhZ2VfY2FzZV9kZWZhdWx0X2luZGVudCA9IFBIUF92aW50YWdlX2Nhc2VfZGVmYXVsdF9pbmRlbnQKK2Vsc2UKKyAgICBsZXQgYjpQSFBfdmludGFnZV9jYXNlX2RlZmF1bHRfaW5kZW50ID0gMAorZW5kaWYKKworCisKIGxldCBiOlBIUF9sYXN0aW5kZW50ZWQgPSAwCiBsZXQgYjpQSFBfaW5kZW50YmVmb3JlbGFzdCA9IDAKIGxldCBiOlBIUF9pbmRlbnRpbmdodWdlID0gMApAQCAtMTgyLDggKzIwMSw4IEBACiAJICAgIGVuZGlmCiAKIAotCWVsc2VpZiBsYXN0bGluZSA9fj8gJ15cYVx3KjskJyAmJiBsYXN0bGluZSAhfj8gczpub3RQaHBIZXJlRG9jCi0JICAgIGxldCB0b2ZpbmQ9c3Vic3RpdHV0ZSggbGFzdGxpbmUsICdcKFteO11cK1wpOycsICc8PDxcMSQnLCAnJykKKwllbHNlaWYgbGFzdGxpbmUgPX4/ICdeXGFcdyo7XD0kJyAmJiBsYXN0bGluZSAhfj8gczpub3RQaHBIZXJlRG9jICIgWFhYIDA2MDcKKwkgICAgbGV0IHRvZmluZD1zdWJzdGl0dXRlKCBsYXN0bGluZSwgJ1woXGFcdypcKTtcPScsICc8PDwnJ1xcPVwxJydcXD0kJywgJycpICIgWFhYIDA2MDcKIAkgICAgd2hpbGUgZ2V0bGluZShsbnVtKSAhfj8gdG9maW5kICYmIGxudW0gPiAxCiAJCWxldCBsbnVtID0gbG51bSAtIDEKIAkgICAgZW5kd2hpbGUKQEAgLTIwOSw3ICsyMjgsNyBAQAogCiAgICAgbGV0IGxpbmUgPSBnZXRsaW5lKCIuIikKIAotICAgaWYgbGluZSA9fiAnXCUoIi4qXClcQDw9L1wqXCUoLioiXClcQD0nIHx8IGxpbmUgPX4gJ1wlKC8vLipcKVxAPD0vXConCisgICBpZiBsaW5lID1+ICdcJSgiLipcKVxAPD0vXCpcJSguKiJcKVxAPScgfHwgbGluZSA9fiAnXCUoXCUoLy9cfCNcKS4qXClcQDw9L1wqJwogICAgICAgIHJldHVybiAxCiAgICBlbHNlCiAgICAgICAgcmV0dXJuIDAKQEAgLTIxOCw3ICsyMzcsNyBAQAogCiBmdW5jdGlvbiEgU2tpcHBtYXRjaCgpICAiIHt7ewogICAgIGxldCBzeW5uYW1lID0gc3luSURhdHRyKHN5bklEKGxpbmUoIi4iKSwgY29sKCIuIiksIDApLCAibmFtZSIpCi0gICAgaWYgc3lubmFtZSA9PSAiRGVsaW1pdGVyIiB8fCBzeW5uYW1lID09ICJwaHBSZWdpb25EZWxpbWl0ZXIiIHx8IHN5bm5hbWUgPX4jICJecGhwUGFyZW50IiB8fCBzeW5uYW1lID09ICJwaHBBcnJheVBhcmVucyIgfHwgc3lubmFtZSA9fiMgJ15waHBcJShCbG9ja1x8QnJhY2VcKScgfHwgc3lubmFtZSA9PSAiamF2YVNjcmlwdEJyYWNlcyIgfHwgc3lubmFtZSA9PSAicGhwQ29tbWVudCIgJiYgYjpVc2VySXNUeXBpbmdDb21tZW50CisgICAgaWYgc3lubmFtZSA9PSAiRGVsaW1pdGVyIiB8fCBzeW5uYW1lID09ICJwaHBSZWdpb25EZWxpbWl0ZXIiIHx8IHN5bm5hbWUgPX4jICJecGhwUGFyZW50IiB8fCBzeW5uYW1lID09ICJwaHBBcnJheVBhcmVucyIgfHwgc3lubmFtZSA9fiMgJ15waHBcJShCbG9ja1x8QnJhY2VcKScgfHwgc3lubmFtZSA9PSAiamF2YVNjcmlwdEJyYWNlcyIgfHwgc3lubmFtZSA9fiMgIl5waHBDb21tZW50IiAmJiBiOlVzZXJJc1R5cGluZ0NvbW1lbnQKIAlyZXR1cm4gMAogICAgIGVsc2UKIAlyZXR1cm4gMQpAQCAtMjk1LDggKzMxNCw4IEBACiAgICAgZW5kaWYKIGVuZGZ1bmN0aW9uICIgfX19CiAKLWxldCBzOm5vdFBocEhlcmVEb2MgPSAnXCUoYnJlYWtcfHJldHVyblx8Y29udGludWVcfGV4aXRcKTsnCi1sZXQgczpibG9ja3N0YXJ0ID0gJ1wlKFwlKFwlKH1ccypcKVw9ZWxzZVwlKFxzXCtcKVw9XClcPWlmXD5cfGVsc2VcPlx8d2hpbGVcPlx8c3dpdGNoXD5cfGZvclwlKGVhY2hcKVw9XD5cfGRlY2xhcmVcPlx8Y2xhc3NcPlx8aW50ZXJmYWNlXD5cfGFic3RyYWN0XD5cfHRyeVw+XHxjYXRjaFw+XHxbfCZdXCknCitsZXQgczpub3RQaHBIZXJlRG9jID0gJ1wlKGJyZWFrXHxyZXR1cm5cfGNvbnRpbnVlXHxleGl0XHxlbHNlXCknCitsZXQgczpibG9ja3N0YXJ0ID0gJ1wlKFwlKFwlKH1ccypcKVw9ZWxzZVwlKFxzXCtcKVw9XClcPWlmXD5cfGVsc2VcPlx8d2hpbGVcPlx8c3dpdGNoXD5cfGZvclwlKGVhY2hcKVw9XD5cfGRlY2xhcmVcPlx8Y2xhc3NcPlx8aW50ZXJmYWNlXD5cfGFic3RyYWN0XD5cfHRyeVw+XHxjYXRjaFw+XCknCiAKIGxldCBzOmF1dG9yZXN0b3B0aW9ucyA9IDAKIGlmICEgczphdXRvcmVzdG9wdGlvbnMKQEAgLTMxMCwxMSArMzI5LDExIEBACiAKIAkgICAgc2V0bG9jYWwgY29tbWVudHM9czE6LyosbWI6KixleDoqLyw6Ly8sOiMKIAotCSAgICAiIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMtPXQKKwkgICAgc2V0bG9jYWwgZm9ybWF0b3B0aW9ucy09dAogCSAgICBzZXRsb2NhbCBmb3JtYXRvcHRpb25zKz1xCiAJICAgIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMrPXIKIAkgICAgc2V0bG9jYWwgZm9ybWF0b3B0aW9ucys9bwotCSAgICAiIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMrPXcKKwkgICAgc2V0bG9jYWwgZm9ybWF0b3B0aW9ucys9dwogCSAgICBzZXRsb2NhbCBmb3JtYXRvcHRpb25zKz1jCiAJICAgIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMrPWIKIAllbmRpZgpAQCAtMzQxLDcgKzM2MCw3IEBACiAgICAgaWYgIWI6UEhQX2luZGVudGluZ2h1Z2UgJiYgYjpQSFBfbGFzdGluZGVudGVkID4gYjpQSFBfaW5kZW50YmVmb3JlbGFzdAogCWlmIGI6UEhQX2luZGVudGJlZm9yZWxhc3QKIAkgICAgbGV0IGI6UEhQX2luZGVudGluZ2h1Z2UgPSAxCi0JICAgIGVjaG9tICdMYXJnZSBpbmRlbnRpbmcgZGV0ZWN0ZWQsIHNwZWVkIG9wdGltaXphdGlvbnMgZW5nYWdlZCcKKwkgICAgZWNob20gJ0xhcmdlIGluZGVudGluZyBkZXRlY3RlZCwgc3BlZWQgb3B0aW1pemF0aW9ucyBlbmdhZ2VkICh2MS4yOCknCiAJZW5kaWYKIAlsZXQgYjpQSFBfaW5kZW50YmVmb3JlbGFzdCA9IGI6UEhQX2xhc3RpbmRlbnRlZAogICAgIGVuZGlmCkBAIC0zODEsNyArNDAwLDcgQEAKIAkJbGV0IGI6SW5QSFBjb2RlID0gMQogCQlsZXQgYjpJblBIUGNvZGVfdG9maW5kID0gIiIKIAotCQlpZiBzeW5uYW1lID09ICJwaHBDb21tZW50IgorCQlpZiBzeW5uYW1lID1+IyAiXnBocENvbW1lbnQiCiAJCSAgICBsZXQgYjpVc2VySXNUeXBpbmdDb21tZW50ID0gMQogCQllbHNlCiAJCSAgICBsZXQgYjpVc2VySXNUeXBpbmdDb21tZW50ID0gMApAQCAtMzk2LDExICs0MTUsMTEgQEAKIAkJbGV0IGI6VXNlcklzVHlwaW5nQ29tbWVudCA9IDAKIAogCQlsZXQgbG51bSA9IHY6bG51bSAtIDEKLQkJd2hpbGUgZ2V0bGluZShsbnVtKSAhfj8gJzw8PFxhXHcqJCcgJiYgbG51bSA+IDEKKwkJd2hpbGUgZ2V0bGluZShsbnVtKSAhfj8gJzw8PCcnXD1cYVx3KicnXD0kJyAmJiBsbnVtID4gMQogCQkgICAgbGV0IGxudW0gPSBsbnVtIC0gMQogCQllbmR3aGlsZQogCi0JCWxldCBiOkluUEhQY29kZV90b2ZpbmQgPSBzdWJzdGl0dXRlKCBnZXRsaW5lKGxudW0pLCAnXi4qPDw8XChcYVx3KlwpXGMnLCAnXlxccypcMTskJywgJycpCisJCWxldCBiOkluUEhQY29kZV90b2ZpbmQgPSBzdWJzdGl0dXRlKCBnZXRsaW5lKGxudW0pLCAnXi4qPDw8JydcPVwoXGFcdypcKScnXD0kJywgJ15cXHMqXDE7XFw9JCcsICcnKSAiIFhYWCAwNjA3CiAJICAgIGVuZGlmCiAJZWxzZQogCSAgICBsZXQgYjpJblBIUGNvZGUgPSAwCkBAIC00NTMsOSArNDcyLDkgQEAKIAkJbGV0IGI6SW5QSFBjb2RlX2FuZF9zY3JpcHQgPSAxCiAJICAgIGVuZGlmCiAKLQllbHNlaWYgbGFzdF9saW5lID1+PyAnPDw8XGFcdyokJworCWVsc2VpZiBsYXN0X2xpbmUgPX4/ICc8PDwnJ1w9XGFcdyonJ1w9JCcgIiBYWFggMDYwNwogCSAgICBsZXQgYjpJblBIUGNvZGUgPSAwCi0JICAgIGxldCBiOkluUEhQY29kZV90b2ZpbmQgPSBzdWJzdGl0dXRlKCBsYXN0X2xpbmUsICdeLio8PDxcKFxhXHcqXClcYycsICdeXFxzKlwxOyQnLCAnJykKKwkgICAgbGV0IGI6SW5QSFBjb2RlX3RvZmluZCA9IHN1YnN0aXR1dGUoIGxhc3RfbGluZSwgJ14uKjw8PCcnXD1cKFxhXHcqXCknJ1w9JCcsICdeXFxzKlwxO1xcPSQnLCAnJykgIiBYWFggMDYwNwogCiAJZWxzZWlmICFVc2VySXNFZGl0aW5nICYmIGNsaW5lID1+ICdeXHMqL1wqXCUoLipcKi9cKVxAIScgJiYgZ2V0bGluZSh2OmxudW0gKyAxKSAhfiAnXlxzKlwqJwogCSAgICBsZXQgYjpJblBIUGNvZGUgPSAwCkBAIC01MTMsNyArNTMyLDcgQEAKIAlyZXR1cm4gMAogICAgIGVuZGlmCiAKLSAgICBpZiBjbGluZSA9fj8gJ15ccypcYVx3KjskJyAmJiBjbGluZSAhfj8gczpub3RQaHBIZXJlRG9jCisgICAgaWYgY2xpbmUgPX4/ICdeXHMqXGFcdyo7JFx8XlxhXHcqJCcgJiYgY2xpbmUgIX4/IHM6bm90UGhwSGVyZURvYyAiIFhYWCAwNjA3CiAJcmV0dXJuIDAKICAgICBlbmRpZiAiIH19fQogCkBAIC01NTgsNyArNTc3LDcgQEAKIAogICAgIGxldCBkZWZhdWx0T1JjYXNlID0gJ15ccypcJShkZWZhdWx0XHxjYXNlXCkuKjonCiAKLSAgICBpZiBsYXN0X2xpbmUgPX4gJ1s7fV0nLmVuZGxpbmUgJiYgbGFzdF9saW5lICF+IyBkZWZhdWx0T1JjYXNlCisgICAgaWYgbGFzdF9saW5lID1+ICdbO31dJy5lbmRsaW5lICYmIGxhc3RfbGluZSAhfiAnXiknICYmIGxhc3RfbGluZSAhfiMgZGVmYXVsdE9SY2FzZSAiIEFkZGVkICYmIGxhc3RfbGluZSAhfiAnXiknIG9uIDIwMDctMTItMzAKIAlpZiBpbmQ9PWI6UEhQX2RlZmF1bHRfaW5kZW50aW5nCiAJICAgIHJldHVybiBiOlBIUF9kZWZhdWx0X2luZGVudGluZwogCWVsc2VpZiBiOlBIUF9pbmRlbnRpbmdodWdlICYmIGluZD09YjpQSFBfQ3VycmVudEluZGVudExldmVsICYmIGNsaW5lICF+IyAnXlxzKlwlKGVsc2VcfFwlKGNhc2VcfGRlZmF1bHRcKS4qOlx8W30pXTtcPVwpJyAmJiBsYXN0X2xpbmUgIX4jICdeXHMqXCUoXCUofVxzKlwpXD1lbHNlXCknICYmIGdldGxpbmUoR2V0TGFzdFJlYWxDb2RlTE51bShsbnVtIC0gMSkpPX4nOycuZW5kbGluZQpAQCAtNTY4LDIwICs1ODcsMjAgQEAKIAogICAgIGxldCBMYXN0TGluZUNsb3NlZCA9IDAKIAotICAgIGxldCB0ZXJtaW5hdGVkID0gJ1wlKDtcJShccyo/PlwpXD1cfDw8PFxhXHcqXHx9XCknLmVuZGxpbmUKKyAgICBsZXQgdGVybWluYXRlZCA9ICdcJSg7XCUoXHMqPz5cKVw9XHw8PDwnJ1w9XGFcdyonJ1w9JFx8XlxzKn1cKScuZW5kbGluZSAiIFhYWCAwNjA3CiAKICAgICBsZXQgdW5zdGF0ZWQgICA9ICdcJSheXHMqJy5zOmJsb2Nrc3RhcnQuJy4qKVx8XCUoLy8uKlwpXEA8IVw8ZScuJ2xzZVw+XCknLmVuZGxpbmUKIAogICAgIGlmIGluZCAhPSBiOlBIUF9kZWZhdWx0X2luZGVudGluZyAmJiBjbGluZSA9fiMgJ15ccyplbHNlXCUoaWZcKVw9XD4nCiAJbGV0IGI6UEhQX0N1cnJlbnRJbmRlbnRMZXZlbCA9IGI6UEhQX2RlZmF1bHRfaW5kZW50aW5nCiAJcmV0dXJuIGluZGVudChGaW5kVGhlSWZPZkFuRWxzZSh2OmxudW0sIDEpKQotICAgIGVsc2VpZiBjbGluZSA9fiAnXlxzKnsnCisgICAgZWxzZWlmIGNsaW5lID1+ICdeXHMqKVw9XHMqeycKIAlsZXQgcHJldmlvdXNfbGluZSA9IGxhc3RfbGluZQogCWxldCBsYXN0X2xpbmVfbnVtID0gbG51bQogCiAJd2hpbGUgbGFzdF9saW5lX251bSA+IDEKIAotCSAgICBpZiBwcmV2aW91c19saW5lID1+ICdeXHMqXCUoJyAuIHM6YmxvY2tzdGFydCAuICdcfFwlKFthLXpBLVpdXHMqXCkqZnVuY3Rpb25cKScgJiYgcHJldmlvdXNfbGluZSAhfiAnXlxzKlt8Jl0nCisJICAgIGlmIHByZXZpb3VzX2xpbmUgPX4gJ15ccypcJSgnIC4gczpibG9ja3N0YXJ0IC4gJ1x8XCUoW2EtekEtWl1ccypcKSpmdW5jdGlvblwpJwogCiAJCWxldCBpbmQgPSBpbmRlbnQobGFzdF9saW5lX251bSkKIApAQCAtNTk2LDExICs2MTUsMTEgQEAKIAkgICAgbGV0IHByZXZpb3VzX2xpbmUgPSBnZXRsaW5lKGxhc3RfbGluZV9udW0pCiAJZW5kd2hpbGUKIAotICAgIGVsc2VpZiBsYXN0X2xpbmUgPX4jIHVuc3RhdGVkICYmIGNsaW5lICF+ICdeXHMqe1x8XlxzKik7XD0nLmVuZGxpbmUKLQlsZXQgaW5kID0gaW5kICsgJnN3CisgICAgZWxzZWlmIGxhc3RfbGluZSA9fiMgdW5zdGF0ZWQgJiYgY2xpbmUgIX4gJ15ccyopO1w9Jy5lbmRsaW5lCisJbGV0IGluZCA9IGluZCArICZzdyAiIHdlIGluZGVudCBvbmUgbGV2ZWwgZnVydGhlciB3aGVuIHRoZSBwcmVjZWRpbmcgbGluZSBpcyBub3Qgc3RhdGVkCiAJcmV0dXJuIGluZAogCi0gICAgZWxzZWlmIGluZCAhPSBiOlBIUF9kZWZhdWx0X2luZGVudGluZyAmJiBsYXN0X2xpbmUgPX4gdGVybWluYXRlZAorICAgIGVsc2VpZiAoaW5kICE9IGI6UEhQX2RlZmF1bHRfaW5kZW50aW5nIHx8IGxhc3RfbGluZSA9fiAnXiknICkgJiYgbGFzdF9saW5lID1+IHRlcm1pbmF0ZWQgIiBBZGRlZCB8fCBsYXN0X2xpbmUgPX4gJ14pJyBvbiAyMDA3LTEyLTMwIChhcnJheSBpbmRlbnRpbmcgW3JwYmxlbSBicm9rZSBvdGhlciB0aGluZ3MpCiAJbGV0IHByZXZpb3VzX2xpbmUgPSBsYXN0X2xpbmUKIAlsZXQgbGFzdF9saW5lX251bSA9IGxudW0KIAlsZXQgTGFzdExpbmVDbG9zZWQgPSAxCkBAIC02NDIsNyArNjYxLDcgQEAKIAkJZW5kaWYKIAogCQlpZiBvbmVfYWhlYWRfaW5kZW50ID09IHR3b19haGVhZF9pbmRlbnQgfHwgbGFzdF9saW5lX251bSA8IDEKLQkJICAgIGlmIHByZXZpb3VzX2xpbmUgPX4jICdbO31dJy5lbmRsaW5lIHx8IGxhc3RfbGluZV9udW0gPCAxCisJCSAgICBpZiBwcmV2aW91c19saW5lID1+IyAnXCUoO1x8XlxzKn1cKScuZW5kbGluZSB8fCBsYXN0X2xpbmVfbnVtIDwgMQogCQkJYnJlYWsKIAkJICAgIGVuZGlmCiAJCWVuZGlmCkBAIC02ODAsOCArNjk5LDkgQEAKIAkJbGV0IGluZCA9IGluZCArICZzdwogCSAgICBlbmRpZgogCi0JICAgIGlmIGI6UEhQX0JyYWNlc0F0Q29kZUxldmVsIHx8IGNsaW5lICF+IyBkZWZhdWx0T1JjYXNlCisJICAgIGlmIGI6UEhQX0JyYWNlc0F0Q29kZUxldmVsIHx8IGI6UEhQX3ZpbnRhZ2VfY2FzZV9kZWZhdWx0X2luZGVudCA9PSAxIHx8IGNsaW5lICF+IyBkZWZhdWx0T1JjYXNlCiAJCWxldCBiOlBIUF9DdXJyZW50SW5kZW50TGV2ZWwgPSBpbmQKKwogCQlyZXR1cm4gaW5kCiAJICAgIGVuZGlmCiAKQEAgLTY5MiwyMSArNzEyLDIzIEBACiAJICAgIGlmIG9wZW5lZHBhcmVudCAhPSBsbnVtCiAJCWxldCBpbmQgPSBpbmRlbnQob3BlbmVkcGFyZW50KQogCSAgICBlbmRpZgotCi0KLQllbHNlaWYgY2xpbmUgIX4gJ15ccyp7JyAmJiBwbGluZSA9fiAnXCUoO1wlKFxzKj8+XClcPVx8PDw8XGFcdypcfHtcfF5ccyonLnM6YmxvY2tzdGFydC4nXHMqKC4qKVwpJy5lbmRsaW5lLidcfF5ccyp9XHwnLmRlZmF1bHRPUmNhc2UKLQorCWVsc2VpZiBsYXN0X2xpbmUgPX4gJ15ccyonLnM6YmxvY2tzdGFydAogCSAgICBsZXQgaW5kID0gaW5kICsgJnN3CiAKKwllbHNlaWYgbGFzdF9saW5lID1+IyBkZWZhdWx0T1JjYXNlCisJICAgIGxldCBpbmQgPSBpbmQgKyAmc3cKKworCisJZWxzZWlmIHBsaW5lID1+ICdcJSg7XCUoXHMqPz5cKVw9XHw8PDwnJ1w9XGFcdyonJ1w9JFx8XlxzKn1cfHtcKScuZW5kbGluZSAuICdcfCcgLiBkZWZhdWx0T1JjYXNlCisKKwkgICAgbGV0IGluZCA9IGluZCArICZzdwogCWVuZGlmCiAKLSAgICBlbHNlaWYgbGFzdF9saW5lID1+IyBkZWZhdWx0T1JjYXNlCi0JbGV0IGluZCA9IGluZCArICZzdwogICAgIGVuZGlmCiAKICAgICBpZiBjbGluZSA9fiAgJ15ccyopO1w9JwogCWxldCBpbmQgPSBpbmQgLSAmc3cKLSAgICBlbHNlaWYgY2xpbmUgPX4jIGRlZmF1bHRPUmNhc2UKKyAgICBlbHNlaWYgY2xpbmUgPX4jIGRlZmF1bHRPUmNhc2UgJiYgbGFzdF9saW5lICF+IyBkZWZhdWx0T1JjYXNlCiAJbGV0IGluZCA9IGluZCAtICZzdwogCiAgICAgZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L3J1YnkudmltIGIvcnVudGltZS9pbmRlbnQvcnVieS52aW0KaW5kZXggMGYyZGU1Ni4uOGE1NmU1NCAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvcnVieS52aW0KKysrIGIvcnVudGltZS9pbmRlbnQvcnVieS52aW0KQEAgLTM0LDI2ICszNCwyNiBAQAogIiA9PT09PT09PT09PT0KIAogIiBSZWdleCBvZiBzeW50YXggZ3JvdXAgbmFtZXMgdGhhdCBhcmUgb3IgZGVsaW1pdCBzdHJpbmcgb3IgYXJlIGNvbW1lbnRzLgotbGV0IHM6c3luZ19zdHJjb20gPSAnXDxydWJ5XCUoU3RyaW5nXHxTdHJpbmdEZWxpbWl0ZXJcfEFTQ0lJQ29kZScgLgotICAgICAgXCAnXHxJbnRlcnBvbGF0aW9uXHxOb0ludGVycG9sYXRpb25cfEVzY2FwZVx8Q29tbWVudFx8RG9jdW1lbnRhdGlvblwpXD4nCitsZXQgczpzeW5nX3N0cmNvbSA9ICdcPHJ1YnlcJShTdHJpbmdcfFN0cmluZ0VzY2FwZVx8QVNDSUlDb2RlJyAuCisgICAgICBcICdcfEludGVycG9sYXRpb25cfE5vSW50ZXJwb2xhdGlvblx8Q29tbWVudFx8RG9jdW1lbnRhdGlvblwpXD4nCiAKICIgUmVnZXggb2Ygc3ludGF4IGdyb3VwIG5hbWVzIHRoYXQgYXJlIHN0cmluZ3MuCiBsZXQgczpzeW5nX3N0cmluZyA9Ci0gICAgICBcICdcPHJ1YnlcJShTdHJpbmdcfFN0cmluZ0RlbGltaXRlclx8SW50ZXJwb2xhdGlvblx8Tm9JbnRlcnBvbGF0aW9uXHxFc2NhcGVcKVw+JworICAgICAgXCAnXDxydWJ5XCUoU3RyaW5nXHxJbnRlcnBvbGF0aW9uXHxOb0ludGVycG9sYXRpb25cfFN0cmluZ0VzY2FwZVwpXD4nCiAKICIgUmVnZXggb2Ygc3ludGF4IGdyb3VwIG5hbWVzIHRoYXQgYXJlIHN0cmluZ3Mgb3IgZG9jdW1lbnRhdGlvbi4KIGxldCBzOnN5bmdfc3RyaW5nZG9jID0KLSAgXCdcPHJ1YnlcJShTdHJpbmdcfFN0cmluZ0RlbGltaXRlclx8SW50ZXJwb2xhdGlvblx8Tm9JbnRlcnBvbGF0aW9uXHxFc2NhcGVcfERvY3VtZW50YXRpb25cKVw+JworICBcJ1w8cnVieVwlKFN0cmluZ1x8SW50ZXJwb2xhdGlvblx8Tm9JbnRlcnBvbGF0aW9uXHxTdHJpbmdFc2NhcGVcfERvY3VtZW50YXRpb25cKVw+JwogCiAiIEV4cHJlc3Npb24gdXNlZCB0byBjaGVjayB3aGV0aGVyIHdlIHNob3VsZCBza2lwIGEgbWF0Y2ggd2l0aCBzZWFyY2hwYWlyKCkuCiBsZXQgczpza2lwX2V4cHIgPQotICAgICAgXCAic3luSURhdHRyKHN5bklEKGxpbmUoJy4nKSxjb2woJy4nKSwwKSwnbmFtZScpID1+ICciLnM6c3luZ19zdHJjb20uIiciCisgICAgICBcICJzeW5JRGF0dHIoc3luSUQobGluZSgnLicpLGNvbCgnLicpLDEpLCduYW1lJykgPX4gJyIuczpzeW5nX3N0cmNvbS4iJyIKIAogIiBSZWdleCB1c2VkIGZvciB3b3JkcyB0aGF0LCBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lLCBhZGQgYSBsZXZlbCBvZiBpbmRlbnQuCiBsZXQgczpydWJ5X2luZGVudF9rZXl3b3JkcyA9ICdeXHMqXHpzXDxcJShtb2R1bGVcfGNsYXNzXHxkZWZcfGlmXHxmb3InIC4KICAgICAgIFwgJ1x8d2hpbGVcfHVudGlsXHxlbHNlXHxlbHNpZlx8Y2FzZVx8d2hlblx8dW5sZXNzXHxiZWdpblx8ZW5zdXJlJyAuCiAgICAgICBcICdcfHJlc2N1ZVwpXD4nIC4KLSAgICAgIFwgJ1x8XCUoWyorLyw9Oi1dXHw8PFx8Pj5cKVxzKlx6cycgLgorICAgICAgXCAnXHxcJShbKisvLD0tXVx8PDxcfD4+XHw6XHNcKVxzKlx6cycgLgogICAgICAgXCAgICAnXDxcJShpZlx8Zm9yXHx3aGlsZVx8dW50aWxcfGNhc2VcfHVubGVzc1x8YmVnaW5cKVw+JwogCiAiIFJlZ2V4IHVzZWQgZm9yIHdvcmRzIHRoYXQsIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUsIHJlbW92ZSBhIGxldmVsIG9mIGluZGVudC4KQEAgLTY1LDcgKzY1LDcgQEAKICIgVE9ETzogdGhlIGRvIGhlcmUgc2hvdWxkIGJlIHJlc3RyaWN0ZWQgc29tZXdoYXQgKG9ubHkgYXQgZW5kIG9mIGxpbmUpPwogbGV0IHM6ZW5kX3N0YXJ0X3JlZ2V4ID0gJ15ccypcenNcPFwlKG1vZHVsZVx8Y2xhc3NcfGRlZlx8aWZcfGZvcicgLgogICAgICAgXCAnXHx3aGlsZVx8dW50aWxcfGNhc2VcfHVubGVzc1x8YmVnaW5cKVw+JyAuCi0gICAgICBcICdcfFwlKFsqKy8sPTotXVx8PDxcfD4+XClccypcenMnIC4KKyAgICAgIFwgJ1x8XCUoWyorLyw9LV1cfDw8XHw+Plx8OlxzXClccypcenMnIC4KICAgICAgIFwgICAgJ1w8XCUoaWZcfGZvclx8d2hpbGVcfHVudGlsXHxjYXNlXHx1bmxlc3NcfGJlZ2luXClcPicgLgogICAgICAgXCAnXHxcPGRvXD4nCiAKQEAgLTc4LDE1ICs3OCwxNSBAQAogIiBFeHByZXNzaW9uIHVzZWQgZm9yIHNlYXJjaHBhaXIoKSBjYWxsIGZvciBmaW5kaW5nIG1hdGNoIGZvciAnZW5kJyBrZXl3b3JkLgogbGV0IHM6ZW5kX3NraXBfZXhwciA9IHM6c2tpcF9leHByIC4KICAgICAgIFwgJyB8fCAoZXhwYW5kKCI8Y3dvcmQ+IikgPT0gImRvIicgLgotICAgICAgXCAnICYmIGdldGxpbmUoIi4iKSA9fiAiXlxccypcXDx3aGlsZVxcfHVudGlsXFx8Zm9yXFw+IiknCisgICAgICBcICcgJiYgZ2V0bGluZSgiLiIpID1+ICJeXFxzKlxcPFxcKHdoaWxlXFx8dW50aWxcXHxmb3JcXClcXD4iKScKIAogIiBSZWdleCB0aGF0IGRlZmluZXMgY29udGludWF0aW9uIGxpbmVzLCBub3QgaW5jbHVkaW5nICgsIHssIG9yIFsuCi1sZXQgczpjb250aW51YXRpb25fcmVnZXggPSAnXCUoW1xcKisvLiw9Oi1dXHxcV1t8Jj9dXHx8fFx8JiZcKVxzKlwlKCMuKlwpXD0kJworbGV0IHM6Y29udGludWF0aW9uX3JlZ2V4ID0gJ1wlKFtcXCorLy4sOl1cfFwlKDwlXClcQDwhWz0tXVx8XFdbfCY/XVx8fHxcfCYmXClccypcJSgjLipcKVw9JCcKIAogIiBSZWdleCB0aGF0IGRlZmluZXMgY29udGludWF0aW9uIGxpbmVzLgogIiBUT0RPOiB0aGlzIG5lZWRzIHRvIGRlYWwgd2l0aCBpZiAuLi46IGFuZCBzbyBvbgogbGV0IHM6Y29udGludWF0aW9uX3JlZ2V4MiA9Ci0gICAgICBcICdcJShbXFwqKy8uLD06KHtbLV1cfFxXW3wmP11cfHx8XHwmJlwpXHMqXCUoIy4qXClcPSQnCisgICAgICBcICdcJShbXFwqKy8uLDooe1tdXHxcJSg8JVwpXEA8IVs9LV1cfFxXW3wmP11cfHx8XHwmJlwpXHMqXCUoIy4qXClcPSQnCiAKICIgUmVnZXggdGhhdCBkZWZpbmVzIGJsb2Nrcy4KIGxldCBzOmJsb2NrX3JlZ2V4ID0KQEAgLTk3LDE3ICs5NywxNyBAQAogCiAiIENoZWNrIGlmIHRoZSBjaGFyYWN0ZXIgYXQgbG51bTpjb2wgaXMgaW5zaWRlIGEgc3RyaW5nLCBjb21tZW50LCBvciBpcyBhc2NpaS4KIGZ1bmN0aW9uIHM6SXNJblN0cmluZ09yQ29tbWVudChsbnVtLCBjb2wpCi0gIHJldHVybiBzeW5JRGF0dHIoc3luSUQoYTpsbnVtLCBhOmNvbCwgMCksICduYW1lJykgPX4gczpzeW5nX3N0cmNvbQorICByZXR1cm4gc3luSURhdHRyKHN5bklEKGE6bG51bSwgYTpjb2wsIDEpLCAnbmFtZScpID1+IHM6c3luZ19zdHJjb20KIGVuZGZ1bmN0aW9uCiAKICIgQ2hlY2sgaWYgdGhlIGNoYXJhY3RlciBhdCBsbnVtOmNvbCBpcyBpbnNpZGUgYSBzdHJpbmcuCiBmdW5jdGlvbiBzOklzSW5TdHJpbmcobG51bSwgY29sKQotICByZXR1cm4gc3luSURhdHRyKHN5bklEKGE6bG51bSwgYTpjb2wsIDApLCAnbmFtZScpID1+IHM6c3luZ19zdHJpbmcKKyAgcmV0dXJuIHN5bklEYXR0cihzeW5JRChhOmxudW0sIGE6Y29sLCAxKSwgJ25hbWUnKSA9fiBzOnN5bmdfc3RyaW5nCiBlbmRmdW5jdGlvbgogCiAiIENoZWNrIGlmIHRoZSBjaGFyYWN0ZXIgYXQgbG51bTpjb2wgaXMgaW5zaWRlIGEgc3RyaW5nIG9yIGRvY3VtZW50YXRpb24uCiBmdW5jdGlvbiBzOklzSW5TdHJpbmdPckRvY3VtZW50YXRpb24obG51bSwgY29sKQotICByZXR1cm4gc3luSURhdHRyKHN5bklEKGE6bG51bSwgYTpjb2wsIDApLCAnbmFtZScpID1+IHM6c3luZ19zdHJpbmdkb2MKKyAgcmV0dXJuIHN5bklEYXR0cihzeW5JRChhOmxudW0sIGE6Y29sLCAxKSwgJ25hbWUnKSA9fiBzOnN5bmdfc3RyaW5nZG9jCiBlbmRmdW5jdGlvbgogCiAiIEZpbmQgbGluZSBhYm92ZSAnbG51bScgdGhhdCBpc24ndCBlbXB0eSwgaW4gYSBjb21tZW50LCBvciBpbiBhIHN0cmluZy4KQEAgLTI1OSw2ICsyNTksMTEgQEAKICAgIiBGaW5kIGEgbm9uLWJsYW5rLCBub24tbXVsdGktbGluZSBzdHJpbmcgbGluZSBhYm92ZSB0aGUgY3VycmVudCBsaW5lLgogICBsZXQgbG51bSA9IHM6UHJldk5vbkJsYW5rTm9uU3RyaW5nKHY6bG51bSAtIDEpCiAKKyAgIiBJZiB0aGUgbGluZSBpcyBlbXB0eSBhbmQgaW5zaWRlIGEgc3RyaW5nLCB1c2UgdGhlIHByZXZpb3VzIGxpbmUuCisgIGlmIGxpbmUgPX4gJ15ccyokJyAmJiBsbnVtICE9IHByZXZub25ibGFuayh2OmxudW0gLSAxKQorICAgIHJldHVybiBpbmRlbnQocHJldm5vbmJsYW5rKHY6bG51bSkpCisgIGVuZGlmCisKICAgIiBBdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUgdXNlIHplcm8gaW5kZW50LgogICBpZiBsbnVtID09IDAKICAgICByZXR1cm4gMApkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvc2Fzcy52aW0gYi9ydW50aW1lL2luZGVudC9zYXNzLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWNhNTBmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9pbmRlbnQvc2Fzcy52aW0KQEAgLTAsMCArMSwzOSBAQAorIiBWaW0gaW5kZW50IGZpbGUKKyIgTGFuZ3VhZ2U6CVNBU1MKKyIgTWFpbnRhaW5lcjoJVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgorIiBMYXN0IENoYW5nZToJMjAwNyBEZWMgMTYKKworaWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQorICBmaW5pc2gKK2VuZGlmCitsZXQgYjpkaWRfaW5kZW50ID0gMQorCitzZXRsb2NhbCBhdXRvaW5kZW50IHN3PTIgZXQKK3NldGxvY2FsIGluZGVudGV4cHI9R2V0U2Fzc0luZGVudCgpCitzZXRsb2NhbCBpbmRlbnRrZXlzPW8sTywqPFJldHVybj4sPDo+LCFeRgorCisiIE9ubHkgZGVmaW5lIHRoZSBmdW5jdGlvbiBvbmNlLgoraWYgZXhpc3RzKCIqR2V0U2Fzc0luZGVudCIpCisgIGZpbmlzaAorZW5kaWYKKworbGV0IHM6cHJvcGVydHkgPSAnXlxzKjpcfF5ccypbWzphbG51bTpdLV1cKzonCisKK2Z1bmN0aW9uISBHZXRTYXNzSW5kZW50KCkKKyAgbGV0IGxudW0gPSBwcmV2bm9uYmxhbmsodjpsbnVtLTEpCisgIGxldCBsaW5lID0gc3Vic3RpdHV0ZShnZXRsaW5lKGxudW0pLCdcc1wrJCcsJycsJycpCisgIGxldCBjbGluZSA9IHN1YnN0aXR1dGUoc3Vic3RpdHV0ZShnZXRsaW5lKHY6bG51bSksJ1xzXCskJywnJywnJyksJ15cc1wrJywnJywnJykKKyAgbGV0IGxhc3Rjb2wgPSBzdHJsZW4obGluZSkKKyAgbGV0IGxpbmUgPSBzdWJzdGl0dXRlKGxpbmUsJ15cc1wrJywnJywnJykKKyAgbGV0IGluZGVudCA9IGluZGVudChsbnVtKQorICBsZXQgY2luZGVudCA9IGluZGVudCh2OmxudW0pCisgIGlmIGxpbmUgIX4gczpwcm9wZXJ0eSAmJiBjbGluZSA9fiBzOnByb3BlcnR5CisgICAgcmV0dXJuIGluZGVudCArICZzdworICAiZWxzZWlmIGxpbmUgPX4gczpwcm9wZXJ0eSAmJiBjbGluZSAhfiBzOnByb3BlcnR5CisgICAgInJldHVybiBpbmRlbnQgLSAmc3cKKyAgZWxzZQorICAgIHJldHVybiAtMQorICBlbmRpZgorZW5kZnVuY3Rpb24KKworIiB2aW06c2V0IHN3PTI6CmRpZmYgLS1naXQgYS9ydW50aW1lL2tleW1hcC9idWxnYXJpYW4tYmRzLnZpbSBiL3J1bnRpbWUva2V5bWFwL2J1bGdhcmlhbi1iZHMudmltCmluZGV4IGJiNzg5YTkuLmJmODM3YzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUva2V5bWFwL2J1bGdhcmlhbi1iZHMudmltCisrKyBiL3J1bnRpbWUva2V5bWFwL2J1bGdhcmlhbi1iZHMudmltCkBAIC0xLDMxICsxLDM5IEBACi0iIFZpbSBrZXltYXAgZmlsZSBmb3IgQnVsZ2FyaWFuIGFuZCBSdXNzaWFuIGNoYXJhY3RlcnMsIGBiZHMnIGxheW91dC4KLSIgQ2FuIGJlIHVzZWQgd2l0aCB1dGYtOCBvciBjcDEyNTEgZmlsZSBlbmNvZGluZ3MuCi0iIFRoaXMgZmlsZSBpdHNlbGYgaXMgaW4gdXRmLTgKKyIgVmltIGtleW1hcCBmaWxlIGZvciBCdWxnYXJpYW4gYW5kIFJ1c3NpYW4gY2hhcmFjdGVycywgImJkcyIgbGF5b3V0LgorIiBNb3N0IG9mIGl0IGNhbiBiZSB1c2VkIHdpdGggYm90aCB1dGYtOCBhbmQgY3AxMjUxIGZpbGUgZW5jb2RpbmdzLCBleGNlcHQKKyIgdGhlIGFjY2VudGVkIHZvd2VscyB3aGljaCBjYW4gb25seSBiZSBzdG9yZWQgaW4gdXRmLTguCisiIFRoaXMgZmlsZSBpdHNlbGYgaXMgaW4gdXRmLTguCiAKICIgTWFpbnRhaW5lcjogQm95a28gQmFudGNoZXYgPGJveWtvYmJAZ21haWwuY29tPgotIiBVUkk6IGh0dHA6Ly93d3cubWF0aC5iYXMuYmcvc29mdGVuZy9iYW50Y2hldi9taXNjL3ZpbS9idWxnYXJpYW4tYmRzLnZpbQotIiBMYXN0IENoYW5nZWQ6IDIwMDYgT2N0IDE4CisiIFVSSTogaHR0cDovL3d3dy5tYXRoLmJhcy5iZy9iYW50Y2hldi92aW0vYnVsZ2FyaWFuLWJkcy52aW0KKyIgTGFzdCBDaGFuZ2VkOiAyMDA4IEp1bmUgMjgKIAotIiBUaGlzIGtleW1hcCBjb3JyZXNwb25kcyB0byB3aGF0IGlzIGNhbGxlZCBCdWxnYXJpYW4gc3RhbmRhcmQsCi0iIG9yIEJEUyAo0JHQlNChKSB0eXBld3JpdGVyIGtleWJvYXJkIGxheW91dC4KLSIgSW4gYWRkaXRpb24gdG8gdGhlIEJ1bGdhcmlhbiBhbHBoYWJldCwgQkRTIHByZXNjcmliZXMgdGhlIHByZXNlbmNlCi0iIG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczoKLSIgICAgIOKAlCAgVGhlIEN5cmlsbGljIGxldHRlcnMg0K0gKGNhcGl0YWwpLCBhbmQg0YsgYW5kINGNIChzbWFsbCkKLSIgICAgICAgICh0aGVzZSBhcmUgcHJlc2VudCBpbiB0aGUgUnVzc2lhbiBhbHBoYWJldCkuCi0iICAgICDigJQgIFRoZSBsYXRpbiBjYXBpdGFsIGxldHRlcnMgSSBhbmQgViAodGhlc2UgYXJlIHVzZWQgdG8gdHlwZQotIiAgICAgICAgUm9tYW4gbnVtZXJhbHMgd2l0aG91dCBoYXZpbmcgdG8gbGVhdmUgQ3lyaWxsaWMgbW9kZSkuCi0iICAgICDigJQgIOKAniBhbmQg4oCcIChCdWxnYXJpYW4gcXVvdGF0aW9uIHN0eWxlKSwgYW5kIMKrIGFuZCDCuyAoUnVzc2lhbiBxdW90YXRpb24KLSIgICAgICAgIHN0eWxlKS4KLSIgICAgIOKAlCAgwqcsIOKEliwg4oCULCDigKIsIMK3LCDCsSwgwqwsIMKkLCBhbmQg4oKsCisiIFRoaXMga2V5bWFwIGNvcnJlc3BvbmRzIHRvIHdoYXQgaXMgY2FsbGVkIEJ1bGdhcmlhbiBzdGFuZGFyZCB0eXBld3JpdGVyCisiIGtleWJvYXJkIGxheW91dCAoQkRTLCDQkdCU0KEpLgogIgotIiBTb21lIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMgdGhhdCBhcmUgcHJlc2VudCBpbiBhc2NpaSBhcmUgbWFwcGVkIGluIEJEUwotIiB0byBrZXlzIGRpZmZlcmVudCBmcm9tIHRoZSBvbmVzIHRoZXkgb2NjdXB5IGluIHRoZSBxd2VydHkgbGF5b3V0LCBiZWNhdXNlCi0iIHRoZSBsYXR0ZXIgYXJlIHVzZWQgdG8gdHlwZSBvdGhlciBjaGFyYWN0ZXJzLgorIiBOb3RlIHRoYXQsIGluIGFkZGl0aW9uIHRvIHRoZSBCdWxnYXJpYW4gYWxwaGFiZXQsIHRoZSBCRFMgbGF5b3V0IHByZXNjcmliZXMKKyIgdGhlIHByZXNlbmNlIG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczoKKyIgICAgIOKAlCAgVGhlIFJ1c3NpYW4gbGV0dGVycyDRiyAoc21hbGwpLCBhbmQg0K0gYW5kINGNIChjYXBpdGFsIGFuZCBzbWFsbCkuCisiICAgICDigJQgIFRoZSBsYXRpbiBjYXBpdGFsIGxldHRlcnMgSSBhbmQgViDigJMgdXNlZCB0byB0eXBlIFJvbWFuIG51bWVyYWxzCisiICAgICAgICB3aXRob3V0IGhhdmluZyB0byBsZWF2ZSBDeXJpbGxpYyBtb2RlLgogIgotIiBJbiB0aGlzIGtleW1hcCBhbHNvIGRlZmluZWQgKG5vdCBpbiBCRFMpIGFyZSB0aGUgUnVzc2lhbiBsZXR0ZXJzINCBIChjYXBpdGFsKQotIiBhbmQg0ZEgKHNtYWxsKSwgYXMgd2VsbCBhcyB0aGUgUnVzc2lhbiBjYXBpdGFsIGxldHRlciDQqyAoc2VlIGFib3ZlIHRoZSBzbWFsbAotIiBjb3VudGVycGFydCkuICBUaGlzIHdheSwgdXNpbmcgdGhlIGJ1bGdhcmlhbi1iZHMga2V5bWFwLCBvbmUgY2FuIGFjY2VzcyBib3RoCi0iIHRoZSBCdWxnYXJpYW4gYW5kIHRoZSBSdXNzaWFuIGFscGhhYmV0cy4KKyIgU29tZSBwdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIHByZXNlbnQgaW4gYXNjaWkgYXJlIG1hcHBlZCBpbiBCRFMgdG8ga2V5cworIiBkaWZmZXJlbnQgZnJvbSB0aGUgb25lcyB0aGV5IG9jY3VweSBpbiB0aGUgcXdlcnR5IGxheW91dCwgYmVjYXVzZSB0aGUgbGF0dGVyCisiIGtleXMgYXJlIHVzZWQgdG8gdHlwZSBvdGhlciBjaGFyYWN0ZXJzLgorIgorIiBJbiB0aGlzIGtleW1hcCwgYWxzbyBkZWZpbmVkIChiZXNpZGVzIEJEUykgYXJlOgorIiAgICAg4oCUICBUaGUgUnVzc2lhbiBsZXR0ZXJzINCBIGFuZCDRkSAoY2FwaXRhbCBhbmQgc21hbGwpLCBhcyB3ZWxsIGFzIHRoZQorIiAgICAgICAgUnVzc2lhbiBjYXBpdGFsIGxldHRlciDQqyAoc2VlIGFib3ZlIGZvciB0aGUgc21hbGwgY291bnRlcnBhcnQpLgorIiAgICAgICAgVGhpcyB3YXksIHVzaW5nIHRoZSBidWxnYXJpYW4tYmRzIGtleW1hcCwgb25lIGNhbiBhY2Nlc3MgYm90aAorIiAgICAgICAgdGhlIEJ1bGdhcmlhbiBhbmQgdGhlIFJ1c3NpYW4gYWxwaGFiZXRzLgorIiAgICAg4oCUICBUaGUgcXVvdGF0aW9uIG1hcmtzIOKAniDigJwg4oCdIOKAmCDigJkgKHVzZWQgaW4gdGhlIEJ1bGdhcmlhbiBhbmQgRW5nbGlzaAorIiAgICAgICAgcXVvdGF0aW9uIHN0eWxlcyksIGFzIHdlbGwgYXMgwqsgwrsgKFJ1c3NpYW4gcXVvdGF0aW9uIHN0eWxlKS4KKyIgICAgIOKAlCAgVGhlIGNoYXJhY3RlcnMgwqcsIOKEliwg4oCTIChlbi1kYXNoKSwg4oCUIChlbS1kYXNoKSwg4oCmLCDigKIsIMK3LCDCsSwgwrAsIMKsLAorIiAgICAgICAgwqQsIGFuZCDigqwuCisiCisiIFRoZSBrZXltYXAgYWxzbyBkZWZpbmVzIGtleSBjb21iaW5hdGlvbnMgZm9yIGFjY2VudGVkIHZvd2VscyBpbiBCdWxnYXJpYW4uCisiCisiIEZvciBkZXRhaWxzIG9mIHdoYXQga2V5IG9yIGtleSBjb21iaW5hdGlvbiBtYXBzIHRvIHdoYXQgY2hhcmFjdGVyLCBwbGVhc2UKKyIgc2VlIGJlbG93IHRoZSBtYXAgdGFibGUgaXRzZWxmLgogCiBzY3JpcHRlbmNvZGluZyB1dGYtOAogCkBAIC0xMTQsMTQgKzEyMiwzOCBAQAogQCAgICAgICA/ICAgICAgIFFVRVNUSU9OIE1BUksKIH0gICAgICAgwqcgICAgICAgU0VDVElPTiBTSUdOIChQQVJBR1JBUEggU0lHTikKICkgICAgICAg4oSWICAgICAgIE5VTUVSTyBTSUdOCi0tLSAgICAgIOKAlCAgICAgICBFTSBEQVNICistLSAgICAgIOKAkyAgICAgICBFTiBEQVNICistLS0gICAgIOKAlCAgICAgICBFTSBEQVNICisuLiAgICAgIOKApiAgICAgICBIT1JJWk9OVEFMIEVMTElQU0lTCitgYCAgICAgIOKAnCAgICAgICBMRUZUIERPVUJMRSBRVU9UQVRJT04gTUFSSworJycgICAgICDigJ0gICAgICAgUklHSFQgRE9VQkxFIFFVT1RBVElPTiBNQVJLCiAsLCAgICAgIOKAniAgICAgICBET1VCTEUgTE9XLTkgUVVPVEFUSU9OIE1BUksKLWBgICAgICAg4oCcICAgICAgIExFRlQgRE9VQkxFIFFVT1RBVElPTiAgTUFSSworYC4gICAgICDigJggICAgICAgTEVGVCBTSU5HTEUgUVVPVEFUSU9OIE1BUksKKycuICAgICAg4oCZICAgICAgIFJJR0hUIFNJTkdMRSBRVU9UQVRJT04gTUFSSwogPDwgICAgICDCqyAgICAgICBMRUZULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSwogPj4gICAgICDCuyAgICAgICBSSUdIVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUksKLTAwICAgICAg4oCiICAgICAgIEJVTExFVAotLi4gICAgICDCtyAgICAgICBNSURETEUgRE9UICAgICAgCisqKiAgICAgIOKAoiAgICAgICBCVUxMRVQKKywuICAgICAgwrcgICAgICAgTUlERExFIERPVCAgICAgIAogKy0gICAgICDCsSAgICAgICBQTFVTLU1JTlVTIFNJR04KK15vICAgICAgwrAgICAgICAgREVHUkVFIFNJR04KIH5+ICAgICAgwqwgICAgICAgTk9UIFNJR04KIEBAICAgICAgwqQgICAgICAgQ1VSUkVOQ1kgU0lHTgogJCQgICAgICDigqwgICAgICAgRVVSTyBTSUdOCisKKyIgYWNjZW50ZWQgdm93ZWxzIGNhbm5vdCBtYXAgb250byBjcDEyNTEg4oCTIHVzZSB1dGYtOCBmaWxlIGVuY29kaW5nCitgRCAgICAgINCQzIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCitgZCAgICAgINCwzIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEEgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQorYEUgICAgICDQlcyAICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIElFICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKK2BlICAgICAg0LXMgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQorYFIgICAgICDQmMyAICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEkgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQorYHIgICAgICDQuMyAICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBJICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKK2BGICAgICAg0J7MgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKK2BmICAgICAg0L7MgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgTyArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCitgVyAgICAgINCjzIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCitgdyAgICAgINGDzIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQorYEMgICAgICDQqsyAICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEhBUkQgU0lHTiArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCitgYyAgICAgINGKzIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBUkQgU0lHTiArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCitgWiAgICAgINCuzIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWVUgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQorYHogICAgICDRjsyAICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBZVSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCitgUyAgICAgINCvzIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUEgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQorYHMgICAgICDRj8yAICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBZQSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCmRpZmYgLS1naXQgYS9ydW50aW1lL2tleW1hcC9idWxnYXJpYW4tcGhvbmV0aWMudmltIGIvcnVudGltZS9rZXltYXAvYnVsZ2FyaWFuLXBob25ldGljLnZpbQppbmRleCBmZWVjNTg3Li5iYWMyZTdlIDEwMDY0NAotLS0gYS9ydW50aW1lL2tleW1hcC9idWxnYXJpYW4tcGhvbmV0aWMudmltCisrKyBiL3J1bnRpbWUva2V5bWFwL2J1bGdhcmlhbi1waG9uZXRpYy52aW0KQEAgLTEsMjYgKzEsMzUgQEAKLSIgVmltIGtleW1hcCBmaWxlIGZvciBCdWxnYXJpYW4gYW5kIFJ1c3NpYW4gY2hhcmFjdGVycywgYHBob25ldGljJyBsYXlvdXQuCi0iIENhbiBiZSB1c2VkIHdpdGggdXRmLTggb3IgY3AxMjUxIGZpbGUgZW5jb2RpbmdzLgotIiBUaGlzIGZpbGUgaXRzZWxmIGlzIGluIHV0Zi04CisiIFZpbSBrZXltYXAgZmlsZSBmb3IgQnVsZ2FyaWFuIGFuZCBSdXNzaWFuIGNoYXJhY3RlcnMsICJwaG9uZXRpYyIgbGF5b3V0LgorIiBNb3N0IG9mIGl0IGNhbiBiZSB1c2VkIHdpdGggYm90aCB1dGYtOCBhbmQgY3AxMjUxIGZpbGUgZW5jb2RpbmdzLCBleGNlcHQKKyIgdGhlIGFjY2VudGVkIHZvd2VscyB3aGljaCBjYW4gb25seSBiZSBzdG9yZWQgaW4gdXRmLTguCisiIFRoaXMgZmlsZSBpdHNlbGYgaXMgaW4gdXRmLTguCiAKICIgTWFpbnRhaW5lcjogICBCb3lrbyBCYW50Y2hldiA8Ym95a29iYkBnbWFpbC5jb20+Ci0iIFVSSTogaHR0cDovL3d3dy5tYXRoLmJhcy5iZy9zb2Z0ZW5nL2JhbnRjaGV2L21pc2MvdmltL2J1bGdhcmlhbi1waG9uZXRpYy52aW0KLSIgTGFzdCBDaGFuZ2VkOiAyMDA2IE9jdCAxOAorIiBVUkk6IGh0dHA6Ly93d3cubWF0aC5iYXMuYmcvYmFudGNoZXYvdmltL2J1bGdhcmlhbi1waG9uZXRpYy52aW0KKyIgTGFzdCBDaGFuZ2VkOiAyMDA4IEp1bmUgMjgKIAotIiBUaGlzIGtleW1hcCBjb3JyZXNwb25kcyB0byB3aGF0IGlzIGNhbGxlZCBgcGhvbmV0aWMgbGF5b3V0JyBpbiBCdWxnYXJpYToKLSIgQ3lyaWxsaWMgbGV0dGVycyBob21vcGhvbm91cyB3aXRoIExhdGluIGxldHRlcnMgdGVuZCB0byB0YWtlIHRoZSBzYW1lCi0iIHBsYWNlcyBhcyB0aGUgbGF0dGVyIG9uZXMuICBNb3N0IG9mIHRoZSBrZXlzIGNvcnJlc3BvbmRpbmcgdG8gcHVuY3R1YXRpb24KLSIgY2hhcmFjdGVycyBhcmUgbGVmdCB1bm1hcHBlZCwgc28gdGhleSByZXRhaW4gdGhlaXIgdXN1YWwgKHF3ZXJ0eSkgbWVhbmluZ3MKLSIgd2hpbGUgdHlwaW5nIGluIEN5cmlsbGljLgorIiBGb3IgYSByYXRpb25hbGUgZm9yIHRoZSBsYXlvdXQgYW5kIGFkZGl0aW9uYWwgaW5mbyBvbiB0eXBpbmcgaW4gQnVsZ2FyaWFuCisiIHVzaW5nIFVuaWNvZGUgQ3lyaWxsaWMgcGxlYXNlIHNlZToKKworIiBUaGlzIGtleW1hcCBjb3JyZXNwb25kcyB0byB3aGF0IGlzIGNhbGxlZCAicGhvbmV0aWMgbGF5b3V0IiBpbiBCdWxnYXJpYToKKyIgQ3lyaWxsaWMgbGV0dGVycyB0ZW5kIHRvIGJlIG1hcHBlZCB0byB0aGVpciBMYXRpbiBob21vcGhvbmVzLCBpZiBwcmVzZW50LgorIiBNb3N0IGtleXMgY29ycmVzcG9uZGluZyB0byBwdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIGFyZSBsZWZ0IHVubWFwcGVkLCBzbworIiB0aGV5IHJldGFpbiB0aGVpciB1c3VhbCAocXdlcnR5KSBtZWFuaW5ncyBpbiBDeXJpbGxpYyB0eXBpbmcuCiAiCi0iIEluIGFkZGl0aW9uIHRvIHRoZSBCdWxnYXJpYW4gYWxwaGFiZXQsIHRoZSBrZXltYXAgZGVmaW5lcyB0aGUgZm9sbG93aW5nCi0iIGNoYXJhY3RlcnM6Ci0iICAgICDigJQgIFRoZSBDeXJpbGxpYyBsZXR0ZXJzINCBIGFuZCDRkSwg0K0gYW5kINGNLCBhbmQg0KsgYW5kINGLIChpbiBwYWlycyBvZgotIiAgICAgICAgY2FwaXRhbCBhbmQgc21hbGwpLiAgVGhlc2UgYXJlIHRoZSBsZXR0ZXJzIGluIHRoZSBSdXNzaWFuIGFscGhhYmV0Ci0iICAgICAgICB0aGF0IGFyZSBub3QgcHJlc2VudCBpbiBCdWxnYXJpYW4sIHNvIHVzaW5nIHRoZSBidWxnYXJpYW4tcGhvbmV0aWMKLSIgICAgICAgIGtleW1hcCBvbmUgY2FuIHR5cGUgaW4gUnVzc2lhbiwgdG9vLgotIiAgICAg4oCUICDigJ4gYW5kIOKAnCAoQnVsZ2FyaWFuIHF1b3RhdGlvbiBzdHlsZSksIGFuZCDCqyBhbmQgwrsgKFJ1c3NpYW4gcXVvdGF0aW9uCi0iICAgICAgICBzdHlsZSkuCi0iICAgICDigJQgIMKnLCDihJYsIOKAlCwg4oCiLCDCtywgwrEsIMKsLCDCpCwgYW5kIOKCrAorIiBJbiBhZGRpdGlvbiB0byB0aGUgQnVsZ2FyaWFuIGFscGhhYmV0LCB0aGUga2V5bWFwIG1ha2VzIGFjY2Vzc2libGUgdGhlCisiIGZvbGxvd2luZyBjaGFyYWN0ZXJzOgorIiAgICAg4oCUICBUaGUgbGV0dGVycyDQgSBhbmQg0ZEsINCtIGFuZCDRjSwgYW5kINCrIGFuZCDRiyAoaW4gcGFpcnMgb2YgY2FwaXRhbCBhbmQKKyIgICAgICAgIHNtYWxsKS4gIFRoZXNlIGFyZSB0aGUgbGV0dGVycyBpbiB0aGUgUnVzc2lhbiBhbHBoYWJldCB0aGF0IGFyZSBub3QKKyIgICAgICAgIHByZXNlbnQgaW4gQnVsZ2FyaWFuLCBzbyB1c2luZyB0aGUgYnVsZ2FyaWFuLXBob25ldGljIGtleW1hcCBvbmUgY2FuCisiICAgICAgICB0eXBlIGluIFJ1c3NpYW4sIHRvby4KKyIgICAgIOKAlCAgVGhlIHF1b3RhdGlvbiBtYXJrcyDigJ4g4oCcIOKAnSDigJgg4oCZICh1c2VkIGluIHRoZSBCdWxnYXJpYW4gYW5kIEVuZ2xpc2gKKyIgICAgICAgIHF1b3RhdGlvbiBzdHlsZXMpLCBhcyB3ZWxsIGFzIMKrIMK7IChSdXNzaWFuIHF1b3RhdGlvbiBzdHlsZSkuCisiICAgICDigJQgIFRoZSBjaGFyYWN0ZXJzIMKnLCDihJYsIOKAkyAoZW4tZGFzaCksIOKAlCAoZW0tZGFzaCksIOKApiwg4oCiLCDCtywgwrEsIMKwLCDCrCwKKyIgICAgICAgIMKkLCBhbmQg4oKsLgorIgorIiBUaGUga2V5bWFwIGFsc28gZGVmaW5lcyBrZXkgY29tYmluYXRpb25zIGZvciBhY2NlbnRlZCB2b3dlbHMgaW4gQnVsZ2FyaWFuLgorIgorIiBGb3IgZGV0YWlscyBvZiB3aGF0IGtleSBvciBrZXkgY29tYmluYXRpb24gbWFwcyB0byB3aGF0IGNoYXJhY3RlciwgcGxlYXNlCisiIHNlZSBiZWxvdyB0aGUgbWFwIHRhYmxlIGl0c2VsZi4KIAogc2NyaXB0ZW5jb2RpbmcgdXRmLTgKIApAQCAtNTUsNyArNjQsNyBAQAogeyAgICAgICDQqCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEEKIH0gICAgICAg0KkgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hDSEEKIFkgICAgICAg0KogICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEFSRCBTSUdOCi1ZSiAgICAgINCrICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlUKK1lJICAgICAg0KsgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUVSVQogWCAgICAgICDQrCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTT0ZUIFNJR04KIFlFICAgICAg0K0gICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgRQogfCAgICAgICDQriAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZVQpAQCAtODgsMjEgKzk3LDQ1IEBACiBbICAgICAgINGIICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBTSEEKIF0gICAgICAg0YkgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQ0hBCiB5ICAgICAgINGKICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBIQVJEIFNJR04KLXlqICAgICAg0YsgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlFUlUKK3lpICAgICAg0YsgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlFUlUKIHggICAgICAg0YwgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNPRlQgU0lHTgogeWUgICAgICDRjSAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRQogXFwgICAgICDRjiAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgWVUKIHEgICAgICAg0Y8gICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBCiAhISAgICAgIMKnICAgICAgIFNFQ1RJT04gU0lHTiAoUEFSQUdSQVBIIFNJR04pCiAjIyAgICAgIOKEliAgICAgICBOVU1FUk8gU0lHTgotLS0gICAgICDigJQgICAgICAgRU0gREFTSAotLCwgICAgICDigJ4gICAgICAgRE9VQkxFIExPVy05IFFVT1RBVElPTiBNQVJLCistLSAgICAgIOKAkyAgICAgICBFTiBEQVNICistLS0gICAgIOKAlCAgICAgICBFTSBEQVNICisuLiAgICAgIOKApiAgICAgICBIT1JJWk9OVEFMIEVMTElQU0lTCiBgYCAgICAgIOKAnCAgICAgICBMRUZUIERPVUJMRSBRVU9UQVRJT04gIE1BUksKKycnICAgICAg4oCdICAgICAgIFJJR0hUIERPVUJMRSBRVU9UQVRJT04gTUFSSworLCwgICAgICDigJ4gICAgICAgRE9VQkxFIExPVy05IFFVT1RBVElPTiBNQVJLCitgLiAgICAgIOKAmCAgICAgICBMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSworJy4gICAgICDigJkgICAgICAgUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLCiA8PCAgICAgIMKrICAgICAgIExFRlQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLCiA+PiAgICAgIMK7ICAgICAgIFJJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSwotMDAgICAgICDigKIgICAgICAgQlVMTEVUCi0uLiAgICAgIMK3ICAgICAgIE1JRERMRSBET1QgICAgICAKKyoqICAgICAg4oCiICAgICAgIEJVTExFVAorLC4gICAgICDCtyAgICAgICBNSURETEUgRE9UICAgICAgCiArLSAgICAgIMKxICAgICAgIFBMVVMtTUlOVVMgU0lHTgorXm8gICAgICDCsCAgICAgICBERUdSRUUgU0lHTgogfn4gICAgICDCrCAgICAgICBOT1QgU0lHTgogQEAgICAgICDCpCAgICAgICBDVVJSRU5DWSBTSUdOCiAkJCAgICAgIOKCrCAgICAgICBFVVJPIFNJR04KKworIiBhY2NlbnRlZCB2b3dlbHMgY2Fubm90IG1hcCBvbnRvIGNwMTI1MSDigJMgdXNlIHV0Zi04IGZpbGUgZW5jb2RpbmcKKydBICAgICAg0JDMgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKKydhICAgICAg0LDMgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgQSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCisnRSAgICAgINCVzIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQorJ2UgICAgICDQtcyAICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBJRSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCisnSSAgICAgINCYzIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCisnaSAgICAgINC4zIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQorJ08gICAgICDQnsyAICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIE8gKyBHUkFWRSBBQ0NFTlQgKENPTVBPU0VEKQorJ28gICAgICDQvsyAICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBPICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKKydVICAgICAg0KPMgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKKyd1ICAgICAg0YPMgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgVSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCisnWSAgICAgINCqzIAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEFSRCBTSUdOICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKKyd5ICAgICAg0YrMgCAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgSEFSRCBTSUdOICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKKyd8ICAgICAg0K7MgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZVSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCisnXFwgICAgINGOzIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlVICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKKydRICAgICAg0K/MgCAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQSArIEdSQVZFIEFDQ0VOVCAoQ09NUE9TRUQpCisncSAgICAgINGPzIAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBICsgR1JBVkUgQUNDRU5UIChDT01QT1NFRCkKZGlmZiAtLWdpdCBhL3J1bnRpbWUva2V5bWFwL2J1bGdhcmlhbi52aW0gYi9ydW50aW1lL2tleW1hcC9idWxnYXJpYW4udmltCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzgwYzlmLi4wMDAwMDAwCi0tLSBhL3J1bnRpbWUva2V5bWFwL2J1bGdhcmlhbi52aW0KKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi0iIFZpbSBLZXltYXAgZmlsZSBmb3IgcnVzc2lhbiBjaGFyYWN0ZXJzLCBwaG9uZXRpYyBsYXlvdXQgJ3lhd2VydHknCi0iIFVzZWZ1bCBtYWlubHkgd2l0aCB1dGYtOCBidXQgbWF5IHdvcmsgd2l0aCBvdGhlciBlbmNvZGluZ3MKLQotIiBNYWludGFpbmVyOiAgIEFsYmVydG8gTWFyZGVnYW4gPG1hcmR5QGRlc3BhbW1lZC5jb20+Ci0iIExhc3QgQ2hhbmdlZDogMjAwNCBPY3QgMTcKLQotIiBBbGwgY2hhcmFjdGVycyBhcmUgZ2l2ZW4gbGl0ZXJhbGx5LCBjb252ZXJzaW9uIHRvIGFub3RoZXIgZW5jb2RpbmcgKGUuZy4sCi0iIFVURi04KSBzaG91bGQgd29yay4KLXNjcmlwdGVuY29kaW5nIHV0Zi04Ci0KLWxldCBiOmtleW1hcF9uYW1lID0gImJnIgotCi1sb2Fka2V5bWFwCi1BCdCQCUNZUklMTElDIENBUElUQUwgTEVUVEVSIEEKLUIJ0JEJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkUKLVcJ0JIJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVkUKLVYJ0JIJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVkUKLUcJ0JMJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFCi1ECdCUCUNZUklMTElDIENBUElUQUwgTEVUVEVSIERFCi1FCdCVCUNZUklMTElDIENBUElUQUwgTEVUVEVSIElFCi1aaAnQlglDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUKLVpICdCWCUNZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRQotWgnQlwlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRQotSQnQmAlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJCi1KCdCZCUNZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIEkKLUsJ0JoJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EKLUwJ0JsJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRUwKLU0J0JwJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU0KLU4J0J0JQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4KLU8J0J4JQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTwotUAnQnwlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRQotUgnQoAlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUgotUwnQoQlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUwotVAnQoglDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURQotVQnQowlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVCi1GCdCkCUNZUklMTElDIENBUElUQUwgTEVUVEVSIEVGCi1ICdClCUNZUklMTElDIENBUElUQUwgTEVUVEVSIEhBCi1DCdCmCUNZUklMTElDIENBUElUQUwgTEVUVEVSIFRTRQotQ2gJ0KcJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFCi1DSAnQpwlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUKLVNoCdCoCUNZUklMTElDIENBUElUQUwgTEVUVEVSIFNIQQotU0gJ0KgJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hBCi1TaHQJ0KkJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hDSEEKLVNIdAnQqQlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSENIQQotU0hUCdCpCUNZUklMTElDIENBUElUQUwgTEVUVEVSIFNIQ0hBCi1TagnQqQlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSENIQQotU0oJ0KkJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hDSEEKLVkJ0KoJQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEFSRCBTSUdOCi1YCdCsCUNZUklMTElDIENBUElUQUwgTEVUVEVSIFNPRlQgU0lHTgotfgnQrglDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZVQotSnUJ0K4JQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWVUKLUpVCdCuCUNZUklMTElDIENBUElUQUwgTEVUVEVSIFlVCi1RCdCvCUNZUklMTElDIENBUElUQUwgTEVUVEVSIFlBCi1KYQnQrwlDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQQotSkEJ0K8JQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUEKLWEJ0LAJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEEKLWIJ0LEJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEJFCi13CdCyCUNZUklMTElDIFNNQUxMIExFVFRFUiBWRQotdgnQsglDWVJJTExJQyBTTUFMTCBMRVRURVIgVkUKLWcJ0LMJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRQotZAnQtAlDWVJJTExJQyBTTUFMTCBMRVRURVIgREUKLWUJ0LUJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIElFCi16aAnQtglDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFCi13CdC2CUNZUklMTElDIFNNQUxMIExFVFRFUiBaSEUKLXoJ0LcJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFCi1pCdC4CUNZUklMTElDIFNNQUxMIExFVFRFUiBJCi1qCdC5CUNZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBJCi1rCdC6CUNZUklMTElDIFNNQUxMIExFVFRFUiBLQQotbAnQuwlDWVJJTExJQyBTTUFMTCBMRVRURVIgRUwKLW0J0LwJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEVNCi1uCdC9CUNZUklMTElDIFNNQUxMIExFVFRFUiBFTgotbwnQvglDWVJJTExJQyBTTUFMTCBMRVRURVIgTwotcAnQvwlDWVJJTExJQyBTTUFMTCBMRVRURVIgUEUKLXIJ0YAJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEVSCi1zCdGBCUNZUklMTElDIFNNQUxMIExFVFRFUiBFUwotdAnRgglDWVJJTExJQyBTTUFMTCBMRVRURVIgVEUKLXUJ0YMJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFUKLWYJ0YQJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEVGCi1oCdGFCUNZUklMTElDIFNNQUxMIExFVFRFUiBIQQotYwnRhglDWVJJTExJQyBTTUFMTCBMRVRURVIgVFNFCi1jaAnRhwlDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFCi1zaAnRiAlDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hBCi1zaHQJ0YkJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQ0hBCi1zagnRiQlDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hDSEEKLXkJ0YoJQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBUkQgU0lHTgoteAnRjAlDWVJJTExJQyBTTUFMTCBMRVRURVIgU09GVCBTSUdOCi1gCdGOCUNZUklMTElDIFNNQUxMIExFVFRFUiBZVQotanUJ0Y4JQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlVCi1xCdGPCUNZUklMTElDIFNNQUxMIExFVFRFUiBZQQotamEJ0Y8JQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBCmRpZmYgLS1naXQgYS9ydW50aW1lL21hY3Jvcy9qdXN0aWZ5LnZpbSBiL3J1bnRpbWUvbWFjcm9zL2p1c3RpZnkudmltCmluZGV4IDQxZDA1OTEuLmFhNGE5Y2EgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbWFjcm9zL2p1c3RpZnkudmltCisrKyBiL3J1bnRpbWUvbWFjcm9zL2p1c3RpZnkudmltCkBAIC0yNTYsMTcgKzI1NiwxOCBAQAogCWxldCBzdHIgPSBzdWJzdGl0dXRlKHN0ciwgJ1xzXCskJywgJycsICcnKQogCWxldCBzdHIgPSBzdWJzdGl0dXRlKHN0ciwgJ15cc1wrJywgJycsICcnKQogCWxldCBzdHIgPSBzdWJzdGl0dXRlKHN0ciwgJ1xzXCsnLCAnICcsICdnJykKLQlsZXQgc3RyX24gPSBzdHJsZW4oc3RyKQorCSIgVXNlIHN1YnN0aXR1dGUoKSBoYWNrIHRvIGdldCBzdHJsZW4gaW4gY2hhcmFjdGVycyBpbnN0ZWFkIG9mIGJ5dGVzCisJbGV0IHN0cl9uID0gc3RybGVuKHN1YnN0aXR1dGUoc3RyLCAnLicsICd4JywgJ2cnKSkKIAogCSIgUG9zc2libGUgYWRkaXRpb24gb2Ygc3BhY2UgYWZ0ZXIgcHVuY3R1YXRpb24KIAlpZiBleGlzdHMoImpvaW5fc3RyIikKIAkgICAgbGV0IHN0ciA9IHN1YnN0aXR1dGUoc3RyLCBqb2luX3N0ciwgJ1wxICcsICdnJykKIAllbmRpZgotCWxldCBqb2luX24gPSBzdHJsZW4oc3RyKSAtIHN0cl9uCisJbGV0IGpvaW5fbiA9IHN0cmxlbihzdWJzdGl0dXRlKHN0ciwgJy4nLCAneCcsICdnJykpIC0gc3RyX24KIAogCSIgQ2FuIGV4dHJhc3BhY2VzIGJlIGFkZGVkPwogCSIgTm90ZSB0aGF0IHN0cl9uIG1heSBiZSBsZXNzIHRoYW4gc3RybGVuKHN0cikgW2pvaW5zcGFjZXMgYWJvdmVdCi0JaWYgc3RybGVuKHN0cikgPCB0dyAtIGluZGVudF9uICYmIHN0cl9uID4gMAorCWlmIHN0cmxlbihzdWJzdGl0dXRlKHN0ciwgJy4nLCAneCcsICdnJykpIDwgdHcgLSBpbmRlbnRfbiAmJiBzdHJfbiA+IDAKIAkgICAgIiBIb3cgbWFueSBzcGFjZXMgc2hvdWxkIGJlIGFkZGVkCiAJICAgIGxldCBzX2FkZCA9IHR3IC0gc3RyX24gLSBpbmRlbnRfbiAtIGpvaW5fbgogCSAgICBsZXQgc19uciAgPSBzdHJsZW4oc3Vic3RpdHV0ZShzdHIsICdcUycsICcnLCAnZycpICkgLSBqb2luX24KZGlmZiAtLWdpdCBhL3J1bnRpbWUvbWFrZW1lbnUudmltIGIvcnVudGltZS9tYWtlbWVudS52aW0KaW5kZXggNmZhMzRlNS4uNWY3ODgzYyAxMDA2NDQKLS0tIGEvcnVudGltZS9tYWtlbWVudS52aW0KKysrIGIvcnVudGltZS9tYWtlbWVudS52aW0KQEAgLTEsNiArMSw2IEBACiAiIFNjcmlwdCB0byBkZWZpbmUgdGhlIHN5bnRheCBtZW51IGluIHN5bm1lbnUudmltCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDA4IEp1biAyNAorIiBMYXN0IENoYW5nZToJMjAwOCBKdWwgMTMKIAogIiBUaGlzIGlzIHVzZWQgYnkgIm1ha2UgbWVudSIgaW4gdGhlIHNyYyBkaXJlY3RvcnkuCiBlZGl0IDxzZmlsZT46cDpoL3N5bm1lbnUudmltCkBAIC0yMjgsMTEgKzIyOCwxMyBAQAogU3luTWVudSBGRy5Hcm9vdnk6Z3Jvb3Z5CiBTeW5NZW51IEZHLkdUS3JjOmd0a3JjCiAKK1N5bk1lbnUgSElKSy5IYW1sOmhhbWwKIFN5bk1lbnUgSElKSy5IYW1zdGVyOmhhbXN0ZXIKIFN5bk1lbnUgSElKSy5IYXNrZWxsLkhhc2tlbGw6aGFza2VsbAogU3luTWVudSBISUpLLkhhc2tlbGwuSGFza2VsbC1jMmhzOmNoYXNrZWxsCiBTeW5NZW51IEhJSksuSGFza2VsbC5IYXNrZWxsLWxpdGVyYXRlOmxoYXNrZWxsCiBTeW5NZW51IEhJSksuSEFTVEU6aGFzdGUKK1N5bk1lbnUgSElKSy5IQVNURVwgcHJlcHJvYzpoYXN0ZXByZXByb2MKIFN5bk1lbnUgSElKSy5IZXJjdWxlczpoZXJjdWxlcwogU3luTWVudSBISUpLLkhleFwgZHVtcC5YWEQ6eHhkCiBTeW5NZW51IEhJSksuSGV4XCBkdW1wLkludGVsXCBNQ1M1MTpoZXgKQEAgLTQyNiw2ICs0MjgsNyBAQAogU3luTWVudSBSLVNnLlMtTGFuZzpzbGFuZwogU3luTWVudSBSLVNnLlNhbWJhXCBjb25maWc6c2FtYmEKIFN5bk1lbnUgUi1TZy5TQVM6c2FzCitTeW5NZW51IFItU2cuU2FzczpzYXNzCiBTeW5NZW51IFItU2cuU2F0aGVyOnNhdGhlcgogU3luTWVudSBSLVNnLlNjaGVtZTpzY2hlbWUKIFN5bk1lbnUgUi1TZy5TY2lsYWI6c2NpbGFiCmRpZmYgLS1naXQgYS9ydW50aW1lL3BsdWdpbi9nZXRzY3JpcHRQbHVnaW4udmltIGIvcnVudGltZS9wbHVnaW4vZ2V0c2NyaXB0UGx1Z2luLnZpbQppbmRleCA3ZmUxMDNkLi40ZmQzNmRiIDEwMDY0NAotLS0gYS9ydW50aW1lL3BsdWdpbi9nZXRzY3JpcHRQbHVnaW4udmltCisrKyBiL3J1bnRpbWUvcGx1Z2luL2dldHNjcmlwdFBsdWdpbi52aW0KQEAgLTE5LDcgKzE5LDcgQEAKICBlbmRpZgogIGZpbmlzaAogZW5kaWYKLWxldCBnOmxvYWRlZF9nZXRzY3JpcHRQbHVnaW4gPSAidjMwIgorbGV0IGc6bG9hZGVkX2dldHNjcmlwdFBsdWdpbiA9ICJ2MzEiCiBsZXQgczprZWVwY3BvICAgICAgICAgICAgICAgID0gJmNwbwogc2V0IGNwbyZ2aW0KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9wbHVnaW4vbmV0cndQbHVnaW4udmltIGIvcnVudGltZS9wbHVnaW4vbmV0cndQbHVnaW4udmltCmluZGV4IGIwYTI5YWQuLmY4NGFhZGMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvcGx1Z2luL25ldHJ3UGx1Z2luLnZpbQorKysgYi9ydW50aW1lL3BsdWdpbi9uZXRyd1BsdWdpbi52aW0KQEAgLTIyLDcgKzIyLDcgQEAKIGlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX25ldHJ3UGx1Z2luIikKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfbmV0cndQbHVnaW4gPSAidjEyNSIKK2xldCBnOmxvYWRlZF9uZXRyd1BsdWdpbiA9ICJ2MTI3IgogbGV0IHM6a2VlcGNwbyAgICAgICAgICAgID0gJmNwbwogaWYgdjp2ZXJzaW9uIDwgNzAwCiAgZWNob2hsIFdhcm5pbmdNc2cgfCBlY2hvICIqKipuZXRydyoqKiB5b3UgbmVlZCB2aW0gdmVyc2lvbiA3LjAgZm9yIHRoaXMgdmVyc2lvbiBvZiBuZXRydyIgfCBlY2hvaGwgTm9uZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9wbHVnaW4vdGFyUGx1Z2luLnZpbSBiL3J1bnRpbWUvcGx1Z2luL3RhclBsdWdpbi52aW0KaW5kZXggNDJmZDk2YS4uNDEyY2VlZCAxMDA2NDQKLS0tIGEvcnVudGltZS9wbHVnaW4vdGFyUGx1Z2luLnZpbQorKysgYi9ydW50aW1lL3BsdWdpbi90YXJQbHVnaW4udmltCkBAIC0xNCw3ICsxNCw3IEBACiBpZiAmY3AgfHwgZXhpc3RzKCJnOmxvYWRlZF90YXJQbHVnaW4iKQogIGZpbmlzaAogZW5kaWYKLWxldCBnOmxvYWRlZF90YXJQbHVnaW4gPSAidjE2IgorbGV0IGc6bG9hZGVkX3RhclBsdWdpbiA9ICJ2MTkiCiBsZXQgczprZWVwY3BvICAgICAgICAgID0gJmNwbwogc2V0IGNwbyZ2aW0KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9wbHVnaW4vemlwUGx1Z2luLnZpbSBiL3J1bnRpbWUvcGx1Z2luL3ppcFBsdWdpbi52aW0KaW5kZXggZTk4Njg2Yi4uZTE5OGM2NiAxMDA2NDQKLS0tIGEvcnVudGltZS9wbHVnaW4vemlwUGx1Z2luLnZpbQorKysgYi9ydW50aW1lL3BsdWdpbi96aXBQbHVnaW4udmltCkBAIC0yMCw3ICsyMCwxNiBAQAogaWYgJmNwIHx8IGV4aXN0cygiZzpsb2FkZWRfemlwUGx1Z2luIikKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfemlwUGx1Z2luID0gInYxOCIKKworIiBEb24ndCB1c2UgdGhlIHBsdWdpbiBpZiBmbmFtZWVzY2FwZSgpIGlzIG5vdCBhdmFpbGFibGUKK2lmICFleGlzdHMoIipmbmFtZWVzY2FwZSIpCisgIGlmICZ2ZXJib3NlID4gMQorICAgZWNob2VyciAiemlwUGx1Z2luIG5vdCBsb2FkZWQgYmVjYXVzZSBmbmFtZWVzY2FwZSgpIGlzIG5vdCBhdmFpbGFibGUiCisgZW5kaWYKKyBmaW5pc2gKK2VuZGlmCisKK2xldCBnOmxvYWRlZF96aXBQbHVnaW4gPSAidjIxK2IiCiBsZXQgczprZWVwY3BvICAgICAgICAgID0gJmNwbwogc2V0IGNwbyZ2aW0KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zY3JpcHRzLnZpbSBiL3J1bnRpbWUvc2NyaXB0cy52aW0KaW5kZXggOTM2ZjUwOC4uMjAxYzM3NSAxMDA2NDQKLS0tIGEvcnVudGltZS9zY3JpcHRzLnZpbQorKysgYi9ydW50aW1lL3NjcmlwdHMudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3VwcG9ydCBmaWxlIHRvIGRldGVjdCBmaWxlIHR5cGVzIGluIHNjcmlwdHMKICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBjaGFuZ2U6CTIwMDggQXByIDI4CisiIExhc3QgY2hhbmdlOgkyMDA4IEp1biAzMAogCiAiIFRoaXMgZmlsZSBpcyBjYWxsZWQgYnkgYW4gYXV0b2NvbW1hbmQgZm9yIGV2ZXJ5IGZpbGUgdGhhdCBoYXMganVzdCBiZWVuCiAiIGxvYWRlZCBpbnRvIGEgYnVmZmVyLiAgSXQgY2hlY2tzIGlmIHRoZSB0eXBlIG9mIGZpbGUgY2FuIGJlIHJlY29nbml6ZWQgYnkKQEAgLTE2OCw3ICsxNjgsNyBAQAogICAgIHNldCBmdD16c2gKIAogICAiIEVMTSBNYWlsIGZpbGVzCi0gIGVsc2VpZiBzOmxpbmUxID1+ICdeRnJvbSBbYS16QS1aXVthLXpBLVpfMC05XC49LV0qXChAW14gXSpcKVw9IC4qWzEyXVswOV1cZFxkJCcKKyAgZWxzZWlmIHM6bGluZTEgPX4gJ15Gcm9tIFwoW2EtekEtWl1bYS16QS1aXzAtOVwuPS1dKlwoQFteIF0qXClcPVx8LVwpIC4qIFwoMTlcfDIwXClcZFxkJCcKICAgICBzZXQgZnQ9bWFpbAogCiAgICAgIiBNYXNvbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW5tZW51LnZpbSBiL3J1bnRpbWUvc3lubWVudS52aW0KaW5kZXggNjhhODQxZS4uYzIxNTk3NyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW5tZW51LnZpbQorKysgYi9ydW50aW1lL3N5bm1lbnUudmltCkBAIC0yMDgsNTAgKzIwOCw1MiBAQAogYW4gNTAuNDAuNDEwICZTeW50YXguRkcuR3JvZmYgOmNhbCBTZXRTeW4oImdyb2ZmIik8Q1I+CiBhbiA1MC40MC40MjAgJlN5bnRheC5GRy5Hcm9vdnkgOmNhbCBTZXRTeW4oImdyb292eSIpPENSPgogYW4gNTAuNDAuNDMwICZTeW50YXguRkcuR1RLcmMgOmNhbCBTZXRTeW4oImd0a3JjIik8Q1I+Ci1hbiA1MC41MC4xMDAgJlN5bnRheC5ISUpLLkhhbXN0ZXIgOmNhbCBTZXRTeW4oImhhbXN0ZXIiKTxDUj4KLWFuIDUwLjUwLjExMCAmU3ludGF4LkhJSksuSGFza2VsbC5IYXNrZWxsIDpjYWwgU2V0U3luKCJoYXNrZWxsIik8Q1I+Ci1hbiA1MC41MC4xMjAgJlN5bnRheC5ISUpLLkhhc2tlbGwuSGFza2VsbC1jMmhzIDpjYWwgU2V0U3luKCJjaGFza2VsbCIpPENSPgotYW4gNTAuNTAuMTMwICZTeW50YXguSElKSy5IYXNrZWxsLkhhc2tlbGwtbGl0ZXJhdGUgOmNhbCBTZXRTeW4oImxoYXNrZWxsIik8Q1I+Ci1hbiA1MC41MC4xNDAgJlN5bnRheC5ISUpLLkhBU1RFIDpjYWwgU2V0U3luKCJoYXN0ZSIpPENSPgotYW4gNTAuNTAuMTUwICZTeW50YXguSElKSy5IZXJjdWxlcyA6Y2FsIFNldFN5bigiaGVyY3VsZXMiKTxDUj4KLWFuIDUwLjUwLjE2MCAmU3ludGF4LkhJSksuSGV4XCBkdW1wLlhYRCA6Y2FsIFNldFN5bigieHhkIik8Q1I+Ci1hbiA1MC41MC4xNzAgJlN5bnRheC5ISUpLLkhleFwgZHVtcC5JbnRlbFwgTUNTNTEgOmNhbCBTZXRTeW4oImhleCIpPENSPgotYW4gNTAuNTAuMTgwICZTeW50YXguSElKSy5IVE1MLkhUTUwgOmNhbCBTZXRTeW4oImh0bWwiKTxDUj4KLWFuIDUwLjUwLjE5MCAmU3ludGF4LkhJSksuSFRNTC5IVE1MXCB3aXRoXCBNNCA6Y2FsIFNldFN5bigiaHRtbG00Iik8Q1I+Ci1hbiA1MC41MC4yMDAgJlN5bnRheC5ISUpLLkhUTUwuSFRNTFwgd2l0aFwgUnVieVwgKGVSdWJ5KSA6Y2FsIFNldFN5bigiZXJ1YnkiKTxDUj4KLWFuIDUwLjUwLjIxMCAmU3ludGF4LkhJSksuSFRNTC5DaGVldGFoXCBIVE1MXCB0ZW1wbGF0ZSA6Y2FsIFNldFN5bigiaHRtbGNoZWV0YWgiKTxDUj4KLWFuIDUwLjUwLjIyMCAmU3ludGF4LkhJSksuSFRNTC5EamFuZ29cIEhUTUxcIHRlbXBsYXRlIDpjYWwgU2V0U3luKCJodG1sZGphbmdvIik8Q1I+Ci1hbiA1MC41MC4yMzAgJlN5bnRheC5ISUpLLkhUTUwuSFRNTC9PUyA6Y2FsIFNldFN5bigiaHRtbG9zIik8Q1I+Ci1hbiA1MC41MC4yNDAgJlN5bnRheC5ISUpLLkhUTUwuWEhUTUwgOmNhbCBTZXRTeW4oInhodG1sIik8Q1I+Ci1hbiA1MC41MC4yNTAgJlN5bnRheC5ISUpLLkhvc3RcLmNvbmYgOmNhbCBTZXRTeW4oImhvc3Rjb25mIik8Q1I+Ci1hbiA1MC41MC4yNjAgJlN5bnRheC5ISUpLLkh5cGVyXCBCdWlsZGVyIDpjYWwgU2V0U3luKCJoYiIpPENSPgotYW4gNTAuNTAuMjgwICZTeW50YXguSElKSy5JY2V3bVwgbWVudSA6Y2FsIFNldFN5bigiaWNlbWVudSIpPENSPgotYW4gNTAuNTAuMjkwICZTeW50YXguSElKSy5JY29uIDpjYWwgU2V0U3luKCJpY29uIik8Q1I+Ci1hbiA1MC41MC4zMDAgJlN5bnRheC5ISUpLLklETFxHZW5lcmljXCBJREwgOmNhbCBTZXRTeW4oImlkbCIpPENSPgotYW4gNTAuNTAuMzEwICZTeW50YXguSElKSy5JRExcTWljcm9zb2Z0XCBJREwgOmNhbCBTZXRTeW4oIm1zaWRsIik8Q1I+Ci1hbiA1MC41MC4zMjAgJlN5bnRheC5ISUpLLkluZGVudFwgcHJvZmlsZSA6Y2FsIFNldFN5bigiaW5kZW50Iik8Q1I+Ci1hbiA1MC41MC4zMzAgJlN5bnRheC5ISUpLLkluZm9ybSA6Y2FsIFNldFN5bigiaW5mb3JtIik8Q1I+Ci1hbiA1MC41MC4zNDAgJlN5bnRheC5ISUpLLkluZm9ybWl4XCA0R0wgOmNhbCBTZXRTeW4oImZnbCIpPENSPgotYW4gNTAuNTAuMzUwICZTeW50YXguSElKSy5Jbml0bmcgOmNhbCBTZXRTeW4oImluaXRuZyIpPENSPgotYW4gNTAuNTAuMzYwICZTeW50YXguSElKSy5Jbml0dGFiIDpjYWwgU2V0U3luKCJpbml0dGFiIik8Q1I+Ci1hbiA1MC41MC4zNzAgJlN5bnRheC5ISUpLLklubm9cIHNldHVwIDpjYWwgU2V0U3luKCJpc3MiKTxDUj4KLWFuIDUwLjUwLjM4MCAmU3ludGF4LkhJSksuSW5zdGFsbFNoaWVsZFwgc2NyaXB0IDpjYWwgU2V0U3luKCJpc2hkIik8Q1I+Ci1hbiA1MC41MC4zOTAgJlN5bnRheC5ISUpLLkludGVyYWN0aXZlXCBEYXRhXCBMYW5nIDpjYWwgU2V0U3luKCJpZGxhbmciKTxDUj4KLWFuIDUwLjUwLjQwMCAmU3ludGF4LkhJSksuSVBmaWx0ZXIgOmNhbCBTZXRTeW4oImlwZmlsdGVyIik8Q1I+Ci1hbiA1MC41MC40MjAgJlN5bnRheC5ISUpLLkpBTCA6Y2FsIFNldFN5bigiamFsIik8Q1I+Ci1hbiA1MC41MC40MzAgJlN5bnRheC5ISUpLLkpBTSA6Y2FsIFNldFN5bigiamFtIik8Q1I+Ci1hbiA1MC41MC40NDAgJlN5bnRheC5ISUpLLkphcmdvbiA6Y2FsIFNldFN5bigiamFyZ29uIik8Q1I+Ci1hbiA1MC41MC40NTAgJlN5bnRheC5ISUpLLkphdmEuSmF2YSA6Y2FsIFNldFN5bigiamF2YSIpPENSPgotYW4gNTAuNTAuNDYwICZTeW50YXguSElKSy5KYXZhLkphdmFDQyA6Y2FsIFNldFN5bigiamF2YWNjIik8Q1I+Ci1hbiA1MC41MC40NzAgJlN5bnRheC5ISUpLLkphdmEuSmF2YVwgU2VydmVyXCBQYWdlcyA6Y2FsIFNldFN5bigianNwIik8Q1I+Ci1hbiA1MC41MC40ODAgJlN5bnRheC5ISUpLLkphdmEuSmF2YVwgUHJvcGVydGllcyA6Y2FsIFNldFN5bigianByb3BlcnRpZXMiKTxDUj4KLWFuIDUwLjUwLjQ5MCAmU3ludGF4LkhJSksuSmF2YVNjcmlwdCA6Y2FsIFNldFN5bigiamF2YXNjcmlwdCIpPENSPgotYW4gNTAuNTAuNTAwICZTeW50YXguSElKSy5KZXNzIDpjYWwgU2V0U3luKCJqZXNzIik8Q1I+Ci1hbiA1MC41MC41MTAgJlN5bnRheC5ISUpLLkpncmFwaCA6Y2FsIFNldFN5bigiamdyYXBoIik8Q1I+Ci1hbiA1MC41MC41MzAgJlN5bnRheC5ISUpLLktjb25maWcgOmNhbCBTZXRTeW4oImtjb25maWciKTxDUj4KLWFuIDUwLjUwLjU0MCAmU3ludGF4LkhJSksuS0RFXCBzY3JpcHQgOmNhbCBTZXRTeW4oImtzY3JpcHQiKTxDUj4KLWFuIDUwLjUwLjU1MCAmU3ludGF4LkhJSksuS2ltd2l0dSsrIDpjYWwgU2V0U3luKCJrd3QiKTxDUj4KLWFuIDUwLjUwLjU2MCAmU3ludGF4LkhJSksuS2l4VGFydCA6Y2FsIFNldFN5bigia2l4Iik8Q1I+CithbiA1MC41MC4xMDAgJlN5bnRheC5ISUpLLkhhbWwgOmNhbCBTZXRTeW4oImhhbWwiKTxDUj4KK2FuIDUwLjUwLjExMCAmU3ludGF4LkhJSksuSGFtc3RlciA6Y2FsIFNldFN5bigiaGFtc3RlciIpPENSPgorYW4gNTAuNTAuMTIwICZTeW50YXguSElKSy5IYXNrZWxsLkhhc2tlbGwgOmNhbCBTZXRTeW4oImhhc2tlbGwiKTxDUj4KK2FuIDUwLjUwLjEzMCAmU3ludGF4LkhJSksuSGFza2VsbC5IYXNrZWxsLWMyaHMgOmNhbCBTZXRTeW4oImNoYXNrZWxsIik8Q1I+CithbiA1MC41MC4xNDAgJlN5bnRheC5ISUpLLkhhc2tlbGwuSGFza2VsbC1saXRlcmF0ZSA6Y2FsIFNldFN5bigibGhhc2tlbGwiKTxDUj4KK2FuIDUwLjUwLjE1MCAmU3ludGF4LkhJSksuSEFTVEUgOmNhbCBTZXRTeW4oImhhc3RlIik8Q1I+CithbiA1MC41MC4xNjAgJlN5bnRheC5ISUpLLkhBU1RFXCBwcmVwcm9jIDpjYWwgU2V0U3luKCJoYXN0ZXByZXByb2MiKTxDUj4KK2FuIDUwLjUwLjE3MCAmU3ludGF4LkhJSksuSGVyY3VsZXMgOmNhbCBTZXRTeW4oImhlcmN1bGVzIik8Q1I+CithbiA1MC41MC4xODAgJlN5bnRheC5ISUpLLkhleFwgZHVtcC5YWEQgOmNhbCBTZXRTeW4oInh4ZCIpPENSPgorYW4gNTAuNTAuMTkwICZTeW50YXguSElKSy5IZXhcIGR1bXAuSW50ZWxcIE1DUzUxIDpjYWwgU2V0U3luKCJoZXgiKTxDUj4KK2FuIDUwLjUwLjIwMCAmU3ludGF4LkhJSksuSFRNTC5IVE1MIDpjYWwgU2V0U3luKCJodG1sIik8Q1I+CithbiA1MC41MC4yMTAgJlN5bnRheC5ISUpLLkhUTUwuSFRNTFwgd2l0aFwgTTQgOmNhbCBTZXRTeW4oImh0bWxtNCIpPENSPgorYW4gNTAuNTAuMjIwICZTeW50YXguSElKSy5IVE1MLkhUTUxcIHdpdGhcIFJ1YnlcIChlUnVieSkgOmNhbCBTZXRTeW4oImVydWJ5Iik8Q1I+CithbiA1MC41MC4yMzAgJlN5bnRheC5ISUpLLkhUTUwuQ2hlZXRhaFwgSFRNTFwgdGVtcGxhdGUgOmNhbCBTZXRTeW4oImh0bWxjaGVldGFoIik8Q1I+CithbiA1MC41MC4yNDAgJlN5bnRheC5ISUpLLkhUTUwuRGphbmdvXCBIVE1MXCB0ZW1wbGF0ZSA6Y2FsIFNldFN5bigiaHRtbGRqYW5nbyIpPENSPgorYW4gNTAuNTAuMjUwICZTeW50YXguSElKSy5IVE1MLkhUTUwvT1MgOmNhbCBTZXRTeW4oImh0bWxvcyIpPENSPgorYW4gNTAuNTAuMjYwICZTeW50YXguSElKSy5IVE1MLlhIVE1MIDpjYWwgU2V0U3luKCJ4aHRtbCIpPENSPgorYW4gNTAuNTAuMjcwICZTeW50YXguSElKSy5Ib3N0XC5jb25mIDpjYWwgU2V0U3luKCJob3N0Y29uZiIpPENSPgorYW4gNTAuNTAuMjgwICZTeW50YXguSElKSy5IeXBlclwgQnVpbGRlciA6Y2FsIFNldFN5bigiaGIiKTxDUj4KK2FuIDUwLjUwLjMwMCAmU3ludGF4LkhJSksuSWNld21cIG1lbnUgOmNhbCBTZXRTeW4oImljZW1lbnUiKTxDUj4KK2FuIDUwLjUwLjMxMCAmU3ludGF4LkhJSksuSWNvbiA6Y2FsIFNldFN5bigiaWNvbiIpPENSPgorYW4gNTAuNTAuMzIwICZTeW50YXguSElKSy5JRExcR2VuZXJpY1wgSURMIDpjYWwgU2V0U3luKCJpZGwiKTxDUj4KK2FuIDUwLjUwLjMzMCAmU3ludGF4LkhJSksuSURMXE1pY3Jvc29mdFwgSURMIDpjYWwgU2V0U3luKCJtc2lkbCIpPENSPgorYW4gNTAuNTAuMzQwICZTeW50YXguSElKSy5JbmRlbnRcIHByb2ZpbGUgOmNhbCBTZXRTeW4oImluZGVudCIpPENSPgorYW4gNTAuNTAuMzUwICZTeW50YXguSElKSy5JbmZvcm0gOmNhbCBTZXRTeW4oImluZm9ybSIpPENSPgorYW4gNTAuNTAuMzYwICZTeW50YXguSElKSy5JbmZvcm1peFwgNEdMIDpjYWwgU2V0U3luKCJmZ2wiKTxDUj4KK2FuIDUwLjUwLjM3MCAmU3ludGF4LkhJSksuSW5pdG5nIDpjYWwgU2V0U3luKCJpbml0bmciKTxDUj4KK2FuIDUwLjUwLjM4MCAmU3ludGF4LkhJSksuSW5pdHRhYiA6Y2FsIFNldFN5bigiaW5pdHRhYiIpPENSPgorYW4gNTAuNTAuMzkwICZTeW50YXguSElKSy5Jbm5vXCBzZXR1cCA6Y2FsIFNldFN5bigiaXNzIik8Q1I+CithbiA1MC41MC40MDAgJlN5bnRheC5ISUpLLkluc3RhbGxTaGllbGRcIHNjcmlwdCA6Y2FsIFNldFN5bigiaXNoZCIpPENSPgorYW4gNTAuNTAuNDEwICZTeW50YXguSElKSy5JbnRlcmFjdGl2ZVwgRGF0YVwgTGFuZyA6Y2FsIFNldFN5bigiaWRsYW5nIik8Q1I+CithbiA1MC41MC40MjAgJlN5bnRheC5ISUpLLklQZmlsdGVyIDpjYWwgU2V0U3luKCJpcGZpbHRlciIpPENSPgorYW4gNTAuNTAuNDQwICZTeW50YXguSElKSy5KQUwgOmNhbCBTZXRTeW4oImphbCIpPENSPgorYW4gNTAuNTAuNDUwICZTeW50YXguSElKSy5KQU0gOmNhbCBTZXRTeW4oImphbSIpPENSPgorYW4gNTAuNTAuNDYwICZTeW50YXguSElKSy5KYXJnb24gOmNhbCBTZXRTeW4oImphcmdvbiIpPENSPgorYW4gNTAuNTAuNDcwICZTeW50YXguSElKSy5KYXZhLkphdmEgOmNhbCBTZXRTeW4oImphdmEiKTxDUj4KK2FuIDUwLjUwLjQ4MCAmU3ludGF4LkhJSksuSmF2YS5KYXZhQ0MgOmNhbCBTZXRTeW4oImphdmFjYyIpPENSPgorYW4gNTAuNTAuNDkwICZTeW50YXguSElKSy5KYXZhLkphdmFcIFNlcnZlclwgUGFnZXMgOmNhbCBTZXRTeW4oImpzcCIpPENSPgorYW4gNTAuNTAuNTAwICZTeW50YXguSElKSy5KYXZhLkphdmFcIFByb3BlcnRpZXMgOmNhbCBTZXRTeW4oImpwcm9wZXJ0aWVzIik8Q1I+CithbiA1MC41MC41MTAgJlN5bnRheC5ISUpLLkphdmFTY3JpcHQgOmNhbCBTZXRTeW4oImphdmFzY3JpcHQiKTxDUj4KK2FuIDUwLjUwLjUyMCAmU3ludGF4LkhJSksuSmVzcyA6Y2FsIFNldFN5bigiamVzcyIpPENSPgorYW4gNTAuNTAuNTMwICZTeW50YXguSElKSy5KZ3JhcGggOmNhbCBTZXRTeW4oImpncmFwaCIpPENSPgorYW4gNTAuNTAuNTUwICZTeW50YXguSElKSy5LY29uZmlnIDpjYWwgU2V0U3luKCJrY29uZmlnIik8Q1I+CithbiA1MC41MC41NjAgJlN5bnRheC5ISUpLLktERVwgc2NyaXB0IDpjYWwgU2V0U3luKCJrc2NyaXB0Iik8Q1I+CithbiA1MC41MC41NzAgJlN5bnRheC5ISUpLLktpbXdpdHUrKyA6Y2FsIFNldFN5bigia3d0Iik8Q1I+CithbiA1MC41MC41ODAgJlN5bnRheC5ISUpLLktpeFRhcnQgOmNhbCBTZXRTeW4oImtpeCIpPENSPgogYW4gNTAuNjAuMTAwICZTeW50YXguTC1NYS5MYWNlIDpjYWwgU2V0U3luKCJsYWNlIik8Q1I+CiBhbiA1MC42MC4xMTAgJlN5bnRheC5MLU1hLkxhbWRhUHJvbG9nIDpjYWwgU2V0U3luKCJscHJvbG9nIik8Q1I+CiBhbiA1MC42MC4xMjAgJlN5bnRheC5MLU1hLkxhdHRlIDpjYWwgU2V0U3luKCJsYXR0ZSIpPENSPgpAQCAtNDAyLDI0ICs0MDQsMjUgQEAKIGFuIDUwLjkwLjM1MCAmU3ludGF4LlItU2cuUy1MYW5nIDpjYWwgU2V0U3luKCJzbGFuZyIpPENSPgogYW4gNTAuOTAuMzYwICZTeW50YXguUi1TZy5TYW1iYVwgY29uZmlnIDpjYWwgU2V0U3luKCJzYW1iYSIpPENSPgogYW4gNTAuOTAuMzcwICZTeW50YXguUi1TZy5TQVMgOmNhbCBTZXRTeW4oInNhcyIpPENSPgotYW4gNTAuOTAuMzgwICZTeW50YXguUi1TZy5TYXRoZXIgOmNhbCBTZXRTeW4oInNhdGhlciIpPENSPgotYW4gNTAuOTAuMzkwICZTeW50YXguUi1TZy5TY2hlbWUgOmNhbCBTZXRTeW4oInNjaGVtZSIpPENSPgotYW4gNTAuOTAuNDAwICZTeW50YXguUi1TZy5TY2lsYWIgOmNhbCBTZXRTeW4oInNjaWxhYiIpPENSPgotYW4gNTAuOTAuNDEwICZTeW50YXguUi1TZy5TY3JlZW5cIFJDIDpjYWwgU2V0U3luKCJzY3JlZW4iKTxDUj4KLWFuIDUwLjkwLjQyMCAmU3ludGF4LlItU2cuU0RMIDpjYWwgU2V0U3luKCJzZGwiKTxDUj4KLWFuIDUwLjkwLjQzMCAmU3ludGF4LlItU2cuU2VkIDpjYWwgU2V0U3luKCJzZWQiKTxDUj4KLWFuIDUwLjkwLjQ0MCAmU3ludGF4LlItU2cuU2VuZG1haWxcLmNmIDpjYWwgU2V0U3luKCJzbSIpPENSPgotYW4gNTAuOTAuNDUwICZTeW50YXguUi1TZy5TZW5kLXByIDpjYWwgU2V0U3luKCJzZW5kcHIiKTxDUj4KLWFuIDUwLjkwLjQ2MCAmU3ludGF4LlItU2cuU2Vuc29yc1wuY29uZiA6Y2FsIFNldFN5bigic2Vuc29ycyIpPENSPgotYW4gNTAuOTAuNDcwICZTeW50YXguUi1TZy5TZXJ2aWNlXCBMb2NhdGlvblwgY29uZmlnIDpjYWwgU2V0U3luKCJzbHBjb25mIik8Q1I+Ci1hbiA1MC45MC40ODAgJlN5bnRheC5SLVNnLlNlcnZpY2VcIExvY2F0aW9uXCByZWdpc3RyYXRpb24gOmNhbCBTZXRTeW4oInNscHJlZyIpPENSPgotYW4gNTAuOTAuNDkwICZTeW50YXguUi1TZy5TZXJ2aWNlXCBMb2NhdGlvblwgU1BJIDpjYWwgU2V0U3luKCJzbHBzcGkiKTxDUj4KLWFuIDUwLjkwLjUwMCAmU3ludGF4LlItU2cuU2VydmljZXMgOmNhbCBTZXRTeW4oInNlcnZpY2VzIik8Q1I+Ci1hbiA1MC45MC41MTAgJlN5bnRheC5SLVNnLlNldHNlcmlhbFwgY29uZmlnIDpjYWwgU2V0U3luKCJzZXRzZXJpYWwiKTxDUj4KLWFuIDUwLjkwLjUyMCAmU3ludGF4LlItU2cuU0dNTC5TR01MXCBjYXRhbG9nIDpjYWwgU2V0U3luKCJjYXRhbG9nIik8Q1I+Ci1hbiA1MC45MC41MzAgJlN5bnRheC5SLVNnLlNHTUwuU0dNTFwgRFREIDpjYWwgU2V0U3luKCJzZ21sIik8Q1I+Ci1hbiA1MC45MC41NDAgJlN5bnRheC5SLVNnLlNHTUwuU0dNTFwgRGVjbGFyYXRpb24gOmNhbCBTZXRTeW4oInNnbWxkZWNsIik8Q1I+Ci1hbiA1MC45MC41NTAgJlN5bnRheC5SLVNnLlNHTUwuU0dNTC1saW51eGRvYyA6Y2FsIFNldFN5bigic2dtbGxueCIpPENSPgorYW4gNTAuOTAuMzgwICZTeW50YXguUi1TZy5TYXNzIDpjYWwgU2V0U3luKCJzYXNzIik8Q1I+CithbiA1MC45MC4zOTAgJlN5bnRheC5SLVNnLlNhdGhlciA6Y2FsIFNldFN5bigic2F0aGVyIik8Q1I+CithbiA1MC45MC40MDAgJlN5bnRheC5SLVNnLlNjaGVtZSA6Y2FsIFNldFN5bigic2NoZW1lIik8Q1I+CithbiA1MC45MC40MTAgJlN5bnRheC5SLVNnLlNjaWxhYiA6Y2FsIFNldFN5bigic2NpbGFiIik8Q1I+CithbiA1MC45MC40MjAgJlN5bnRheC5SLVNnLlNjcmVlblwgUkMgOmNhbCBTZXRTeW4oInNjcmVlbiIpPENSPgorYW4gNTAuOTAuNDMwICZTeW50YXguUi1TZy5TREwgOmNhbCBTZXRTeW4oInNkbCIpPENSPgorYW4gNTAuOTAuNDQwICZTeW50YXguUi1TZy5TZWQgOmNhbCBTZXRTeW4oInNlZCIpPENSPgorYW4gNTAuOTAuNDUwICZTeW50YXguUi1TZy5TZW5kbWFpbFwuY2YgOmNhbCBTZXRTeW4oInNtIik8Q1I+CithbiA1MC45MC40NjAgJlN5bnRheC5SLVNnLlNlbmQtcHIgOmNhbCBTZXRTeW4oInNlbmRwciIpPENSPgorYW4gNTAuOTAuNDcwICZTeW50YXguUi1TZy5TZW5zb3JzXC5jb25mIDpjYWwgU2V0U3luKCJzZW5zb3JzIik8Q1I+CithbiA1MC45MC40ODAgJlN5bnRheC5SLVNnLlNlcnZpY2VcIExvY2F0aW9uXCBjb25maWcgOmNhbCBTZXRTeW4oInNscGNvbmYiKTxDUj4KK2FuIDUwLjkwLjQ5MCAmU3ludGF4LlItU2cuU2VydmljZVwgTG9jYXRpb25cIHJlZ2lzdHJhdGlvbiA6Y2FsIFNldFN5bigic2xwcmVnIik8Q1I+CithbiA1MC45MC41MDAgJlN5bnRheC5SLVNnLlNlcnZpY2VcIExvY2F0aW9uXCBTUEkgOmNhbCBTZXRTeW4oInNscHNwaSIpPENSPgorYW4gNTAuOTAuNTEwICZTeW50YXguUi1TZy5TZXJ2aWNlcyA6Y2FsIFNldFN5bigic2VydmljZXMiKTxDUj4KK2FuIDUwLjkwLjUyMCAmU3ludGF4LlItU2cuU2V0c2VyaWFsXCBjb25maWcgOmNhbCBTZXRTeW4oInNldHNlcmlhbCIpPENSPgorYW4gNTAuOTAuNTMwICZTeW50YXguUi1TZy5TR01MLlNHTUxcIGNhdGFsb2cgOmNhbCBTZXRTeW4oImNhdGFsb2ciKTxDUj4KK2FuIDUwLjkwLjU0MCAmU3ludGF4LlItU2cuU0dNTC5TR01MXCBEVEQgOmNhbCBTZXRTeW4oInNnbWwiKTxDUj4KK2FuIDUwLjkwLjU1MCAmU3ludGF4LlItU2cuU0dNTC5TR01MXCBEZWNsYXJhdGlvbiA6Y2FsIFNldFN5bigic2dtbGRlY2wiKTxDUj4KK2FuIDUwLjkwLjU2MCAmU3ludGF4LlItU2cuU0dNTC5TR01MLWxpbnV4ZG9jIDpjYWwgU2V0U3luKCJzZ21sbG54Iik8Q1I+CiBhbiA1MC4xMDAuMTAwICZTeW50YXguU2gtUy5TaGVsbFwgc2NyaXB0LnNoXCBhbmRcIGtzaCA6Y2FsIFNldFN5bigic2giKTxDUj4KIGFuIDUwLjEwMC4xMTAgJlN5bnRheC5TaC1TLlNoZWxsXCBzY3JpcHQuY3NoIDpjYWwgU2V0U3luKCJjc2giKTxDUj4KIGFuIDUwLjEwMC4xMjAgJlN5bnRheC5TaC1TLlNoZWxsXCBzY3JpcHQudGNzaCA6Y2FsIFNldFN5bigidGNzaCIpPENSPgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvYWRhLnZpbSBiL3J1bnRpbWUvc3ludGF4L2FkYS52aW0KaW5kZXggZjMxNzcwMC4uOGQ3NmZiOCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvYWRhLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9hZGEudmltCkBAIC05LDkgKzksOSBAQAogIiBDb250cmlidXRvcnM6IFByZWJlbiBSYW5kaG9sLgogIiAgICAgICRBdXRob3IkCiAiCSAkRGF0ZSQKLSIgICAgICBWZXJzaW9uOiA0LjIKKyIgICAgICBWZXJzaW9uOiA0LjYKICIgICAgJFJldmlzaW9uJAotIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vc3ZuLnNvdXJjZWZvcmdlLm5ldC9zdm5yb290L2dudWFkYS90cnVuay90b29scy92aW0vc3ludGF4L2FkYS52aW0gJAorIiAgICAgJEhlYWRVUkw6IGh0dHBzOi8vZ251YWRhLnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9nbnVhZGEvdHJ1bmsvdG9vbHMvdmltL3N5bnRheC9hZGEudmltICQKICIJCWh0dHA6Ly93d3cuZHdoZWVsZXIuY29tL3ZpbQogIiAgICAgIEhpc3Rvcnk6IDI0LjA1LjIwMDYgTUsgVW5pZmllZCBIZWFkZXJzCiAiCQkyNi4wNS4yMDA2IE1LICcgc2hvdWxkIG5vdCBiZSBpbiBpc2tleXdvcmQuCkBAIC0zOCw4ICszOCw2IEBACiAiIFNlY3Rpb246IEFkYSBpcyBlbnRpcmVseSBjYXNlLWluc2Vuc2l0aXZlLiB7e3sxCiAiCiBzeW50YXggICBjYXNlIGlnbm9yZQotc2V0bG9jYWwgbm9zbWFydGNhc2UKLXNldGxvY2FsIGlnbm9yZWNhc2UKIAogIiBTZWN0aW9uOiBIaWdobGlnaHRpbmcgY29tbWFuZHMge3t7MQogIgpAQCAtOTgsNyArOTYsOCBAQAogIgogaWYgZXhpc3RzKCJnOmFkYV9yYWluYm93X2NvbG9yIikKICAgICBzeW50YXggbWF0Y2gJYWRhU3BlY2lhbAkgIls6Oy4sXSIKLSAgICBydW50aW1lIHBsdWdpbi9SYWluYm93X1BhcmVudGhzaXMudmltCisgICAgY2FsbCByYWluYm93X3BhcmVudGhzaXMjTG9hZFJvdW5kICgpCisgICAgY2FsbCByYWluYm93X3BhcmVudGhzaXMjQWN0aXZhdGUgKCkKIGVsc2UKICAgICBzeW50YXggbWF0Y2gJYWRhU3BlY2lhbAkgIls6OygpLixdIgogZW5kaWYKQEAgLTE1OSw3ICsxNTgsNyBAQAogIiBTZWN0aW9uOiBlbmQge3t7MQogIiBVbmxlc3Mgc3BlY2lhbCAoImVuZCBsb29wIiwgImVuZCBpZiIsIGV0Yy4pLCAiZW5kIiBtYXJrcyB0aGUgZW5kIG9mIGEKICIgYmVnaW4sIHBhY2thZ2UsIHRhc2sgZXRjLiBBc3NpZ2luZyBpdCB0byBhZGFFbmQuCi1zeW50YXggbWF0Y2ggICAgYWRhRW5kCSJcPGVuZFw+Igorc3ludGF4IG1hdGNoICAgIGFkYUVuZAkvXDxlbmRcPi8KIAogc3ludGF4IGtleXdvcmQgIGFkYVByZXByb2MJCSBwcmFnbWEKIApAQCAtMzQ2LDkgKzM0NSw2IEBACiBlbmRpZgogCiAKLSIgU2VjdGlvbjogZm9ybWF0b3B0aW9ucyB7e3sxCi0iCi1zZXRsb2NhbCBmb3JtYXRvcHRpb25zKz1yb24KIAogIiBTZWN0aW9uOiBzeW5jIHt7ezEKICIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2RlYmNoYW5nZWxvZy52aW0gYi9ydW50aW1lL3N5bnRheC9kZWJjaGFuZ2Vsb2cudmltCmluZGV4IDI4ZmU4NTQuLmU3NTFmYmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2RlYmNoYW5nZWxvZy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZGViY2hhbmdlbG9nLnZpbQpAQCAtMTksNyArMTksNyBAQAogIiBEZWZpbmUgc29tZSBjb21tb24gZXhwcmVzc2lvbnMgd2UgY2FuIHVzZSBsYXRlciBvbgogc3luIG1hdGNoIGRlYmNoYW5nZWxvZ05hbWUJY29udGFpbmVkICJeW1s6YWxwaGE6XV1bWzphbG51bTpdListXVwrICIKIHN5biBtYXRjaCBkZWJjaGFuZ2Vsb2dVcmdlbmN5CWNvbnRhaW5lZCAiOyB1cmdlbmN5PVwobG93XHxtZWRpdW1cfGhpZ2hcfGNyaXRpY2FsXHxlbWVyZ2VuY3lcKVwoIFxTLipcKVw9Igotc3luIG1hdGNoIGRlYmNoYW5nZWxvZ1RhcmdldAljb250YWluZWQgIlwoIFwob2xkXClcPXN0YWJsZVx8IGZyb3plblx8IHVuc3RhYmxlXHwgdGVzdGluZy1wcm9wb3NlZC11cGRhdGVzXHwgZXhwZXJpbWVudGFsXHwgXCUoc2FyZ2VcfGV0Y2hcfGxlbm55XCktXCUoYmFja3BvcnRzXHwtdm9sYXRpbGVcKVx8IFwob2xkXClcPXN0YWJsZS1zZWN1cml0eVx8IHRlc3Rpbmctc2VjdXJpdHlcfCBcKGRhcHBlclx8ZWRneVx8ZmVpc3R5XHxndXRzeVx8aGFyZHlcKVwoLVwoc2VjdXJpdHlcfHByb3Bvc2VkXHx1cGRhdGVzXHxiYWNrcG9ydHNcfGNvbW1lcmNpYWxcfHBhcnRuZXJcKVwpXD9cKVwrIgorc3luIG1hdGNoIGRlYmNoYW5nZWxvZ1RhcmdldAljb250YWluZWQgIlx2ICUoJShvbGQpPXN0YWJsZXxmcm96ZW58dW5zdGFibGV8JSh0ZXN0aW5nLXwlKG9sZCk9c3RhYmxlLSk9cHJvcG9zZWQtdXBkYXRlc3xleHBlcmltZW50YWx8JShzYXJnZXxldGNofGxlbm55KS0lKGJhY2twb3J0c3x2b2xhdGlsZSl8JSh0ZXN0aW5nfCUob2xkKT1zdGFibGUpLXNlY3VyaXR5fCUoZGFwcGVyfGZlaXN0eXxndXRzeXxoYXJkeXxpbnRyZXBpZCklKC0lKHNlY3VyaXR5fHByb3Bvc2VkfHVwZGF0ZXN8YmFja3BvcnRzfGNvbW1lcmNpYWx8cGFydG5lcikpPSkrIgogc3luIG1hdGNoIGRlYmNoYW5nZWxvZ1ZlcnNpb24JY29udGFpbmVkICIoLlx7LX0pIgogc3luIG1hdGNoIGRlYmNoYW5nZWxvZ0Nsb3Nlcwljb250YWluZWQgImNsb3NlczpcX3MqXChidWdcKVw9I1w9XF9zXD1cZFwrXCgsXF9zKlwoYnVnXClcPSNcPVxfc1w9XGRcK1wpKiIKIHN5biBtYXRjaCBkZWJjaGFuZ2Vsb2dMUAljb250YWluZWQgIlxjbHA6XHNcKyNcZFwrXCgsXHMqI1xkXCtcKSoiCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9kZWJjb250cm9sLnZpbSBiL3J1bnRpbWUvc3ludGF4L2RlYmNvbnRyb2wudmltCmluZGV4IDNiMDFmYjUuLmQ1NmEzNDIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2RlYmNvbnRyb2wudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2RlYmNvbnRyb2wudmltCkBAIC0zNCw2ICszNCw3IEBACiBzeW4gbWF0Y2ggZGViY29udHJvbFNlY3Rpb24gY29udGFpbmVkICJcKFwoY29udHJpYlx8bm9uLWZyZWVcfG5vbi1VUy9tYWluXHxub24tVVMvY29udHJpYlx8bm9uLVVTL25vbi1mcmVlXHxyZXN0cmljdGVkXHx1bml2ZXJzZVx8bXVsdGl2ZXJzZVwpL1wpXD1cKGFkbWluXHxiYXNlXHxjb21tXHxkZXZlbFx8ZG9jXHxlZGl0b3JzXHxlbGVjdHJvbmljc1x8ZW1iZWRkZWRcfGdhbWVzXHxnbm9tZVx8Z3JhcGhpY3NcfGhhbXJhZGlvXHxpbnRlcnByZXRlcnNcfGtkZVx8bGlic1x8bGliZGV2ZWxcfG1haWxcfG1hdGhcfG1pc2NcfG5ldFx8bmV3c1x8b2xkbGlic1x8b3RoZXJvc2ZzXHxwZXJsXHxweXRob25cfHNjaWVuY2VcfHNoZWxsc1x8c291bmRcfHRleHRcfHRleFx8dXRpbHNcfHdlYlx8eDExXHxkZWJpYW4taW5zdGFsbGVyXCkiCiBzeW4gbWF0Y2ggZGViY29udHJvbFBhY2thZ2VUeXBlIGNvbnRhaW5lZCAidVw/ZGViIgogc3luIG1hdGNoIGRlYmNvbnRyb2xWYXJpYWJsZSBjb250YWluZWQgIlwkey5cey19fSIKK3N5biBtYXRjaCBkZWJjb250cm9sRG1VcGxvYWQgY29udGFpbmVkICJcY3llcyIKIAogIiBBIFVSTCAodXNpbmcgdGhlIGRvbWFpbiBuYW1lIGRlZmluaXRpb25zIGZyb20gUkZDIDEwMzQgYW5kIDE3MzgpLCByaWdodCBub3cKICIgb25seSBlbmZvcmNlIHByb3RvY29sIGFuZCBzb21lIHNhbml0eSBvbiB0aGUgc2VydmVyL3BhdGggcGFydDsKQEAgLTUyLDcgKzUzLDcgQEAKIHN5biBjYXNlIGlnbm9yZQogCiAiIExpc3Qgb2YgYWxsIGxlZ2FsIGtleXMKLXN5biBtYXRjaCBkZWJjb250cm9sS2V5IGNvbnRhaW5lZCAiXlwoU291cmNlXHxQYWNrYWdlXHxTZWN0aW9uXHxQcmlvcml0eVx8TWFpbnRhaW5lclx8VXBsb2FkZXJzXHxCdWlsZC1EZXBlbmRzXHxCdWlsZC1Db25mbGljdHNcfEJ1aWxkLURlcGVuZHMtSW5kZXBcfEJ1aWxkLUNvbmZsaWN0cy1JbmRlcFx8U3RhbmRhcmRzLVZlcnNpb25cfFByZS1EZXBlbmRzXHxEZXBlbmRzXHxSZWNvbW1lbmRzXHxTdWdnZXN0c1x8UHJvdmlkZXNcfFJlcGxhY2VzXHxDb25mbGljdHNcfEVzc2VudGlhbFx8QXJjaGl0ZWN0dXJlXHxEZXNjcmlwdGlvblx8QnVnc1x8T3JpZ2luXHxFbmhhbmNlc1x8SG9tZXBhZ2VcfFwoWFMtXClcPVZjcy1cKEJyb3dzZXJcfEFyY2hcfEJ6clx8Q3ZzXHxEYXJjc1x8R2l0XHxIZ1x8TXRuXHxTdm5cKVx8WEMtUGFja2FnZS1UeXBlXCk6ICoiCitzeW4gbWF0Y2ggZGViY29udHJvbEtleSBjb250YWluZWQgIl5cKFNvdXJjZVx8UGFja2FnZVx8U2VjdGlvblx8UHJpb3JpdHlcfE1haW50YWluZXJcfFVwbG9hZGVyc1x8QnVpbGQtRGVwZW5kc1x8QnVpbGQtQ29uZmxpY3RzXHxCdWlsZC1EZXBlbmRzLUluZGVwXHxCdWlsZC1Db25mbGljdHMtSW5kZXBcfFN0YW5kYXJkcy1WZXJzaW9uXHxQcmUtRGVwZW5kc1x8RGVwZW5kc1x8UmVjb21tZW5kc1x8U3VnZ2VzdHNcfFByb3ZpZGVzXHxSZXBsYWNlc1x8Q29uZmxpY3RzXHxFc3NlbnRpYWxcfEFyY2hpdGVjdHVyZVx8RGVzY3JpcHRpb25cfEJ1Z3NcfE9yaWdpblx8RW5oYW5jZXNcfEhvbWVwYWdlXHxcKFhTLVwpXD1WY3MtXChCcm93c2VyXHxBcmNoXHxCenJcfEN2c1x8RGFyY3NcfEdpdFx8SGdcfE10blx8U3ZuXClcfFhDLVBhY2thZ2UtVHlwZVx8XCUoWFMtXClcPURNLVVwbG9hZC1BbGxvd2VkXCk6ICoiCiAKICIgRmllbGRzIGZvciB3aGljaCB3ZSBkbyBzdHJpY3Qgc3ludGF4IGNoZWNraW5nCiBzeW4gcmVnaW9uIGRlYmNvbnRyb2xTdHJpY3RGaWVsZCBzdGFydD0iXkFyY2hpdGVjdHVyZSIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xBcmNoaXRlY3R1cmUsZGViY29udHJvbFNwYWNlIG9uZWxpbmUKQEAgLTY1LDYgKzY2LDcgQEAKIHN5biByZWdpb24gZGViY29udHJvbFN0cmljdEZpZWxkIHN0YXJ0PSJeXCUoWFMtXClcP1Zjcy1Tdm4iIGVuZD0iJCIgY29udGFpbnM9ZGViY29udHJvbEtleSxkZWJjb250cm9sVmNzU3ZuLGRlYmNvbnRyb2xIVFRQVXJsIG9uZWxpbmUga2VlcGVuZAogc3luIHJlZ2lvbiBkZWJjb250cm9sU3RyaWN0RmllbGQgc3RhcnQ9Il5cJShYUy1cKVw/VmNzLUN2cyIgZW5kPSIkIiBjb250YWlucz1kZWJjb250cm9sS2V5LGRlYmNvbnRyb2xWY3NDdnMgb25lbGluZSBrZWVwZW5kCiBzeW4gcmVnaW9uIGRlYmNvbnRyb2xTdHJpY3RGaWVsZCBzdGFydD0iXlwlKFhTLVwpXD9WY3MtR2l0IiBlbmQ9IiQiIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbFZjc0dpdCBvbmVsaW5lIGtlZXBlbmQKK3N5biByZWdpb24gZGViY29udHJvbFN0cmljdEZpZWxkIHN0YXJ0PSJeXCUoWFMtXClcP0RNLVVwbG9hZC1BbGxvd2VkIiBlbmQ9IiQiIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbERtVXBsb2FkIG9uZWxpbmUKIAogIiBDYXRjaC1hbGwgZm9yIHRoZSBvdGhlciBsZWdhbCBmaWVsZHMKIHN5biByZWdpb24gZGViY29udHJvbEZpZWxkIHN0YXJ0PSJeXChNYWludGFpbmVyXHxTdGFuZGFyZHMtVmVyc2lvblx8RXNzZW50aWFsXHxCdWdzXHxPcmlnaW5cfFhcKFNcfEJcKS1QeXRob24tVmVyc2lvblx8WFNCQy1PcmlnaW5hbC1NYWludGFpbmVyXHxcKFhTLVwpXD9WY3MtTXRuXCk6IiBlbmQ9IiQiIGNvbnRhaW5zPWRlYmNvbnRyb2xLZXksZGViY29udHJvbFZhcmlhYmxlLGRlYmNvbnRyb2xFbWFpbCBvbmVsaW5lCkBAIC05NCw2ICs5Niw3IEBACiAgIEhpTGluayBkZWJjb250cm9sVmNzQ3ZzCUlkZW50aWZpZXIKICAgSGlMaW5rIGRlYmNvbnRyb2xWY3NHaXQJSWRlbnRpZmllcgogICBIaUxpbmsgZGViY29udHJvbEhUVFBVcmwJSWRlbnRpZmllcgorICBIaUxpbmsgZGViY29udHJvbERtVXBsb2FkCUlkZW50aWZpZXIKICAgSGlMaW5rIGRlYmNvbnRyb2xDb21tZW50CUNvbW1lbnQKICAgSGlMaW5rIGRlYmNvbnRyb2xFbHNlCQlTcGVjaWFsCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2RlYnNvdXJjZXMudmltIGIvcnVudGltZS9zeW50YXgvZGVic291cmNlcy52aW0KaW5kZXggYzk1MmVkOC4uMGFlMDVhYiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZGVic291cmNlcy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZGVic291cmNlcy52aW0KQEAgLTEsMTIgKzEsOSBAQAogIiBWaW0gc3ludGF4IGZpbGUKLSIgTGFuZ3VhZ2U6CURlYmlhbiBzb3VyY2VzLmxpc3QKLSIgTWFpbnRhaW5lcjoJTWF0dGhpanMgTW9obG1hbm4gPG1hdHRoaWpzQGNhY2hvbG9uZy5ubD4KLSIgTGFzdCBDaGFuZ2U6CSREYXRlJAotIiBVUkw6IGh0dHA6Ly93d3cuY2FjaG9sb25nLm5sL35tYXR0aGlqcy92aW0vc3ludGF4L2RlYnNvdXJjZXMudmltCi0iICRSZXZpc2lvbiQKLQotIiB0aGlzIGlzIGEgdmVyeSBzaW1wbGUgc3ludGF4IGZpbGUgLSBJIHdpbGwgYmUgaW1wcm92aW5nIGl0Ci0iIGFkZCBlbnRpcmUgREVGSU5FIHN5bnRheAorIiBMYW5ndWFnZTogICAgIERlYmlhbiBzb3VyY2VzLmxpc3QKKyIgTWFpbnRhaW5lcjogICBEZWJpYW4gVmltIE1haW50YWluZXJzIDxwa2ctdmltLW1haW50YWluZXJzQGxpc3RzLmFsaW90aC5kZWJpYW4ub3JnPgorIiBGb3JtZXIgTWFpbnRhaW5lcjogTWF0dGhpanMgTW9obG1hbm4gPG1hdHRoaWpzQGNhY2hvbG9uZy5ubD4KKyIgTGFzdCBDaGFuZ2U6IDIwMDgtMDQtMjUKKyIgVVJMOiBodHRwOi8vZ2l0LmRlYmlhbi5vcmcvP3A9cGtnLXZpbS92aW0uZ2l0O2E9YmxvYl9wbGFpbjtmPXJ1bnRpbWUvc3ludGF4L2RlYnNvdXJjZXMudmltO2hiPWRlYmlhbgogCiAiIFN0YW5kYXJkIHN5bnRheCBpbml0aWFsaXphdGlvbgogaWYgdmVyc2lvbiA8IDYwMApAQCAtMTksMTQgKzE2LDE0IEBACiBzeW4gY2FzZSBtYXRjaAogCiAiIEEgYnVuY2ggb2YgdXNlZnVsIGtleXdvcmRzCi1zeW4gbWF0Y2ggZGVic291cmNlc0tleXdvcmQgICAgICAgIC9cKGRlYi1zcmNcfGRlYlx8bWFpblx8Y29udHJpYlx8bm9uLWZyZWVcKS8KK3N5biBtYXRjaCBkZWJzb3VyY2VzS2V5d29yZCAgICAgICAgL1woZGViLXNyY1x8ZGViXHxtYWluXHxjb250cmliXHxub24tZnJlZVx8cmVzdHJpY3RlZFx8dW5pdmVyc2VcfG11bHRpdmVyc2VcKS8KIAogIiBNYXRjaCBjb21tZW50cwogc3luIG1hdGNoIGRlYnNvdXJjZXNDb21tZW50ICAgICAgICAvIy4qLwogCiAiIE1hdGNoIHVyaSdzCi1zeW4gbWF0Y2ggZGVic291cmNlc1VyaSAgICAgICAgICAgICtcKGh0dHA6Ly9cfGZ0cDovL1x8ZmlsZTovLy9cKVteJyAJPD4iXVwrKwotc3luIG1hdGNoIGRlYnNvdXJjZXNEaXN0cktleXdvcmQgICArXChbWzphbG51bTpdXy4vXSpcKVwod29vZHlcfHNhcmdlXHxldGNoXHxvbGQtc3RhYmxlXHxzdGFibGVcfHRlc3RpbmdcfHVuc3RhYmxlXHxzaWRcfGV4cGVyaW1lbnRhbFx8d2FydHlcfGhvYXJ5XHxicmVlenlcKVwoW1s6YWxudW06XV8uL10qXCkrCitzeW4gbWF0Y2ggZGVic291cmNlc1VyaSAgICAgICAgICAgICtcKGh0dHA6Ly9cfGZ0cDovL1x8W3JzXXNoOi8vXHxkZWJ0b3JyZW50Oi8vXHxcKGNkcm9tXHxjb3B5XHxmaWxlXCk6XClbXicgCTw+Il1cKysKK3N5biBtYXRjaCBkZWJzb3VyY2VzRGlzdHJLZXl3b3JkICAgK1woW1s6YWxudW06XV8uL10qXClcKHNhcmdlXHxldGNoXHxsZW5ueVx8XChvbGRcKVw9c3RhYmxlXHx0ZXN0aW5nXHx1bnN0YWJsZVx8c2lkXHxleHBlcmltZW50YWxcfGRhcHBlclx8ZmVpc3R5XHxndXRzeVx8aGFyZHlcfGludHJlcGlkXClcKFstWzphbG51bTpdXy4vXSpcKSsKIAogIiBBc3NvY2lhdGUgb3VyIG1hdGNoZXMgYW5kIHJlZ2lvbnMgd2l0aCBwcmV0dHkgY29sb3VycwogaGkgZGVmIGxpbmsgZGVic291cmNlc0xpbmUgICAgICAgICAgICBFcnJvcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZXJ1YnkudmltIGIvcnVudGltZS9zeW50YXgvZXJ1YnkudmltCmluZGV4IDIyYTg0NTMuLjQ2ZTU3MDQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2VydWJ5LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9lcnVieS52aW0KQEAgLTIyLDcgKzIyLDcgQEAKICAgbGV0IHM6bGluZXMgPSBnZXRsaW5lKDEpLiJcbiIuZ2V0bGluZSgyKS4iXG4iLmdldGxpbmUoMykuIlxuIi5nZXRsaW5lKDQpLiJcbiIuZ2V0bGluZSg1KS4iXG4iLmdldGxpbmUoIiQiKQogICBsZXQgYjplcnVieV9zdWJ0eXBlID0gbWF0Y2hzdHIoczpsaW5lcywnZXJ1Ynlfc3VidHlwZT1cenNcd1wrJykKICAgaWYgYjplcnVieV9zdWJ0eXBlID09ICcnCi0gICAgbGV0IGI6ZXJ1Ynlfc3VidHlwZSA9IG1hdGNoc3RyKHN1YnN0aXR1dGUoZXhwYW5kKCIlOnQiKSwnXGNcJShcLmVyYlwpXCskJywnJywnJyksJ1wuXHpzXHdcKyQnKQorICAgIGxldCBiOmVydWJ5X3N1YnR5cGUgPSBtYXRjaHN0cihzdWJzdGl0dXRlKGV4cGFuZCgiJTp0IiksJ1xjXCUoXC5lcmJcfFwuZXJ1YnlcKVwrJCcsJycsJycpLCdcLlx6c1x3XCskJykKICAgZW5kaWYKICAgaWYgYjplcnVieV9zdWJ0eXBlID09ICdyaHRtbCcKICAgICBsZXQgYjplcnVieV9zdWJ0eXBlID0gJ2h0bWwnCkBAIC01NSwzMSArNTUsMjAgQEAKIAogc3luIGNsdXN0ZXIgZXJ1YnlSZWdpb25zIGNvbnRhaW5zPWVydWJ5T25lTGluZXIsZXJ1YnlCbG9jayxlcnVieUV4cHJlc3Npb24sZXJ1YnlDb21tZW50CiAKLWV4ZSAnc3luIHJlZ2lvbiAgZXJ1YnlPbmVMaW5lciAgIG1hdGNoZ3JvdXA9ZXJ1YnlEZWxpbWl0ZXIgc3RhcnQ9Il4lXHsxLCcuYjplcnVieV9uZXN0X2xldmVsLidcfSVcQCEiICAgIGVuZD0iJCIgICAgIGNvbnRhaW5zPUBydWJ5VG9wCSAgICAgY29udGFpbmVkaW49QUxMQlVULEBlcmJSZWdpb25zIGtlZXBlbmQgb25lbGluZScKLWV4ZSAnc3luIHJlZ2lvbiAgZXJ1YnlCbG9jayAgICAgIG1hdGNoZ3JvdXA9ZXJ1YnlEZWxpbWl0ZXIgc3RhcnQ9IjwlXHsxLCcuYjplcnVieV9uZXN0X2xldmVsLidcfSVcQCEtXD0iIGVuZD0iLVw9JT4iIGNvbnRhaW5zPUBydWJ5VG9wCSAgICAgY29udGFpbmVkaW49QUxMQlVULEBlcmJSZWdpb25zJwotZXhlICdzeW4gcmVnaW9uICBlcnVieUV4cHJlc3Npb24gbWF0Y2hncm91cD1lcnVieURlbGltaXRlciBzdGFydD0iPCVcezEsJy5iOmVydWJ5X25lc3RfbGV2ZWwuJ1x9PSIgICAgICAgZW5kPSItXD0lPiIgY29udGFpbnM9QHJ1YnlUb3AJICAgICBjb250YWluZWRpbj1BTExCVVQsQGVyYlJlZ2lvbnMnCi1leGUgJ3N5biByZWdpb24gIGVydWJ5Q29tbWVudCAgICBtYXRjaGdyb3VwPWVydWJ5RGVsaW1pdGVyIHN0YXJ0PSI8JVx7MSwnLmI6ZXJ1YnlfbmVzdF9sZXZlbC4nXH0jIiAgICAgICBlbmQ9Ii1cPSU+IiBjb250YWlucz1ydWJ5VG9kbyxAU3BlbGwgY29udGFpbmVkaW49QUxMQlVULEBlcmJSZWdpb25zIGtlZXBlbmQnCitleGUgJ3N5biByZWdpb24gIGVydWJ5T25lTGluZXIgICBtYXRjaGdyb3VwPWVydWJ5RGVsaW1pdGVyIHN0YXJ0PSJeJVx7MSwnLmI6ZXJ1YnlfbmVzdF9sZXZlbC4nXH0lXEAhIiAgICBlbmQ9IiQiICAgICBjb250YWlucz1AcnVieVRvcAkgICAgIGNvbnRhaW5lZGluPUFMTEJVVCxAZXJ1YnlSZWdpb25zIGtlZXBlbmQgb25lbGluZScKK2V4ZSAnc3luIHJlZ2lvbiAgZXJ1YnlCbG9jayAgICAgIG1hdGNoZ3JvdXA9ZXJ1YnlEZWxpbWl0ZXIgc3RhcnQ9IjwlXHsxLCcuYjplcnVieV9uZXN0X2xldmVsLidcfSVcQCEtXD0iIGVuZD0iLVw9JVxAPCElXHsxLCcuYjplcnVieV9uZXN0X2xldmVsLidcfT4iIGNvbnRhaW5zPUBydWJ5VG9wICAgICAgICBjb250YWluZWRpbj1BTExCVVQsQGVydWJ5UmVnaW9ucyBrZWVwZW5kJworZXhlICdzeW4gcmVnaW9uICBlcnVieUV4cHJlc3Npb24gbWF0Y2hncm91cD1lcnVieURlbGltaXRlciBzdGFydD0iPCVcezEsJy5iOmVydWJ5X25lc3RfbGV2ZWwuJ1x9PSIgICAgICAgZW5kPSItXD0lXEA8ISVcezEsJy5iOmVydWJ5X25lc3RfbGV2ZWwuJ1x9PiIgY29udGFpbnM9QHJ1YnlUb3AgICAgICAgIGNvbnRhaW5lZGluPUFMTEJVVCxAZXJ1YnlSZWdpb25zIGtlZXBlbmQnCitleGUgJ3N5biByZWdpb24gIGVydWJ5Q29tbWVudCAgICBtYXRjaGdyb3VwPWVydWJ5RGVsaW1pdGVyIHN0YXJ0PSI8JVx7MSwnLmI6ZXJ1YnlfbmVzdF9sZXZlbC4nXH0jIiAgICAgICBlbmQ9Ii1cPSVcQDwhJVx7MSwnLmI6ZXJ1YnlfbmVzdF9sZXZlbC4nXH0+IiBjb250YWlucz1ydWJ5VG9kbyxAU3BlbGwgY29udGFpbmVkaW49QUxMQlVULEBlcnVieVJlZ2lvbnMga2VlcGVuZCcKIAogIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgotIiBGb3IgdmVyc2lvbiA1LjcgYW5kIGVhcmxpZXI6IG9ubHkgd2hlbiBub3QgZG9uZSBhbHJlYWR5Ci0iIEZvciB2ZXJzaW9uIDUuOCBhbmQgbGF0ZXI6IG9ubHkgd2hlbiBhbiBpdGVtIGRvZXNuJ3QgaGF2ZSBoaWdobGlnaHRpbmcgeWV0Ci1pZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzKCJkaWRfZXJ1Ynlfc3ludGF4X2luaXRzIikKLSAgaWYgdmVyc2lvbiA8IDUwOAotICAgIGxldCBkaWRfcnVieV9zeW50YXhfaW5pdHMgPSAxCi0gICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KLSAgZWxzZQotICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgotICBlbmRpZgogCi0gIEhpTGluayBlcnVieURlbGltaXRlcgkJRGVsaW1pdGVyCi0gIEhpTGluayBlcnVieUNvbW1lbnQJCUNvbW1lbnQKK2hpIGRlZiBsaW5rIGVydWJ5RGVsaW1pdGVyCQlEZWxpbWl0ZXIKK2hpIGRlZiBsaW5rIGVydWJ5Q29tbWVudAkJQ29tbWVudAogCi0gIGRlbGNvbW1hbmQgSGlMaW5rCi1lbmRpZgogbGV0IGI6Y3VycmVudF9zeW50YXggPSAnZXJ1YnknCiAKIGlmIG1haW5fc3ludGF4ID09ICdlcnVieScKICAgdW5sZXQgbWFpbl9zeW50YXgKIGVuZGlmCiAKLSIgdmltOiBub3dyYXAgc3c9MiBzdHM9MiB0cz04IDoKKyIgdmltOiBub3dyYXAgc3c9MiBzdHM9MiB0cz04OgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvaGFtbC52aW0gYi9ydW50aW1lL3N5bnRheC9oYW1sLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjIyZDhjCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zeW50YXgvaGFtbC52aW0KQEAgLTAsMCArMSw4NSBAQAorIiBWaW0gc3ludGF4IGZpbGUKKyIgTGFuZ3VhZ2U6ICAgICBIYW1sCisiIE1haW50YWluZXI6ICAgVGltIFBvcGUgPHZpbU5PU1BBTUB0cG9wZS5pbmZvPgorIiBGaWxlbmFtZXM6ICAgICouaGFtbAorCitpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQorICBmaW5pc2gKK2VuZGlmCisKK2lmICFleGlzdHMoIm1haW5fc3ludGF4IikKKyAgbGV0IG1haW5fc3ludGF4ID0gJ2hhbWwnCitlbmRpZgorbGV0IGI6cnVieV9ub19leHBlbnNpdmUgPSAxCisKK3J1bnRpbWUhIHN5bnRheC9odG1sLnZpbQordW5sZXQhIGI6Y3VycmVudF9zeW50YXgKK3NpbGVudCEgc3luIGluY2x1ZGUgQGhhbWxTYXNzVG9wIHN5bnRheC9zYXNzLnZpbQordW5sZXQhIGI6Y3VycmVudF9zeW50YXgKK3N5biBpbmNsdWRlIEBoYW1sUnVieVRvcCBzeW50YXgvcnVieS52aW0KKworc3luIGNhc2UgbWF0Y2gKKworc3luIGNsdXN0ZXIgaGFtbENvbXBvbmVudCAgICBjb250YWlucz1oYW1sQXR0cmlidXRlcyxoYW1sQ2xhc3NDaGFyLGhhbWxJZENoYXIsaGFtbE9iamVjdCxoYW1sRGVzcGFjZXIsaGFtbFNlbGZDbG9zZXIsaGFtbFJ1YnksaGFtbFBsYWluQ2hhcixoYW1sSW50ZXJwb2xhdGFibGUKK3N5biBjbHVzdGVyIGhhbWxFbWJlZGRlZFJ1YnkgY29udGFpbnM9aGFtbEF0dHJpYnV0ZXMsaGFtbE9iamVjdCxoYW1sUnVieSxoYW1sUnVieUZpbHRlcgorc3luIGNsdXN0ZXIgaGFtbFRvcCAgICAgICAgICBjb250YWlucz1oYW1sQmVnaW4saGFtbFBsYWluRmlsdGVyLGhhbWxSdWJ5RmlsdGVyLGhhbWxTYXNzRmlsdGVyLGhhbWxDb21tZW50LGhhbWxIdG1sQ29tbWVudAorCitzeW4gbWF0Y2ggICBoYW1sQmVnaW4gIl5ccypbPD4mXVxAISIgbmV4dGdyb3VwPWhhbWxUYWcsaGFtbEF0dHJpYnV0ZXMsaGFtbENsYXNzQ2hhcixoYW1sSWRDaGFyLGhhbWxPYmplY3QsaGFtbFJ1YnksaGFtbFBsYWluQ2hhcixoYW1sSW50ZXJwb2xhdGFibGUKKworc3luIG1hdGNoICAgaGFtbFRhZyAgICAgICAgIiVcd1wrIiBjb250YWluZWQgY29udGFpbnM9aHRtbFRhZ05hbWUsaHRtbFNwZWNpYWxUYWdOYW1lIG5leHRncm91cD1AaGFtbENvbXBvbmVudAorc3luIHJlZ2lvbiAgaGFtbEF0dHJpYnV0ZXMgbWF0Y2hncm91cD1oYW1sQXR0cmlidXRlc0RlbGltaXRlciBzdGFydD0ieyIgZW5kPSJ9IiBjb250YWluZWQgY29udGFpbnM9QGhhbWxSdWJ5VG9wIG5leHRncm91cD1AaGFtbENvbXBvbmVudAorc3luIHJlZ2lvbiAgaGFtbE9iamVjdCAgICAgbWF0Y2hncm91cD1oYW1sT2JqZWN0RGVsaW1pdGVyICAgc3RhcnQ9IlxbIiBlbmQ9IlxdIiBjb250YWluZWQgY29udGFpbnM9QGhhbWxSdWJ5VG9wIG5leHRncm91cD1AaGFtbENvbXBvbmVudAorc3luIG1hdGNoICAgaGFtbERlc3BhY2VyICJbPD5dIiBjb250YWluZWQgbmV4dGdyb3VwPWhhbWxEZXNwYWNlcixoYW1sU2VsZkNsb3NlcixoYW1sUnVieSxoYW1sUGxhaW5DaGFyLGhhbWxJbnRlcnBvbGF0YWJsZQorc3luIG1hdGNoICAgaGFtbFNlbGZDbG9zZXIgIi8iIGNvbnRhaW5lZAorc3luIG1hdGNoICAgaGFtbENsYXNzQ2hhciAiXC4iIGNvbnRhaW5lZCBuZXh0Z3JvdXA9aGFtbENsYXNzCitzeW4gbWF0Y2ggICBoYW1sSWRDaGFyICAgICIjIiAgY29udGFpbmVkIG5leHRncm91cD1oYW1sSWQKK3N5biBtYXRjaCAgIGhhbWxDbGFzcyAiXCUoXHdcfC1cKVwrIiBjb250YWluZWQgbmV4dGdyb3VwPUBoYW1sQ29tcG9uZW50CitzeW4gbWF0Y2ggICBoYW1sSWQgICAgIlwlKFx3XHwtXClcKyIgY29udGFpbmVkIG5leHRncm91cD1AaGFtbENvbXBvbmVudAorc3luIHJlZ2lvbiAgaGFtbERvY1R5cGUgc3RhcnQ9Il5ccyohISEiIGVuZD0iJCIKKworc3luIHJlZ2lvbiAgaGFtbFJ1YnkgICBtYXRjaGdyb3VwPWhhbWxSdWJ5T3V0cHV0Q2hhciBzdGFydD0iWz1+XSIgZW5kPSIkIiBjb250YWluZWQgY29udGFpbnM9QGhhbWxSdWJ5VG9wIGtlZXBlbmQKK3N5biByZWdpb24gIGhhbWxSdWJ5ICAgbWF0Y2hncm91cD1oYW1sUnVieUNoYXIgICAgICAgc3RhcnQ9Ii0iICAgIGVuZD0iJCIgY29udGFpbmVkIGNvbnRhaW5zPUBoYW1sUnVieVRvcCBrZWVwZW5kCitzeW4gbWF0Y2ggICBoYW1sUGxhaW5DaGFyICJcXCIgY29udGFpbmVkCitzeW4gcmVnaW9uIGhhbWxJbnRlcnBvbGF0YWJsZSBtYXRjaGdyb3VwPWhhbWxJbnRlcnBvbGF0YWJsZUNoYXIgc3RhcnQ9Ij09IiBlbmQ9IiQiIGtlZXBlbmQgY29udGFpbmVkIGNvbnRhaW5zPWhhbWxJbnRlcnBvbGF0aW9uCitzeW4gcmVnaW9uIGhhbWxJbnRlcnBvbGF0aW9uIG1hdGNoZ3JvdXA9aGFtbEludGVycG9sYXRpb25EZWxpbWl0ZXIgc3RhcnQ9IiN7IiBlbmQ9In0iIGNvbnRhaW5lZCBjb250YWlucz1AaGFtbFJ1YnlUb3AKKworc3luIG1hdGNoICAgaGFtbEhlbHBlciAgIlw8YWN0aW9uX3ZpZXc/XHxcLlxAPCFcPFwlKGZsYXR0ZW5cfG9wZW5cfHB1dHNcKSIgY29udGFpbmVkIGNvbnRhaW5lZGluPUBoYW1sRW1iZWRkZWRSdWJ5LEBoYW1sUnVieVRvcCxydWJ5SW50ZXJwb2xhdGlvbgorc3luIGtleXdvcmQgaGFtbEhlbHBlciAgIGNhcHR1cmVfaGFtbCBmaW5kX2FuZF9wcmVzZXJ2ZSAgaHRtbF9hdHRycyBpbml0X2hhbWxfaGVscGVycyBsaXN0X29mIHByZWNlZCBwcmVzZXJ2ZSBzdWNjZWVkIHN1cnJvdW5kIHRhYl9kb3duIHRhYl91cCBwYWdlX2NsYXNzIGNvbnRhaW5lZCBjb250YWluZWRpbj1AaGFtbEVtYmVkZGVkUnVieSxAaGFtbFJ1YnlUb3AscnVieUludGVycG9sYXRpb24KKworc3luIHJlZ2lvbiAgaGFtbFBsYWluRmlsdGVyIG1hdGNoZ3JvdXA9aGFtbEZpbHRlciBzdGFydD0iXlx6KFxzKlwpOlwlKHBsYWluXHxwcmVzZXJ2ZVx8ZXJiXHxyZWRjbG90aFx8dGV4dGlsZVx8bWFya2Rvd25cKVxzKiQiIGVuZD0iXlwlKFx6MSBcKVxAISIgY29udGFpbnM9aHRtbFRhZyxodG1sRW5kVGFnLGh0bWxTcGVjaWFsQ2hhcixodG1sQ29tbWVudCxAaHRtbFRvcAorc3luIHJlZ2lvbiAgaGFtbFJ1YnlGaWx0ZXIgIG1hdGNoZ3JvdXA9aGFtbEZpbHRlciBzdGFydD0iXlx6KFxzKlwpOnJ1YnlccyokIiBlbmQ9Il5cJShcejEgXClcQCEiIGNvbnRhaW5zPUBoYW1sUnVieVRvcAorc3luIHJlZ2lvbiAgaGFtbFNhc3NGaWx0ZXIgIG1hdGNoZ3JvdXA9aGFtbEZpbHRlciBzdGFydD0iXlx6KFxzKlwpOnNhc3NccyokIiBlbmQ9Il5cJShcejEgXClcQCEiIGNvbnRhaW5zPUBoYW1sU2Fzc1RvcAorCitzeW4gcmVnaW9uICBoYW1sSmF2YXNjcmlwdEJsb2NrIHN0YXJ0PSJeXHooXHMqXCklc2NyaXB0IiBuZXh0Z3JvdXA9QGhhbWxDb21wb25lbnQsaGFtbEVycm9yIGVuZD0iXlwlKFx6MSBcKVxAISIgY29udGFpbnM9QGhhbWxUb3AsQGh0bWxKYXZhU2NyaXB0IGtlZXBlbmQKK3N5biByZWdpb24gIGhhbWxDc3NCbG9jayAgICAgICAgc3RhcnQ9Il5ceihccypcKSVzdHlsZSIgbmV4dGdyb3VwPUBoYW1sQ29tcG9uZW50LGhhbWxFcnJvciBlbmQ9Il5cJShcejEgXClcQCEiIGNvbnRhaW5zPUBoYW1sVG9wLEBodG1sQ3NzIGtlZXBlbmQKK3N5biBtYXRjaCAgIGhhbWxFcnJvciAiXCQiIGNvbnRhaW5lZAorCitzeW4gcmVnaW9uICBoYW1sQ29tbWVudCAgICAgc3RhcnQ9Il5ceihccypcKS0jIiBlbmQ9Il5cJShcejEgXClcQCEiIGNvbnRhaW5zPXJ1YnlUb2RvCitzeW4gcmVnaW9uICBoYW1sSHRtbENvbW1lbnQgc3RhcnQ9Il5ceihccypcKS8iIGVuZD0iXlwlKFx6MSBcKVxAISIgY29udGFpbnM9QGhhbWxUb3AscnVieVRvZG8KK3N5biBtYXRjaCAgIGhhbWxJRUNvbmRpdGlvbmFsICJcJSheXHMqL1wpXEA8PVxbaWZcPlteXV0qXSIgY29udGFpbmVkIGNvbnRhaW5lZGluPWhhbWxIdG1sQ29tbWVudAorCitoaSBkZWYgbGluayBoYW1sU2VsZkNsb3NlciAgICAgICAgICAgICBTcGVjaWFsCitoaSBkZWYgbGluayBoYW1sRGVzcGFjZXIgICAgICAgICAgICAgICBTcGVjaWFsCitoaSBkZWYgbGluayBoYW1sQ2xhc3NDaGFyICAgICAgICAgICAgICBTcGVjaWFsCitoaSBkZWYgbGluayBoYW1sSWRDaGFyICAgICAgICAgICAgICAgICBTcGVjaWFsCitoaSBkZWYgbGluayBoYW1sVGFnICAgICAgICAgICAgICAgICAgICBTcGVjaWFsCitoaSBkZWYgbGluayBoYW1sQ2xhc3MgICAgICAgICAgICAgICAgICBUeXBlCitoaSBkZWYgbGluayBoYW1sSWQgICAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVyCitoaSBkZWYgbGluayBoYW1sUGxhaW5DaGFyICAgICAgICAgICAgICBTcGVjaWFsCitoaSBkZWYgbGluayBoYW1sSW50ZXJwb2xhdGFibGVDaGFyICAgICBoYW1sUnVieUNoYXIKK2hpIGRlZiBsaW5rIGhhbWxSdWJ5T3V0cHV0Q2hhciAgICAgICAgIGhhbWxSdWJ5Q2hhcgoraGkgZGVmIGxpbmsgaGFtbFJ1YnlDaGFyICAgICAgICAgICAgICAgU3BlY2lhbAoraGkgZGVmIGxpbmsgaGFtbEludGVycG9sYXRpb25EZWxpbWl0ZXIgRGVsaW1pdGVyCitoaSBkZWYgbGluayBoYW1sRG9jVHlwZSAgICAgICAgICAgICAgICBQcmVQcm9jCitoaSBkZWYgbGluayBoYW1sRmlsdGVyICAgICAgICAgICAgICAgICBQcmVQcm9jCitoaSBkZWYgbGluayBoYW1sQXR0cmlidXRlc0RlbGltaXRlciAgICBEZWxpbWl0ZXIKK2hpIGRlZiBsaW5rIGhhbWxPYmplY3REZWxpbWl0ZXIgICAgICAgIERlbGltaXRlcgoraGkgZGVmIGxpbmsgaGFtbEhlbHBlciAgICAgICAgICAgICAgICAgRnVuY3Rpb24KK2hpIGRlZiBsaW5rIGhhbWxIdG1sQ29tbWVudCAgICAgICAgICAgIGhhbWxDb21tZW50CitoaSBkZWYgbGluayBoYW1sQ29tbWVudCAgICAgICAgICAgICAgICBDb21tZW50CitoaSBkZWYgbGluayBoYW1sSUVDb25kaXRpb25hbCAgICAgICAgICBTcGVjaWFsQ29tbWVudAoraGkgZGVmIGxpbmsgaGFtbEVycm9yICAgICAgICAgICAgICAgICAgRXJyb3IKKworbGV0IGI6Y3VycmVudF9zeW50YXggPSAiaGFtbCIKKworIiB2aW06c2V0IHN3PTI6CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9oYXN0ZS52aW0gYi9ydW50aW1lL3N5bnRheC9oYXN0ZS52aW0KaW5kZXggY2Y5NDNmMS4uYjg4OWM1YyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvaGFzdGUudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2hhc3RlLnZpbQpAQCAtMSw5ICsxLDEyIEBACiAiIFZpbSBzeW50YXggZmlsZQotIiBMYW5ndWFnZToJSEFTVEUKKyIgTGFuZ3VhZ2U6CUhBU1RFIC0gYSBsYW5ndWFnZSBmb3IgVkxTSSBJQyBwcm9ncmFtbWluZwogIiBNYWludGFpbmVyOglNLiBUcmFuY2hlcm8gLSBtYXVyaXppby50cmFuY2hlcm8/Z21haWwuY29tCiAiIENyZWRpdHM6CXNvbWUgcGFydHMgaGF2ZSBiZWVuIHRha2VuIGZyb20gdmhkbCwgdmVyaWxvZywgYW5kIEMgc3ludGF4CiAiCQlmaWxlcwotIiB2ZXJzaW9uOiAwLjUKKyIgVmVyc2lvbjoJMC45CisiIExhc3QgQ2hhbmdlOgkwLjkgaW1wcm92ZW1lbnQgb2YgaGFzdGUgbnVtYmVycyBkZXRlY3Rpb24KKyIgQ2hhbmdlOgkwLjggZXJyb3IgbWF0Y2hpbmcgZm9yIHdyb25nIGhpZXJhcmNoaWNhbCBjb25uZWN0aW9ucyAKKyIgQ2hhbmdlOgkwLjcgYWRkZWQgbW9yZSBydWxlcyB0byBoaWdobGlnaHQgcHJlLXByb2Nlc3NvciBkaXJlY3RpdmVzCiAKICIgSEFTVEUKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCkBAIC01MCw2ICs1Myw3IEBACiBzeW4gbWF0Y2ggICBoYXN0ZVN0YXRlbWVudAkiXDxcKGRvXHxvclx8b2RcKVw+Igogc3luIG1hdGNoICAgaGFzdGVTdGF0ZW1lbnQJIlw8XChzZWxcfGxlc1wpXD4iCiBzeW4gbWF0Y2ggICBoYXN0ZUVycm9yCQkiXDxcZFwrW19hLXpBLVpdXCtcPiIKK3N5biBtYXRjaCAgIGhhc3RlRXJyb3IJCSJcKFwoW1s6YWxudW06XV1cK1xzKihcc1wrXHwpXHMqLFwpXClccypcKFtbOmFsbnVtOl1dXCtccyooXCkiCiAKICIgUHJlZGlmaW5lZCBIYXN0ZSB0eXBlcwogc3luIGtleXdvcmQgaGFzdGVUeXBlIGJvb2wKQEAgLTYwLDM5ICs2NCwyOCBAQAogc3luIG1hdGNoICBoYXN0ZVZlY3RvciAiMGJcIlswMV9dXCtcIiIKIHN5biBtYXRjaCAgaGFzdGVWZWN0b3IgIjB4XCJbMC05YS1mX11cK1wiIgogc3luIG1hdGNoICBoYXN0ZUNoYXJhY3RlciAiJy4nIgotc3luIHJlZ2lvbiBoYXN0ZVN0cmluZyBzdGFydD0rIisgIGVuZD0rIisKLSIgQyBwcmUtcHJvY2Vzc29yIGRpcmVjdGl2ZXMKLSJzeW4gcmVnaW9uIGhhc3RlSW5jbHVkZWQJZGlzcGxheSBjb250YWluZWQgc3RhcnQ9KyIrIHNraXA9K1xcXFxcfFxcIisgZW5kPSsiKworIiBzeW4gcmVnaW9uIGhhc3RlU3RyaW5nIHN0YXJ0PSsiKyAgZW5kPSsiKwogc3luIG1hdGNoICBoYXN0ZUluY2x1ZGVkCWRpc3BsYXkgY29udGFpbmVkICI8W14+XSo+Igogc3luIG1hdGNoICBoYXN0ZUluY2x1ZGVkCWRpc3BsYXkgY29udGFpbmVkICI8W14iXSo+Igotc3luIG1hdGNoICBoYXN0ZUluY2x1ZGUJCWRpc3BsYXkgIl5ccyojaW5jbHVkZVw+XHMqWyI8XSIgY29udGFpbnM9aGFzdGVJbmNsdWRlZAotc3luIHJlZ2lvbiBoYXN0ZURlZmluZQlzdGFydD0iXlxzKlwoJTpcfCNcKVxzKlwoZGVmaW5lXHx1bmRlZlwpXD4iIHNraXA9IlxcJCIgZW5kPSIkIiBlbmQ9Ii8vIm1lPXMtMSBjb250YWlucz1BTExCVVQsQGhhc3RlUHJlUHJvY0dyb3VwLEBTcGVsbAotc3luIHJlZ2lvbiBoYXN0ZURlZmluZQlzdGFydD0iXlxzKlwoJTpcfCNcKVxzKlwoaWZuZGVmXHxpZmRlZlx8ZW5kaWZcKVw+IiBza2lwPSJcXCQiIGVuZD0iJCIgZW5kPSIvLyJtZT1zLTEgY29udGFpbnM9QFNwZWxsCi1zeW4gcmVnaW9uIGhhc3RlUHJlQ29uZGl0CXN0YXJ0PSJeXHMqXCglOlx8I1wpXHMqXChpZlx8aWZkZWZcfGlmbmRlZlx8ZWxpZlwpXD4iIHNraXA9IlxcJCIgZW5kPSIkIiBlbmQ9Ii8vIm1lPXMtMSBjb250YWlucz1oYXN0ZUNvbW1lbnQsaGFzdGVDcHBTdHJpbmcsaGFzdGVDaGFyYWN0ZXIsaGFzdGVDcHBQYXJlbixoYXN0ZVBhcmVuRXJyb3IsaGFzdGVOdW1iZXJzLGhhc3RlQ29tbWVudEVycm9yLGhhc3RlU3BhY2VFcnJvcgotc3luIHJlZ2lvbiBoYXN0ZVByZVByb2MJc3RhcnQ9Il5ccypcKCU6XHwjXClccypcKHByYWdtYVw+XHxsaW5lXD5cfHdhcm5pbmdcPlx8d2Fyblw+XHxlcnJvclw+XCkiIHNraXA9IlxcJCIgZW5kPSIkIiBrZWVwZW5kIGNvbnRhaW5zPUFMTEJVVCxAaGFzdGVQcmVQcm9jR3JvdXAsQFNwZWxsCi1zeW4gY2x1c3RlciBoYXN0ZVByZVByb2NHcm91cAljb250YWlucz1oYXN0ZUluY2x1ZGVkLGhhc3RlSW5jbHVkZSxoYXN0ZURlZmluZQotc3luIHJlZ2lvbiBoYXN0ZUNwcFNraXAJY29udGFpbmVkIHN0YXJ0PSJeXHMqXCglOlx8I1wpXHMqXChpZlw+XHxpZmRlZlw+XHxpZm5kZWZcPlwpIiBza2lwPSJcXCQiIGVuZD0iXlxzKlwoJTpcfCNcKVxzKmVuZGlmXD4iIGNvbnRhaW5zPWhhc3RlU3BhY2VFcnJvcixoYXN0ZUNwcFNraXAKK3N5biByZWdpb24gaGFzdGVJbmNsdWRlCXN0YXJ0PSJeXHMqI2luY2x1ZGVcPlxzKiIgZW5kPSIkIiBjb250YWlucz1oYXN0ZUluY2x1ZGVkLGhhc3RlU3RyaW5nCiAKLSIgZmxvYXRpbmcgbnVtYmVycwotc3luIG1hdGNoIGhhc3RlTnVtYmVyICItXD1cPFxkXCtcLlxkXCtcKEVbK1wtXVw9XGRcK1wpXD4iCi1zeW4gbWF0Y2ggaGFzdGVOdW1iZXIgIi1cPVw8XGRcK1wuXGRcK1w+Igotc3luIG1hdGNoIGhhc3RlTnVtYmVyICIwKjIjWzAxX11cK1wuWzAxX11cKyNcKEVbK1wtXVw9XGRcK1wpXD0iCi1zeW4gbWF0Y2ggaGFzdGVOdW1iZXIgIjAqMTYjWzAtOWEtZl9dXCtcLlswLTlhLWZfXVwrI1woRVsrXC1dXD1cZFwrXClcPSIKICIgaW50ZWdlciBudW1iZXJzCi1zeW4gbWF0Y2ggaGFzdGVOdW1iZXIgIi1cPVw8XGRcK1woRVsrXC1dXD1cZFwrXClcPiIKK3N5biBtYXRjaCBoYXN0ZU51bWJlciAiXGRcK1xeW1s6YWxudW06XV0qWy0rXVx7MCwxXH1bWzphbG51bTpdXSoiCitzeW4gbWF0Y2ggaGFzdGVOdW1iZXIgIi1cPVw8XGRcK1woXF5bK1wtXVw9XGRcK1wpXD4iCiBzeW4gbWF0Y2ggaGFzdGVOdW1iZXIgIi1cPVw8XGRcK1w+Igotc3luIG1hdGNoIGhhc3RlTnVtYmVyICIwKjIjWzAxX11cKyNcKEVbK1wtXVw9XGRcK1wpXD0iCi1zeW4gbWF0Y2ggaGFzdGVOdW1iZXIgIjAqMTYjWzAtOWEtZl9dXCsjXChFWytcLV1cPVxkXCtcKVw9IgorIiBzeW4gbWF0Y2ggaGFzdGVOdW1iZXIgIjAqMiNbMDFfXVwrI1woXF5bK1wtXVw9XGRcK1wpXD0iCisiIHN5biBtYXRjaCBoYXN0ZU51bWJlciAiMCoxNiNbMC05YS1mX11cKyNcKFxeWytcLV1cPVxkXCtcKVw9IgogIiBvcGVyYXRvcnMKLXN5biBrZXl3b3JkIGhhc3RlU2VwYXJhdG9ycwkmICwgLiBcfCA6IAorc3luIGtleXdvcmQgaGFzdGVTZXBhcmF0b3JzCSYgLCAuIFx8IAogc3luIGtleXdvcmQgaGFzdGVFeGVjdXRpb24JXHxcfCA7IEAKLXN5biBrZXl3b3JkIGhhc3RlT3BlcmF0b3IJOj0gPyAhCitzeW4ga2V5d29yZCBoYXN0ZU9wZXJhdG9yCTo9ID8gISA6CiBzeW4ga2V5d29yZCBoYXN0ZVR5cGVDb25zdHIJIlsiIDw8ID4+IC4uICJdIiB+CiBzeW4ga2V5d29yZCBoYXN0ZUV4cHJPcAkJPCA8PSA+PSA+ID0gIyA8PiArIC0gKiA9PSAjIwogc3luIGtleXdvcmQgaGFzdGVNaXNjCQkoICkgMHggMGIKICIKIHN5biBtYXRjaCAgIGhhc3RlU2VwYXJhdG9ycwkiWyY6XHwsLl0iCiBzeW4gbWF0Y2ggICBoYXN0ZU9wZXJhdG9yCSI6PSIKK3N5biBtYXRjaCAgIGhhc3RlT3BlcmF0b3IJIjoiCiBzeW4gbWF0Y2ggICBoYXN0ZU9wZXJhdG9yCSI/Igogc3luIG1hdGNoICAgaGFzdGVPcGVyYXRvcgkiISIKIHN5biBtYXRjaCAgIGhhc3RlRXhlY3V0aW9uCSJ8fCIKQEAgLTExMCw3ICsxMDMsNyBAQAogc3luIG1hdGNoICAgaGFzdGVFeHByT3AJCSI9Igogc3luIG1hdGNoICAgaGFzdGVFeHByT3AJCSI9PSIKIHN5biBtYXRjaCAgIGhhc3RlRXhwck9wCQkiIyMiCi1zeW4gbWF0Y2ggICBoYXN0ZUV4cHJPcAkJIiMiCisiIHN5biBtYXRjaCAgIGhhc3RlRXhwck9wCQkiIyIKIHN5biBtYXRjaCAgIGhhc3RlRXhwck9wCQkiKiIKIHN5biBtYXRjaCAgIGhhc3RlRXhwck9wCQkiKyIKIApAQCAtMTMzLDYgKzEyNiw3IEBACiBoaSBkZWYgbGluayBoYXN0ZUdsb2JhbAkJRXJyb3IKIGhpIGRlZiBsaW5rIGhhc3RlRXJyb3IJCUVycm9yCiBoaSBkZWYgbGluayBoYXN0ZUF0dHJpYnV0ZQlUeXBlCisiCiBoaSBkZWYgbGluayBoYXN0ZVNlcGFyYXRvcnMJU3BlY2lhbAogaGkgZGVmIGxpbmsgaGFzdGVFeGVjdXRpb24JU3BlY2lhbAogaGkgZGVmIGxpbmsgaGFzdGVUeXBlQ29uc3RyCVNwZWNpYWwKQEAgLTE0Myw3ICsxMzcsOCBAQAogaGkgZGVmIGxpbmsgaGFzdGVWZXJpbG9nCUVycm9yCiBoaSBkZWYgbGluayBoYXN0ZURlZmluZQkJTWFjcm8KIGhpIGRlZiBsaW5rIGhhc3RlSW5jbHVkZQlJbmNsdWRlCi1oaSBkZWYgbGluayBoYXN0ZVByZVByb2MJUHJlUHJvYworIiBoaSBkZWYgbGluayBoYXN0ZVByZVByb2MJUHJlcHJvYworIiBoaSBkZWYgbGluayBoYXN0ZVByZVByb2NWYXIJU3BlY2lhbAogCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJoYXN0ZSIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvaGFzdGVwcmVwcm9jLnZpbSBiL3J1bnRpbWUvc3ludGF4L2hhc3RlcHJlcHJvYy52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZjYjhkZAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L2hhc3RlcHJlcHJvYy52aW0KQEAgLTAsMCArMSw0OSBAQAorIiBWaW0gc3ludGF4IGZpbGUKKyIgTGFuZ3VhZ2U6CUhhc3RlIHByZXByb2Nlc3NvciBmaWxlcyAKKyIgTWFpbnRhaW5lcjoJTS4gVHJhbmNoZXJvIC0gbWF1cml6aW8udHJhbmNoZXJvQGdtYWlsLmNvbQorIiBDcmVkaXRzOglzb21lIHBhcnRzIGhhdmUgYmVlbiB0YWtlbiBmcm9tIHZoZGwsIHZlcmlsb2csIGFuZCBDIHN5bnRheAorIgkJZmlsZXMKKyIgVmVyc2lvbjoJMC41CisKKyIgSEFTVEUKK2lmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCisgICAgZmluaXNoCitlbmRpZgorIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKKyIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKK2lmIHZlcnNpb24gPCA2MDAKKyAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgZmluaXNoCitlbmRpZgorIiBSZWFkIHRoZSBDIHN5bnRheCB0byBzdGFydCB3aXRoCitpZiB2ZXJzaW9uIDwgNjAwCisgICAgc28gPHNmaWxlPjpwOmgvaGFzdGUudmltCitlbHNlCisgICAgcnVudGltZSEgc3ludGF4L2hhc3RlLnZpbQorICAgIHVubGV0IGI6Y3VycmVudF9zeW50YXgKK2VuZGlmCisKKyIgY2FzZSBpcyBzaWduaWZpY2FudAorc3luIGNhc2UgbWF0Y2gKKworIiBDIHByZS1wcm9jZXNzb3IgZGlyZWN0aXZlcworc3luIG1hdGNoICBoYXN0ZXByZXByb2NWYXIgCWRpc3BsYXkgIlwkW1s6YWxudW06XV9dKiIKK3N5biByZWdpb24gaGFzdGVwcmVwcm9jVmFyCXN0YXJ0PSJcJHsiIGVuZD0ifSIgY29udGFpbnM9aGFzdGVwcmVwcm9jVmFyCisiCisic3luIHJlZ2lvbiBoYXN0ZXByZXByb2MJCXN0YXJ0PSIjXFtccyp0Z1s6YWxudW06XSoiIGVuZD0iXSMiIGNvbnRhaW5zPWhhc3RlcHJlcHJvY1ZhcixoYXN0ZXByZXByb2MsaGFzdGVwcmVwcm9jRXJyb3IsQFNwZWxsCitzeW4gcmVnaW9uIGhhc3RlcHJlcHJvYwkJc3RhcnQ9IiNcW1xzKlwoXHx0Z2Zvclx8dGdpZlwpIiBlbmQ9IiQiIGNvbnRhaW5zPWhhc3RlcHJlcHJvY1ZhcixoYXN0ZXByZXByb2MsQFNwZWxsCitzeW4gcmVnaW9uIGhhc3RlcHJlcHJvYwkJc3RhcnQ9In1cc1woZWxzZVwpXHN7IiBlbmQ9IiQiIGNvbnRhaW5zPWhhc3RlcHJlcHJvY1ZhcixoYXN0ZXByZXByb2MsQFNwZWxsCitzeW4gcmVnaW9uIGhhc3RlcHJlcHJvYwkJc3RhcnQ9Il5ccyojXHMqXChpZm5kZWZcfGlmZGVmXHxlbHNlXHxlbmRpZlwpXD4iIGVuZD0iJCIgY29udGFpbnM9QGhhc3RlcHJlcHJvY0dyb3VwLEBTcGVsbAorc3luIHJlZ2lvbiBoYXN0ZXByZXByb2MJCXN0YXJ0PSJccyojI1xzKlwoZGVmaW5lXHx1bmRlZlwpXD4iIGVuZD0iJCIgY29udGFpbnM9QGhhc3RlcHJlcHJvY0dyb3VwLEBTcGVsbAorc3luIG1hdGNoIGhhc3RlcHJlcHJvYwkJIn1cezAsMX1ccypdIyIKKworIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgorIiBPbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAoraGkgZGVmIGxpbmsgaGFzdGVwcmVwcm9jCVByZXByb2MKK2hpIGRlZiBsaW5rIGhhc3RlcHJlcHJvY1ZhcglTcGVjaWFsCitoaSBkZWYgbGluayBoYXN0ZXByZXByb2NFcnJvcglFcnJvcgorCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJoYXN0ZXByZXByb2MiCisKKyIgdmltOiB0cz04CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9saGFza2VsbC52aW0gYi9ydW50aW1lL3N5bnRheC9saGFza2VsbC52aW0KaW5kZXggZDZmMjFhZS4uN2ZmMDllNyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbGhhc2tlbGwudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2xoYXNrZWxsLnZpbQpAQCAtNCw4ICs0LDggQEAKICIJCQlcYmVnaW57Y29kZX0gXGVuZHtjb2RlfSBibG9ja3MKICIgTWFpbnRhaW5lcjoJCUhhc2tlbGwgQ2FmZSBtYWlsaW5nbGlzdCA8aGFza2VsbC1jYWZlQGhhc2tlbGwub3JnPgogIiBPcmlnaW5hbCBBdXRob3I6CUFydGh1ciB2YW4gTGVldXdlbiA8YXJ0aHVydmxAY3MudXUubmw+Ci0iIExhc3QgQ2hhbmdlOgkJMjAwNCBBdWcgMzEKLSIgVmVyc2lvbjoJCTEuMDEKKyIgTGFzdCBDaGFuZ2U6CQkyMDA4IEp1bCAwMQorIiBWZXJzaW9uOgkJMS4wMgogIgogIiBUaGFua3MgdG8gSWFuIEx5bmFnaCBmb3IgdGhvdWdodGZ1bCBjb21tZW50cyBvbiBpbml0aWFsIHZlcnNpb25zIGFuZAogIiBmb3IgdGhlIGluc3BpcmF0aW9uIGZvciB3cml0aW5nIHRoaXMgaW4gdGhlIGZpcnN0IHBsYWNlLgpAQCAtMjksNiArMjksOCBAQAogIiAyMDA0IEZlYnJ1YXJ5IDIwOiBDbGVhbmVkIHVwIHRoZSBndWVzc2luZyBhbmQgb3ZlcnJpZGluZyBhIGJpdAogIiAyMDA0IEZlYnJ1YXJ5IDIzOiBDbGVhbmVkIHVwIHN5bnRheCBoaWdobGlnaHRpbmcgZm9yIFxiZWdpbntjb2RlfSBhbmQKICIJCSAgICBcZW5ke2NvZGV9LCBhZGRlZCBzb21lIGNsYXJpZmljYXRpb24gdG8gdGhlIGF0dHJpYnV0aW9ucworIiAyMDA4IEp1bHkgMTogICAgICBSZW1vdmVkICUgZnJvbSBndWVzcyBsaXN0LCBhcyBpdCB0b3RhbGx5IGJyZWFrcyAgcGxhaW4KKyIJCSAgICB0ZXh0IG1hcmt1cCBndWVzc2luZwogIgogCiAKQEAgLTcxLDE0ICs3MywxNCBAQAogIiAgIC0gXGJlZ2lue2Vudn0gICAgICAgKGZvciBlbnYgIT0gY29kZSkKICIgICAtIFxwYXJ0LCBcY2hhcHRlciwgXHNlY3Rpb24sIFxzdWJzZWN0aW9uLCBcc3Vic3Vic2VjdGlvbiwgZXRjCiBpZiBiOmxoc19tYXJrdXAgPT0gInVua25vd24iCi0gICAgaWYgc2VhcmNoKCclXHxcXGRvY3VtZW50Y2xhc3NcfFxcYmVnaW57XChjb2RlfVwpXEAhXHxcXFwoc3ViXCkqc2VjdGlvblx8XFxjaGFwdGVyfFxccGFydCcsJ1cnKSAhPSAwCisgICAgaWYgc2VhcmNoKCdcXGRvY3VtZW50Y2xhc3NcfFxcYmVnaW57XChjb2RlfVwpXEAhXHxcXFwoc3ViIFwpKnNlY3Rpb25cfFxcY2hhcHRlcnxcXHBhcnQnLCdXJykgIT0gMAogCWxldCBiOmxoc19tYXJrdXAgPSAidGV4IgogICAgIGVsc2UKIAlsZXQgYjpsaHNfbWFya3VwID0gInBsYWluIgogICAgIGVuZGlmCiBlbmRpZgogCi0iIElmIHVzZXIgd2FudHMgdXMgdG8gaGlnaGxpZ2h0IFRlWCBzeW50YXgsIHJlYWQgaXQuCisiIElmIHVzZXIgd2FudHMgdXMgdG8gaGlnaGxpZ2h0IFRlWCBzeW50YXggb3IgZ3Vlc3MgdGhpbmtzIGl0J3MgVGVYLCAgcmVhZCBpdC4KIGlmIGI6bGhzX21hcmt1cCA9PSAidGV4IgogICAgIGlmIHZlcnNpb24gPCA2MDAKIAlzb3VyY2UgPHNmaWxlPjpwOmgvdGV4LnZpbQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbG9ndGFsay52aW0gYi9ydW50aW1lL3N5bnRheC9sb2d0YWxrLnZpbQppbmRleCA2ZmFmNTk2Li41ZmNiYjA5IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9sb2d0YWxrLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9sb2d0YWxrLnZpbQpAQCAtMiw3ICsyLDcgQEAKICIKICIgTGFuZ3VhZ2U6CUxvZ3RhbGsKICIgTWFpbnRhaW5lcjoJUGF1bG8gTW91cmEgPHBtb3VyYUBsb2d0YWxrLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CUZlYnJ1YXJ5IDI0LCAyMDA2CisiIExhc3QgQ2hhbmdlOglKdW5lIDE2LCAyMDA4CiAKIAogIiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQ6CkBAIC0zMiwxMiArMzIsMTUgQEAKICIgTG9ndGFsayBxdW90ZWQgYXRvbXMgYW5kIHN0cmluZ3MKIAogc3luIHJlZ2lvbglsb2d0YWxrU3RyaW5nCQlzdGFydD0rIisJc2tpcD0rXFwiKwllbmQ9KyIrCi1zeW4gcmVnaW9uCWxvZ3RhbGtBdG9tCQlzdGFydD0rJysJc2tpcD0rXFwnKwllbmQ9KycrCitzeW4gcmVnaW9uCWxvZ3RhbGtBdG9tCQlzdGFydD0rJysJc2tpcD0rXFwnKwllbmQ9KycrCQljb250YWlucz1sb2d0YWxrRXNjYXBlU2VxdWVuY2UKKworc3luIG1hdGNoCWxvZ3RhbGtFc2NhcGVTZXF1ZW5jZQljb250YWluZWQJIlxcXChbXFxhYmZucnR2XCJcJ11cfFwoeFthLWZBLUYwLTldXCtcfFswLTddXCtcKVxcXCkiCiAKIAogIiBMb2d0YWxrIG1lc3NhZ2Ugc2VuZGluZyBvcGVyYXRvcnMKIAogc3luIG1hdGNoCWxvZ3RhbGtPcGVyYXRvcgkJIjo6Igorc3luIG1hdGNoCWxvZ3RhbGtPcGVyYXRvcgkJIjoiCiBzeW4gbWF0Y2gJbG9ndGFsa09wZXJhdG9yCQkiXF5cXiIKIAogCkBAIC00OCw3ICs1MSw3IEBACiAKICIgTG9ndGFsayBvcGVuaW5nIGVudGl0eSBkaXJlY3RpdmVzCiAKLXN5biByZWdpb24JbG9ndGFsa09wZW5FbnRpdHlEaXIJbWF0Y2hncm91cD1sb2d0YWxrT3BlbkVudGl0eURpclRhZwlzdGFydD0iOi0gb2JqZWN0KCIJbWF0Y2hncm91cD1sb2d0YWxrT3BlbkVudGl0eURpclRhZwllbmQ9IilcLiIJY29udGFpbnM9bG9ndGFsa0VudGl0eSxsb2d0YWxrVmFyaWFibGUsbG9ndGFsa051bWJlcixsb2d0YWxrT3BlcmF0b3IsbG9ndGFsa0VudGl0eVJlbAorc3luIHJlZ2lvbglsb2d0YWxrT3BlbkVudGl0eURpcgltYXRjaGdyb3VwPWxvZ3RhbGtPcGVuRW50aXR5RGlyVGFnCXN0YXJ0PSI6LSBvYmplY3QoIgltYXRjaGdyb3VwPWxvZ3RhbGtPcGVuRW50aXR5RGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1sb2d0YWxrRW50aXR5LGxvZ3RhbGtWYXJpYWJsZSxsb2d0YWxrTnVtYmVyLGxvZ3RhbGtPcGVyYXRvcixsb2d0YWxrU3RyaW5nLGxvZ3RhbGtBdG9tLGxvZ3RhbGtFbnRpdHlSZWwKIHN5biByZWdpb24JbG9ndGFsa09wZW5FbnRpdHlEaXIJbWF0Y2hncm91cD1sb2d0YWxrT3BlbkVudGl0eURpclRhZwlzdGFydD0iOi0gcHJvdG9jb2woIgltYXRjaGdyb3VwPWxvZ3RhbGtPcGVuRW50aXR5RGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1sb2d0YWxrRW50aXR5LGxvZ3RhbGtWYXJpYWJsZSxsb2d0YWxrTnVtYmVyLGxvZ3RhbGtPcGVyYXRvcixsb2d0YWxrRW50aXR5UmVsCiBzeW4gcmVnaW9uCWxvZ3RhbGtPcGVuRW50aXR5RGlyCW1hdGNoZ3JvdXA9bG9ndGFsa09wZW5FbnRpdHlEaXJUYWcJc3RhcnQ9IjotIGNhdGVnb3J5KCIJbWF0Y2hncm91cD1sb2d0YWxrT3BlbkVudGl0eURpclRhZwllbmQ9IilcLiIJY29udGFpbnM9bG9ndGFsa0VudGl0eSxsb2d0YWxrVmFyaWFibGUsbG9ndGFsa051bWJlcixsb2d0YWxrT3BlcmF0b3IsbG9ndGFsa0VudGl0eVJlbAogCkBAIC02MiwxNyArNjUsMTkgQEAKIAogIiBMb2d0YWxrIGVudGl0eSByZWxhdGlvbnMKIAotc3luIHJlZ2lvbglsb2d0YWxrRW50aXR5UmVsCW1hdGNoZ3JvdXA9bG9ndGFsa0VudGl0eVJlbFRhZwlzdGFydD0iaW5zdGFudGlhdGVzKCIJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCWVuZD0iKSIJCWNvbnRhaW5zPWxvZ3RhbGtFbnRpdHksbG9ndGFsa1ZhcmlhYmxlLGxvZ3RhbGtOdW1iZXIsbG9ndGFsa09wZXJhdG9yCWNvbnRhaW5lZAotc3luIHJlZ2lvbglsb2d0YWxrRW50aXR5UmVsCW1hdGNoZ3JvdXA9bG9ndGFsa0VudGl0eVJlbFRhZwlzdGFydD0ic3BlY2lhbGl6ZXMoIgltYXRjaGdyb3VwPWxvZ3RhbGtFbnRpdHlSZWxUYWcJZW5kPSIpIgkJY29udGFpbnM9bG9ndGFsa0VudGl0eSxsb2d0YWxrVmFyaWFibGUsbG9ndGFsa051bWJlcixsb2d0YWxrT3BlcmF0b3IJY29udGFpbmVkCi1zeW4gcmVnaW9uCWxvZ3RhbGtFbnRpdHlSZWwJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCXN0YXJ0PSJleHRlbmRzKCIJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCWVuZD0iKSIJCWNvbnRhaW5zPWxvZ3RhbGtFbnRpdHksbG9ndGFsa1ZhcmlhYmxlLGxvZ3RhbGtOdW1iZXIsbG9ndGFsa09wZXJhdG9yCWNvbnRhaW5lZAotc3luIHJlZ2lvbglsb2d0YWxrRW50aXR5UmVsCW1hdGNoZ3JvdXA9bG9ndGFsa0VudGl0eVJlbFRhZwlzdGFydD0iaW1wb3J0cygiCW1hdGNoZ3JvdXA9bG9ndGFsa0VudGl0eVJlbFRhZwllbmQ9IikiCQljb250YWlucz1sb2d0YWxrRW50aXR5LGxvZ3RhbGtWYXJpYWJsZSxsb2d0YWxrTnVtYmVyLGxvZ3RhbGtPcGVyYXRvcgljb250YWluZWQKLXN5biByZWdpb24JbG9ndGFsa0VudGl0eVJlbAltYXRjaGdyb3VwPWxvZ3RhbGtFbnRpdHlSZWxUYWcJc3RhcnQ9ImltcGxlbWVudHMoIgltYXRjaGdyb3VwPWxvZ3RhbGtFbnRpdHlSZWxUYWcJZW5kPSIpIgkJY29udGFpbnM9bG9ndGFsa0VudGl0eSxsb2d0YWxrVmFyaWFibGUsbG9ndGFsa051bWJlcixsb2d0YWxrT3BlcmF0b3IJY29udGFpbmVkCitzeW4gcmVnaW9uCWxvZ3RhbGtFbnRpdHlSZWwJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCXN0YXJ0PSJpbnN0YW50aWF0ZXMoIgltYXRjaGdyb3VwPWxvZ3RhbGtFbnRpdHlSZWxUYWcJZW5kPSIpIgkJY29udGFpbnM9bG9ndGFsa0VudGl0eSxsb2d0YWxrVmFyaWFibGUsbG9ndGFsa051bWJlcixsb2d0YWxrT3BlcmF0b3IsbG9ndGFsa1N0cmluZyxsb2d0YWxrQXRvbQljb250YWluZWQKK3N5biByZWdpb24JbG9ndGFsa0VudGl0eVJlbAltYXRjaGdyb3VwPWxvZ3RhbGtFbnRpdHlSZWxUYWcJc3RhcnQ9InNwZWNpYWxpemVzKCIJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCWVuZD0iKSIJCWNvbnRhaW5zPWxvZ3RhbGtFbnRpdHksbG9ndGFsa1ZhcmlhYmxlLGxvZ3RhbGtOdW1iZXIsbG9ndGFsa09wZXJhdG9yLGxvZ3RhbGtTdHJpbmcsbG9ndGFsa0F0b20JY29udGFpbmVkCitzeW4gcmVnaW9uCWxvZ3RhbGtFbnRpdHlSZWwJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCXN0YXJ0PSJleHRlbmRzKCIJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCWVuZD0iKSIJCWNvbnRhaW5zPWxvZ3RhbGtFbnRpdHksbG9ndGFsa1ZhcmlhYmxlLGxvZ3RhbGtOdW1iZXIsbG9ndGFsa09wZXJhdG9yLGxvZ3RhbGtTdHJpbmcsbG9ndGFsa0F0b20JY29udGFpbmVkCitzeW4gcmVnaW9uCWxvZ3RhbGtFbnRpdHlSZWwJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCXN0YXJ0PSJpbXBvcnRzKCIJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCWVuZD0iKSIJCWNvbnRhaW5zPWxvZ3RhbGtFbnRpdHksbG9ndGFsa1ZhcmlhYmxlLGxvZ3RhbGtOdW1iZXIsbG9ndGFsa09wZXJhdG9yLGxvZ3RhbGtTdHJpbmcsbG9ndGFsa0F0b20JY29udGFpbmVkCitzeW4gcmVnaW9uCWxvZ3RhbGtFbnRpdHlSZWwJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCXN0YXJ0PSJpbXBsZW1lbnRzKCIJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCWVuZD0iKSIJCWNvbnRhaW5zPWxvZ3RhbGtFbnRpdHksbG9ndGFsa1ZhcmlhYmxlLGxvZ3RhbGtOdW1iZXIsbG9ndGFsa09wZXJhdG9yLGxvZ3RhbGtTdHJpbmcsbG9ndGFsa0F0b20JY29udGFpbmVkCitzeW4gcmVnaW9uCWxvZ3RhbGtFbnRpdHlSZWwJbWF0Y2hncm91cD1sb2d0YWxrRW50aXR5UmVsVGFnCXN0YXJ0PSJjb21wbGVtZW50cygiCW1hdGNoZ3JvdXA9bG9ndGFsa0VudGl0eVJlbFRhZwllbmQ9IikiCQljb250YWlucz1sb2d0YWxrRW50aXR5LGxvZ3RhbGtWYXJpYWJsZSxsb2d0YWxrTnVtYmVyLGxvZ3RhbGtPcGVyYXRvcixsb2d0YWxrU3RyaW5nLGxvZ3RhbGtBdG9tCWNvbnRhaW5lZAogCiAKICIgTG9ndGFsayBkaXJlY3RpdmVzCiAKIHN5biByZWdpb24JbG9ndGFsa0RpcgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCXN0YXJ0PSI6LSBhbGlhcygiCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPUFMTAotc3luIHJlZ2lvbglsb2d0YWxrRGlyCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJc3RhcnQ9IjotIGVuY29kaW5nKCIJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1BTEwKK3N5biByZWdpb24JbG9ndGFsa0RpcgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCXN0YXJ0PSI6LSBjYWxscygiCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPUFMTAorc3luIHJlZ2lvbglsb2d0YWxrRGlyCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJc3RhcnQ9IjotIGVuY29kaW5nKCIJCW1hdGNoZ3JvdXA9bG9ndGFsa0RpclRhZwllbmQ9IilcLiIJY29udGFpbnM9QUxMCiBzeW4gcmVnaW9uCWxvZ3RhbGtEaXIJCW1hdGNoZ3JvdXA9bG9ndGFsa0RpclRhZwlzdGFydD0iOi0gaW5pdGlhbGl6YXRpb24oIgltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPUFMTAogc3luIHJlZ2lvbglsb2d0YWxrRGlyCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJc3RhcnQ9IjotIGluZm8oIgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1BTEwKIHN5biByZWdpb24JbG9ndGFsa0RpcgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCXN0YXJ0PSI6LSBtb2RlKCIJCW1hdGNoZ3JvdXA9bG9ndGFsa0RpclRhZwllbmQ9IilcLiIJY29udGFpbnM9bG9ndGFsa09wZXJhdG9yLCBsb2d0YWxrQXRvbQpAQCAtODMsMTcgKzg4LDE4IEBACiBzeW4gcmVnaW9uCWxvZ3RhbGtEaXIJCW1hdGNoZ3JvdXA9bG9ndGFsa0RpclRhZwlzdGFydD0iOi0gcHVibGljKCIJCW1hdGNoZ3JvdXA9bG9ndGFsa0RpclRhZwllbmQ9IilcLiIJY29udGFpbnM9QUxMCiBzeW4gcmVnaW9uCWxvZ3RhbGtEaXIJCW1hdGNoZ3JvdXA9bG9ndGFsa0RpclRhZwlzdGFydD0iOi0gcHJvdGVjdGVkKCIJCW1hdGNoZ3JvdXA9bG9ndGFsa0RpclRhZwllbmQ9IilcLiIJY29udGFpbnM9QUxMCiBzeW4gcmVnaW9uCWxvZ3RhbGtEaXIJCW1hdGNoZ3JvdXA9bG9ndGFsa0RpclRhZwlzdGFydD0iOi0gcHJpdmF0ZSgiCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPUFMTAotc3luIHJlZ2lvbglsb2d0YWxrRGlyCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJc3RhcnQ9IjotIG1ldGFwcmVkaWNhdGUoIgltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPUFMTAorc3luIHJlZ2lvbglsb2d0YWxrRGlyCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJc3RhcnQ9IjotIG1ldGFfcHJlZGljYXRlKCIJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1BTEwKIHN5biByZWdpb24JbG9ndGFsa0RpcgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCXN0YXJ0PSI6LSBvcCgiCQkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1BTEwKLXN5biByZWdpb24JbG9ndGFsa0RpcgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCXN0YXJ0PSI6LSBjYWxscygiCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPUFMTAorc3luIHJlZ2lvbglsb2d0YWxrRGlyCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJc3RhcnQ9IjotIHN5bmNocm9uaXplZCgiCW1hdGNoZ3JvdXA9bG9ndGFsa0RpclRhZwllbmQ9IilcLiIJY29udGFpbnM9QUxMCitzeW4gbWF0Y2gJbG9ndGFsa0RpclRhZwkJIjotIHN5bmNocm9uaXplZFwuIgogc3luIHJlZ2lvbglsb2d0YWxrRGlyCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJc3RhcnQ9IjotIHVzZXMoIgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1BTEwKK3N5biBtYXRjaAlsb2d0YWxrRGlyVGFnCQkiOi0gdGhyZWFkZWRcLiIKIAogCiAiIE1vZHVsZSBkaXJlY3RpdmVzCiAKIHN5biByZWdpb24JbG9ndGFsa0RpcgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCXN0YXJ0PSI6LSBtb2R1bGUoIgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1BTEwKIHN5biByZWdpb24JbG9ndGFsa0RpcgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCXN0YXJ0PSI6LSBleHBvcnQoIgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1BTEwKLXN5biByZWdpb24JbG9ndGFsa0RpcgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCXN0YXJ0PSI6LSBtZXRhX3ByZWRpY2F0ZSgiCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJZW5kPSIpXC4iCWNvbnRhaW5zPUFMTAogc3luIHJlZ2lvbglsb2d0YWxrRGlyCQltYXRjaGdyb3VwPWxvZ3RhbGtEaXJUYWcJc3RhcnQ9IjotIHVzZV9tb2R1bGUoIgkJbWF0Y2hncm91cD1sb2d0YWxrRGlyVGFnCWVuZD0iKVwuIgljb250YWlucz1BTEwKIAogCkBAIC0xMDMsMTkgKzEwOSwyMiBAQAogCiBzeW4gbWF0Y2gJbG9ndGFsa0J1aWx0SW4JCSJcPFwob2JqZWN0XHxwcm90b2NvbFx8Y2F0ZWdvcnlcKV9wcm9wZXJ0eVx6ZSgiCiAKLXN5biBtYXRjaAlsb2d0YWxrQnVpbHRJbgkJIlw8ZXh0ZW5kc19cKG9iamVjdFx8cHJvdG9jb2xcKVx6ZSgiCitzeW4gbWF0Y2gJbG9ndGFsa0J1aWx0SW4JCSJcPGNvbXBsZW1lbnRzX29iamVjdFx6ZSgiCitzeW4gbWF0Y2gJbG9ndGFsa0J1aWx0SW4JCSJcPGV4dGVuZHNfXChvYmplY3RcfHByb3RvY29sXHxjYXRlZ29yeVwpXHplKCIKIHN5biBtYXRjaAlsb2d0YWxrQnVpbHRJbgkJIlw8aW1wXChvcnRzX2NhdGVnb3J5XHxsZW1lbnRzX3Byb3RvY29sXClcemUoIgotc3luIG1hdGNoCWxvZ3RhbGtCdWlsdEluCQkiXDxcKGluc3RhbnRpYXRlc1x8c3BlY2lhbGl6ZXNcKV9jbGFzc1x6ZSgiCitzeW4gbWF0Y2gJbG9ndGFsa0J1aWx0SW4JCSJcPFwoaW5zdGFudGlhdFx8c3BlY2lhbGl6XCllc19jbGFzc1x6ZSgiCiAKIHN5biBtYXRjaAlsb2d0YWxrQnVpbHRJbgkJIlw8XChhYm9saXNoXHxkZWZpbmVcKV9ldmVudHNcemUoIgogc3luIG1hdGNoCWxvZ3RhbGtCdWlsdEluCQkiXDxjdXJyZW50X2V2ZW50XHplKCIKIAotc3luIG1hdGNoCWxvZ3RhbGtCdWlsdEluCQkiXDxcKGN1cnJlbnRcfHNldFwpX2xvZ3RhbGtfZmxhZ1x6ZSgiCitzeW4gbWF0Y2gJbG9ndGFsa0J1aWx0SW4JCSJcPFwoY3VycmVuXHxzZVwpdF9sb2d0YWxrX2ZsYWdcemUoIgogCiBzeW4gbWF0Y2gJbG9ndGFsa0J1aWx0SW4JCSJcPGxvZ3RhbGtfXChjb21waWxlXHxsXChpYnJhcnlfcGF0aFx8b2FkXClcKVx6ZSgiCiAKIHN5biBtYXRjaAlsb2d0YWxrQnVpbHRJbgkJIlw8XChmb3JcfHJldHJhY3RcKWFsbFx6ZSgiCiAKK3N5biBtYXRjaAlsb2d0YWxrQnVpbHRJbgkJIlw8dGhyZWFkZWRcKF9cKGNhbGxcfG9uY2VcfGlnbm9yZVx8ZXhpdFx8cGVla1x8d2FpdFx8bm90aWZ5XClcKVw/XHplKCIKKwogCiAiIExvZ3RhbGsgYnVpbHQtaW4gbWV0aG9kcwogCkBAIC0xMzcsNyArMTQ2LDcgQEAKIHN5biBtYXRjaAlsb2d0YWxrQnVpbHRJbk1ldGhvZAkiXDxhZnRlclx6ZSgiCiAKIHN5biBtYXRjaAlsb2d0YWxrQnVpbHRJbk1ldGhvZAkiXDxleHBhbmRfdGVybVx6ZSgiCi1zeW4gbWF0Y2gJbG9ndGFsa0J1aWx0SW5NZXRob2QJIlw8dGVybV9leHBhbnNpb25cemUoIgorc3luIG1hdGNoCWxvZ3RhbGtCdWlsdEluTWV0aG9kCSJcPFwoZ29hbFx8dGVybVwpX2V4cGFuc2lvblx6ZSgiCiBzeW4gbWF0Y2gJbG9ndGFsa0J1aWx0SW5NZXRob2QJIlw8cGhyYXNlXHplKCIKIAogCkBAIC0yMTIsNyArMjIxLDcgQEAKIAogIiBTdHJlYW0gc2VsZWN0aW9uIGFuZCBjb250cm9sCiAKLXN5biBtYXRjaAlsb2d0YWxrS2V5d29yZAkJIlw8XChjdXJyZW50XHxzZXRcKV9cKGluXHxvdXRcKXB1dFx6ZSgiCitzeW4gbWF0Y2gJbG9ndGFsa0tleXdvcmQJCSJcPFwoY3VycmVuXHxzZVwpdF9cKGluXHxvdXRcKXB1dFx6ZSgiCiBzeW4gbWF0Y2gJbG9ndGFsa0tleXdvcmQJCSJcPG9wZW5cemUoIgogc3luIG1hdGNoCWxvZ3RhbGtLZXl3b3JkCQkiXDxjbG9zZVx6ZSgiCiBzeW4gbWF0Y2gJbG9ndGFsa0tleXdvcmQJCSJcPGZsdXNoX291dHB1dFx6ZSgiCkBAIC0yMzUsNyArMjQ0LDcgQEAKIHN5biBtYXRjaAlsb2d0YWxrS2V5d29yZAkJIlw8cmVhZFwoX3Rlcm1cKVw/XHplKCIKIHN5biBtYXRjaAlsb2d0YWxrS2V5d29yZAkJIlw8d3JpdGVcKHFcfF9cKGNhbm9uaWNhbFx8dGVybVwpXClcP1x6ZSgiCiBzeW4gbWF0Y2gJbG9ndGFsa0tleXdvcmQJCSJcPFwoY3VycmVudF9cKVw/b3BcemUoIgotc3luIG1hdGNoCWxvZ3RhbGtLZXl3b3JkCQkiXDxcKGN1cnJlbnRcKVw/Y2hhcl9jb252ZXJzaW9uXHplKCIKK3N5biBtYXRjaAlsb2d0YWxrS2V5d29yZAkJIlw8XChjdXJyZW50X1wpXD9jaGFyX2NvbnZlcnNpb25cemUoIgogCiAKICIgTG9naWMgYW5kIGNvbnRyb2wKQEAgLTI1MCwxMiArMjU5LDEyIEBACiBzeW4gbWF0Y2gJbG9ndGFsa0tleXdvcmQJCSJcPGF0b21fXChsZW5ndGhcfGNcKGhhcnNcfG9cKG5jYXRcfGRlc1wpXClcKVx6ZSgiCiBzeW4gbWF0Y2gJbG9ndGFsa0tleXdvcmQJCSJcPHN1Yl9hdG9tXHplKCIKIHN5biBtYXRjaAlsb2d0YWxrS2V5d29yZAkJIlw8Y2hhcl9jb2RlXHplKCIKLXN5biBtYXRjaAlsb2d0YWxrS2V5d29yZAkJIlw8bnVtYmVyX1woY1woaGFyc1x8b2Rlc1wpXClcemUoIgorc3luIG1hdGNoCWxvZ3RhbGtLZXl3b3JkCQkiXDxudW1iZXJfY1woaGFyXHxvZGVcKXNcemUoIgogCiAKICIgSW1wbGVtZW50YXRpb24gZGVmaW5lZCBob29rcyBmdW5jdGlvbnMKIAotc3luIG1hdGNoCWxvZ3RhbGtLZXl3b3JkCQkiXDxcKGN1cnJlbnRcfHNldFwpX3Byb2xvZ19mbGFnXHplKCIKK3N5biBtYXRjaAlsb2d0YWxrS2V5d29yZAkJIlw8XChjdXJyZW5cfHNlXCl0X3Byb2xvZ19mbGFnXHplKCIKIHN5biBtYXRjaAlsb2d0YWxrS2V5d29yZAkJIlw8aGFsdFx6ZSgiCiBzeW4gbWF0Y2gJbG9ndGFsa0tleXdvcmQJCSJcPGhhbHRcPiIKIApAQCAtMzAyLDEzICszMTEsMTMgQEAKIHN5biBtYXRjaAlsb2d0YWxrT3BlcmF0b3IJCSJ8IgogCiAKLSIgTG9ndGFsayBudW1iZXJzIAorIiBMb2d0YWxrIG51bWJlcnMKIAogc3luIG1hdGNoCWxvZ3RhbGtOdW1iZXIJCSJcPFxkXCtcPiIKIHN5biBtYXRjaAlsb2d0YWxrTnVtYmVyCQkiXDxcZFwrXC5cZFwrXD4iCiBzeW4gbWF0Y2gJbG9ndGFsa051bWJlcgkJIlw8XGRcK1tlRV1bLStdXD1cZFwrXD4iCiBzeW4gbWF0Y2gJbG9ndGFsa051bWJlcgkJIlw8XGRcK1wuXGRcK1tlRV1bLStdXD1cZFwrXD4iCi1zeW4gbWF0Y2gJbG9ndGFsa051bWJlcgkJIlw8MCcuXD4iCitzeW4gbWF0Y2gJbG9ndGFsa051bWJlcgkJIlw8MCcuXHwwJydcfDAnXCJcPiIKIHN5biBtYXRjaAlsb2d0YWxrTnVtYmVyCQkiXDwwYlswLTFdXCtcPiIKIHN5biBtYXRjaAlsb2d0YWxrTnVtYmVyCQkiXDwwb1xvXCtcPiIKIHN5biBtYXRjaAlsb2d0YWxrTnVtYmVyCQkiXDwweFx4XCtcPiIKQEAgLTM0Niw3ICszNTUsNyBAQAogCWVsc2UKIAkJY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CiAJZW5kaWYKLQkKKwogCUhpTGluawlsb2d0YWxrQmxvY2tDb21tZW50CUNvbW1lbnQKIAlIaUxpbmsJbG9ndGFsa0xpbmVDb21tZW50CUNvbW1lbnQKIApAQCAtMzY1LDYgKzM3NCw3IEBACiAKIAlIaUxpbmsJbG9ndGFsa0F0b20JCVN0cmluZwogCUhpTGluawlsb2d0YWxrU3RyaW5nCQlTdHJpbmcKKwlIaUxpbmsJbG9ndGFsa0VzY2FwZVNlcXVlbmNlCVNwZWNpYWxDaGFyCiAKIAlIaUxpbmsJbG9ndGFsa051bWJlcgkJTnVtYmVyCiAKQEAgLTM4Niw3ICszOTYsMyBAQAogCiAKIGxldCBiOmN1cnJlbnRfc3ludGF4ID0gImxvZ3RhbGsiCi0KLXNldGxvY2FsIHRzPTQKLXNldGxvY2FsIGZkbT1zeW50YXgKLXNldGxvY2FsIGZkYz0yCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9tZXNzYWdlcy52aW0gYi9ydW50aW1lL3N5bnRheC9tZXNzYWdlcy52aW0KaW5kZXggMmRiYWE1YS4uNDY0OGU5NCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbWVzc2FnZXMudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L21lc3NhZ2VzLnZpbQpAQCAtMSw3ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOiAgICAgICAgIC92YXIvbG9nL21lc3NhZ2VzIGZpbGUKICIgTWFpbnRhaW5lcjogICAgICAgWWFrb3YgTGVybmVyIDxpbGVyLm1sQGdtYWlsLmNvbT4KLSIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNi0wNi0xOQorIiBMYXRlc3QgUmV2aXNpb246ICAyMDA4LTA2LTI5CisiIENoYW5nZXM6ICAgICAgICAgIDIwMDgtMDYtMjkgc3VwcG9ydCBmb3IgUkZDMzMzOSB0dWltZXN0YW1wcyBKYW1lcyBWZWdhCiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaApAQCAtMTAsNyArMTEsNyBAQAogbGV0IHM6Y3BvX3NhdmUgPSAmY3BvCiBzZXQgY3BvJnZpbQogCi1zeW4gbWF0Y2ggICBtZXNzYWdlc0JlZ2luICAgICAgIGRpc3BsYXkgJ14nIG5leHRncm91cD1tZXNzYWdlc0RhdGUKK3N5biBtYXRjaCAgIG1lc3NhZ2VzQmVnaW4gICAgICAgZGlzcGxheSAnXicgbmV4dGdyb3VwPW1lc3NhZ2VzRGF0ZSxtZXNzYWdlc0RhdGVSRkMzMzM5CiAKIHN5biBtYXRjaCAgIG1lc3NhZ2VzRGF0ZSAgICAgICAgY29udGFpbmVkIGRpc3BsYXkgJ1xhXGFcYSBbIDAtOV1cZCAqJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1tZXNzYWdlc0hvdXIKQEAgLTE4LDYgKzE5LDE1IEBACiBzeW4gbWF0Y2ggICBtZXNzYWdlc0hvdXIgICAgICAgIGNvbnRhaW5lZCBkaXNwbGF5ICdcZFxkOlxkXGQ6XGRcZFxzKicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9bWVzc2FnZXNIb3N0CiAKK3N5biBtYXRjaCAgIG1lc3NhZ2VzRGF0ZVJGQzMzMzkgY29udGFpbmVkIGRpc3BsYXkgJ1xkXHs0fS1cZFxkLVxkXGQnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPW1lc3NhZ2VzUkZDMzMzOVQKKworc3luIG1hdGNoICAgbWVzc2FnZXNSRkMzMzM5VCAgICBjb250YWluZWQgZGlzcGxheSAnXGNUJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1tZXNzYWdlc0hvdXJSRkMzMzM5CisKK3N5biBtYXRjaCAgIG1lc3NhZ2VzSG91clJGQzMzMzkgY29udGFpbmVkIGRpc3BsYXkgJ1xjXGRcZDpcZFxkOlxkXGRcKFwuXGRcK1wpXD1cKFsrLV1cZFxkOlxkXGRcfFpcKScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9bWVzc2FnZXNIb3N0CisKIHN5biBtYXRjaCAgIG1lc3NhZ2VzSG9zdCAgICAgICAgY29udGFpbmVkIGRpc3BsYXkgJ1xTKlxzKicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9bWVzc2FnZXNMYWJlbAogCkBAIC00Myw2ICs1Myw5IEBACiAKIGhpIGRlZiBsaW5rIG1lc3NhZ2VzRGF0ZSAgICAgICAgQ29uc3RhbnQKIGhpIGRlZiBsaW5rIG1lc3NhZ2VzSG91ciAgICAgICAgVHlwZQoraGkgZGVmIGxpbmsgbWVzc2FnZXNEYXRlUkZDMzMzOSBDb25zdGFudAoraGkgZGVmIGxpbmsgbWVzc2FnZXNIb3VyUkZDMzMzOSBUeXBlCitoaSBkZWYgbGluayBtZXNzYWdlc1JGQzMzMzlUICAgIE5vcm1hbAogaGkgZGVmIGxpbmsgbWVzc2FnZXNIb3N0ICAgICAgICBJZGVudGlmaWVyCiBoaSBkZWYgbGluayBtZXNzYWdlc0xhYmVsICAgICAgIE9wZXJhdG9yCiBoaSBkZWYgbGluayBtZXNzYWdlc1BJRCAgICAgICAgIENvbnN0YW50CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9tdXR0cmMudmltIGIvcnVudGltZS9zeW50YXgvbXV0dHJjLnZpbQppbmRleCAwYjFkMTYxLi4wNjg2MDljIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9tdXR0cmMudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L211dHRyYy52aW0KQEAgLTIsOSArMiw5IEBACiAiIExhbmd1YWdlOglNdXR0IHNldHVwIGZpbGVzCiAiIE9yaWdpbmFsOglQcmViZW4gJ1BlcHBlJyBHdWxkYmVyZyA8cGVwcGUtdmltQHdpZWxkZXJzLm9yZz4KICIgTWFpbnRhaW5lcjoJS3lsZSBXaGVlbGVyIDxreWxlLW11dHRyYy52aW1AbWVtb3J5aG9sZS5uZXQ+Ci0iIExhc3QgQ2hhbmdlOgkxNSBBdWcgMjAwNworIiBMYXN0IENoYW5nZToJMTIgSnVuIDIwMDgKIAotIiBUaGlzIGZpbGUgY292ZXJzIG11dHQgdmVyc2lvbiAxLjUuMTYgKGFuZCBtb3N0IG9mIENWUyBIRUFEKQorIiBUaGlzIGZpbGUgY292ZXJzIG11dHQgdmVyc2lvbiAxLjUuMTggKGFuZCBtb3N0IG9mIHRoZSBtZXJjdXJpYWwgdGlwKQogIiBJbmNsdWRlZCBhcmUgYWxzbyBhIGZldyBmZWF0dXJlcyBmcm9tIDEuNC4yLjEKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKQEAgLTc2LDYgKzc2LDcgQEAKIHN5biBtYXRjaCAgIG11dHRyY0tleU5hbWUJY29udGFpbmVkICJcPGZcJShcZFx8MTBcKVw+Igogc3luIG1hdGNoICAgbXV0dHJjS2V5TmFtZQljb250YWluZWQgIlxcW3RybmVdIgogc3luIG1hdGNoICAgbXV0dHJjS2V5TmFtZQljb250YWluZWQgIlxjPFwlKEJhY2tTcGFjZVx8RGVsZXRlXHxEb3duXHxFbmRcfEVudGVyXHxFc2NcfEhvbWVcfEluc2VydFx8TGVmdFx8UGFnZURvd25cfFBhZ2VVcFx8UmV0dXJuXHxSaWdodFx8U3BhY2VcfFRhYlx8VXBcKT4iCitzeW4gbWF0Y2ggICBtdXR0cmNLZXlOYW1lCWNvbnRhaW5lZCAiPEZbMC05XVwrPiIKIAogc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAljb250YWluZWQgYWxsb3dfOGJpdCBhbGxvd19hbnNpIGFycm93X2N1cnNvciBhc2NpaV9jaGFycyBhc2tiY2MKIHN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJY29udGFpbmVkIGFza2NjIGF0dGFjaF9zcGxpdCBhdXRvX3RhZyBhdXRvZWRpdCBiZWVwIGJlZXBfbmV3CkBAIC0yMTcsNiArMjE4LDcgQEAKIAogc3luIHJlZ2lvbiBtdXR0cmNJbmRleEZvcm1hdFN0cgljb250YWluZWQga2VlcGVuZCBzdGFydD0rIisgc2tpcD0rXFwiKyBlbmQ9KyIrIGNvbnRhaW5zPW11dHRyY0luZGV4Rm9ybWF0RXNjYXBlcyxtdXR0cmNJbmRleEZvcm1hdENvbmRpdGlvbmFscyxtdXR0cmNGb3JtYXRFcnJvcnMsbXV0dHJjVGltZUVzY2FwZXMKIHN5biByZWdpb24gbXV0dHJjSW5kZXhGb3JtYXRTdHIJY29udGFpbmVkIGtlZXBlbmQgc3RhcnQ9KycrIHNraXA9K1xcJysgZW5kPSsnKyBjb250YWlucz1tdXR0cmNJbmRleEZvcm1hdEVzY2FwZXMsbXV0dHJjSW5kZXhGb3JtYXRDb25kaXRpb25hbHMsbXV0dHJjRm9ybWF0RXJyb3JzLG11dHRyY1RpbWVFc2NhcGVzCitzeW4gcmVnaW9uIG11dHRyY1F1ZXJ5Rm9ybWF0U3RyIGNvbnRhaW5lZCBrZWVwZW5kIHN0YXJ0PSsiKyBza2lwPStcXCIrIGVuZD0rIisgY29udGFpbnM9bXV0dHJjUXVlcnlGb3JtYXRFc2NhcGVzLG11dHRyY1F1ZXJ5Rm9ybWF0Q29uZGl0aW9uYWxzLG11dHRyY0Zvcm1hdEVycm9ycwogc3luIHJlZ2lvbiBtdXR0cmNBbGlhc0Zvcm1hdFN0cgljb250YWluZWQga2VlcGVuZCBzdGFydD0rIisgc2tpcD0rXFwiKyBlbmQ9KyIrIGNvbnRhaW5zPW11dHRyY0FsaWFzRm9ybWF0RXNjYXBlcyxtdXR0cmNGb3JtYXRFcnJvcnMKIHN5biByZWdpb24gbXV0dHJjQWxpYXNGb3JtYXRTdHIJY29udGFpbmVkIGtlZXBlbmQgc3RhcnQ9KycrIHNraXA9K1xcJysgZW5kPSsnKyBjb250YWlucz1tdXR0cmNBbGlhc0Zvcm1hdEVzY2FwZXMsbXV0dHJjRm9ybWF0RXJyb3JzCiBzeW4gcmVnaW9uIG11dHRyY0F0dGFjaEZvcm1hdFN0cgljb250YWluZWQga2VlcGVuZCBzdGFydD0rIisgc2tpcD0rXFwiKyBlbmQ9KyIrIGNvbnRhaW5zPW11dHRyY0F0dGFjaEZvcm1hdEVzY2FwZXMsbXV0dHJjQXR0YWNoRm9ybWF0Q29uZGl0aW9uYWxzLG11dHRyY0Zvcm1hdEVycm9ycwpAQCAtMjQzLDYgKzI0NSw5IEBACiBzeW4gbWF0Y2ggbXV0dHJjSW5kZXhGb3JtYXRDb25kaXRpb25hbHMgY29udGFpbmVkIC8lP1tFRkhsTE1OT1h5WV0/LyBuZXh0Z3JvdXA9bXV0dHJjRm9ybWF0Q29uZGl0aW9uYWxzMgogIiBUaGUgZm9sbG93aW5nIGluZm8gd2FzIHB1bGxlZCBmcm9tIGFsaWFzX2Zvcm1hdF9zdHIgaW4gYWRkcmJvb2suYwogc3luIG1hdGNoIG11dHRyY0FsaWFzRm9ybWF0RXNjYXBlcyBjb250YWluZWQgLyVcJShcJSgtXD9bMC05XVwrXClcP1wlKFwuWzAtOV1cK1wpXD9cKVw/WzpfXVw/W2FmbnJ0JV0vCisiIFRoZSBmb2xsb3dpbmcgaW5mbyB3YXMgcHVsbGVkIGZyb20gcXVlcnlfZm9ybWF0X3N0ciBpbiBxdWVyeS5jCitzeW4gbWF0Y2ggbXV0dHJjUXVlcnlGb3JtYXRFc2NhcGVzIGNvbnRhaW5lZCAvJVwlKFwlKC1cP1swLTldXCtcKVw/XCUoXC5bMC05XVwrXClcP1wpXD9bOl9dXD9bYWNlbnQlXS8KK3N5biBtYXRjaCBtdXR0cmNRdWVyeUZvcm1hdENvbmRpdGlvbmFscyBjb250YWluZWQgLyU/W2VdPy8gbmV4dGdyb3VwPW11dHRyY0Zvcm1hdENvbmRpdGlvbmFsczIKICIgVGhlIGZvbGxvd2luZyBpbmZvIHdhcyBwdWxsZWQgZnJvbSBtdXR0X2F0dGFjaF9mbXQgaW4gcmVjdmF0dGFjaC5jCiBzeW4gbWF0Y2ggbXV0dHJjQXR0YWNoRm9ybWF0RXNjYXBlcyBjb250YWluZWQgLyVcJShcJSgtXD9bMC05XVwrXClcP1wlKFwuWzAtOV1cK1wpXD9cKVw/WzpfXVw/W0NjRGRlZkltTW5Rc3RUdVglXS8KIHN5biBtYXRjaCBtdXR0cmNBdHRhY2hGb3JtYXRFc2NhcGVzIGNvbnRhaW5lZCAvJVs+fCpdLi8KQEAgLTI4NywyNyArMjkyLDI5IEBACiBzeW4gcmVnaW9uIG11dHRyY1BHUFRpbWVFc2NhcGVzIGNvbnRhaW5lZCBzdGFydD0rJVxbKyBlbmQ9K1xdKyBjb250YWlucz1tdXR0cmNTdHJmdGltZUVzY2FwZXMKIAogc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBhdHRyaWJ1dGlvbiBpbmRleF9mb3JtYXQgbWVzc2FnZV9mb3JtYXQgcGFnZXJfZm9ybWF0IG5leHRncm91cD1tdXR0cmNWYXJFcXVhbHNJZHhGbXQKLXN5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNJZHhGbXQgY29udGFpbmVkICI9IiBuZXh0Z3JvdXA9bXV0dHJjSW5kZXhGb3JtYXRTdHIKK3N5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNJZHhGbXQgY29udGFpbmVkICIgKj0gKiIgbmV4dGdyb3VwPW11dHRyY0luZGV4Rm9ybWF0U3RyCiBzeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIGFsaWFzX2Zvcm1hdCBuZXh0Z3JvdXA9bXV0dHJjVmFyRXF1YWxzQWxpYXNGbXQKLXN5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNBbGlhc0ZtdCBjb250YWluZWQgIj0iIG5leHRncm91cD1tdXR0cmNBbGlhc0Zvcm1hdFN0cgorc3luIG1hdGNoIG11dHRyY1ZhckVxdWFsc0FsaWFzRm10IGNvbnRhaW5lZCAiICo9ICoiIG5leHRncm91cD1tdXR0cmNBbGlhc0Zvcm1hdFN0cgogc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBhdHRhY2hfZm9ybWF0IG5leHRncm91cD1tdXR0cmNWYXJFcXVhbHNBdHRhY2hGbXQKLXN5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNBdHRhY2hGbXQgY29udGFpbmVkICI9IiBuZXh0Z3JvdXA9bXV0dHJjQXR0YWNoRm9ybWF0U3RyCitzeW4gbWF0Y2ggbXV0dHJjVmFyRXF1YWxzQXR0YWNoRm10IGNvbnRhaW5lZCAiICo9ICoiIG5leHRncm91cD1tdXR0cmNBdHRhY2hGb3JtYXRTdHIKIHN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgY29tcG9zZV9mb3JtYXQgbmV4dGdyb3VwPW11dHRyY1ZhckVxdWFsc0NvbXBvc2VGbXQKLXN5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNDb21wb3NlRm10IGNvbnRhaW5lZCAiPSIgbmV4dGdyb3VwPW11dHRyY0NvbXBvc2VGb3JtYXRTdHIKK3N5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNDb21wb3NlRm10IGNvbnRhaW5lZCAiICo9ICoiIG5leHRncm91cD1tdXR0cmNDb21wb3NlRm9ybWF0U3RyCiBzeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIGZvbGRlcl9mb3JtYXQgbmV4dGdyb3VwPW11dHRyY1ZhckVxdWFsc0ZvbGRlckZtdAotc3luIG1hdGNoIG11dHRyY1ZhckVxdWFsc0ZvbGRlckZtdCBjb250YWluZWQgIj0iIG5leHRncm91cD1tdXR0cmNGb2xkZXJGb3JtYXRTdHIKK3N5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNGb2xkZXJGbXQgY29udGFpbmVkICIgKj0gKiIgbmV4dGdyb3VwPW11dHRyY0ZvbGRlckZvcm1hdFN0cgogc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBtaXhfZW50cnlfZm9ybWF0IG5leHRncm91cD1tdXR0cmNWYXJFcXVhbHNNaXhGbXQKLXN5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNNaXhGbXQgY29udGFpbmVkICI9IiBuZXh0Z3JvdXA9bXV0dHJjTWl4Rm9ybWF0U3RyCitzeW4gbWF0Y2ggbXV0dHJjVmFyRXF1YWxzTWl4Rm10IGNvbnRhaW5lZCAiICo9ICoiIG5leHRncm91cD1tdXR0cmNNaXhGb3JtYXRTdHIKIHN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgcGdwX2VudHJ5X2Zvcm1hdCBuZXh0Z3JvdXA9bXV0dHJjVmFyRXF1YWxzUEdQRm10Ci1zeW4gbWF0Y2ggbXV0dHJjVmFyRXF1YWxzUEdQRm10IGNvbnRhaW5lZCAiPSIgbmV4dGdyb3VwPW11dHRyY1BHUEZvcm1hdFN0cgorc3luIG1hdGNoIG11dHRyY1ZhckVxdWFsc1BHUEZtdCBjb250YWluZWQgIiAqPSAqIiBuZXh0Z3JvdXA9bXV0dHJjUEdQRm9ybWF0U3RyCitzeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHF1ZXJ5X2Zvcm1hdCBuZXh0Z3JvdXA9bXV0dHJjVmFyRXF1YWxzUXVlcnlGbXQKK3N5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNRdWVyeUZtdCBjb250YWluZWQgIiAqPSAqIiBuZXh0Z3JvdXA9bXV0dHJjUXVlcnlGb3JtYXRTdHIKIHN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgcGdwX2RlY29kZV9jb21tYW5kIHBncF92ZXJpZnlfY29tbWFuZCBwZ3BfZGVjcnlwdF9jb21tYW5kIHBncF9jbGVhcnNpZ25fY29tbWFuZCBwZ3Bfc2lnbl9jb21tYW5kIHBncF9lbmNyeXB0X3NpZ25fY29tbWFuZCBwZ3BfZW5jcnlwdF9vbmx5X2NvbW1hbmQgcGdwX2ltcG9ydF9jb21tYW5kIHBncF9leHBvcnRfY29tbWFuZCBwZ3BfdmVyaWZ5X2tleV9jb21tYW5kIHBncF9saXN0X3NlY3JpbmdfY29tbWFuZCBwZ3BfbGlzdF9wdWJyaW5nX2NvbW1hbmQgbmV4dGdyb3VwPW11dHRyY1ZhckVxdWFsc1BHUENtZEZtdAotc3luIG1hdGNoIG11dHRyY1ZhckVxdWFsc1BHUENtZEZtdCBjb250YWluZWQgIj0iIG5leHRncm91cD1tdXR0cmNQR1BDbWRGb3JtYXRTdHIKK3N5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNQR1BDbWRGbXQgY29udGFpbmVkICIgKj0gKiIgbmV4dGdyb3VwPW11dHRyY1BHUENtZEZvcm1hdFN0cgogc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBzdGF0dXNfZm9ybWF0IG5leHRncm91cD1tdXR0cmNWYXJFcXVhbHNTdGF0dXNGbXQKLXN5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNTdGF0dXNGbXQgY29udGFpbmVkICI9IiBuZXh0Z3JvdXA9bXV0dHJjU3RhdHVzRm9ybWF0U3RyCitzeW4gbWF0Y2ggbXV0dHJjVmFyRXF1YWxzU3RhdHVzRm10IGNvbnRhaW5lZCAiICo9ICoiIG5leHRncm91cD1tdXR0cmNTdGF0dXNGb3JtYXRTdHIKIHN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgcGdwX2dldGtleXNfY29tbWFuZCBuZXh0Z3JvdXA9bXV0dHJjVmFyRXF1YWxzUEdQR2V0S2V5c0ZtdAotc3luIG1hdGNoIG11dHRyY1ZhckVxdWFsc1BHUEdldEtleXNGbXQgY29udGFpbmVkICI9IiBuZXh0Z3JvdXA9bXV0dHJjUEdQR2V0S2V5c0Zvcm1hdFN0cgorc3luIG1hdGNoIG11dHRyY1ZhckVxdWFsc1BHUEdldEtleXNGbXQgY29udGFpbmVkICIgKj0gKiIgbmV4dGdyb3VwPW11dHRyY1BHUEdldEtleXNGb3JtYXRTdHIKIHN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc21pbWVfZGVjcnlwdF9jb21tYW5kIHNtaW1lX3ZlcmlmeV9jb21tYW5kIHNtaW1lX3ZlcmlmeV9vcGFxdWVfY29tbWFuZCBzbWltZV9zaWduX2NvbW1hbmQgc21pbWVfc2lnbl9vcGFxdWVfY29tbWFuZCBzbWltZV9lbmNyeXB0X2NvbW1hbmQgc21pbWVfcGs3b3V0X2NvbW1hbmQgc21pbWVfZ2V0X2NlcnRfY29tbWFuZCBzbWltZV9nZXRfc2lnbmVyX2NlcnRfY29tbWFuZCBzbWltZV9pbXBvcnRfY2VydF9jb21tYW5kIHNtaW1lX2dldF9jZXJ0X2VtYWlsX2NvbW1hbmQgbmV4dGdyb3VwPW11dHRyY1ZhckVxdWFsc1NtaW1lRm10Ci1zeW4gbWF0Y2ggbXV0dHJjVmFyRXF1YWxzU21pbWVGbXQgY29udGFpbmVkICI9IiBuZXh0Z3JvdXA9bXV0dHJjU21pbWVGb3JtYXRTdHIKK3N5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNTbWltZUZtdCBjb250YWluZWQgIiAqPSAqIiBuZXh0Z3JvdXA9bXV0dHJjU21pbWVGb3JtYXRTdHIKIAogc3luIG1hdGNoIG11dHRyY1ZhclN0cgkJY29udGFpbmVkICdteV9bYS16QS1aMC05X11cKycKIHN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgYWxpYXNfZmlsZSBhc3N1bWVkX2NoYXJzZXQgYXR0YWNoX2NoYXJzZXQgYXR0YWNoX3NlcApAQCAtMzczLDcgKzM4MCw3IEBACiBzeW4gbWF0Y2ggbXV0dHJjVmFyaWFibGUJIlwkW2EtekEtWl8tXVwrIgogCiBzeW4gbWF0Y2ggbXV0dHJjQmFkQWN0aW9uCWNvbnRhaW5lZCAiW148Pl1cKyIgY29udGFpbnM9bXV0dHJjRW1haWwKLXN5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8XCUoYXR0YWNoXHxib3VuY2VcfGNvcHlcfGRlbGV0ZVx8ZGlzcGxheVx8ZmxhZ1x8Zm9yd2FyZFx8cGFyZW50XHxwaXBlXHxwb3N0cG9uZVx8cHJpbnRcfHJlY2FsbFx8cmVzZW50XHxzYXZlXHxzZW5kXHx0YWdcfHVuZGVsZXRlXCktbWVzc2FnZVw+Igorc3luIG1hdGNoIG11dHRyY0Z1bmN0aW9uCWNvbnRhaW5lZCAiXDxcJShhdHRhY2hcfGJvdW5jZVx8Y29weVx8ZGVsZXRlXHxkaXNwbGF5XHxmbGFnXHxmb3J3YXJkXHxwYXJlbnRcfHBpcGVcfHBvc3Rwb25lXHxwcmludFx8cmVjYWxsXHxyZXNlbmRcfHNhdmVcfHNlbmRcfHRhZ1x8dW5kZWxldGVcKS1tZXNzYWdlXD4iCiBzeW4gbWF0Y2ggbXV0dHJjRnVuY3Rpb24JY29udGFpbmVkICJcPFwlKGRlbGV0ZVx8bmV4dFx8cHJldmlvdXNcfHJlYWRcfHRhZ1x8dW5kZWxldGVcKS10aHJlYWRcPiIKIHN5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8XCUoYmFja3dhcmRcfGNhcGl0YWxpemVcfGRvd25jYXNlXHxmb3J3YXJkXHxraWxsXHx1cGNhc2VcKS13b3JkXD4iCiBzeW4gbWF0Y2ggbXV0dHJjRnVuY3Rpb24JY29udGFpbmVkICJcPFwlKGRlbGV0ZVx8ZmlsdGVyXHxmaXJzdFx8bGFzdFx8bmV4dFx8cGlwZVx8cHJldmlvdXNcfHByaW50XHxzYXZlXHxzZWxlY3RcfHRhZ1x8dW5kZWxldGVcKS1lbnRyeVw+IgpAQCAtMzg5LDcgKzM5Niw3IEBACiBzeW4gbWF0Y2ggbXV0dHJjRnVuY3Rpb24JY29udGFpbmVkICJcPGhhbGYtXCUodXBcfGRvd25cKVw+Igogc3luIG1hdGNoIG11dHRyY0Z1bmN0aW9uCWNvbnRhaW5lZCAiXDxoaXN0b3J5LVwlKHVwXHxkb3duXClcPiIKIHN5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8a2lsbC1cJShlb2xcfGVvd1x8bGluZVwpXD4iCi1zeW4gbWF0Y2ggbXV0dHJjRnVuY3Rpb24JY29udGFpbmVkICJcPG5leHQtXCUobGluZVx8bmV3XHxwYWdlXHxzdWJ0aHJlYWRcfHVuZGVsZXRlZFx8dW5yZWFkXClcPiIKK3N5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8bmV4dC1cJShsaW5lXHxuZXdcfHBhZ2VcfHN1YnRocmVhZFx8dW5kZWxldGVkXHx1bnJlYWRcfHVucmVhZC1tYWlsYm94XClcPiIKIHN5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8cHJldmlvdXMtXCUobGluZVx8bmV3XHxwYWdlXHxzdWJ0aHJlYWRcfHVuZGVsZXRlZFx8dW5yZWFkXClcPiIKIHN5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8c2VhcmNoXCUoLVwlKG5leHRcfG9wcG9zaXRlXHxyZXZlcnNlXHx0b2dnbGVcKVwpXD9cPiIKIHN5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8c2hvdy1cJShsaW1pdFx8dmVyc2lvblwpXD4iCkBAIC00MjgsOCArNDM1LDggQEAKIHN5biByZWdpb24gbXV0dHJjTWFjcm9EZXNjcgljb250YWluZWQga2VlcGVuZCBza2lwd2hpdGUgc3RhcnQ9KyIrbXM9ZSBza2lwPStcXCIrIGVuZD0rIittZT1zCiBzeW4gbWF0Y2ggbXV0dHJjTWFjcm9EZXNjck5MCWNvbnRhaW5lZCAvXHMqXFwkLyBza2lwd2hpdGUgc2tpcG5sIG5leHRncm91cD1tdXR0cmNNYWNyb0Rlc2NyLG11dHRyY01hY3JvRGVzY3JOTAogc3luIHJlZ2lvbiBtdXR0cmNNYWNyb0JvZHkJY29udGFpbmVkIHNraXB3aGl0ZSBzdGFydD0iXFMiIHNraXA9J1xcIFx8XFwkJyBlbmQ9JyBcfCQnIGNvbnRhaW5zPW11dHRyY0VzY2FwZSxtdXR0cmNTZXQsbXV0dHJjVW5zZXQsbXV0dHJjUmVzZXQsbXV0dHJjVG9nZ2xlLG11dHRyY0NvbW1hbmQsbXV0dHJjQWN0aW9uIG5leHRncm91cD1tdXR0cmNNYWNyb0Rlc2NyLG11dHRyY01hY3JvRGVzY3JOTAotc3luIHJlZ2lvbiBtdXR0cmNNYWNyb0JvZHkgbWF0Y2hncm91cD1UeXBlIGNvbnRhaW5lZCBza2lwd2hpdGUgc3RhcnQ9KycrbXM9ZSBza2lwPStcXCcrIGVuZD0rJyttZT1zIGNvbnRhaW5zPW11dHRyY0VzY2FwZSxtdXR0cmNTZXQsbXV0dHJjVW5zZXQsbXV0dHJjUmVzZXQsbXV0dHJjVG9nZ2xlLG11dHRyY0NvbW1hbmQsbXV0dHJjQWN0aW9uIG5leHRncm91cD1tdXR0cmNNYWNyb0Rlc2NyLG11dHRyY01hY3JvRGVzY3JOTAotc3luIHJlZ2lvbiBtdXR0cmNNYWNyb0JvZHkgbWF0Y2hncm91cD1UeXBlIGNvbnRhaW5lZCBza2lwd2hpdGUgc3RhcnQ9KyIrbXM9ZSBza2lwPStcXCIrIGVuZD0rIittZT1zIGNvbnRhaW5zPW11dHRyY0VzY2FwZSxtdXR0cmNTZXQsbXV0dHJjVW5zZXQsbXV0dHJjUmVzZXQsbXV0dHJjVG9nZ2xlLG11dHRyY0NvbW1hbmQsbXV0dHJjQWN0aW9uIG5leHRncm91cD1tdXR0cmNNYWNyb0Rlc2NyLG11dHRyY01hY3JvRGVzY3JOTAorc3luIHJlZ2lvbiBtdXR0cmNNYWNyb0JvZHkgbWF0Y2hncm91cD1UeXBlIGNvbnRhaW5lZCBza2lwd2hpdGUgc3RhcnQ9KycrbXM9ZSBza2lwPStcXCdcfFxcJCsgZW5kPSsnXHwkK21lPXMgY29udGFpbnM9bXV0dHJjRXNjYXBlLG11dHRyY1NldCxtdXR0cmNVbnNldCxtdXR0cmNSZXNldCxtdXR0cmNUb2dnbGUsbXV0dHJjQ29tbWFuZCxtdXR0cmNBY3Rpb24gbmV4dGdyb3VwPW11dHRyY01hY3JvRGVzY3IsbXV0dHJjTWFjcm9EZXNjck5MCitzeW4gcmVnaW9uIG11dHRyY01hY3JvQm9keSBtYXRjaGdyb3VwPVR5cGUgY29udGFpbmVkIHNraXB3aGl0ZSBzdGFydD0rIittcz1lIHNraXA9K1xcIlx8XFwkKyBlbmQ9KyJcfCQrbWU9cyBjb250YWlucz1tdXR0cmNFc2NhcGUsbXV0dHJjU2V0LG11dHRyY1Vuc2V0LG11dHRyY1Jlc2V0LG11dHRyY1RvZ2dsZSxtdXR0cmNDb21tYW5kLG11dHRyY0FjdGlvbiBuZXh0Z3JvdXA9bXV0dHJjTWFjcm9EZXNjcixtdXR0cmNNYWNyb0Rlc2NyTkwKIHN5biBtYXRjaCBtdXR0cmNNYWNyb0JvZHlOTAljb250YWluZWQgL1xzKlxcJC8gc2tpcHdoaXRlIHNraXBubCBuZXh0Z3JvdXA9bXV0dHJjTWFjcm9Cb2R5LG11dHRyY01hY3JvQm9keU5MCiBzeW4gbWF0Y2ggbXV0dHJjTWFjcm9LZXkJY29udGFpbmVkIC9cU1wrLyBza2lwd2hpdGUgY29udGFpbnM9bXV0dHJjS2V5IG5leHRncm91cD1tdXR0cmNNYWNyb0JvZHksbXV0dHJjTWFjcm9Cb2R5TkwKIHN5biBtYXRjaCBtdXR0cmNNYWNyb0tleU5MCWNvbnRhaW5lZCAvXHMqXFwkLyBza2lwd2hpdGUgc2tpcG5sIG5leHRncm91cD1tdXR0cmNNYWNyb0tleSxtdXR0cmNNYWNyb0tleU5MCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9ydWJ5LnZpbSBiL3J1bnRpbWUvc3ludGF4L3J1YnkudmltCmluZGV4IGY2OGQ3ZjQuLmE1YTExOGUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3J1YnkudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3J1YnkudmltCkBAIC0xOSw2ICsxOSw4IEBACiAgIHNldGxvY2FsIGZvbGRtZXRob2Q9c3ludGF4CiBlbmRpZgogCitzeW4gY2x1c3RlciBydWJ5Tm90VG9wCQkJY29udGFpbnM9QHJ1YnlFeHRlbmRlZFN0cmluZ1NwZWNpYWwsQHJ1YnlSZWdleHBTcGVjaWFsLEBydWJ5RGVjbGFyYXRpb24scnVieUNvbmRpdGlvbmFsLHJ1YnlUb2RvCisKIGlmIGV4aXN0cygicnVieV9zcGFjZV9lcnJvcnMiKQogICBpZiAhZXhpc3RzKCJydWJ5X25vX3RyYWlsX3NwYWNlX2Vycm9yIikKICAgICBzeW4gbWF0Y2ggcnVieVNwYWNlRXJyb3IgZGlzcGxheSBleGNsdWRlbmwgIlxzXCskIgpAQCAtMzIsMTQgKzM0LDE0IEBACiBpZiBleGlzdHMoInJ1Ynlfb3BlcmF0b3JzIikKICAgc3luIG1hdGNoICBydWJ5T3BlcmF0b3IJICJcJShbfiFeJnwqLyUrLV1cfFwlKGNsYXNzXHMqXClcQDwhPDxcfDw9Plx8PD1cfFwlKDxcfFw8Y2xhc3Ncc1wrXHVcdypccypcKVxAPCE8W148XVxAPVx8PT09XHw9PVx8PVx+XHw+Plx8Pj1cfD1cQDwhPlx8XCpcKlx8XC5cLlwuXHxcLlwuXHw6OlwpIgogICBzeW4gbWF0Y2ggIHJ1YnlQc2V1ZG9PcGVyYXRvciAgIlwlKC09XHwvPVx8XCpcKj1cfFwqPVx8JiY9XHwmPVx8JiZcfHx8PVx8fD1cfHx8XHwlPVx8Kz1cfCFcflx8IT1cKSIKLSAgc3luIHJlZ2lvbiBydWJ5QnJhY2tldE9wZXJhdG9yIG1hdGNoZ3JvdXA9cnVieU9wZXJhdG9yIHN0YXJ0PSJcJShbX1s6bG93ZXI6XV1cdypbPyE9XVw9XHxbfSldXClcQDw9XFtccyoiIGVuZD0iXHMqXSIgY29udGFpbnM9VE9QCisgIHN5biByZWdpb24gcnVieUJyYWNrZXRPcGVyYXRvciBtYXRjaGdyb3VwPXJ1YnlPcGVyYXRvciBzdGFydD0iXCUoXHdbPyFdXD1cfFtdfSldXClcQDw9XFtccyoiIGVuZD0iXHMqXSIgY29udGFpbnM9QUxMQlVULEBydWJ5Tm90VG9wCiBlbmRpZgogCiAiIEV4cHJlc3Npb24gU3Vic3RpdHV0aW9uIGFuZCBCYWNrc2xhc2ggTm90YXRpb24KLXN5biBtYXRjaCBydWJ5RXNjYXBlCSJcXFxcXHxcXFthYmVmbnJzdHZdXHxcXFxvXHsxLDN9XHxcXHhceFx7MSwyfSIJCQkJCQkJIGNvbnRhaW5lZCBkaXNwbGF5Ci1zeW4gbWF0Y2ggcnVieUVzY2FwZQkiXCUoXFxNLVxcQy1cfFxcQy1cXE0tXHxcXE0tXFxjXHxcXGNcXE0tXHxcXGNcfFxcQy1cfFxcTS1cKVwlKFxcXG9cezEsM31cfFxceFx4XHsxLDJ9XHxcXFw9XFNcKSIgY29udGFpbmVkIGRpc3BsYXkKK3N5biBtYXRjaCBydWJ5U3RyaW5nRXNjYXBlCSJcXFxcXHxcXFthYmVmbnJzdHZdXHxcXFxvXHsxLDN9XHxcXHhceFx7MSwyfSIJCQkJCQkJIGNvbnRhaW5lZCBkaXNwbGF5CitzeW4gbWF0Y2ggcnVieVN0cmluZ0VzY2FwZQkiXCUoXFxNLVxcQy1cfFxcQy1cXE0tXHxcXE0tXFxjXHxcXGNcXE0tXHxcXGNcfFxcQy1cfFxcTS1cKVwlKFxcXG9cezEsM31cfFxceFx4XHsxLDJ9XHxcXFw9XFNcKSIgY29udGFpbmVkIGRpc3BsYXkKIAotc3luIHJlZ2lvbiBydWJ5SW50ZXJwb2xhdGlvbgkgICAgICBtYXRjaGdyb3VwPXJ1YnlJbnRlcnBvbGF0aW9uRGVsaW1pdGVyIHN0YXJ0PSIjeyIgZW5kPSJ9IiBjb250YWluZWQgY29udGFpbnM9VE9QCitzeW4gcmVnaW9uIHJ1YnlJbnRlcnBvbGF0aW9uCSAgICAgIG1hdGNoZ3JvdXA9cnVieUludGVycG9sYXRpb25EZWxpbWl0ZXIgc3RhcnQ9IiN7IiBlbmQ9In0iIGNvbnRhaW5lZCBjb250YWlucz1BTExCVVQsQHJ1YnlOb3RUb3AKIHN5biBtYXRjaCAgcnVieUludGVycG9sYXRpb24JICAgICAgIiNcJShcJFx8QEBcPVwpXHdcKyIgICAgZGlzcGxheSBjb250YWluZWQgIGNvbnRhaW5zPXJ1YnlJbnRlcnBvbGF0aW9uRGVsaW1pdGVyLHJ1YnlJbnN0YW5jZVZhcmlhYmxlLHJ1YnlDbGFzc1ZhcmlhYmxlLHJ1YnlHbG9iYWxWYXJpYWJsZSxydWJ5UHJlZGVmaW5lZFZhcmlhYmxlCiBzeW4gbWF0Y2ggIHJ1YnlJbnRlcnBvbGF0aW9uRGVsaW1pdGVyICIjXHplXCUoXCRcfEBAXD1cKVx3XCsiIGRpc3BsYXkgY29udGFpbmVkCiBzeW4gbWF0Y2ggIHJ1YnlJbnRlcnBvbGF0aW9uCSAgICAgICIjXCRcJSgtXHdcfFxXXCkiICAgICAgIGRpc3BsYXkgY29udGFpbmVkICBjb250YWlucz1ydWJ5SW50ZXJwb2xhdGlvbkRlbGltaXRlcixydWJ5UHJlZGVmaW5lZFZhcmlhYmxlLHJ1YnlJbnZhbGlkVmFyaWFibGUKQEAgLTUxLDE3ICs1MywzMiBAQAogCiBzeW4gbWF0Y2ggcnVieURlbGltRXNjYXBlCSJcXFsoPHtcWyk+fVxdXSIgdHJhbnNwYXJlbnQgZGlzcGxheSBjb250YWluZWQgY29udGFpbnM9Tk9ORQogCi1zeW4gcmVnaW9uIHJ1YnlOZXN0ZWRQYXJlbnRoZXNlcwlzdGFydD0iKCIJZW5kPSIpIgkJc2tpcD0iXFxcXFx8XFwpIgl0cmFuc3BhcmVudCBjb250YWluZWQgY29udGFpbnM9QHJ1YnlTdHJpbmdTcGVjaWFsLHJ1YnlOZXN0ZWRQYXJlbnRoZXNlcyxydWJ5RGVsaW1Fc2NhcGUKLXN5biByZWdpb24gcnVieU5lc3RlZEN1cmx5QnJhY2VzCXN0YXJ0PSJ7IgllbmQ9In0iCQlza2lwPSJcXFxcXHxcXH0iCXRyYW5zcGFyZW50IGNvbnRhaW5lZCBjb250YWlucz1AcnVieVN0cmluZ1NwZWNpYWwscnVieU5lc3RlZEN1cmx5QnJhY2VzLHJ1YnlEZWxpbUVzY2FwZQotc3luIHJlZ2lvbiBydWJ5TmVzdGVkQW5nbGVCcmFja2V0cwlzdGFydD0iPCIJZW5kPSI+IgkJc2tpcD0iXFxcXFx8XFw+Igl0cmFuc3BhcmVudCBjb250YWluZWQgY29udGFpbnM9QHJ1YnlTdHJpbmdTcGVjaWFsLHJ1YnlOZXN0ZWRBbmdsZUJyYWNrZXRzLHJ1YnlEZWxpbUVzY2FwZQotaWYgZXhpc3RzKCJydWJ5X29wZXJhdG9ycyIpCi0gIHN5biByZWdpb24gcnVieU5lc3RlZFNxdWFyZUJyYWNrZXRzCXN0YXJ0PSJcWyIJZW5kPSJcXSIJc2tpcD0iXFxcXFx8XFxcXSIJdHJhbnNwYXJlbnQgY29udGFpbmVkIGNvbnRhaW5zPUBydWJ5U3RyaW5nU3BlY2lhbCxydWJ5TmVzdGVkU3F1YXJlQnJhY2tldHMscnVieURlbGltRXNjYXBlCi1lbHNlCi0gIHN5biByZWdpb24gcnVieU5lc3RlZFNxdWFyZUJyYWNrZXRzCXN0YXJ0PSJcWyIJZW5kPSJcXSIJc2tpcD0iXFxcXFx8XFxcXSIJdHJhbnNwYXJlbnQgY29udGFpbmVkaW49cnVieUFycmF5TGl0ZXJhbCBjb250YWluZWQgY29udGFpbnM9QHJ1YnlTdHJpbmdTcGVjaWFsLHJ1YnlOZXN0ZWRTcXVhcmVCcmFja2V0cyxydWJ5RGVsaW1Fc2NhcGUKLWVuZGlmCitzeW4gcmVnaW9uIHJ1YnlOZXN0ZWRQYXJlbnRoZXNlcwlzdGFydD0iKCIJc2tpcD0iXFxcXFx8XFwpIgltYXRjaGdyb3VwPXJ1YnlTdHJpbmcgZW5kPSIpIgl0cmFuc3BhcmVudCBjb250YWluZWQKK3N5biByZWdpb24gcnVieU5lc3RlZEN1cmx5QnJhY2VzCXN0YXJ0PSJ7Iglza2lwPSJcXFxcXHxcXH0iCW1hdGNoZ3JvdXA9cnVieVN0cmluZyBlbmQ9In0iCXRyYW5zcGFyZW50IGNvbnRhaW5lZAorc3luIHJlZ2lvbiBydWJ5TmVzdGVkQW5nbGVCcmFja2V0cwlzdGFydD0iPCIJc2tpcD0iXFxcXFx8XFw+IgltYXRjaGdyb3VwPXJ1YnlTdHJpbmcgZW5kPSI+Igl0cmFuc3BhcmVudCBjb250YWluZWQKK3N5biByZWdpb24gcnVieU5lc3RlZFNxdWFyZUJyYWNrZXRzCXN0YXJ0PSJcWyIJc2tpcD0iXFxcXFx8XFxcXSIJbWF0Y2hncm91cD1ydWJ5U3RyaW5nIGVuZD0iXF0iCXRyYW5zcGFyZW50IGNvbnRhaW5lZAogCi1zeW4gY2x1c3RlciBydWJ5U3RyaW5nU3BlY2lhbAkJY29udGFpbnM9cnVieUludGVycG9sYXRpb24scnVieU5vSW50ZXJwb2xhdGlvbixydWJ5RXNjYXBlCisiIFRoZXNlIGFyZSBtb3N0bHkgT25pZ3VydW1hIHJlYWR5CitzeW4gcmVnaW9uIHJ1YnlSZWdleHBDb21tZW50CW1hdGNoZ3JvdXA9cnVieVJlZ2V4cFNwZWNpYWwgICBzdGFydD0iKD8jIgkJCQkJCQkJCXNraXA9IlxcKSIgIGVuZD0iKSIgIGNvbnRhaW5lZAorc3luIHJlZ2lvbiBydWJ5UmVnZXhwUGFyZW5zCW1hdGNoZ3JvdXA9cnVieVJlZ2V4cFNwZWNpYWwgICBzdGFydD0iKFwoPzpcfD88XD1bPSFdXHw/Plx8PzxbYS16X11cdyo+XHw/W2lteF0qLVtpbXhdKjpcPVx8XCUoPyNcKVxAIVwpIglza2lwPSJcXCkiICBlbmQ9IikiICBjb250YWluZWQgdHJhbnNwYXJlbnQgY29udGFpbnM9QHJ1YnlSZWdleHBTcGVjaWFsCitzeW4gcmVnaW9uIHJ1YnlSZWdleHBCcmFja2V0cwltYXRjaGdyb3VwPXJ1YnlSZWdleHBDaGFyQ2xhc3Mgc3RhcnQ9IlxbXF5cPSIJCQkJCQkJCQlza2lwPSJcXFxdIiBlbmQ9IlxdIiBjb250YWluZWQgdHJhbnNwYXJlbnQgY29udGFpbnM9cnVieVN0cmluZ0VzY2FwZSxydWJ5UmVnZXhwRXNjYXBlLHJ1YnlSZWdleHBDaGFyQ2xhc3Mgb25lbGluZQorc3luIG1hdGNoICBydWJ5UmVnZXhwQ2hhckNsYXNzCSJcXFtEZEhoU3NXd10iCQljb250YWluZWQgZGlzcGxheQorc3luIG1hdGNoICBydWJ5UmVnZXhwQ2hhckNsYXNzCSJcWzpcXlw9XCUoYWxudW1cfGFscGhhXHxhc2NpaVx8YmxhbmtcfGNudHJsXHxkaWdpdFx8Z3JhcGhcfGxvd2VyXHxwcmludFx8cHVuY3RcfHNwYWNlXHx1cHBlclx8eGRpZ2l0XCk6XF0iCQljb250YWluZWQKK3N5biBtYXRjaCAgcnVieVJlZ2V4cEVzY2FwZQkiXFxbXS4qPyteJHxcXC8oKXt9W10iCWNvbnRhaW5lZCBkaXNwbGF5CitzeW4gbWF0Y2ggIHJ1YnlSZWdleHBRdWFudGlmaWVyCSJbKj8rXVs/K11cPSIJCWNvbnRhaW5lZCBkaXNwbGF5CitzeW4gbWF0Y2ggIHJ1YnlSZWdleHBRdWFudGlmaWVyCSJ7XGRcK1wlKCxcZCpcKVw9fT9cPSIJY29udGFpbmVkIGRpc3BsYXkKK3N5biBtYXRjaCAgcnVieVJlZ2V4cEFuY2hvcgkiWyReXVx8XFxbQUJiR1p6XSIJY29udGFpbmVkIGRpc3BsYXkKK3N5biBtYXRjaCAgcnVieVJlZ2V4cERvdAkiXC4iCQkJY29udGFpbmVkIGRpc3BsYXkKK3N5biBtYXRjaCAgcnVieVJlZ2V4cFNwZWNpYWwJInwiCQkJY29udGFpbmVkIGRpc3BsYXkKK3N5biBtYXRjaCAgcnVieVJlZ2V4cFNwZWNpYWwJIlxcWzEtOV1cZFw9XGRcQCEiCWNvbnRhaW5lZCBkaXNwbGF5CitzeW4gbWF0Y2ggIHJ1YnlSZWdleHBTcGVjaWFsCSJcXGs8XCUoW2Etel9dXHcqXHwtXD1cZFwrXClcJShbKy1dXGRcK1wpXD0+IiBjb250YWluZWQgZGlzcGxheQorc3luIG1hdGNoICBydWJ5UmVnZXhwU3BlY2lhbAkiXFxrJ1wlKFthLXpfXVx3Klx8LVw9XGRcK1wpXCUoWystXVxkXCtcKVw9JyIgY29udGFpbmVkIGRpc3BsYXkKK3N5biBtYXRjaCAgcnVieVJlZ2V4cFNwZWNpYWwJIlxcZzxcJShbYS16X11cdypcfC1cPVxkXCtcKT4iIGNvbnRhaW5lZCBkaXNwbGF5CitzeW4gbWF0Y2ggIHJ1YnlSZWdleHBTcGVjaWFsCSJcXGcnXCUoW2Etel9dXHcqXHwtXD1cZFwrXCknIiBjb250YWluZWQgZGlzcGxheQorCitzeW4gY2x1c3RlciBydWJ5U3RyaW5nU3BlY2lhbAkJY29udGFpbnM9cnVieUludGVycG9sYXRpb24scnVieU5vSW50ZXJwb2xhdGlvbixydWJ5U3RyaW5nRXNjYXBlCiBzeW4gY2x1c3RlciBydWJ5RXh0ZW5kZWRTdHJpbmdTcGVjaWFsCWNvbnRhaW5zPUBydWJ5U3RyaW5nU3BlY2lhbCxydWJ5TmVzdGVkUGFyZW50aGVzZXMscnVieU5lc3RlZEN1cmx5QnJhY2VzLHJ1YnlOZXN0ZWRBbmdsZUJyYWNrZXRzLHJ1YnlOZXN0ZWRTcXVhcmVCcmFja2V0cworc3luIGNsdXN0ZXIgcnVieVJlZ2V4cFNwZWNpYWwJCWNvbnRhaW5zPXJ1YnlJbnRlcnBvbGF0aW9uLHJ1YnlOb0ludGVycG9sYXRpb24scnVieVN0cmluZ0VzY2FwZSxydWJ5UmVnZXhwU3BlY2lhbCxydWJ5UmVnZXhwRXNjYXBlLHJ1YnlSZWdleHBCcmFja2V0cyxydWJ5UmVnZXhwQ2hhckNsYXNzLHJ1YnlSZWdleHBEb3QscnVieVJlZ2V4cFF1YW50aWZpZXIscnVieVJlZ2V4cEFuY2hvcixydWJ5UmVnZXhwUGFyZW5zLHJ1YnlSZWdleHBDb21tZW50CiAKICIgTnVtYmVycyBhbmQgQVNDSUkgQ29kZXMKIHN5biBtYXRjaCBydWJ5QVNDSUlDb2RlCSJcJShcd1x8W119KVwiJy9dXClcQDwhXCUoP1wlKFxcTS1cXEMtXHxcXEMtXFxNLVx8XFxNLVxcY1x8XFxjXFxNLVx8XFxjXHxcXEMtXHxcXE0tXClcPVwlKFxcXG9cezEsM31cfFxceFx4XHsxLDJ9XHxcXFw9XFNcKVwpIgpAQCAtODMsMTQgKzEwMCwxNCBAQAogc3luIG1hdGNoICBydWJ5U3ltYm9sCQkJIltdfSlcIic6XVxAPCE6XCUoXF5cfFx+XHw8PFx8PD0+XHw8PVx8PFx8PT09XHw9PVx8PVx+XHw+Plx8Pj1cfD5cfHxcfC1AXHwtXHwvXHxcW109XHxcW11cfFwqXCpcfFwqXHwmXHwlXHwrQFx8K1x8YFwpIgogc3luIG1hdGNoICBydWJ5U3ltYm9sCQkJIltdfSlcIic6XVxAPCE6XCRcJSgtLlx8W2B+PD0+Xyw7OiE/Ly4nIkAkKlwmKzBdXCkiCiBzeW4gbWF0Y2ggIHJ1YnlTeW1ib2wJCQkiW119KVwiJzpdXEA8ITpcJShcJFx8QEBcPVwpXD1caFx3KiIKLXN5biBtYXRjaCAgcnVieVN5bWJvbAkJCSJbXX0pXCInOl1cQDwhOlxoXHcqWz8hPV1cPSIKK3N5biBtYXRjaCAgcnVieVN5bWJvbAkJCSJbXX0pXCInOl1cQDwhOlxoXHcqXCUoWz8hPV0+XEAhXClcPSIKIHN5biByZWdpb24gcnVieVN5bWJvbAkJCXN0YXJ0PSJbXX0pXCInOl1cQDwhOlwiIiBlbmQ9IlwiIiBza2lwPSJcXFxcXHxcXFwiIgogc3luIHJlZ2lvbiBydWJ5U3ltYm9sCQkJc3RhcnQ9IltdfSlcIic6XVxAPCE6XCIiIGVuZD0iXCIiIHNraXA9IlxcXFxcfFxcXCIiIGNvbnRhaW5zPUBydWJ5U3RyaW5nU3BlY2lhbCBmb2xkCiAKIHN5biBtYXRjaCAgcnVieUJsb2NrUGFyYW1ldGVyCQkiXGhcdyoiIGNvbnRhaW5lZAogc3luIHJlZ2lvbiBydWJ5QmxvY2tQYXJhbWV0ZXJMaXN0CXN0YXJ0PSJcJShcJShcPGRvXD5cfHtcKVxzKlwpXEA8PXwiIGVuZD0ifCIgb25lbGluZSBkaXNwbGF5IGNvbnRhaW5zPXJ1YnlCbG9ja1BhcmFtZXRlcgogCi1zeW4gbWF0Y2ggcnVieUludmFsaWRWYXJpYWJsZSAgICAiJFteIEEtWmEtei1dIgorc3luIG1hdGNoIHJ1YnlJbnZhbGlkVmFyaWFibGUgICAgIiRbXiBBLVphLXpfLV0iCiBzeW4gbWF0Y2ggcnVieVByZWRlZmluZWRWYXJpYWJsZSAjJFshJCYiJyorLC4vMDo7PD0+P0BcYH4xLTldIwogc3luIG1hdGNoIHJ1YnlQcmVkZWZpbmVkVmFyaWFibGUgIiRfXD4iCQkJCQkJCQkJCQkgICBkaXNwbGF5CiBzeW4gbWF0Y2ggcnVieVByZWRlZmluZWRWYXJpYWJsZSAiJC1bMEZJS2FkaWxwdnddXD4iCQkJCQkJCQkJICAgZGlzcGxheQpAQCAtMTA0LDMyICsxMjEsMzIgQEAKICJzeW4gbWF0Y2ggcnVieVByZWRlZmluZWRDb25zdGFudCAiXCUoOjpcKVw9XHpzXCUoTm90SW1wbGVtZW50RXJyb3JcKVw+IgogCiAiIE5vcm1hbCBSZWd1bGFyIEV4cHJlc3Npb24KLXN5biByZWdpb24gcnVieVJlZ2V4cCBtYXRjaGdyb3VwPXJ1YnlSZWdleHBEZWxpbWl0ZXIgc3RhcnQ9IlwlKFwlKF5cfFw8XCUoYW5kXHxvclx8d2hpbGVcfHVudGlsXHx1bmxlc3NcfGlmXHxlbHNpZlx8d2hlblx8bm90XHx0aGVuXHxlbHNlXClcfFs7XH49IXwmKCxbPl1cKVxzKlwpXEA8PS8iIGVuZD0iL1tpb214bmV1c10qIiBza2lwPSJcXFxcXHxcXC8iIGNvbnRhaW5zPUBydWJ5U3RyaW5nU3BlY2lhbCBmb2xkCi1zeW4gcmVnaW9uIHJ1YnlSZWdleHAgbWF0Y2hncm91cD1ydWJ5UmVnZXhwRGVsaW1pdGVyIHN0YXJ0PSJcJShcPFwlKHNwbGl0XHxzY2FuXHxnc3ViXHxzdWJcKVxzKlwpXEA8PS8iIGVuZD0iL1tpb214bmV1c10qIiBza2lwPSJcXFxcXHxcXC8iIGNvbnRhaW5zPUBydWJ5U3RyaW5nU3BlY2lhbCBmb2xkCitzeW4gcmVnaW9uIHJ1YnlSZWdleHAgbWF0Y2hncm91cD1ydWJ5UmVnZXhwRGVsaW1pdGVyIHN0YXJ0PSJcJShcJSheXHxcPFwlKGFuZFx8b3JcfHdoaWxlXHx1bnRpbFx8dW5sZXNzXHxpZlx8ZWxzaWZcfHdoZW5cfG5vdFx8dGhlblx8ZWxzZVwpXHxbO1x+PSF8JigsWz5dXClccypcKVxAPD0vIiBlbmQ9Ii9baW9teG5ldXNdKiIgc2tpcD0iXFxcXFx8XFwvIiBjb250YWlucz1AcnVieVJlZ2V4cFNwZWNpYWwga2VlcGVuZCBmb2xkCitzeW4gcmVnaW9uIHJ1YnlSZWdleHAgbWF0Y2hncm91cD1ydWJ5UmVnZXhwRGVsaW1pdGVyIHN0YXJ0PSJcJShcaFxrKlxzXCtcKVxAPD0vWyBcdD1dXEAhIiBlbmQ9Ii9baW9teG5ldXNdKiIgc2tpcD0iXFxcXFx8XFwvIiBjb250YWlucz1AcnVieVJlZ2V4cFNwZWNpYWwgZm9sZAorCisiIEdlbmVyYWxpemVkIFJlZ3VsYXIgRXhwcmVzc2lvbgorc3luIHJlZ2lvbiBydWJ5UmVnZXhwIG1hdGNoZ3JvdXA9cnVieVJlZ2V4cERlbGltaXRlciBzdGFydD0iJXJceihbfmAhQCMkJV4mKl9cLSs9fFw6OyInLC4/L11cKSIJZW5kPSJcejFbaW9teG5ldXNdKiIJIHNraXA9IlxcXFxcfFxcXHoxIiBjb250YWlucz1AcnVieVJlZ2V4cFNwZWNpYWwgZm9sZAorc3luIHJlZ2lvbiBydWJ5UmVnZXhwIG1hdGNoZ3JvdXA9cnVieVJlZ2V4cERlbGltaXRlciBzdGFydD0iJXJ7IgkJCQllbmQ9In1baW9teG5ldXNdKiIJIHNraXA9IlxcXFxcfFxcfSIgICBjb250YWlucz1AcnVieVJlZ2V4cFNwZWNpYWwgZm9sZAorc3luIHJlZ2lvbiBydWJ5UmVnZXhwIG1hdGNoZ3JvdXA9cnVieVJlZ2V4cERlbGltaXRlciBzdGFydD0iJXI8IgkJCQllbmQ9Ij5baW9teG5ldXNdKiIJIHNraXA9IlxcXFxcfFxcPiIgICBjb250YWlucz1AcnVieVJlZ2V4cFNwZWNpYWwscnVieU5lc3RlZEFuZ2xlQnJhY2tldHMscnVieURlbGltRXNjYXBlIGZvbGQKK3N5biByZWdpb24gcnVieVJlZ2V4cCBtYXRjaGdyb3VwPXJ1YnlSZWdleHBEZWxpbWl0ZXIgc3RhcnQ9IiVyXFsiCQkJCWVuZD0iXF1baW9teG5ldXNdKiIJIHNraXA9IlxcXFxcfFxcXF0iICBjb250YWlucz1AcnVieVJlZ2V4cFNwZWNpYWwgZm9sZAorc3luIHJlZ2lvbiBydWJ5UmVnZXhwIG1hdGNoZ3JvdXA9cnVieVJlZ2V4cERlbGltaXRlciBzdGFydD0iJXIoIgkJCQllbmQ9IilbaW9teG5ldXNdKiIJIHNraXA9IlxcXFxcfFxcKSIgICBjb250YWlucz1AcnVieVJlZ2V4cFNwZWNpYWwgZm9sZAogCiAiIE5vcm1hbCBTdHJpbmcgYW5kIFNoZWxsIENvbW1hbmQgT3V0cHV0CiBzeW4gcmVnaW9uIHJ1YnlTdHJpbmcgbWF0Y2hncm91cD1ydWJ5U3RyaW5nRGVsaW1pdGVyIHN0YXJ0PSJcIiIgZW5kPSJcIiIgc2tpcD0iXFxcXFx8XFxcIiIgY29udGFpbnM9QHJ1YnlTdHJpbmdTcGVjaWFsIGZvbGQKIHN5biByZWdpb24gcnVieVN0cmluZyBtYXRjaGdyb3VwPXJ1YnlTdHJpbmdEZWxpbWl0ZXIgc3RhcnQ9IiciCWVuZD0iJyIgIHNraXA9IlxcXFxcfFxcJyIJCQkgICAgICAgZm9sZAogc3luIHJlZ2lvbiBydWJ5U3RyaW5nIG1hdGNoZ3JvdXA9cnVieVN0cmluZ0RlbGltaXRlciBzdGFydD0iYCIJZW5kPSJgIiAgc2tpcD0iXFxcXFx8XFxgIiAgY29udGFpbnM9QHJ1YnlTdHJpbmdTcGVjaWFsIGZvbGQKIAotIiBHZW5lcmFsaXplZCBSZWd1bGFyIEV4cHJlc3Npb24KLXN5biByZWdpb24gcnVieVJlZ2V4cCBtYXRjaGdyb3VwPXJ1YnlSZWdleHBEZWxpbWl0ZXIgc3RhcnQ9IiVyXHooW35gIUAjJCVeJipfXC0rPXxcOjsiJywuPy9dXCkiCWVuZD0iXHoxW2lvbXhuZXVzXSoiIHNraXA9IlxcXFxcfFxcXHoxIiBjb250YWlucz1AcnVieVN0cmluZ1NwZWNpYWwgZm9sZAotc3luIHJlZ2lvbiBydWJ5UmVnZXhwIG1hdGNoZ3JvdXA9cnVieVJlZ2V4cERlbGltaXRlciBzdGFydD0iJXJ7IgkJCQllbmQ9In1baW9teG5ldXNdKiIJIHNraXA9IlxcXFxcfFxcfSIgICBjb250YWlucz1AcnVieVN0cmluZ1NwZWNpYWwscnVieU5lc3RlZEN1cmx5QnJhY2VzLHJ1YnlEZWxpbUVzY2FwZSBmb2xkCi1zeW4gcmVnaW9uIHJ1YnlSZWdleHAgbWF0Y2hncm91cD1ydWJ5UmVnZXhwRGVsaW1pdGVyIHN0YXJ0PSIlcjwiCQkJCWVuZD0iPltpb214bmV1c10qIgkgc2tpcD0iXFxcXFx8XFw+IiAgIGNvbnRhaW5zPUBydWJ5U3RyaW5nU3BlY2lhbCxydWJ5TmVzdGVkQW5nbGVCcmFja2V0cyxydWJ5RGVsaW1Fc2NhcGUgZm9sZAotc3luIHJlZ2lvbiBydWJ5UmVnZXhwIG1hdGNoZ3JvdXA9cnVieVJlZ2V4cERlbGltaXRlciBzdGFydD0iJXJcWyIJCQkJZW5kPSJcXVtpb214bmV1c10qIgkgc2tpcD0iXFxcXFx8XFxcXSIgIGNvbnRhaW5zPUBydWJ5U3RyaW5nU3BlY2lhbCxydWJ5TmVzdGVkU3F1YXJlQnJhY2tldHMscnVieURlbGltRXNjYXBlIGZvbGQKLXN5biByZWdpb24gcnVieVJlZ2V4cCBtYXRjaGdyb3VwPXJ1YnlSZWdleHBEZWxpbWl0ZXIgc3RhcnQ9IiVyKCIJCQkJZW5kPSIpW2lvbXhuZXVzXSoiCSBza2lwPSJcXFxcXHxcXCkiICAgY29udGFpbnM9QHJ1YnlTdHJpbmdTcGVjaWFsLHJ1YnlOZXN0ZWRQYXJlbnRoZXNlcyxydWJ5RGVsaW1Fc2NhcGUgZm9sZAotCiAiIEdlbmVyYWxpemVkIFNpbmdsZSBRdW90ZWQgU3RyaW5nLCBTeW1ib2wgYW5kIEFycmF5IG9mIFN0cmluZ3MKIHN5biByZWdpb24gcnVieVN0cmluZyBtYXRjaGdyb3VwPXJ1YnlTdHJpbmdEZWxpbWl0ZXIgc3RhcnQ9IiVbcXddXHooW35gIUAjJCVeJipfXC0rPXxcOjsiJywuPy9dXCkiICBlbmQ9Ilx6MSIgc2tpcD0iXFxcXFx8XFxcejEiIGZvbGQKIHN5biByZWdpb24gcnVieVN0cmluZyBtYXRjaGdyb3VwPXJ1YnlTdHJpbmdEZWxpbWl0ZXIgc3RhcnQ9IiVbcXddeyIJCQkJICAgIGVuZD0ifSIgICBza2lwPSJcXFxcXHxcXH0iCSBmb2xkCWNvbnRhaW5zPXJ1YnlOZXN0ZWRDdXJseUJyYWNlcyxydWJ5RGVsaW1Fc2NhcGUKIHN5biByZWdpb24gcnVieVN0cmluZyBtYXRjaGdyb3VwPXJ1YnlTdHJpbmdEZWxpbWl0ZXIgc3RhcnQ9IiVbcXddPCIJCQkJICAgIGVuZD0iPiIgICBza2lwPSJcXFxcXHxcXD4iCSBmb2xkCWNvbnRhaW5zPXJ1YnlOZXN0ZWRBbmdsZUJyYWNrZXRzLHJ1YnlEZWxpbUVzY2FwZQogc3luIHJlZ2lvbiBydWJ5U3RyaW5nIG1hdGNoZ3JvdXA9cnVieVN0cmluZ0RlbGltaXRlciBzdGFydD0iJVtxd11cWyIJCQkJICAgIGVuZD0iXF0iICBza2lwPSJcXFxcXHxcXFxdIgkgZm9sZAljb250YWlucz1ydWJ5TmVzdGVkU3F1YXJlQnJhY2tldHMscnVieURlbGltRXNjYXBlCiBzeW4gcmVnaW9uIHJ1YnlTdHJpbmcgbWF0Y2hncm91cD1ydWJ5U3RyaW5nRGVsaW1pdGVyIHN0YXJ0PSIlW3F3XSgiCQkJCSAgICBlbmQ9IikiICAgc2tpcD0iXFxcXFx8XFwpIgkgZm9sZAljb250YWlucz1ydWJ5TmVzdGVkUGFyZW50aGVzZXMscnVieURlbGltRXNjYXBlCi1zeW4gcmVnaW9uIHJ1YnlTeW1ib2wJCQkJICAgICBzdGFydD0iJVtzXVx6KFt+YCFAIyQlXiYqX1wtKz18XDo7IicsLj8vXVwpIiAgIGVuZD0iXHoxIiBza2lwPSJcXFxcXHxcXFx6MSIgZm9sZAotc3luIHJlZ2lvbiBydWJ5U3ltYm9sCQkJCSAgICAgc3RhcnQ9IiVbc117IgkJCQkgICAgZW5kPSJ9IiAgIHNraXA9IlxcXFxcfFxcfSIJIGZvbGQJY29udGFpbnM9cnVieU5lc3RlZEN1cmx5QnJhY2VzLHJ1YnlEZWxpbUVzY2FwZQotc3luIHJlZ2lvbiBydWJ5U3ltYm9sCQkJCSAgICAgc3RhcnQ9IiVbc108IgkJCQkgICAgZW5kPSI+IiAgIHNraXA9IlxcXFxcfFxcPiIJIGZvbGQJY29udGFpbnM9cnVieU5lc3RlZEFuZ2xlQnJhY2tldHMscnVieURlbGltRXNjYXBlCi1zeW4gcmVnaW9uIHJ1YnlTeW1ib2wJCQkJICAgICBzdGFydD0iJVtzXVxbIgkJCQkgICAgZW5kPSJcXSIgIHNraXA9IlxcXFxcfFxcXF0iCSBmb2xkCWNvbnRhaW5zPXJ1YnlOZXN0ZWRTcXVhcmVCcmFja2V0cyxydWJ5RGVsaW1Fc2NhcGUKLXN5biByZWdpb24gcnVieVN5bWJvbAkJCQkgICAgIHN0YXJ0PSIlW3NdKCIJCQkJICAgIGVuZD0iKSIgICBza2lwPSJcXFxcXHxcXCkiCSBmb2xkCWNvbnRhaW5zPXJ1YnlOZXN0ZWRQYXJlbnRoZXNlcyxydWJ5RGVsaW1Fc2NhcGUKK3N5biByZWdpb24gcnVieVN5bWJvbCBtYXRjaGdyb3VwPXJ1YnlTeW1ib2xEZWxpbWl0ZXIgc3RhcnQ9IiVbc11ceihbfmAhQCMkJV4mKl9cLSs9fFw6OyInLC4/L11cKSIgICBlbmQ9Ilx6MSIgc2tpcD0iXFxcXFx8XFxcejEiIGZvbGQKK3N5biByZWdpb24gcnVieVN5bWJvbCBtYXRjaGdyb3VwPXJ1YnlTeW1ib2xEZWxpbWl0ZXIgc3RhcnQ9IiVbc117IgkJCQkgICAgZW5kPSJ9IiAgIHNraXA9IlxcXFxcfFxcfSIJIGZvbGQJY29udGFpbnM9cnVieU5lc3RlZEN1cmx5QnJhY2VzLHJ1YnlEZWxpbUVzY2FwZQorc3luIHJlZ2lvbiBydWJ5U3ltYm9sIG1hdGNoZ3JvdXA9cnVieVN5bWJvbERlbGltaXRlciBzdGFydD0iJVtzXTwiCQkJCSAgICBlbmQ9Ij4iICAgc2tpcD0iXFxcXFx8XFw+IgkgZm9sZAljb250YWlucz1ydWJ5TmVzdGVkQW5nbGVCcmFja2V0cyxydWJ5RGVsaW1Fc2NhcGUKK3N5biByZWdpb24gcnVieVN5bWJvbCBtYXRjaGdyb3VwPXJ1YnlTeW1ib2xEZWxpbWl0ZXIgc3RhcnQ9IiVbc11cWyIJCQkJICAgIGVuZD0iXF0iICBza2lwPSJcXFxcXHxcXFxdIgkgZm9sZAljb250YWlucz1ydWJ5TmVzdGVkU3F1YXJlQnJhY2tldHMscnVieURlbGltRXNjYXBlCitzeW4gcmVnaW9uIHJ1YnlTeW1ib2wgbWF0Y2hncm91cD1ydWJ5U3ltYm9sRGVsaW1pdGVyIHN0YXJ0PSIlW3NdKCIJCQkJICAgIGVuZD0iKSIgICBza2lwPSJcXFxcXHxcXCkiCSBmb2xkCWNvbnRhaW5zPXJ1YnlOZXN0ZWRQYXJlbnRoZXNlcyxydWJ5RGVsaW1Fc2NhcGUKIAogIiBHZW5lcmFsaXplZCBEb3VibGUgUXVvdGVkIFN0cmluZyBhbmQgQXJyYXkgb2YgU3RyaW5ncyBhbmQgU2hlbGwgQ29tbWFuZCBPdXRwdXQKICIgTm90ZTogJT0gaXMgbm90IG1hdGNoZWQgaGVyZSBhcyB0aGUgYmVnaW5uaW5nIG9mIGEgZG91YmxlIHF1b3RlZCBzdHJpbmcKQEAgLTE0MSwxMCArMTU4LDEwIEBACiBzeW4gcmVnaW9uIHJ1YnlTdHJpbmcgbWF0Y2hncm91cD1ydWJ5U3RyaW5nRGVsaW1pdGVyIHN0YXJ0PSIlW1FXeF1cPSgiCQkJCSAgICBlbmQ9IikiICAgc2tpcD0iXFxcXFx8XFwpIgkgY29udGFpbnM9QHJ1YnlTdHJpbmdTcGVjaWFsLHJ1YnlOZXN0ZWRQYXJlbnRoZXNlcyxydWJ5RGVsaW1Fc2NhcGUgZm9sZAogCiAiIEhlcmUgRG9jdW1lbnQKLXN5biByZWdpb24gcnVieUhlcmVkb2NTdGFydCBtYXRjaGdyb3VwPXJ1YnlTdHJpbmdEZWxpbWl0ZXIgc3RhcnQ9K1wlKFwlKGNsYXNzXHMqXHxcJShbXX0pIicuXVx8OjpcKVwpXF9zKlx8XHdcKVxAPCE8PC1cPVx6c1wlKFxoXHcqXCkrICAgZW5kPSskKyBvbmVsaW5lIGNvbnRhaW5zPVRPUAotc3luIHJlZ2lvbiBydWJ5SGVyZWRvY1N0YXJ0IG1hdGNoZ3JvdXA9cnVieVN0cmluZ0RlbGltaXRlciBzdGFydD0rXCUoXCUoY2xhc3NccypcfFwlKFtdfSkiJy5dXHw6OlwpXClcX3MqXHxcd1wpXEA8ITw8LVw9XHpzIlwlKFteIl0qXCkiKyBlbmQ9KyQrIG9uZWxpbmUgY29udGFpbnM9VE9QCi1zeW4gcmVnaW9uIHJ1YnlIZXJlZG9jU3RhcnQgbWF0Y2hncm91cD1ydWJ5U3RyaW5nRGVsaW1pdGVyIHN0YXJ0PStcJShcJShjbGFzc1xzKlx8XCUoW119KSInLl1cfDo6XClcKVxfcypcfFx3XClcQDwhPDwtXD1cenMnXCUoW14nXSpcKScrIGVuZD0rJCsgb25lbGluZSBjb250YWlucz1UT1AKLXN5biByZWdpb24gcnVieUhlcmVkb2NTdGFydCBtYXRjaGdyb3VwPXJ1YnlTdHJpbmdEZWxpbWl0ZXIgc3RhcnQ9K1wlKFwlKGNsYXNzXHMqXHxcJShbXX0pIicuXVx8OjpcKVwpXF9zKlx8XHdcKVxAPCE8PC1cPVx6c2BcJShbXmBdKlwpYCsgZW5kPSskKyBvbmVsaW5lIGNvbnRhaW5zPVRPUAorc3luIHJlZ2lvbiBydWJ5SGVyZWRvY1N0YXJ0IG1hdGNoZ3JvdXA9cnVieVN0cmluZ0RlbGltaXRlciBzdGFydD0rXCUoXCUoY2xhc3NccypcfFwlKFtdfSkiJy5dXHw6OlwpXClcX3MqXHxcd1wpXEA8ITw8LVw9XHpzXCUoXGhcdypcKSsgICBlbmQ9KyQrIG9uZWxpbmUgY29udGFpbnM9QUxMQlVULEBydWJ5Tm90VG9wCitzeW4gcmVnaW9uIHJ1YnlIZXJlZG9jU3RhcnQgbWF0Y2hncm91cD1ydWJ5U3RyaW5nRGVsaW1pdGVyIHN0YXJ0PStcJShcJShjbGFzc1xzKlx8XCUoW119KSInLl1cfDo6XClcKVxfcypcfFx3XClcQDwhPDwtXD1cenMiXCUoW14iXSpcKSIrIGVuZD0rJCsgb25lbGluZSBjb250YWlucz1BTExCVVQsQHJ1YnlOb3RUb3AKK3N5biByZWdpb24gcnVieUhlcmVkb2NTdGFydCBtYXRjaGdyb3VwPXJ1YnlTdHJpbmdEZWxpbWl0ZXIgc3RhcnQ9K1wlKFwlKGNsYXNzXHMqXHxcJShbXX0pIicuXVx8OjpcKVwpXF9zKlx8XHdcKVxAPCE8PC1cPVx6cydcJShbXiddKlwpJysgZW5kPSskKyBvbmVsaW5lIGNvbnRhaW5zPUFMTEJVVCxAcnVieU5vdFRvcAorc3luIHJlZ2lvbiBydWJ5SGVyZWRvY1N0YXJ0IG1hdGNoZ3JvdXA9cnVieVN0cmluZ0RlbGltaXRlciBzdGFydD0rXCUoXCUoY2xhc3NccypcfFwlKFtdfSkiJy5dXHw6OlwpXClcX3MqXHxcd1wpXEA8ITw8LVw9XHpzYFwlKFteYF0qXClgKyBlbmQ9KyQrIG9uZWxpbmUgY29udGFpbnM9QUxMQlVULEBydWJ5Tm90VG9wCiAKIHN5biByZWdpb24gcnVieVN0cmluZyBzdGFydD0rXCUoXCUoY2xhc3NccypcfFwlKFtdfSkiJy5dXHw6OlwpXClcX3MqXHxcd1wpXEA8ITw8XHooXGhcdypcKVx6ZStocz1zKzIgICAgbWF0Y2hncm91cD1ydWJ5U3RyaW5nRGVsaW1pdGVyIGVuZD0rXlx6MSQrIGNvbnRhaW5zPXJ1YnlIZXJlZG9jU3RhcnQsQHJ1YnlTdHJpbmdTcGVjaWFsIGZvbGQga2VlcGVuZAogc3luIHJlZ2lvbiBydWJ5U3RyaW5nIHN0YXJ0PStcJShcJShjbGFzc1xzKlx8XCUoW119KSInLl1cfDo6XClcKVxfcypcfFx3XClcQDwhPDwiXHooW14iXSpcKSJcemUraHM9cysyICBtYXRjaGdyb3VwPXJ1YnlTdHJpbmdEZWxpbWl0ZXIgZW5kPSteXHoxJCsgY29udGFpbnM9cnVieUhlcmVkb2NTdGFydCxAcnVieVN0cmluZ1NwZWNpYWwgZm9sZCBrZWVwZW5kCkBAIC0xNjMsNDMgKzE4MCw0NiBAQAogc3luIG1hdGNoICBydWJ5QWxpYXNEZWNsYXJhdGlvbiAgICAiW15bOnNwYWNlOl07Iy4oKV1cKyIgIGNvbnRhaW5lZCBjb250YWlucz1ydWJ5U3ltYm9sLHJ1YnlHbG9iYWxWYXJpYWJsZSxydWJ5UHJlZGVmaW5lZFZhcmlhYmxlIG5leHRncm91cD1ydWJ5QWxpYXNEZWNsYXJhdGlvbjIgc2tpcHdoaXRlCiBzeW4gbWF0Y2ggIHJ1YnlBbGlhc0RlY2xhcmF0aW9uMiAgICJbXls6c3BhY2U6XTsjLigpXVwrIiAgY29udGFpbmVkIGNvbnRhaW5zPXJ1YnlTeW1ib2wscnVieUdsb2JhbFZhcmlhYmxlLHJ1YnlQcmVkZWZpbmVkVmFyaWFibGUKIHN5biBtYXRjaCAgcnVieU1ldGhvZERlY2xhcmF0aW9uICAgIlteWzpzcGFjZTpdOyMoXVwrIgkgIGNvbnRhaW5lZCBjb250YWlucz1ydWJ5Q29uc3RhbnQscnVieUJvb2xlYW4scnVieVBzZXVkb1ZhcmlhYmxlLHJ1YnlJbnN0YW5jZVZhcmlhYmxlLHJ1YnlDbGFzc1ZhcmlhYmxlLHJ1YnlHbG9iYWxWYXJpYWJsZQotc3luIG1hdGNoICBydWJ5Q2xhc3NEZWNsYXJhdGlvbiAgICAiW15bOnNwYWNlOl07IzxdXCsiCSAgY29udGFpbmVkIGNvbnRhaW5zPXJ1YnlDb25zdGFudAotc3luIG1hdGNoICBydWJ5TW9kdWxlRGVjbGFyYXRpb24gICAiW15bOnNwYWNlOl07I11cKyIJICBjb250YWluZWQgY29udGFpbnM9cnVieUNvbnN0YW50CitzeW4gbWF0Y2ggIHJ1YnlDbGFzc0RlY2xhcmF0aW9uICAgICJbXls6c3BhY2U6XTsjPF1cKyIJICBjb250YWluZWQgY29udGFpbnM9cnVieUNvbnN0YW50LHJ1YnlPcGVyYXRvcgorc3luIG1hdGNoICBydWJ5TW9kdWxlRGVjbGFyYXRpb24gICAiW15bOnNwYWNlOl07IzxdXCsiCSAgY29udGFpbmVkIGNvbnRhaW5zPXJ1YnlDb25zdGFudCxydWJ5T3BlcmF0b3IKIHN5biBtYXRjaCAgcnVieUZ1bmN0aW9uICJcPFtfWzphbHBoYTpdXVtfWzphbG51bTpdXSpbPyE9XVw9W1s6YWxudW06XS46PyE9XVxAISIgY29udGFpbmVkIGNvbnRhaW5lZGluPXJ1YnlNZXRob2REZWNsYXJhdGlvbgogc3luIG1hdGNoICBydWJ5RnVuY3Rpb24gIlwlKFxzXHxeXClcQDw9W19bOmFscGhhOl1dW19bOmFsbnVtOl1dKls/IT1dXD1cJShcc1x8JFwpXEA9IiBjb250YWluZWQgY29udGFpbmVkaW49cnVieUFsaWFzRGVjbGFyYXRpb24scnVieUFsaWFzRGVjbGFyYXRpb24yCiBzeW4gbWF0Y2ggIHJ1YnlGdW5jdGlvbiAiXCUoW1s6c3BhY2U6XS5dXHxeXClcQDw9XCUoXFtcXT1cPVx8XCpcKlx8WystXUBcPVx8WyovJXwmXn5dXHw8PFx8Pj5cfFs8Pl09XD1cfDw9Plx8PT09XHw9PVx8PVx+XHxgXClcJShbWzpzcGFjZTpdOyMoXVx8JFwpXEA9IiBjb250YWluZWQgY29udGFpbmVkaW49cnVieUFsaWFzRGVjbGFyYXRpb24scnVieUFsaWFzRGVjbGFyYXRpb24yLHJ1YnlNZXRob2REZWNsYXJhdGlvbgogCitzeW4gY2x1c3RlciBydWJ5RGVjbGFyYXRpb24JY29udGFpbnM9cnVieUFsaWFzRGVjbGFyYXRpb24scnVieUFsaWFzRGVjbGFyYXRpb24yLHJ1YnlNZXRob2REZWNsYXJhdGlvbixydWJ5TW9kdWxlRGVjbGFyYXRpb24scnVieUNsYXNzRGVjbGFyYXRpb24scnVieUZ1bmN0aW9uLHJ1YnlCbG9ja1BhcmFtZXRlcgorCiAiIEV4cGVuc2l2ZSBNb2RlIC0gbWF0Y2ggJ2VuZCcgd2l0aCB0aGUgYXBwcm9wcmlhdGUgb3BlbmluZyBrZXl3b3JkIGZvciBzeW50YXgKICIgYmFzZWQgZm9sZGluZyBhbmQgc3BlY2lhbCBoaWdobGlnaHRpbmcgb2YgbW9kdWxlL2NsYXNzL21ldGhvZCBkZWZpbml0aW9ucwogaWYgIWV4aXN0cygiYjpydWJ5X25vX2V4cGVuc2l2ZSIpICYmICFleGlzdHMoInJ1Ynlfbm9fZXhwZW5zaXZlIikKICAgc3luIG1hdGNoICBydWJ5RGVmaW5lICJcPGFsaWFzXD4iCQluZXh0Z3JvdXA9cnVieUFsaWFzRGVjbGFyYXRpb24Jc2tpcHdoaXRlIHNraXBubAogICBzeW4gbWF0Y2ggIHJ1YnlEZWZpbmUgIlw8ZGVmXD4iCQluZXh0Z3JvdXA9cnVieU1ldGhvZERlY2xhcmF0aW9uIHNraXB3aGl0ZSBza2lwbmwKKyAgc3luIG1hdGNoICBydWJ5RGVmaW5lICJcPHVuZGVmXD4iCQluZXh0Z3JvdXA9cnVieUZ1bmN0aW9uIHNraXB3aGl0ZSBza2lwbmwKICAgc3luIG1hdGNoICBydWJ5Q2xhc3MJIlw8Y2xhc3NcPiIJCW5leHRncm91cD1ydWJ5Q2xhc3NEZWNsYXJhdGlvbglza2lwd2hpdGUgc2tpcG5sCiAgIHN5biBtYXRjaCAgcnVieU1vZHVsZSAiXDxtb2R1bGVcPiIJCW5leHRncm91cD1ydWJ5TW9kdWxlRGVjbGFyYXRpb24gc2tpcHdoaXRlIHNraXBubAotICBzeW4gcmVnaW9uIHJ1YnlCbG9jayBzdGFydD0iXDxkZWZcPiIJCW1hdGNoZ3JvdXA9cnVieURlZmluZSBlbmQ9IlwlKFw8ZGVmXF9zXCtcKVxAPCFcPGVuZFw+IiBjb250YWlucz1UT1AgZm9sZAotICBzeW4gcmVnaW9uIHJ1YnlCbG9jayBzdGFydD0iXDxjbGFzc1w+IgltYXRjaGdyb3VwPXJ1YnlDbGFzcyAgZW5kPSJcPGVuZFw+IiBjb250YWlucz1UT1AgZm9sZAotICBzeW4gcmVnaW9uIHJ1YnlCbG9jayBzdGFydD0iXDxtb2R1bGVcPiIJbWF0Y2hncm91cD1ydWJ5TW9kdWxlIGVuZD0iXDxlbmRcPiIgY29udGFpbnM9VE9QIGZvbGQKKyAgc3luIHJlZ2lvbiBydWJ5QmxvY2sgc3RhcnQ9Ilw8ZGVmXD4iCQltYXRjaGdyb3VwPXJ1YnlEZWZpbmUgZW5kPSJcJShcPGRlZlxfc1wrXClcQDwhXDxlbmRcPiIgY29udGFpbnM9QUxMQlVULEBydWJ5Tm90VG9wIGZvbGQKKyAgc3luIHJlZ2lvbiBydWJ5QmxvY2sgc3RhcnQ9Ilw8Y2xhc3NcPiIJbWF0Y2hncm91cD1ydWJ5Q2xhc3MgIGVuZD0iXDxlbmRcPiIgY29udGFpbnM9QUxMQlVULEBydWJ5Tm90VG9wIGZvbGQKKyAgc3luIHJlZ2lvbiBydWJ5QmxvY2sgc3RhcnQ9Ilw8bW9kdWxlXD4iCW1hdGNoZ3JvdXA9cnVieU1vZHVsZSBlbmQ9Ilw8ZW5kXD4iIGNvbnRhaW5zPUFMTEJVVCxAcnVieU5vdFRvcCBmb2xkCiAKICAgIiBtb2RpZmllcnMKICAgc3luIG1hdGNoICBydWJ5Q29uZGl0aW9uYWxNb2RpZmllciAiXDxcJShpZlx8dW5sZXNzXClcPiIgICBkaXNwbGF5CiAgIHN5biBtYXRjaCAgcnVieVJlcGVhdE1vZGlmaWVyCSAgICAgIlw8XCUod2hpbGVcfHVudGlsXClcPiIgZGlzcGxheQogCi0gIHN5biByZWdpb24gcnVieURvQmxvY2sgbWF0Y2hncm91cD1ydWJ5Q29udHJvbCBzdGFydD0iXDxkb1w+IiBlbmQ9Ilw8ZW5kXD4iIGNvbnRhaW5zPVRPUCBmb2xkCisgIHN5biByZWdpb24gcnVieURvQmxvY2sgbWF0Y2hncm91cD1ydWJ5Q29udHJvbCBzdGFydD0iXDxkb1w+IiBlbmQ9Ilw8ZW5kXD4iIGNvbnRhaW5zPUFMTEJVVCxAcnVieU5vdFRvcCBmb2xkCiAgICIgY3VybHkgYnJhY2tldCBibG9jayBvciBoYXNoIGxpdGVyYWwKLSAgc3luIHJlZ2lvbiBydWJ5Q3VybHlCbG9jayAgIHN0YXJ0PSJ7IiBlbmQ9In0iIGNvbnRhaW5zPVRPUCBmb2xkCi0gIHN5biByZWdpb24gcnVieUFycmF5TGl0ZXJhbCBtYXRjaGdyb3VwPXJ1YnlBcnJheURlbGltaXRlciBzdGFydD0iXCUoXHdcfFtcXX0pXVwpXEA8IVxbIiBlbmQ9Il0iIGNvbnRhaW5zPVRPUCBmb2xkCisgIHN5biByZWdpb24gcnVieUN1cmx5QmxvY2sgICBzdGFydD0ieyIgZW5kPSJ9IiBjb250YWlucz1BTExCVVQsQHJ1YnlOb3RUb3AgZm9sZAorICBzeW4gcmVnaW9uIHJ1YnlBcnJheUxpdGVyYWwgbWF0Y2hncm91cD1ydWJ5QXJyYXlEZWxpbWl0ZXIgc3RhcnQ9IlwlKFx3XHxbXF19KV1cKVxAPCFcWyIgZW5kPSJdIiBjb250YWlucz1BTExCVVQsQHJ1YnlOb3RUb3AgZm9sZAogCiAgICIgc3RhdGVtZW50cyB3aXRob3V0ICdkbycKLSAgc3luIHJlZ2lvbiBydWJ5QmxvY2tFeHByZXNzaW9uICAgICAgIG1hdGNoZ3JvdXA9cnVieUNvbnRyb2wJICBzdGFydD0iXDxiZWdpblw+IiBlbmQ9Ilw8ZW5kXD4iIGNvbnRhaW5zPVRPUCBmb2xkCi0gIHN5biByZWdpb24gcnVieUNhc2VFeHByZXNzaW9uCSAgICAgICBtYXRjaGdyb3VwPXJ1YnlDb25kaXRpb25hbCBzdGFydD0iXDxjYXNlXD4iICBlbmQ9Ilw8ZW5kXD4iIGNvbnRhaW5zPVRPUCBmb2xkCi0gIHN5biByZWdpb24gcnVieUNvbmRpdGlvbmFsRXhwcmVzc2lvbiBtYXRjaGdyb3VwPXJ1YnlDb25kaXRpb25hbCBzdGFydD0iXCUoXCUoXlx8XC5cLlwuXD1cfFt7Oiw7KFs8Pn5cKi8lJl58Kz0tXVx8XCUoXDxbX1s6bG93ZXI6XV1bX1s6YWxudW06XV0qXClcQDwhWyE/XVwpXHMqXClcQDw9XCUoaWZcfHVubGVzc1wpXD4iIGVuZD0iXDxlbmRcPiIgY29udGFpbnM9VE9QIGZvbGQKKyAgc3luIHJlZ2lvbiBydWJ5QmxvY2tFeHByZXNzaW9uICAgICAgIG1hdGNoZ3JvdXA9cnVieUNvbnRyb2wJICBzdGFydD0iXDxiZWdpblw+IiBlbmQ9Ilw8ZW5kXD4iIGNvbnRhaW5zPUFMTEJVVCxAcnVieU5vdFRvcCBmb2xkCisgIHN5biByZWdpb24gcnVieUNhc2VFeHByZXNzaW9uCSAgICAgICBtYXRjaGdyb3VwPXJ1YnlDb25kaXRpb25hbCBzdGFydD0iXDxjYXNlXD4iICBlbmQ9Ilw8ZW5kXD4iIGNvbnRhaW5zPUFMTEJVVCxAcnVieU5vdFRvcCBmb2xkCisgIHN5biByZWdpb24gcnVieUNvbmRpdGlvbmFsRXhwcmVzc2lvbiBtYXRjaGdyb3VwPXJ1YnlDb25kaXRpb25hbCBzdGFydD0iXCUoXCUoXlx8XC5cLlwuXD1cfFt7Oiw7KFs8Pn5cKi8lJl58Kz0tXVx8XCUoXDxbX1s6bG93ZXI6XV1bX1s6YWxudW06XV0qXClcQDwhWz8hXVwpXHMqXClcQDw9XCUoaWZcfHVubGVzc1wpXD4iIGVuZD0iXDxlbmRcPiIgY29udGFpbnM9QUxMQlVULEBydWJ5Tm90VG9wIGZvbGQKIAotICBzeW4ga2V5d29yZCBydWJ5Q29uZGl0aW9uYWwgdGhlbiBlbHNlIHdoZW4gIGNvbnRhaW5lZCBjb250YWluZWRpbj1ydWJ5Q2FzZUV4cHJlc3Npb24KLSAgc3luIGtleXdvcmQgcnVieUNvbmRpdGlvbmFsIHRoZW4gZWxzZSBlbHNpZiBjb250YWluZWQgY29udGFpbmVkaW49cnVieUNvbmRpdGlvbmFsRXhwcmVzc2lvbgorICBzeW4gbWF0Y2ggcnVieUNvbmRpdGlvbmFsICJcPFwlKHRoZW5cfGVsc2VcfHdoZW5cKVw+Wz8hXVxAISIgIGNvbnRhaW5lZCBjb250YWluZWRpbj1ydWJ5Q2FzZUV4cHJlc3Npb24KKyAgc3luIG1hdGNoIHJ1YnlDb25kaXRpb25hbCAiXDxcJSh0aGVuXHxlbHNlXHxlbHNpZlwpXD5bPyFdXEAhIiBjb250YWluZWQgY29udGFpbmVkaW49cnVieUNvbmRpdGlvbmFsRXhwcmVzc2lvbgogCiAgICIgc3RhdGVtZW50cyB3aXRoIG9wdGlvbmFsICdkbycKLSAgc3luIHJlZ2lvbiBydWJ5T3B0aW9uYWxEb0xpbmUgICBtYXRjaGdyb3VwPXJ1YnlSZXBlYXQgc3RhcnQ9Ilw8Zm9yXD4iIHN0YXJ0PSJcJShcJSheXHxcLlwuXC5cPVx8W3s6LDsoWzw+flwqLyUmXnwrLV1cfFwlKFw8W19bOmxvd2VyOl1dW19bOmFsbnVtOl1dKlwpXEA8IVshPT9dXClccypcKVxAPD1cPFwlKHVudGlsXHx3aGlsZVwpXD4iIG1hdGNoZ3JvdXA9cnVieU9wdGlvbmFsRG8gZW5kPSJcJShcPGRvXD5cKSIgZW5kPSJcemVcJSg7XHwkXCkiIG9uZWxpbmUgY29udGFpbnM9VE9QCi0gIHN5biByZWdpb24gcnVieVJlcGVhdEV4cHJlc3Npb24gc3RhcnQ9Ilw8Zm9yXD4iIHN0YXJ0PSJcJShcJSheXHxcLlwuXC5cPVx8W3s6LDsoWzw+flwqLyUmXnwrLV1cfFwlKFw8W19bOmxvd2VyOl1dW19bOmFsbnVtOl1dKlwpXEA8IVshPT9dXClccypcKVxAPD1cPFwlKHVudGlsXHx3aGlsZVwpXD4iIG1hdGNoZ3JvdXA9cnVieVJlcGVhdCBlbmQ9Ilw8ZW5kXD4iIGNvbnRhaW5zPVRPUCBuZXh0Z3JvdXA9cnVieU9wdGlvbmFsRG9MaW5lIGZvbGQKKyAgc3luIHJlZ2lvbiBydWJ5T3B0aW9uYWxEb0xpbmUgICBtYXRjaGdyb3VwPXJ1YnlSZXBlYXQgc3RhcnQ9Ilw8Zm9yXD5bPyFdXEAhIiBzdGFydD0iXCUoXCUoXlx8XC5cLlwuXD1cfFt7Oiw7KFs8Pn5cKi8lJl58Ky1dXHxcJShcPFtfWzpsb3dlcjpdXVtfWzphbG51bTpdXSpcKVxAPCFbIT0/XVwpXHMqXClcQDw9XDxcJSh1bnRpbFx8d2hpbGVcKVw+IiBtYXRjaGdyb3VwPXJ1YnlPcHRpb25hbERvIGVuZD0iXCUoXDxkb1w+XCkiIGVuZD0iXHplXCUoO1x8JFwpIiBvbmVsaW5lIGNvbnRhaW5zPUFMTEJVVCxAcnVieU5vdFRvcAorICBzeW4gcmVnaW9uIHJ1YnlSZXBlYXRFeHByZXNzaW9uIHN0YXJ0PSJcPGZvclw+Wz8hXVxAISIgc3RhcnQ9IlwlKFwlKF5cfFwuXC5cLlw9XHxbezosOyhbPD5+XCovJSZefCstXVx8XCUoXDxbX1s6bG93ZXI6XV1bX1s6YWxudW06XV0qXClcQDwhWyE9P11cKVxzKlwpXEA8PVw8XCUodW50aWxcfHdoaWxlXClcPiIgbWF0Y2hncm91cD1ydWJ5UmVwZWF0IGVuZD0iXDxlbmRcPiIgY29udGFpbnM9QUxMQlVULEBydWJ5Tm90VG9wIG5leHRncm91cD1ydWJ5T3B0aW9uYWxEb0xpbmUgZm9sZAogCiAgIGlmICFleGlzdHMoInJ1YnlfbWlubGluZXMiKQogICAgIGxldCBydWJ5X21pbmxpbmVzID0gNTAKQEAgLTIwNywzMSArMjI3LDM1IEBACiAgIGV4ZWMgInN5biBzeW5jIG1pbmxpbmVzPSIgLiBydWJ5X21pbmxpbmVzCiAKIGVsc2UKLSAgc3luIG1hdGNoICAgcnVieUNvbnRyb2wgIlw8ZGVmXD4iCW5leHRncm91cD1ydWJ5TWV0aG9kRGVjbGFyYXRpb24gc2tpcHdoaXRlIHNraXBubAotICBzeW4gbWF0Y2ggICBydWJ5Q29udHJvbCAiXDxjbGFzc1w+IgluZXh0Z3JvdXA9cnVieUNsYXNzRGVjbGFyYXRpb24Jc2tpcHdoaXRlIHNraXBubAotICBzeW4gbWF0Y2ggICBydWJ5Q29udHJvbCAiXDxtb2R1bGVcPiIJbmV4dGdyb3VwPXJ1YnlNb2R1bGVEZWNsYXJhdGlvbiBza2lwd2hpdGUgc2tpcG5sCi0gIHN5biBrZXl3b3JkIHJ1YnlDb250cm9sIGNhc2UgYmVnaW4gZG8gZm9yIGlmIHVubGVzcyB3aGlsZSB1bnRpbCBlbHNlIGVsc2lmIHRoZW4gd2hlbiBlbmQKLSAgc3luIGtleXdvcmQgcnVieUtleXdvcmQgYWxpYXMKKyAgc3luIG1hdGNoICAgcnVieUNvbnRyb2wgIlw8ZGVmXD5bPyFdXEAhIgluZXh0Z3JvdXA9cnVieU1ldGhvZERlY2xhcmF0aW9uIHNraXB3aGl0ZSBza2lwbmwKKyAgc3luIG1hdGNoICAgcnVieUNvbnRyb2wgIlw8Y2xhc3NcPls/IV1cQCEiCW5leHRncm91cD1ydWJ5Q2xhc3NEZWNsYXJhdGlvbglza2lwd2hpdGUgc2tpcG5sCisgIHN5biBtYXRjaCAgIHJ1YnlDb250cm9sICJcPG1vZHVsZVw+Wz8hXVxAISIJbmV4dGdyb3VwPXJ1YnlNb2R1bGVEZWNsYXJhdGlvbiBza2lwd2hpdGUgc2tpcG5sCisgIHN5biBtYXRjaCAgIHJ1YnlDb250cm9sICJcPFwlKGNhc2VcfGJlZ2luXHxkb1x8Zm9yXHxpZlx8dW5sZXNzXHx3aGlsZVx8dW50aWxcfGVsc2VcfGVsc2lmXHx0aGVuXHx3aGVuXHxlbmRcKVw+Wz8hXVxAISIKKyAgc3luIG1hdGNoICAgcnVieUtleXdvcmQgIlw8XCUoYWxpYXNcfHVuZGVmXClcPls/IV1cQCEiCiBlbmRpZgogCiAiIEtleXdvcmRzCiAiIE5vdGU6IHRoZSBmb2xsb3dpbmcga2V5d29yZHMgaGF2ZSBhbHJlYWR5IGJlZW4gZGVmaW5lZDoKICIgYmVnaW4gY2FzZSBjbGFzcyBkZWYgZG8gZW5kIGZvciBpZiBtb2R1bGUgdW5sZXNzIHVudGlsIHdoaWxlCi1zeW4ga2V5d29yZCBydWJ5Q29udHJvbAkJYW5kIGJyZWFrIGVuc3VyZSBpbiBuZXh0IG5vdCBvciByZWRvIHJlc2N1ZSByZXRyeSByZXR1cm4KK3N5biBtYXRjaCAgIHJ1YnlDb250cm9sCQkiXDxcJShhbmRcfGJyZWFrXHxlbnN1cmVcfGluXHxuZXh0XHxub3RcfG9yXHxyZWRvXHxyZXNjdWVcfHJldHJ5XHxyZXR1cm5cKVw+Wz8hXVxAISIKIHN5biBtYXRjaCAgIHJ1YnlPcGVyYXRvcgkiXDxkZWZpbmVkPyIgZGlzcGxheQotc3luIGtleXdvcmQgcnVieUtleXdvcmQJCXN1cGVyIHVuZGVmIHlpZWxkCi1zeW4ga2V5d29yZCBydWJ5Qm9vbGVhbgkJdHJ1ZSBmYWxzZQotc3luIGtleXdvcmQgcnVieVBzZXVkb1ZhcmlhYmxlCW5pbCBzZWxmIF9fRklMRV9fIF9fTElORV9fCi1zeW4ga2V5d29yZCBydWJ5QmVnaW5FbmQJQkVHSU4gRU5ECitzeW4gbWF0Y2ggICBydWJ5S2V5d29yZAkJIlw8XCUoc3VwZXJcfHlpZWxkXClcPls/IV1cQCEiCitzeW4gbWF0Y2ggICBydWJ5Qm9vbGVhbgkJIlw8XCUodHJ1ZVx8ZmFsc2VcKVw+Wz8hXVxAISIKK3N5biBtYXRjaCAgIHJ1YnlQc2V1ZG9WYXJpYWJsZQkiXDxcJShuaWxcfHNlbGZcfF9fRklMRV9fXHxfX0xJTkVfX1wpXD5bPyFdXEAhIgorc3luIG1hdGNoICAgcnVieUJlZ2luRW5kCSJcPFwlKEJFR0lOXHxFTkRcKVw+Wz8hXVxAISIKIAogIiBTcGVjaWFsIE1ldGhvZHMKIGlmICFleGlzdHMoInJ1Ynlfbm9fc3BlY2lhbF9tZXRob2RzIikKLSAgc3luIGtleXdvcmQgcnVieUFjY2VzcyAgICBwdWJsaWMgcHJvdGVjdGVkIHByaXZhdGUKLSAgc3luIGtleXdvcmQgcnVieUF0dHJpYnV0ZSBhdHRyIGF0dHJfYWNjZXNzb3IgYXR0cl9yZWFkZXIgYXR0cl93cml0ZXIKLSAgc3luIG1hdGNoICAgcnVieUNvbnRyb2wgICAiXDxcJShleGl0IVx8XCUoYWJvcnRcfGF0X2V4aXRcfGV4aXRcfGZvcmtcfGxvb3BcfHRyYXBcKVw+XCkiCisgIHN5biBrZXl3b3JkIHJ1YnlBY2Nlc3MgICAgcHVibGljIHByb3RlY3RlZCBwcml2YXRlIG1vZHVsZV9mdW5jdGlvbgorICAiIGF0dHIgaXMgYSBjb21tb24gdmFyaWFibGUgbmFtZQorICBzeW4gbWF0Y2ggICBydWJ5QXR0cmlidXRlICJcJShcJSheXHw7XClccypcKVxAPD1hdHRyXD5cKFxzKlsuPV1cKVxAISIKKyAgc3luIGtleXdvcmQgcnVieUF0dHJpYnV0ZSBhdHRyX2FjY2Vzc29yIGF0dHJfcmVhZGVyIGF0dHJfd3JpdGVyCisgIHN5biBtYXRjaCAgIHJ1YnlDb250cm9sICAgIlw8XCUoZXhpdCFcfFwlKGFib3J0XHxhdF9leGl0XHxleGl0XHxmb3JrXHxsb29wXHx0cmFwXClcPls/IV1cQCFcKSIKICAgc3luIGtleXdvcmQgcnVieUV2YWwJICAgIGV2YWwgY2xhc3NfZXZhbCBpbnN0YW5jZV9ldmFsIG1vZHVsZV9ldmFsCiAgIHN5biBrZXl3b3JkIHJ1YnlFeGNlcHRpb24gcmFpc2UgZmFpbCBjYXRjaCB0aHJvdwotICBzeW4ga2V5d29yZCBydWJ5SW5jbHVkZSAgIGF1dG9sb2FkIGV4dGVuZCBpbmNsdWRlIGxvYWQgcmVxdWlyZQorICAiIGZhbHNlIHBvc2l0aXZlIHdpdGggJ2luY2x1ZGU/JworICBzeW4gbWF0Y2ggICBydWJ5SW5jbHVkZSAgICJcPGluY2x1ZGVcPls/IV1cQCEiCisgIHN5biBrZXl3b3JkIHJ1YnlJbmNsdWRlICAgYXV0b2xvYWQgZXh0ZW5kIGxvYWQgcmVxdWlyZQogICBzeW4ga2V5d29yZCBydWJ5S2V5d29yZCAgIGNhbGxjYyBjYWxsZXIgbGFtYmRhIHByb2MKIGVuZGlmCiAKQEAgLTI1Miw2ICsyNzYsOSBAQAogc3luIG1hdGNoIHJ1YnlLZXl3b3JkQXNNZXRob2QgIlwlKFwlKFwuXEA8IVwuXClcfDo6XClcX3MqXCUobm90XHxvclx8cmVkb1x8cmVzY3VlXHxyZXRyeVx8cmV0dXJuXHxzZWxmXHxzdXBlclx8dGhlblx8dHJ1ZVwpXD4iCQkJdHJhbnNwYXJlbnQgY29udGFpbnM9Tk9ORQogc3luIG1hdGNoIHJ1YnlLZXl3b3JkQXNNZXRob2QgIlwlKFwlKFwuXEA8IVwuXClcfDo6XClcX3MqXCUodW5kZWZcfHVubGVzc1x8dW50aWxcfHdoZW5cfHdoaWxlXHx5aWVsZFx8QkVHSU5cfEVORFx8X19GSUxFX19cfF9fTElORV9fXClcPiIJdHJhbnNwYXJlbnQgY29udGFpbnM9Tk9ORQogCitzeW4gbWF0Y2ggcnVieUtleXdvcmRBc01ldGhvZCAiXDxcJShhbGlhc1x8YmVnaW5cfGNhc2VcfGNsYXNzXHxkZWZcfGRvXHxlbmRcKVs/IV0iCQl0cmFuc3BhcmVudCBjb250YWlucz1OT05FCitzeW4gbWF0Y2ggcnVieUtleXdvcmRBc01ldGhvZCAiXDxcJShpZlx8bW9kdWxlXHx1bmRlZlx8dW5sZXNzXHx1bnRpbFx8d2hpbGVcKVs/IV0iCQl0cmFuc3BhcmVudCBjb250YWlucz1OT05FCisKIHN5biBtYXRjaCBydWJ5S2V5d29yZEFzTWV0aG9kICJcJShcJShcLlxAPCFcLlwpXHw6OlwpXF9zKlwlKGFib3J0XHxhdF9leGl0XHxhdHRyXHxhdHRyX2FjY2Vzc29yXHxhdHRyX3JlYWRlclwpXD4iCXRyYW5zcGFyZW50IGNvbnRhaW5zPU5PTkUKIHN5biBtYXRjaCBydWJ5S2V5d29yZEFzTWV0aG9kICJcJShcJShcLlxAPCFcLlwpXHw6OlwpXF9zKlwlKGF0dHJfd3JpdGVyXHxhdXRvbG9hZFx8Y2FsbGNjXHxjYXRjaFx8Y2FsbGVyXClcPiIJCXRyYW5zcGFyZW50IGNvbnRhaW5zPU5PTkUKIHN5biBtYXRjaCBydWJ5S2V5d29yZEFzTWV0aG9kICJcJShcJShcLlxAPCFcLlwpXHw6OlwpXF9zKlwlKGV2YWxcfGNsYXNzX2V2YWxcfGluc3RhbmNlX2V2YWxcfG1vZHVsZV9ldmFsXHxleGl0XClcPiIJdHJhbnNwYXJlbnQgY29udGFpbnM9Tk9ORQpAQCAtMzA1LDE1ICszMzIsMjQgQEAKIGhpIGRlZiBsaW5rIHJ1YnlEYXRhCQkJQ29tbWVudAogaGkgZGVmIGxpbmsgcnVieURhdGFEaXJlY3RpdmUJCURlbGltaXRlcgogaGkgZGVmIGxpbmsgcnVieURvY3VtZW50YXRpb24JCUNvbW1lbnQKLWhpIGRlZiBsaW5rIHJ1YnlFc2NhcGUJCQlTcGVjaWFsCitoaSBkZWYgbGluayBydWJ5VG9kbwkJCVRvZG8KKworaGkgZGVmIGxpbmsgcnVieVN0cmluZ0VzY2FwZQkJU3BlY2lhbAogaGkgZGVmIGxpbmsgcnVieUludGVycG9sYXRpb25EZWxpbWl0ZXIJRGVsaW1pdGVyCiBoaSBkZWYgbGluayBydWJ5Tm9JbnRlcnBvbGF0aW9uCQlydWJ5U3RyaW5nCiBoaSBkZWYgbGluayBydWJ5U2hhcnBCYW5nCQlQcmVQcm9jCiBoaSBkZWYgbGluayBydWJ5UmVnZXhwRGVsaW1pdGVyCQlydWJ5U3RyaW5nRGVsaW1pdGVyCitoaSBkZWYgbGluayBydWJ5U3ltYm9sRGVsaW1pdGVyCQlydWJ5U3RyaW5nRGVsaW1pdGVyCiBoaSBkZWYgbGluayBydWJ5U3RyaW5nRGVsaW1pdGVyCQlEZWxpbWl0ZXIKLWhpIGRlZiBsaW5rIHJ1YnlSZWdleHAJCQlydWJ5U3RyaW5nCiBoaSBkZWYgbGluayBydWJ5U3RyaW5nCQkJU3RyaW5nCi1oaSBkZWYgbGluayBydWJ5VG9kbwkJCVRvZG8KK2hpIGRlZiBsaW5rIHJ1YnlSZWdleHBFc2NhcGUJCXJ1YnlSZWdleHBTcGVjaWFsCitoaSBkZWYgbGluayBydWJ5UmVnZXhwUXVhbnRpZmllcglydWJ5UmVnZXhwU3BlY2lhbAoraGkgZGVmIGxpbmsgcnVieVJlZ2V4cEFuY2hvcgkJcnVieVJlZ2V4cFNwZWNpYWwKK2hpIGRlZiBsaW5rIHJ1YnlSZWdleHBEb3QJCXJ1YnlSZWdleHBDaGFyQ2xhc3MKK2hpIGRlZiBsaW5rIHJ1YnlSZWdleHBDaGFyQ2xhc3MJCXJ1YnlSZWdleHBTcGVjaWFsCitoaSBkZWYgbGluayBydWJ5UmVnZXhwU3BlY2lhbAkJU3BlY2lhbAoraGkgZGVmIGxpbmsgcnVieVJlZ2V4cENvbW1lbnQJCUNvbW1lbnQKK2hpIGRlZiBsaW5rIHJ1YnlSZWdleHAJCQlydWJ5U3RyaW5nCiAKIGhpIGRlZiBsaW5rIHJ1YnlJbnZhbGlkVmFyaWFibGUJCUVycm9yCiBoaSBkZWYgbGluayBydWJ5RXJyb3IJCQlFcnJvcgpAQCAtMzIxLDQgKzM1Nyw0IEBACiAKIGxldCBiOmN1cnJlbnRfc3ludGF4ID0gInJ1YnkiCiAKLSIgdmltOiBub3dyYXAgc3c9MiBzdHM9MiB0cz04IG5vZXQgOgorIiB2aW06IG5vd3JhcCBzdz0yIHN0cz0yIHRzPTggbm9ldDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3Nhc3MudmltIGIvcnVudGltZS9zeW50YXgvc2Fzcy52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEyZTdhNAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L3Nhc3MudmltCkBAIC0wLDAgKzEsNTYgQEAKKyIgVmltIHN5bnRheCBmaWxlCisiIExhbmd1YWdlOiAgICAgU2FzcworIiBNYWludGFpbmVyOiAgIFRpbSBQb3BlIDx2aW1OT1NQQU1AdHBvcGUuaW5mbz4KKyIgRmlsZW5hbWVzOiAgICAqLnNhc3MKKworaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgZmluaXNoCitlbmRpZgorCitydW50aW1lISBzeW50YXgvY3NzLnZpbQorCitzeW4gY2FzZSBpZ25vcmUKKworc3luIGNsdXN0ZXIgc2Fzc0Nzc1Byb3BlcnRpZXMgY29udGFpbnM9Y3NzRm9udFByb3AsY3NzRm9udERlc2NyaXB0b3JQcm9wLGNzc0NvbG9yUHJvcCxjc3NUZXh0UHJvcCxjc3NCb3hQcm9wLGNzc0dlbmVyYXRlZENvbnRlbnRQcm9wLGNzc1BhZ2luZ1Byb3AsY3NzVUlQcm9wLGNzc1JlbmRlclByb3AsY3NzQXVyYWxQcm9wLGNzc1RhYmxlUHJvcAorc3luIGNsdXN0ZXIgc2Fzc0Nzc0F0dHJpYnV0ZXMgY29udGFpbnM9Y3NzLipBdHRyLGNzc0NvbW1lbnQsY3NzVmFsdWUuKixjc3NDb2xvcixjc3NVUkwsY3NzSW1wb3J0YW50LGNzc0Vycm9yLGNzc1N0cmluZ1EsY3NzU3RyaW5nUVEsY3NzRnVuY3Rpb24sY3NzVW5pY29kZUVzY2FwZSxjc3NSZW5kZXJQcm9wCisKK3N5biBtYXRjaCBzYXNzUHJvcGVydHkgIl5ccypcenNcc1wlKFtbOmFsbnVtOl0tXVwrOlx8OltbOmFsbnVtOl0tXVwrXCkiaHM9cysxIGNvbnRhaW5zPWNzcy4qUHJvcCBza2lwd2hpdGUgbmV4dGdyb3VwPXNhc3NDc3NBdHRyaWJ1dGUKK3N5biBtYXRjaCBzYXNzQ3NzQXR0cmlidXRlICIuKiQiIGNvbnRhaW5lZCBjb250YWlucz1Ac2Fzc0Nzc0F0dHJpYnV0ZXMsc2Fzc0NvbnN0YW50CitzeW4gbWF0Y2ggc2Fzc0NvbnN0YW50ICIhW1s6YWxudW06XV8tXVwrIgorc3luIG1hdGNoIHNhc3NDb25zdGFudEFzc2lnbm1lbnQgIlwlKCFbWzphbG51bTpdX11cK1xzKlwpXEA8PT0iIG5leHRncm91cD1zYXNzQ3NzQXR0cmlidXRlIHNraXB3aGl0ZQorc3luIG1hdGNoIHNhc3NNaXhpbiAgIl49LioiCitzeW4gbWF0Y2ggc2Fzc01peGluZyAiXlxzXCtcenMrLioiCisKK3N5biBtYXRjaCBzYXNzRXNjYXBlICAgICAiXlxzKlx6c1xcIgorc3luIG1hdGNoIHNhc3NJZENoYXIgICAgICIjW1s6YWxudW06XV8tXVxAPSIgbmV4dGdyb3VwPXNhc3NJZAorc3luIG1hdGNoIHNhc3NJZCAgICAgICAgICJbWzphbG51bTpdXy1dXCsiIGNvbnRhaW5lZAorc3luIG1hdGNoIHNhc3NDbGFzc0NoYXIgICJcLltbOmFsbnVtOl1fLV1cQD0iIG5leHRncm91cD1zYXNzQ2xhc3MKK3N5biBtYXRjaCBzYXNzQ2xhc3MgICAgICAiW1s6YWxudW06XV8tXVwrIiBjb250YWluZWQKK3N5biBtYXRjaCBzYXNzQW1wZXJzYW5kICAiJiIKKworIiBUT0RPOiBBdHRyaWJ1dGUgbmFtZXNwYWNlcworIiBUT0RPOiBBcml0aG1ldGljIChpbmNsdWRpbmcgc3RyaW5ncyBhbmQgY29uY2F0ZW5hdGlvbikKKworc3luIHJlZ2lvbiBzYXNzSW5jbHVkZSBzdGFydD0iQGltcG9ydCIgZW5kPSI7XHwkIiBjb250YWlucz1jc3NDb21tZW50LGNzc1VSTCxjc3NVbmljb2RlRXNjYXBlLGNzc01lZGlhVHlwZQorCitzeW4ga2V5d29yZCBzYXNzVG9kbyAgICAgICAgRklYTUUgTk9URSBUT0RPIE9QVElNSVpFIFhYWCBjb250YWluZWQKK3N5biByZWdpb24gIHNhc3NDb21tZW50ICAgICBzdGFydD0iXlx6KFxzKlwpLy8iICBlbmQ9Il5cJShcejEgXClcQCEiIGNvbnRhaW5zPXNhc3NUb2RvCitzeW4gcmVnaW9uICBzYXNzQ3NzQ29tbWVudCAgc3RhcnQ9Il5ceihccypcKS9cKiIgZW5kPSJeXCUoXHoxIFwpXEAhIiBjb250YWlucz1zYXNzVG9kbworCitoaSBkZWYgbGluayBzYXNzQ3NzQ29tbWVudCAgICAgICAgICAgICAgc2Fzc0NvbW1lbnQKK2hpIGRlZiBsaW5rIHNhc3NDb21tZW50ICAgICAgICAgICAgICAgICBDb21tZW50CitoaSBkZWYgbGluayBzYXNzQ29uc3RhbnQgICAgICAgICAgICAgICAgSWRlbnRpZmllcgoraGkgZGVmIGxpbmsgc2Fzc01peGluZyAgICAgICAgICAgICAgICAgIFByZVByb2MKK2hpIGRlZiBsaW5rIHNhc3NNaXhpbiAgICAgICAgICAgICAgICAgICBQcmVQcm9jCitoaSBkZWYgbGluayBzYXNzVG9kbyAgICAgICAgICAgICAgICAgICAgVG9kbworaGkgZGVmIGxpbmsgc2Fzc0luY2x1ZGUgICAgICAgICAgICAgICAgIEluY2x1ZGUKK2hpIGRlZiBsaW5rIHNhc3NFc2NhcGUgICAgICAgICAgICAgICAgICBTcGVjaWFsCitoaSBkZWYgbGluayBzYXNzSWRDaGFyICAgICAgICAgICAgICAgICAgU3BlY2lhbAoraGkgZGVmIGxpbmsgc2Fzc0NsYXNzQ2hhciAgICAgICAgICAgICAgIFNwZWNpYWwKK2hpIGRlZiBsaW5rIHNhc3NBbXBlcnNhbmQgICAgICAgICAgICAgICBDaGFyYWN0ZXIKK2hpIGRlZiBsaW5rIHNhc3NJZCAgICAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVyCitoaSBkZWYgbGluayBzYXNzQ2xhc3MgICAgICAgICAgICAgICAgICAgVHlwZQorCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJzYXNzIgorCisiIHZpbTpzZXQgc3c9MjoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3NoLnZpbSBiL3J1bnRpbWUvc3ludGF4L3NoLnZpbQppbmRleCBiZGRmZTFjLi5jYjkyYmJkIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9zaC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvc2gudmltCkBAIC0yLDIyICsyLDEwIEBACiAiIExhbmd1YWdlOgkJc2hlbGwgKHNoKSBLb3JuIHNoZWxsIChrc2gpIGJhc2ggKHNoKQogIiBNYWludGFpbmVyOgkJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiAgPE5kck9jaGlwU0BQY2FtcGJlbGxBZmFtaWx5Lk1iaXo+CiAiIFByZXZpb3VzIE1haW50YWluZXI6CUxlbm5hcnQgU2NodWx0eiA8TGVubmFydC5TY2h1bHR6QGVjbXdmLmludD4KLSIgTGFzdCBDaGFuZ2U6CQlBcHIgMjQsIDIwMDgKLSIgVmVyc2lvbjoJCTkwCisiIExhc3QgQ2hhbmdlOgkJSnVsIDAxLCAyMDA4CisiIFZlcnNpb246CQkxMDAKICIgVVJMOgkJaHR0cDovL215c2l0ZS52ZXJpem9uLm5ldC9hc3Ryb25hdXQvdmltL2luZGV4Lmh0bWwjdmltbGlua3Nfc3ludGF4Ci0iCi0iIFVzaW5nIHRoZSBmb2xsb3dpbmcgVklNIHZhcmlhYmxlczoge3t7MQotIiBnOmlzX2Jhc2gJCWlmIG5vbmUgb2YgdGhlIHByZXZpb3VzIHRocmVlIHZhcmlhYmxlcyBhcmUKLSIJCWRlZmluZWQsIHRoZW4gaWYgZzppc19iYXNoIGlzIHNldCBlbmhhbmNlIHdpdGgKLSIJCWJhc2ggc3ludGF4IGhpZ2hsaWdodGluZwotIiBnOmlzX2tvcm5zaGVsbAlpZiBuZWl0aGVyIGI6aXNfa29ybnNoZWxsIG9yIGI6aXNfYmFzaCBpcwotIgkJZGVmaW5lZCwgdGhlbiBpZiBnOmlzX2tvcm5zaGVsbCBpcyBzZXQKLSIJCWVuaGFuY2Ugd2l0aCBrb3Juc2hlbGwvUE9TSVggc3ludGF4IGhpZ2hsaWdodGluZwotIiBnOmlzX3Bvc2l4ICAgICAgICAgICAgICAgICAgICB0aGlzIHZhcmlhYmxlIGlzIHRoZSBzYW1lIGFzIGc6aXNfa29ybnNoZWxsCi0iIGc6c2hfZm9sZF9lbmFibGVkCWlmIG5vbi16ZXJvLCBzeW50YXggZm9sZGluZyBpcyBlbmFibGVkCi0iIGc6c2hfbWlubGluZXMJCXNldHMgdXAgc3luIHN5bmMgbWlubGluZXMgKGRmbHQ6IDIwMCkKLSIgZzpzaF9tYXhsaW5lcwkJc2V0cyB1cCBzeW4gc3luYyBtYXhsaW5lcyAoZGZsdDogMnggc2hfbWlubGluZXMpCi0iCisiIEZvciBvcHRpb25zIGFuZCBzZXR0aW5ncywgcGxlYXNlIHVzZTogICAgICA6aGVscCBmdC1zaC1zeW50YXgKICIgVGhpcyBmaWxlIGluY2x1ZGVzIG1hbnkgaWRlYXMgZnJvbSDJcmljIEJydW5ldCAoZXJpYy5icnVuZXRAZW5zLmZyKQogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcyB7e3sxCkBAIC01NCw2ICs0Miw5IEBACiAgIGVuZGlmCiBlbmRpZgogCisiIGFkanVzdCBpc2tleXdvcmQgZm9yIHNoZWxsIGNoYXJhY3RlcnMKKyJzZXRsb2NhbCBpc2s9QCw0OC01NyxfLDE5Mi0yNTUsIywuLC8KKwogIiBzZXQgdXAgZGVmYXVsdCBnOnNoX2ZvbGRfZW5hYmxlZCB7e3sxCiBpZiAhZXhpc3RzKCJnOnNoX2ZvbGRfZW5hYmxlZCIpCiAgbGV0IGc6c2hfZm9sZF9lbmFibGVkPSAwCkBAIC02MSw2ICs1MiwxNSBAQAogIGxldCBnOnNoX2ZvbGRfZW5hYmxlZD0gMAogIGVjaG9tc2cgIklnbm9yaW5nIGc6c2hfZm9sZF9lbmFibGVkPSIuZzpzaF9mb2xkX2VuYWJsZWQuIjsgbmVlZCB0byByZS1jb21waWxlIHZpbSBmb3IgK2ZvbGQgc3VwcG9ydCIKIGVuZGlmCitpZiAhZXhpc3RzKCJzOnNoX2ZvbGRfZnVuY3Rpb25zIikKKyBsZXQgczpzaF9mb2xkX2Z1bmN0aW9ucyA9IDEKK2VuZGlmCitpZiAhZXhpc3RzKCJzOnNoX2ZvbGRfaGVyZWRvYyIpCisgbGV0IHM6c2hfZm9sZF9oZXJlZG9jICAgPSAyCitlbmRpZgoraWYgIWV4aXN0cygiczpzaF9mb2xkX2lmZG9mb3IiKQorIGxldCBzOnNoX2ZvbGRfaWZkb2ZvciAgID0gNAorZW5kaWYKIGlmIGc6c2hfZm9sZF9lbmFibGVkICYmICZmZG0gPT0gIm1hbnVhbCIKICBzZXQgZmRtPXN5bnRheAogZW5kaWYKQEAgLTcwLDI2ICs3MCwzMyBAQAogCiAiIENsdXN0ZXJzOiBjb250YWlucz1ALi4uIGNsdXN0ZXJzIHt7ezEKICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1zeW4gY2x1c3RlciBzaENhc2VFc2FjTGlzdAljb250YWlucz1zaENhc2VTdGFydCxzaENhc2Usc2hDYXNlQmFyLHNoQ2FzZUluLHNoQ29tbWVudCxzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hDYXNlQ29tbWFuZFN1YixzaENhc2VFeFNpbmdsZVF1b3RlLHNoQ2FzZVNpbmdsZVF1b3RlLHNoQ2FzZURvdWJsZVF1b3RlLHNoQ3RybFNlcQorc3luIGNsdXN0ZXIgc2hFcnJvckxpc3QJY29udGFpbnM9c2hEb0Vycm9yLHNoSWZFcnJvcixzaEluRXJyb3Isc2hDYXNlRXJyb3Isc2hFc2FjRXJyb3Isc2hDdXJseUVycm9yLHNoUGFyZW5FcnJvcixzaFRlc3RFcnJvcgoraWYgZXhpc3RzKCJiOmlzX2tvcm5zaGVsbCIpCisgc3luIGNsdXN0ZXIgRXJyb3JMaXN0IGFkZD1zaERUZXN0RXJyb3IKK2VuZGlmCitzeW4gY2x1c3RlciBzaEFyaXRoUGFyZW5MaXN0CWNvbnRhaW5zPXNoQXJpdGhtZXRpYyxzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hFc2NhcGUsc2hOdW1iZXIsc2hPcGVyYXRvcixzaFBvc25QYXJtLHNoRXhTaW5nbGVRdW90ZSxzaFNpbmdsZVF1b3RlLHNoRG91YmxlUXVvdGUsc2hTdGF0ZW1lbnQsc2hWYXJpYWJsZSxzaEFsaWFzLHNoVGVzdCxzaEN0cmxTZXEsc2hTcGVjaWFsLHNoUGFyZW4KK3N5biBjbHVzdGVyIHNoQXJpdGhMaXN0CWNvbnRhaW5zPUBzaEFyaXRoUGFyZW5MaXN0LHNoUGFyZW5FcnJvcgorc3luIGNsdXN0ZXIgc2hDYXNlRXNhY0xpc3QJY29udGFpbnM9c2hDYXNlU3RhcnQsc2hDYXNlLHNoQ2FzZUJhcixzaENhc2VJbixzaENvbW1lbnQsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoQ2FzZUNvbW1hbmRTdWIsc2hDYXNlRXhTaW5nbGVRdW90ZSxzaENhc2VTaW5nbGVRdW90ZSxzaENhc2VEb3VibGVRdW90ZSxzaEN0cmxTZXEsQHNoRXJyb3JMaXN0LHNoU3RyaW5nU3BlY2lhbAogc3luIGNsdXN0ZXIgc2hDYXNlTGlzdAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdCxzaENhc2VFc2FjLHNoQ29sb24sc2hDb21tYW5kU3ViLHNoQ29tbWFuZFN1YixzaENvbW1lbnQsc2hEbyxzaEVjaG8sc2hFeHByLHNoRm9yLHNoSGVyZURvYyxzaElmLHNoUmVkaXIsc2hTZXRMaXN0LHNoU291cmNlLHNoU3RhdGVtZW50LHNoVmFyaWFibGUsc2hDdHJsU2VxCiBzeW4gY2x1c3RlciBzaENvbG9uTGlzdAljb250YWlucz1Ac2hDYXNlTGlzdAotc3luIGNsdXN0ZXIgc2hDb21tYW5kU3ViTGlzdAljb250YWlucz1zaEFyaXRobWV0aWMsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoTnVtYmVyLHNoT3BlcmF0b3Isc2hQb3NuUGFybSxzaEV4U2luZ2xlUXVvdGUsc2hTaW5nbGVRdW90ZSxzaERvdWJsZVF1b3RlLHNoU3RhdGVtZW50LHNoVmFyaWFibGUsc2hTdWJTaCxzaEFsaWFzLHNoVGVzdCxzaEN0cmxTZXEKK3N5biBjbHVzdGVyIHNoQ29tbWFuZFN1Ykxpc3QJY29udGFpbnM9c2hBcml0aG1ldGljLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaEVzY2FwZSxzaE51bWJlcixzaE9wZXJhdG9yLHNoUG9zblBhcm0sc2hFeFNpbmdsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hEb3VibGVRdW90ZSxzaFN0YXRlbWVudCxzaFZhcmlhYmxlLHNoU3ViU2gsc2hBbGlhcyxzaFRlc3Qsc2hDdHJsU2VxLHNoU3BlY2lhbAogc3luIGNsdXN0ZXIgc2hDdXJseUxpc3QJY29udGFpbnM9c2hOdW1iZXIsc2hDb21tYSxzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hEZXJlZlNwZWNpYWwKIHN5biBjbHVzdGVyIHNoRGJsUXVvdGVMaXN0CWNvbnRhaW5zPXNoQ29tbWFuZFN1YixzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hQb3NuUGFybSxzaEV4U2luZ2xlUXVvdGUsc2hDdHJsU2VxLHNoU3BlY2lhbAogc3luIGNsdXN0ZXIgc2hEZXJlZkxpc3QJY29udGFpbnM9c2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRGVyZWZWYXIsc2hEZXJlZlNwZWNpYWwsc2hEZXJlZldvcmRFcnJvcixzaERlcmVmUFBTCiBzeW4gY2x1c3RlciBzaERlcmVmVmFyTGlzdAljb250YWlucz1zaERlcmVmT3Asc2hEZXJlZlZhckFycmF5LHNoRGVyZWZPcEVycm9yCi1zeW4gY2x1c3RlciBzaEVjaG9MaXN0CWNvbnRhaW5zPXNoQXJpdGhtZXRpYyxzaENvbW1hbmRTdWIsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRXhwcixzaEV4U2luZ2xlUXVvdGUsc2hTaW5nbGVRdW90ZSxzaERvdWJsZVF1b3RlLHNoQ3RybFNlcQorc3luIGNsdXN0ZXIgc2hFY2hvTGlzdAljb250YWlucz1zaEFyaXRobWV0aWMsc2hDb21tYW5kU3ViLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaEV4cHIsc2hFeFNpbmdsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hEb3VibGVRdW90ZSxzaEN0cmxTZXEsc2hFY2hvUXVvdGUKIHN5biBjbHVzdGVyIHNoRXhwckxpc3QxCWNvbnRhaW5zPXNoQ2hhckNsYXNzLHNoTnVtYmVyLHNoT3BlcmF0b3Isc2hFeFNpbmdsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hEb3VibGVRdW90ZSxzaEV4cHIsc2hEYmxCcmFjZSxzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hDdHJsU2VxCiBzeW4gY2x1c3RlciBzaEV4cHJMaXN0Mgljb250YWlucz1Ac2hFeHByTGlzdDEsQHNoQ2FzZUxpc3Qsc2hUZXN0Ci1zeW4gY2x1c3RlciBzaEZ1bmN0aW9uTGlzdAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdCxzaENhc2VFc2FjLHNoQ29sb24sc2hDb21tYW5kU3ViLHNoQ29tbWFuZFN1YixzaENvbW1lbnQsc2hEbyxzaEVjaG8sc2hFeHByLHNoRm9yLHNoSGVyZURvYyxzaElmLHNoUmVkaXIsc2hTZXRMaXN0LHNoU291cmNlLHNoU3RhdGVtZW50LHNoVmFyaWFibGUsc2hPcGVyYXRvcixzaEZ1bmN0aW9uU3RhcnQsc2hDdHJsU2VxCitzeW4gY2x1c3RlciBzaEZ1bmN0aW9uTGlzdAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdCxzaENhc2VFc2FjLHNoQ29sb24sc2hDb21tYW5kU3ViLHNoQ29tbWFuZFN1YixzaENvbW1lbnQsc2hEbyxzaEVjaG8sc2hFeHByLHNoRm9yLHNoSGVyZURvYyxzaElmLHNoUmVkaXIsc2hTZXRMaXN0LHNoU291cmNlLHNoU3RhdGVtZW50LHNoVmFyaWFibGUsc2hPcGVyYXRvcixzaEN0cmxTZXEKIGlmIGV4aXN0cygiYjppc19rb3Juc2hlbGwiKSB8fCBleGlzdHMoImI6aXNfYmFzaCIpCisgc3luIGNsdXN0ZXIgc2hGdW5jdGlvbkxpc3QJYWRkPXNoUmVwZWF0CiAgc3luIGNsdXN0ZXIgc2hGdW5jdGlvbkxpc3QJYWRkPXNoRGJsQnJhY2Usc2hEYmxQYXJlbgogZW5kaWYKIHN5biBjbHVzdGVyIHNoSGVyZUJlZ2luTGlzdAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdAogc3luIGNsdXN0ZXIgc2hIZXJlTGlzdAljb250YWlucz1zaEJlZ2luSGVyZSxzaEhlcmVQYXlsb2FkCiBzeW4gY2x1c3RlciBzaEhlcmVMaXN0RFEJY29udGFpbnM9c2hCZWdpbkhlcmUsQHNoRGJsUXVvdGVMaXN0LHNoSGVyZVBheWxvYWQKLXN5biBjbHVzdGVyIHNoSWRMaXN0CWNvbnRhaW5zPXNoQ29tbWFuZFN1YixzaFdyYXBMaW5lT3BlcmF0b3Isc2hJZFdoaXRlU3BhY2Usc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoUmVkaXIsc2hFeFNpbmdsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hEb3VibGVRdW90ZSxzaEV4cHIsc2hDdHJsU2VxCi1zeW4gY2x1c3RlciBzaExvb3BMaXN0CWNvbnRhaW5zPUBzaENhc2VMaXN0LHNoVGVzdE9wcixzaEV4cHIsc2hEYmxCcmFjZSxzaENvbmRpdGlvbmFsLHNoQ2FzZUVzYWMsc2hUZXN0CitzeW4gY2x1c3RlciBzaElkTGlzdAljb250YWlucz1zaENvbW1hbmRTdWIsc2hXcmFwTGluZU9wZXJhdG9yLHNoU2V0T3B0aW9uLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaFJlZGlyLHNoRXhTaW5nbGVRdW90ZSxzaFNpbmdsZVF1b3RlLHNoRG91YmxlUXVvdGUsc2hFeHByLHNoQ3RybFNlcSxzaFN0cmluZ1NwZWNpYWwKK3N5biBjbHVzdGVyIHNoTG9vcExpc3QJY29udGFpbnM9QHNoQ2FzZUxpc3Qsc2hUZXN0T3ByLHNoRXhwcixzaERibEJyYWNlLHNoQ29uZGl0aW9uYWwsc2hDYXNlRXNhYyxzaFRlc3QsQHNoRXJyb3JMaXN0LHNoU2V0CiBzeW4gY2x1c3RlciBzaFN1YlNoTGlzdAljb250YWlucz1Ac2hDYXNlTGlzdCxzaE9wZXJhdG9yCiBzeW4gY2x1c3RlciBzaFRlc3RMaXN0CWNvbnRhaW5zPXNoQ2hhckNsYXNzLHNoQ29tbWVudCxzaENvbW1hbmRTdWIsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRG91YmxlUXVvdGUsc2hFeHByLHNoRXhwcixzaE51bWJlcixzaE9wZXJhdG9yLHNoRXhTaW5nbGVRdW90ZSxzaFNpbmdsZVF1b3RlLHNoVGVzdE9wcixzaFRlc3Qsc2hDdHJsU2VxCiAKQEAgLTk3LDEwICsxMDQsMTEgQEAKICIgRWNobzoge3t7MQogIiA9PT09CiAiIFRoaXMgb25lIGlzIG5lZWRlZCBJTlNJREUgYSBDb21tYW5kU3ViLCBzbyB0aGF0IGBlY2hvIGJsYWAgYmUgY29ycmVjdAotc3luIHJlZ2lvbiBzaEVjaG8gbWF0Y2hncm91cD1zaFN0YXRlbWVudCBzdGFydD0iXDxlY2hvXD4iICBza2lwPSJcXCQiIG1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9IiQiIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ils8PjsmfCgpXSJtZT1lLTEgZW5kPSJcZFs8Pl0ibWU9ZS0yIGVuZD0iIyJtZT1lLTEgY29udGFpbnM9QHNoRWNob0xpc3QKLXN5biByZWdpb24gc2hFY2hvIG1hdGNoZ3JvdXA9c2hTdGF0ZW1lbnQgc3RhcnQ9Ilw8cHJpbnRcPiIgc2tpcD0iXFwkIiBtYXRjaGdyb3VwPXNoT3BlcmF0b3IgZW5kPSIkIiBtYXRjaGdyb3VwPU5PTkUgZW5kPSJbPD47JnwoKV0ibWU9ZS0xIGVuZD0iXGRbPD5dIm1lPWUtMiBlbmQ9IiMibWU9ZS0xIGNvbnRhaW5zPUBzaEVjaG9MaXN0CitzeW4gcmVnaW9uIHNoRWNobyBtYXRjaGdyb3VwPXNoU3RhdGVtZW50IHN0YXJ0PSJcPGVjaG9cPiIgIHNraXA9IlxcJCIgbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iJCIgbWF0Y2hncm91cD1OT05FIGVuZD0iWzw+OyZ8KCldIm1lPWUtMSBlbmQ9IlxkWzw+XSJtZT1lLTIgZW5kPSIjIm1lPWUtMSBjb250YWlucz1Ac2hFY2hvTGlzdCBza2lwd2hpdGUgbmV4dGdyb3VwPXNoUXVpY2tDb21tZW50CitzeW4gcmVnaW9uIHNoRWNobyBtYXRjaGdyb3VwPXNoU3RhdGVtZW50IHN0YXJ0PSJcPHByaW50XD4iIHNraXA9IlxcJCIgbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iJCIgbWF0Y2hncm91cD1OT05FIGVuZD0iWzw+OyZ8KCldIm1lPWUtMSBlbmQ9IlxkWzw+XSJtZT1lLTIgZW5kPSIjIm1lPWUtMSBjb250YWlucz1Ac2hFY2hvTGlzdCBza2lwd2hpdGUgbmV4dGdyb3VwPXNoUXVpY2tDb21tZW50CitzeW4gbWF0Y2ggIHNoRWNob1F1b3RlIGNvbnRhaW5lZAknXCUoXFxcXFwpKlxcWyJgJ10nCiAKLSIgVGhpcyBtdXN0IGJlIGFmdGVyIHRoZSBzdHJpbmdzLCBzbyB0aGF0IGJsYSBcIiBiZSBjb3JyZWN0CisiIFRoaXMgbXVzdCBiZSBhZnRlciB0aGUgc3RyaW5ncywgc28gdGhhdCAuLi4gXCIgd2lsbCBiZSBjb3JyZWN0CiBzeW4gcmVnaW9uIHNoRW1iZWRkZWRFY2hvIGNvbnRhaW5lZCBtYXRjaGdyb3VwPXNoU3RhdGVtZW50IHN0YXJ0PSJcPHByaW50XD4iIHNraXA9IlxcJCIgbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iJCIgbWF0Y2hncm91cD1OT05FIGVuZD0iWzw+OyZ8YCldIm1lPWUtMSBlbmQ9IlxkWzw+XSJtZT1lLTIgZW5kPSIjIm1lPWUtMSBjb250YWlucz1zaE51bWJlcixzaEV4U2luZ2xlUXVvdGUsc2hTaW5nbGVRdW90ZSxzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hTcGVjaWFsVmFyLHNoT3BlcmF0b3Isc2hEb3VibGVRdW90ZSxzaENoYXJDbGFzcyxzaEN0cmxTZXEKIAogIiBBbGlhczoge3t7MQpAQCAtMTI1LDEwICsxMzMsMTAgQEAKIGVuZGlmCiBzeW4gbWF0Y2ggICAgIHNoVGVzdEVycm9yICJdIgogCi0iIE9wdGlvbnMgSW50ZXJjZXB0b3I6IHt7ezEKKyIgT3B0aW9uczoge3t7MQogIiA9PT09PT09PT09PT09PT09PT09PQotc3luIG1hdGNoICAgc2hPcHRpb24gICJcc1tcLStdW2EtekEtWjAtOV1cK1w+Im1zPXMrMQotc3luIG1hdGNoICAgc2hPcHRpb24gICJccy0tW14gXHQkYCcifF1cKyJtcz1zKzEKK3N5biBtYXRjaCAgIHNoT3B0aW9uCSJcc1x6c1stK11bYS16QS1aMC05XVwrXD4iCitzeW4gbWF0Y2ggICBzaE9wdGlvbgkiXHNcenMtLVteIFx0JGAnInxdXCsiCiAKICIgRmlsZSBSZWRpcmVjdGlvbiBIaWdobGlnaHRlZCBBcyBPcGVyYXRvcnM6IHt7ezEKICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xNDAsOCArMTQ4LDggQEAKICIgT3BlcmF0b3JzOiB7e3sxCiAiID09PT09PT09PT0KIHN5biBtYXRjaCAgIHNoT3BlcmF0b3IJIjw8XHw+PiIJCWNvbnRhaW5lZAotc3luIG1hdGNoICAgc2hPcGVyYXRvcgkiWyEmO3xdIgotc3luIG1hdGNoICAgc2hPcGVyYXRvcgkiXFtbW146XVx8XF1dIgorc3luIG1hdGNoICAgc2hPcGVyYXRvcgkiWyEmO3xdIgkJY29udGFpbmVkCitzeW4gbWF0Y2ggICBzaE9wZXJhdG9yCSJcW1tbXjpdXHxcXV0iCQljb250YWluZWQKIHN5biBtYXRjaCAgIHNoT3BlcmF0b3IJIiFcPT0iCQlza2lwd2hpdGUgbmV4dGdyb3VwPXNoUGF0dGVybgogc3luIG1hdGNoICAgc2hQYXR0ZXJuCSJcPFxTXCtcKCkpXClcQD0iCWNvbnRhaW5lZCBjb250YWlucz1zaEV4U2luZ2xlUXVvdGUsc2hTaW5nbGVRdW90ZSxzaERvdWJsZVF1b3RlLHNoRGVyZWYKIApAQCAtMTcyLDMzICsxODAsMzQgQEAKIAogIiBMb29wczogZG8sIGlmLCB3aGlsZSwgdW50aWwge3t7MQogIiA9PT09PT0KLWlmIGc6c2hfZm9sZF9lbmFibGVkCitpZiAoZzpzaF9mb2xkX2VuYWJsZWQgJSAoczpzaF9mb2xkX2lmZG9mb3IgKiAyKSkvczpzaF9mb2xkX2lmZG9mb3IKICBzeW4gcmVnaW9uIHNoRG8JZm9sZCB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoQ29uZGl0aW9uYWwgc3RhcnQ9Ilw8ZG9cPiIgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIGVuZD0iXDxkb25lXD4iIGNvbnRhaW5zPUBzaExvb3BMaXN0Ci0gc3luIHJlZ2lvbiBzaElmCWZvbGQgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIHN0YXJ0PSJcPGlmXD4iIG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBlbmQ9Ilw8O1xfcyp0aGVuXD4iIGVuZD0iXDxmaVw+IiAgIGNvbnRhaW5zPUBzaExvb3BMaXN0LHNoRGJsQnJhY2Usc2hEYmxQYXJlbixzaEZ1bmN0aW9uS2V5Ci0gc3luIHJlZ2lvbiBzaEZvcglmb2xkIG1hdGNoZ3JvdXA9c2hMb29wIHN0YXJ0PSJcPGZvclw+IiBlbmQ9Ilw8aW5cPiIgZW5kPSJcPGRvXD4ibWU9ZS0yCWNvbnRhaW5zPUBzaExvb3BMaXN0LHNoRGJsUGFyZW4gc2tpcHdoaXRlIG5leHRncm91cD1zaEN1cmx5SW4KKyBzeW4gcmVnaW9uIHNoSWYJZm9sZCB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoQ29uZGl0aW9uYWwgc3RhcnQ9Ilw8aWZcX3MiIG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBlbmQ9Ilw8O1xfcyp0aGVuXD4iIGVuZD0iXDxmaVw+IiAgIGNvbnRhaW5zPUBzaExvb3BMaXN0LHNoRGJsQnJhY2Usc2hEYmxQYXJlbixzaEZ1bmN0aW9uS2V5Cisgc3luIHJlZ2lvbiBzaEZvcglmb2xkIG1hdGNoZ3JvdXA9c2hMb29wIHN0YXJ0PSJcPGZvclxfcyIgZW5kPSJcPGluXF9zIiBlbmQ9Ilw8ZG9cPiJtZT1lLTIJY29udGFpbnM9QHNoTG9vcExpc3Qsc2hEYmxQYXJlbiBza2lwd2hpdGUgbmV4dGdyb3VwPXNoQ3VybHlJbgogZWxzZQogIHN5biByZWdpb24gc2hEbwl0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoQ29uZGl0aW9uYWwgc3RhcnQ9Ilw8ZG9cPiIgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIGVuZD0iXDxkb25lXD4iIGNvbnRhaW5zPUBzaExvb3BMaXN0Ci0gc3luIHJlZ2lvbiBzaElmCXRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBzdGFydD0iXDxpZlw+IiBtYXRjaGdyb3VwPXNoQ29uZGl0aW9uYWwgZW5kPSJcPDtcX3MqdGhlblw+IiBlbmQ9Ilw8ZmlcPiIgICBjb250YWlucz1Ac2hMb29wTGlzdCxzaERibEJyYWNlLHNoRGJsUGFyZW4sc2hGdW5jdGlvbktleQotIHN5biByZWdpb24gc2hGb3IJbWF0Y2hncm91cD1zaExvb3Agc3RhcnQ9Ilw8Zm9yXD4iIGVuZD0iXDxpblw+IiBlbmQ9Ilw8ZG9cPiJtZT1lLTIJY29udGFpbnM9QHNoTG9vcExpc3Qsc2hEYmxQYXJlbiBza2lwd2hpdGUgbmV4dGdyb3VwPXNoQ3VybHlJbgorIHN5biByZWdpb24gc2hJZgl0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoQ29uZGl0aW9uYWwgc3RhcnQ9Ilw8aWZcX3MiIG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBlbmQ9Ilw8O1xfcyp0aGVuXD4iIGVuZD0iXDxmaVw+IiAgIGNvbnRhaW5zPUBzaExvb3BMaXN0LHNoRGJsQnJhY2Usc2hEYmxQYXJlbixzaEZ1bmN0aW9uS2V5Cisgc3luIHJlZ2lvbiBzaEZvcgltYXRjaGdyb3VwPXNoTG9vcCBzdGFydD0iXDxmb3JcX3MiIGVuZD0iXDxpblw+IiBlbmQ9Ilw8ZG9cPiJtZT1lLTIJY29udGFpbnM9QHNoTG9vcExpc3Qsc2hEYmxQYXJlbiBza2lwd2hpdGUgbmV4dGdyb3VwPXNoQ3VybHlJbgogZW5kaWYKIGlmIGV4aXN0cygiYjppc19rb3Juc2hlbGwiKSB8fCBleGlzdHMoImI6aXNfYmFzaCIpCi0gc3luIGNsdXN0ZXIgc2hDYXNlTGlzdCBhZGQ9c2hSZXBlYXQKLSBzeW4gcmVnaW9uIHNoUmVwZWF0ICAgbWF0Y2hncm91cD1zaExvb3AgICBzdGFydD0iXDx3aGlsZVw+IiBlbmQ9Ilw8aW5cPiIgZW5kPSJcPGRvXD4ibWU9ZS0yCWNvbnRhaW5zPUBzaExvb3BMaXN0LHNoRGJsUGFyZW4sc2hEYmxCcmFjZQotIHN5biByZWdpb24gc2hSZXBlYXQgICBtYXRjaGdyb3VwPXNoTG9vcCAgIHN0YXJ0PSJcPHVudGlsXD4iIGVuZD0iXDxpblw+IiBlbmQ9Ilw8ZG9cPiJtZT1lLTIJY29udGFpbnM9QHNoTG9vcExpc3Qsc2hEYmxQYXJlbixzaERibEJyYWNlCi0gc3luIHJlZ2lvbiBzaENhc2VFc2FjIG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBzdGFydD0iXDxzZWxlY3RcPiIgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIGVuZD0iXDxpblw+IiBlbmQ9Ilw8ZG9cPiIgY29udGFpbnM9QHNoTG9vcExpc3QKKyBzeW4gY2x1c3RlciBzaENhc2VMaXN0CWFkZD1zaFJlcGVhdAorIHN5biBjbHVzdGVyIHNoRnVuY3Rpb25MaXN0CWFkZD1zaFJlcGVhdAorIHN5biByZWdpb24gc2hSZXBlYXQgICBtYXRjaGdyb3VwPXNoTG9vcCAgIHN0YXJ0PSJcPHdoaWxlXF9zIiBlbmQ9Ilw8aW5cX3MiIGVuZD0iXDxkb1w+Im1lPWUtMgljb250YWlucz1Ac2hMb29wTGlzdCxzaERibFBhcmVuLHNoRGJsQnJhY2UKKyBzeW4gcmVnaW9uIHNoUmVwZWF0ICAgbWF0Y2hncm91cD1zaExvb3AgICBzdGFydD0iXDx1bnRpbFxfcyIgZW5kPSJcPGluXF9zIiBlbmQ9Ilw8ZG9cPiJtZT1lLTIJY29udGFpbnM9QHNoTG9vcExpc3Qsc2hEYmxQYXJlbixzaERibEJyYWNlCisgc3luIHJlZ2lvbiBzaENhc2VFc2FjIG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBzdGFydD0iXDxzZWxlY3RccyIgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIGVuZD0iXDxpblw+IiBlbmQ9Ilw8ZG9cPiIgY29udGFpbnM9QHNoTG9vcExpc3QKIGVsc2UKLSBzeW4gcmVnaW9uIHNoUmVwZWF0ICAgbWF0Y2hncm91cD1zaExvb3AgICBzdGFydD0iXDx3aGlsZVw+IiBlbmQ9Ilw8ZG9cPiJtZT1lLTIJCWNvbnRhaW5zPUBzaExvb3BMaXN0Ci0gc3luIHJlZ2lvbiBzaFJlcGVhdCAgIG1hdGNoZ3JvdXA9c2hMb29wICAgc3RhcnQ9Ilw8dW50aWxcPiIgZW5kPSJcPGRvXD4ibWU9ZS0yCQljb250YWlucz1Ac2hMb29wTGlzdAorIHN5biByZWdpb24gc2hSZXBlYXQgICBtYXRjaGdyb3VwPXNoTG9vcCAgIHN0YXJ0PSJcPHdoaWxlXF9zIiBlbmQ9Ilw8ZG9cPiJtZT1lLTIJCWNvbnRhaW5zPUBzaExvb3BMaXN0Cisgc3luIHJlZ2lvbiBzaFJlcGVhdCAgIG1hdGNoZ3JvdXA9c2hMb29wICAgc3RhcnQ9Ilw8dW50aWxcX3MiIGVuZD0iXDxkb1w+Im1lPWUtMgkJY29udGFpbnM9QHNoTG9vcExpc3QKIGVuZGlmCiBzeW4gcmVnaW9uIHNoQ3VybHlJbiAgIGNvbnRhaW5lZAltYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0ieyIgZW5kPSJ9IiBjb250YWlucz1Ac2hDdXJseUxpc3QKIHN5biBtYXRjaCAgc2hDb21tYSAgICAgY29udGFpbmVkCSIsIgogCiAiIENhc2U6IGNhc2UuLi5lc2FjIHt7ezEKICIgPT09PQotc3luIG1hdGNoICAgc2hDYXNlQmFyCWNvbnRhaW5lZCBza2lwd2hpdGUgIltefCJgJygpXVx7LX18ImhzPWUJCW5leHRncm91cD1zaENhc2Usc2hDYXNlU3RhcnQsc2hDYXNlQmFyLHNoQ29tbWVudCxzaENhc2VFeFNpbmdsZVF1b3RlLHNoQ2FzZVNpbmdsZVF1b3RlLHNoQ2FzZURvdWJsZVF1b3RlCitzeW4gbWF0Y2ggICBzaENhc2VCYXIJY29udGFpbmVkIHNraXB3aGl0ZSAiXCheXHxbXlxcXVwpXChcXFxcXCkqXHpzfCIJCW5leHRncm91cD1zaENhc2Usc2hDYXNlU3RhcnQsc2hDYXNlQmFyLHNoQ29tbWVudCxzaENhc2VFeFNpbmdsZVF1b3RlLHNoQ2FzZVNpbmdsZVF1b3RlLHNoQ2FzZURvdWJsZVF1b3RlCiBzeW4gbWF0Y2ggICBzaENhc2VTdGFydAljb250YWluZWQgc2tpcHdoaXRlIHNraXBubCAiKCIJCQluZXh0Z3JvdXA9c2hDYXNlLHNoQ2FzZUJhcgotc3luIHJlZ2lvbiAgc2hDYXNlCWNvbnRhaW5lZCBza2lwd2hpdGUgc2tpcG5sIG1hdGNoZ3JvdXA9c2hTbmdsQ2FzZSBzdGFydD0iXChbXiMkKCknIiBcdF1cfFxcLlwpXHstfSkibXM9cyxocz1lICBlbmQ9Ijs7IiBlbmQ9ImVzYWMibWU9cy0xIGNvbnRhaW5zPUBzaENhc2VMaXN0IG5leHRncm91cD1zaENhc2VTdGFydCxzaENhc2Usc2hDb21tZW50Ci1pZiBnOnNoX2ZvbGRfZW5hYmxlZAorc3luIHJlZ2lvbiAgc2hDYXNlCWNvbnRhaW5lZCBza2lwd2hpdGUgc2tpcG5sIG1hdGNoZ3JvdXA9c2hTbmdsQ2FzZSBzdGFydD0iXCUoXFwuXHxbXiMkKCknIiBcdF1cKVx7LX1cenMpIiAgZW5kPSI7OyIgZW5kPSJlc2FjIm1lPXMtMSBjb250YWlucz1Ac2hDYXNlTGlzdCBuZXh0Z3JvdXA9c2hDYXNlU3RhcnQsc2hDYXNlLHNoQ29tbWVudAoraWYgKGc6c2hfZm9sZF9lbmFibGVkICUgKHM6c2hfZm9sZF9pZmRvZm9yICogMikpL3M6c2hfZm9sZF9pZmRvZm9yCiAgc3luIHJlZ2lvbiAgc2hDYXNlRXNhYwlmb2xkIG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBzdGFydD0iXDxjYXNlXD4iIGVuZD0iXDxlc2FjXD4iCWNvbnRhaW5zPUBzaENhc2VFc2FjTGlzdAogZWxzZQogIHN5biByZWdpb24gIHNoQ2FzZUVzYWMJbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIHN0YXJ0PSJcPGNhc2VcPiIgZW5kPSJcPGVzYWNcPiIJY29udGFpbnM9QHNoQ2FzZUVzYWNMaXN0CkBAIC0yMDYsNyArMjE1LDYgQEAKIHN5biBrZXl3b3JkIHNoQ2FzZUluCWNvbnRhaW5lZCBza2lwd2hpdGUgc2tpcG5sIGluCQkJbmV4dGdyb3VwPXNoQ2FzZSxzaENhc2VTdGFydCxzaENhc2VCYXIsc2hDb21tZW50LHNoQ2FzZUV4U2luZ2xlUXVvdGUsc2hDYXNlU2luZ2xlUXVvdGUsc2hDYXNlRG91YmxlUXVvdGUKIGlmIGV4aXN0cygiYjppc19iYXNoIikKICBzeW4gcmVnaW9uICBzaENhc2VFeFNpbmdsZVF1b3RlCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBzdGFydD0rXCQnKyBza2lwPStcXFxcXHxcXC4rIGVuZD0rJysJY29udGFpbnM9c2hTdHJpbmdTcGVjaWFsLHNoU3BlY2lhbAlza2lwd2hpdGUgc2tpcG5sIG5leHRncm91cD1zaENhc2VCYXIJY29udGFpbmVkCi0gc3luIHJlZ2lvbiAgc2hDYXNlRXhEb3VibGVRdW90ZQltYXRjaGdyb3VwPXNoT3BlcmF0b3Igc3RhcnQ9K1wkIisgc2tpcD0rXFxcXFx8XFwuKyBlbmQ9KyIrCWNvbnRhaW5zPXNoU3RyaW5nU3BlY2lhbCxzaFNwZWNpYWwsc2hDb21tYW5kU3ViLHNoRGVyZWYJc2tpcHdoaXRlIHNraXBubCBuZXh0Z3JvdXA9c2hDYXNlQmFyCWNvbnRhaW5lZAogZWxzZQogIHN5biByZWdpb24gIHNoQ2FzZUV4U2luZ2xlUXVvdGUJbWF0Y2hncm91cD1FcnJvciBzdGFydD0rXCQnKyBza2lwPStcXFxcXHxcXC4rIGVuZD0rJysJY29udGFpbnM9c2hTdHJpbmdTcGVjaWFsCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXNoQ2FzZUJhcgljb250YWluZWQKIGVuZGlmCkBAIC0yMTgsNiArMjI2LDcgQEAKICI9PT09PT0KIHN5biBtYXRjaCAgIHNoV3JhcExpbmVPcGVyYXRvciAiXFwkIgogc3luIHJlZ2lvbiAgc2hDb21tYW5kU3ViICAgc3RhcnQ9ImAiIHNraXA9IlxcXFxcfFxcLiIgZW5kPSJgIiBjb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdAorc3luIG1hdGNoICAgc2hFc2NhcGUJY29udGFpbmVkCSdcXC4nCiAKICIgJCgpIGFuZCAkKCgpKToge3t7MQogIiAkKC4uKSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHNoIChCb3VybmUgc2hlbGwpLiAgSG93ZXZlciwgYXBwYXJlbnRseQpAQCAtMjI3LDcgKzIzNiw3IEBACiAiIGFuIEVycm9yIHVuZGVyIC9iaW4vc2guICBCeSBjb25zZW5zdXMgb2YgdmltZGV2J2VycyEKIGlmIGV4aXN0cygiYjppc19rb3Juc2hlbGwiKSB8fCBleGlzdHMoImI6aXNfYmFzaCIpCiAgc3luIHJlZ2lvbiBzaENvbW1hbmRTdWIgbWF0Y2hncm91cD1zaENtZFN1YlJlZ2lvbiBzdGFydD0iXCQoIiAgc2tpcD0nXFxcXFx8XFwuJyBlbmQ9IikiICBjb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdAotIHN5biByZWdpb24gc2hBcml0aG1ldGljIG1hdGNoZ3JvdXA9c2hBcml0aFJlZ2lvbiAgc3RhcnQ9IlwkKCgiIHNraXA9J1xcXFxcfFxcLicgZW5kPSIpKSIgY29udGFpbnM9QHNoQ29tbWFuZFN1Ykxpc3QKKyBzeW4gcmVnaW9uIHNoQXJpdGhtZXRpYyBtYXRjaGdyb3VwPXNoQXJpdGhSZWdpb24gIHN0YXJ0PSJcJCgoIiBza2lwPSdcXFxcXHxcXC4nIGVuZD0iKSkiIGNvbnRhaW5zPUBzaEFyaXRoTGlzdAogIHN5biBtYXRjaCAgc2hTa2lwSW5pdFdTIGNvbnRhaW5lZAkiXlxzXCsiCiBlbHNlCiAgc3luIHJlZ2lvbiBzaENvbW1hbmRTdWIgbWF0Y2hncm91cD1FcnJvciBzdGFydD0iXCQoIiBlbmQ9IikiIGNvbnRhaW5zPUBzaENvbW1hbmRTdWJMaXN0CkBAIC0yNjEsNyArMjcwLDYgQEAKIGVuZGlmCiBpZiBleGlzdHMoImI6aXNfYmFzaCIpCiAgc3luIHJlZ2lvbiAgc2hFeFNpbmdsZVF1b3RlCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBzdGFydD0rXCQnKyBza2lwPStcXFxcXHxcXC4rIGVuZD0rJysJY29udGFpbnM9c2hTdHJpbmdTcGVjaWFsLHNoU3BlY2lhbAotIHN5biByZWdpb24gIHNoRXhEb3VibGVRdW90ZQltYXRjaGdyb3VwPXNoT3BlcmF0b3Igc3RhcnQ9K1wkIisgc2tpcD0rXFxcXFx8XFwuKyBlbmQ9KyIrCWNvbnRhaW5zPXNoU3RyaW5nU3BlY2lhbCxzaFNwZWNpYWwsc2hDb21tYW5kU3ViLHNoRGVyZWYKIGVsc2UKICBzeW4gcmVnaW9uICBzaEV4U2luZ2xlUXVvdGUJbWF0Y2hHcm91cD1FcnJvciBzdGFydD0rXCQnKyBza2lwPStcXFxcXHxcXC4rIGVuZD0rJysJY29udGFpbnM9c2hTdHJpbmdTcGVjaWFsCiBlbmRpZgpAQCAtMjc3LDcgKzI4NSw4IEBACiBzeW4gY2x1c3RlciAgICBzaENvbW1lbnRHcm91cAljb250YWlucz1zaFRvZG8sQFNwZWxsCiBzeW4ga2V5d29yZCAgICBzaFRvZG8JY29udGFpbmVkCUNPTUJBSyBGSVhNRSBUT0RPIFhYWAogc3luIG1hdGNoICAgICAgc2hDb21tZW50CSJeXHMqXHpzIy4qJCIJY29udGFpbnM9QHNoQ29tbWVudEdyb3VwCi1zeW4gbWF0Y2ggICAgICBzaENvbW1lbnQJIiMuKiQiCWNvbnRhaW5zPUBzaENvbW1lbnRHcm91cAorc3luIG1hdGNoICAgICAgc2hDb21tZW50CSJcc1x6cyMuKiQiCWNvbnRhaW5zPUBzaENvbW1lbnRHcm91cAorc3luIG1hdGNoICAgICAgc2hRdWlja0NvbW1lbnQJY29udGFpbmVkCSIjLiokIgogCiAiIEhlcmUgRG9jdW1lbnRzOiB7e3sxCiAiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0yODksNyArMjk4LDcgQEAKICBzeW4gcmVnaW9uIHNoSGVyZURvYyBtYXRjaGdyb3VwPXNoUmVkaXIgc3RhcnQ9Ijw8XHMqXCoqXC5cKioiCW1hdGNoZ3JvdXA9c2hSZWRpcgllbmQ9Il5cLiQiCWNvbnRhaW5zPUBzaERibFF1b3RlTGlzdAogIHN5biByZWdpb24gc2hIZXJlRG9jIG1hdGNoZ3JvdXA9c2hSZWRpciBzdGFydD0iPDwtXHMqXCoqXC5cKioiCW1hdGNoZ3JvdXA9c2hSZWRpcgllbmQ9Il5ccypcLiQiCWNvbnRhaW5zPUBzaERibFF1b3RlTGlzdAogCi1lbHNlaWYgZzpzaF9mb2xkX2VuYWJsZWQKK2Vsc2VpZiAoZzpzaF9mb2xkX2VuYWJsZWQgJSAoczpzaF9mb2xkX2hlcmVkb2MgKiAyKSkvczpzaF9mb2xkX2hlcmVkb2MKICBzeW4gcmVnaW9uIHNoSGVyZURvYyBtYXRjaGdyb3VwPXNoUmVkaXIgZm9sZCBzdGFydD0iPDxccypceihcUypcKSIJCW1hdGNoZ3JvdXA9c2hSZWRpciBlbmQ9Il5cejFccyokIgljb250YWlucz1Ac2hEYmxRdW90ZUxpc3QKICBzeW4gcmVnaW9uIHNoSGVyZURvYyBtYXRjaGdyb3VwPXNoUmVkaXIgZm9sZCBzdGFydD0iPDxccypcIlx6KFxTKlwpXCIiCQltYXRjaGdyb3VwPXNoUmVkaXIgZW5kPSJeXHoxXHMqJCIKICBzeW4gcmVnaW9uIHNoSGVyZURvYyBtYXRjaGdyb3VwPXNoUmVkaXIgZm9sZCBzdGFydD0iPDxccyonXHooXFMqXCknIgkJbWF0Y2hncm91cD1zaFJlZGlyIGVuZD0iXlx6MVxzKiQiCkBAIC0zMjgsMzIgKzMzNyw0MCBAQAogCiAiIElkZW50aWZpZXJzOiB7e3sxCiAiPT09PT09PT09PT09PQotc3luIG1hdGNoICBzaFZhcmlhYmxlICJcPFwoW2J3Z2xzYXZdOlwpXD1bYS16QS1aMC05LiFAXyUrLF0qXHplPSIJbmV4dGdyb3VwPXNoU2V0SWRlbnRpZmllcgotc3luIG1hdGNoICBzaElkV2hpdGVTcGFjZSAgY29udGFpbmVkCSJccyIKLXN5biBtYXRjaCAgc2hTZXRJZGVudGlmaWVyIGNvbnRhaW5lZAkiPSIJbmV4dGdyb3VwPXNoUGF0dGVybixzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hEb3VibGVRdW90ZSxzaFNpbmdsZVF1b3RlLHNoRXhTaW5nbGVRdW90ZQorc3luIG1hdGNoICBzaFNldE9wdGlvbgkiXHNcenNbLStdW2EtekEtWjAtOV1cK1w+Igljb250YWluZWQKK3N5biBtYXRjaCAgc2hWYXJpYWJsZQkiXDxcKFtid2dsc2F2XTpcKVw9W2EtekEtWjAtOS4hQF8lKyxdKlx6ZT0iCW5leHRncm91cD1zaFNldElkZW50aWZpZXIKK3N5biBtYXRjaCAgc2hTZXRJZGVudGlmaWVyCSI9IgkJY29udGFpbmVkCW5leHRncm91cD1zaFBhdHRlcm4sc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRG91YmxlUXVvdGUsc2hTaW5nbGVRdW90ZSxzaEV4U2luZ2xlUXVvdGUKIGlmIGV4aXN0cygiYjppc19iYXNoIikKLSAgc3luIHJlZ2lvbiBzaFNldExpc3QgbWF0Y2hncm91cD1zaFNldCBzdGFydD0iXDxcKGRlY2xhcmVcfHR5cGVzZXRcfGxvY2FsXHxleHBvcnRcfHVuc2V0XClcPlx6ZVteL10iIGVuZD0iJCIJbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iXHplW3wpOyZdIm1lPWUtMSBtYXRjaGdyb3VwPU5PTkUgZW5kPSIjXHw9Im1lPWUtMSBjb250YWlucz1Ac2hJZExpc3QKLSAgc3luIHJlZ2lvbiBzaFNldExpc3QgbWF0Y2hncm91cD1zaFNldCBzdGFydD0iXDxzZXRcPlteL10ibWU9ZS0xIGVuZD0iJCIgZW5kPSJcXHplW3wpXSIJCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9Ilx6ZVt8KTsmXSJtZT1lLTEgbWF0Y2hncm91cD1OT05FIGVuZD0iWyM9XSJtZT1lLTEgY29udGFpbnM9QHNoSWRMaXN0Ci0gIHN5biBtYXRjaCAgc2hTZXQgIlw8XChkZWNsYXJlXHx0eXBlc2V0XHxsb2NhbFx8ZXhwb3J0XHxzZXRcfHVuc2V0XClcPiIKKyBzeW4gcmVnaW9uIHNoU2V0TGlzdCBvbmVsaW5lIG1hdGNoZ3JvdXA9c2hTZXQgc3RhcnQ9Ilw8XChkZWNsYXJlXHx0eXBlc2V0XHxsb2NhbFx8ZXhwb3J0XHx1bnNldFwpXD5cemVbXi9dIiBlbmQ9IiQiCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9Ilx6ZVt9fCk7Jl0iIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ilx6ZSNcfD0iIGNvbnRhaW5zPUBzaElkTGlzdAorIHN5biByZWdpb24gc2hTZXRMaXN0IG9uZWxpbmUgbWF0Y2hncm91cD1zaFNldCBzdGFydD0iXDxzZXRcPlx6ZVteL10iIGVuZD0iXHplWzt8KV1cfCQiCQkJbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iXHplW318KTsmXSIgbWF0Y2hncm91cD1OT05FIGVuZD0iXHplWyM9XSIgY29udGFpbnM9QHNoSWRMaXN0CiBlbHNlaWYgZXhpc3RzKCJiOmlzX2tvcm5zaGVsbCIpCi0gIHN5biByZWdpb24gc2hTZXRMaXN0IG1hdGNoZ3JvdXA9c2hTZXQgc3RhcnQ9Ilw8XCh0eXBlc2V0XHxleHBvcnRcfHVuc2V0XClcPlx6ZVteL10iIGVuZD0iJCIJCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9Ilx6ZVt8KTsmXSJtZT1lLTEgbWF0Y2hncm91cD1OT05FIGVuZD0iWyM9XSJtZT1lLTEgY29udGFpbnM9QHNoSWRMaXN0Ci0gIHN5biByZWdpb24gc2hTZXRMaXN0IG1hdGNoZ3JvdXA9c2hTZXQgc3RhcnQ9Ilw8c2V0XD5cemVbXi9dIiBlbmQ9IiRcfFx6ZVt9KV0iCQkJbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iXHplW3wpOyZdIm1lPWUtMSBtYXRjaGdyb3VwPU5PTkUgZW5kPSJbIz1dIm1lPWUtMSBjb250YWlucz1Ac2hJZExpc3QKLSAgc3luIG1hdGNoICBzaFNldCAiXDxcKHR5cGVzZXRcfHNldFx8ZXhwb3J0XHx1bnNldFwpXD4iCisgc3luIHJlZ2lvbiBzaFNldExpc3Qgb25lbGluZSBtYXRjaGdyb3VwPXNoU2V0IHN0YXJ0PSJcPFwodHlwZXNldFx8ZXhwb3J0XHx1bnNldFwpXD5cemVbXi9dIiBlbmQ9IiQiCQltYXRjaGdyb3VwPXNoT3BlcmF0b3IgZW5kPSJcemVbfXwpOyZdIiBtYXRjaGdyb3VwPU5PTkUgZW5kPSJcemVbIz1dIiBjb250YWlucz1Ac2hJZExpc3QKKyBzeW4gcmVnaW9uIHNoU2V0TGlzdCBvbmVsaW5lIG1hdGNoZ3JvdXA9c2hTZXQgc3RhcnQ9Ilw8c2V0XD5cemVbXi9dIiBlbmQ9IiQiCQkJCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9Ilx6ZVt9fCk7Jl0iIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ilx6ZVsjPV0iIGNvbnRhaW5zPUBzaElkTGlzdAogZWxzZQotICBzeW4gcmVnaW9uIHNoU2V0TGlzdCBtYXRjaGdyb3VwPXNoU2V0IHN0YXJ0PSJcPFwoc2V0XHxleHBvcnRcfHVuc2V0XClcPlx6ZVteL10iIGVuZD0iJFx8XHplW3wpXSIJbWF0Y2hncm91cD1zaE9wZXJhdG9yIGVuZD0iXHplW3wpOyZdIiBtYXRjaGdyb3VwPU5PTkUgZW5kPSJbIz1dIm1lPWUtMSBjb250YWlucz1Ac2hJZExpc3QKLSAgc3luIG1hdGNoICBzaFN0YXRlbWVudCAiXDxcKHNldFx8ZXhwb3J0XHx1bnNldFwpXD4iCisgc3luIHJlZ2lvbiBzaFNldExpc3Qgb25lbGluZSBtYXRjaGdyb3VwPXNoU2V0IHN0YXJ0PSJcPFwoc2V0XHxleHBvcnRcfHVuc2V0XClcPlx6ZVteL10iIGVuZD0iJCIJCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBlbmQ9Ilx6ZVt9fCk7Jl0iIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ilx6ZVsjPV0iIGNvbnRhaW5zPUBzaElkTGlzdAogZW5kaWYKIAogIiBGdW5jdGlvbnM6IHt7ezEKLXN5biBrZXl3b3JkIHNoRnVuY3Rpb25LZXkgZnVuY3Rpb24Jc2tpcHdoaXRlIHNraXBubCBuZXh0Z3JvdXA9c2hGdW5jdGlvblR3bwotIiBDT01CQUsgLS0gbG9vayBhdCBiYXNoMDkuICBmdW5jdGlvbiBmb28oKSAobGluZSMzNSkgaXMgZm9sZGluZyAzOCBsaW5lcy4gIE5vdCBiZWluZyB0ZXJtaW5hdGVkIHByb3Blcmx5Ci0ic3luIG1hdGNoICAgc2hGdW5jdGlvblN0YXJ0CSJ7Igljb250YWluZWQKLWlmIGc6c2hfZm9sZF9lbmFibGVkCi0gc3luIHJlZ2lvbiBzaEZ1bmN0aW9uT25lIHRyYW5zcGFyZW50IGZvbGQJc3RhcnQ9Il5ccypcaFx3KlxzKigpXF9zKlx6ZXsiICAgIG1hdGNoZ3JvdXA9c2hGdW5jdGlvblN0YXJ0IGVuZD0ifSIJY29udGFpbnM9QHNoRnVuY3Rpb25MaXN0CQkJc2tpcHdoaXRlIHNraXBubCBuZXh0Z3JvdXA9c2hGdW5jdGlvblN0YXJ0Ci0gc3luIHJlZ2lvbiBzaEZ1bmN0aW9uVHdvIHRyYW5zcGFyZW50IGZvbGQJc3RhcnQ9IlxoXHcqXHMqXCUoKClcKVw9XF9zKlx6ZXsiIG1hdGNoZ3JvdXA9c2hGdW5jdGlvblN0YXJ0IGVuZD0ifSIJY29udGFpbnM9c2hGdW5jdGlvbktleSxAc2hGdW5jdGlvbkxpc3QgY29udGFpbmVkCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXNoRnVuY3Rpb25TdGFydAoraWYgIWV4aXN0cygiZzppc19wb3NpeCIpCisgc3luIGtleXdvcmQgc2hGdW5jdGlvbktleSBmdW5jdGlvbglza2lwd2hpdGUgc2tpcG5sIG5leHRncm91cD1zaEZ1bmN0aW9uVHdvCitlbmRpZgorCitpZiBleGlzdHMoImI6aXNfYmFzaCIpCisgaWYgKGc6c2hfZm9sZF9lbmFibGVkICUgKHM6c2hfZm9sZF9mdW5jdGlvbnMgKiAyKSkvczpzaF9mb2xkX2Z1bmN0aW9ucworICBzeW4gcmVnaW9uIHNoRnVuY3Rpb25PbmUgZm9sZAltYXRjaGdyb3VwPXNoRnVuY3Rpb24gc3RhcnQ9Il5ccypcaFstYS16QS1aXzAtOV0qXHMqKClcX3MqeyIgZW5kPSJ9Igljb250YWlucz1Ac2hGdW5jdGlvbkxpc3QJCQlza2lwd2hpdGUgc2tpcG5sIG5leHRncm91cD1zaEZ1bmN0aW9uU3RhcnQsc2hRdWlja0NvbW1lbnQKKyAgc3luIHJlZ2lvbiBzaEZ1bmN0aW9uVHdvIGZvbGQJbWF0Y2hncm91cD1zaEZ1bmN0aW9uIHN0YXJ0PSJcaFstYS16QS1aXzAtOV0qXHMqXCUoKClcKVw9XF9zKnsiCWVuZD0ifSIJY29udGFpbnM9c2hGdW5jdGlvbktleSxAc2hGdW5jdGlvbkxpc3QgY29udGFpbmVkCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXNoRnVuY3Rpb25TdGFydCxzaFF1aWNrQ29tbWVudAorIGVsc2UKKyAgc3luIHJlZ2lvbiBzaEZ1bmN0aW9uT25lCW1hdGNoZ3JvdXA9c2hGdW5jdGlvbiBzdGFydD0iXlxzKlxoWy1hLXpBLVpfMC05XSpccyooKVxfcyp7IgllbmQ9In0iCWNvbnRhaW5zPUBzaEZ1bmN0aW9uTGlzdAorICBzeW4gcmVnaW9uIHNoRnVuY3Rpb25Ud28JbWF0Y2hncm91cD1zaEZ1bmN0aW9uIHN0YXJ0PSJcaFstYS16QS1aXzAtOV0qXHMqXCUoKClcKVw9XF9zKnsiCWVuZD0ifSIJY29udGFpbnM9c2hGdW5jdGlvbktleSxAc2hGdW5jdGlvbkxpc3QgY29udGFpbmVkCisgZW5kaWYKIGVsc2UKLSBzeW4gcmVnaW9uIHNoRnVuY3Rpb25PbmUgdHJhbnNwYXJlbnQJc3RhcnQ9Il5ccypcaFx3KlxzKigpXF9zKlx6ZXsiICAgIG1hdGNoZ3JvdXA9c2hGdW5jdGlvblN0YXJ0IGVuZD0ifSIJY29udGFpbnM9QHNoRnVuY3Rpb25MaXN0Ci0gc3luIHJlZ2lvbiBzaEZ1bmN0aW9uVHdvIHRyYW5zcGFyZW50CXN0YXJ0PSJcaFx3KlxzKlwlKCgpXClcPVxfcypcemV7IiBtYXRjaGdyb3VwPXNoRnVuY3Rpb25TdGFydCBlbmQ9In0iCWNvbnRhaW5zPXNoRnVuY3Rpb25LZXksQHNoRnVuY3Rpb25MaXN0IGNvbnRhaW5lZAorIGlmIChnOnNoX2ZvbGRfZW5hYmxlZCAlIChzOnNoX2ZvbGRfZnVuY3Rpb25zICogMikpL3M6c2hfZm9sZF9mdW5jdGlvbnMKKyAgc3luIHJlZ2lvbiBzaEZ1bmN0aW9uT25lIGZvbGQJbWF0Y2hncm91cD1zaEZ1bmN0aW9uIHN0YXJ0PSJeXHMqXGhcdypccyooKVxfcyp7IiBlbmQ9In0iCWNvbnRhaW5zPUBzaEZ1bmN0aW9uTGlzdAkJCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXNoRnVuY3Rpb25TdGFydCxzaFF1aWNrQ29tbWVudAorICBzeW4gcmVnaW9uIHNoRnVuY3Rpb25Ud28gZm9sZAltYXRjaGdyb3VwPXNoRnVuY3Rpb24gc3RhcnQ9IlxoXHcqXHMqXCUoKClcKVw9XF9zKnsiCWVuZD0ifSIJY29udGFpbnM9c2hGdW5jdGlvbktleSxAc2hGdW5jdGlvbkxpc3QgY29udGFpbmVkCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXNoRnVuY3Rpb25TdGFydCxzaFF1aWNrQ29tbWVudAorIGVsc2UKKyAgc3luIHJlZ2lvbiBzaEZ1bmN0aW9uT25lCW1hdGNoZ3JvdXA9c2hGdW5jdGlvbiBzdGFydD0iXlxzKlxoXHcqXHMqKClcX3MqeyIJZW5kPSJ9Igljb250YWlucz1Ac2hGdW5jdGlvbkxpc3QKKyAgc3luIHJlZ2lvbiBzaEZ1bmN0aW9uVHdvCW1hdGNoZ3JvdXA9c2hGdW5jdGlvbiBzdGFydD0iXGhcdypccypcJSgoKVwpXD1cX3MqeyIJZW5kPSJ9Igljb250YWlucz1zaEZ1bmN0aW9uS2V5LEBzaEZ1bmN0aW9uTGlzdCBjb250YWluZWQKKyBlbmRpZgogZW5kaWYKIAogIiBQYXJhbWV0ZXIgRGVyZWZlcmVuY2luZzoge3t7MQpAQCAtMzY1LDYgKzM4Miw3IEBACiBzeW4gbWF0Y2ggIHNoRGVyZWZTaW1wbGUJIlwkXCQiCiBpZiBleGlzdHMoImI6aXNfYmFzaCIpIHx8IGV4aXN0cygiYjppc19rb3Juc2hlbGwiKQogIHN5biByZWdpb24gc2hEZXJlZgltYXRjaGdyb3VwPVByZVByb2Mgc3RhcnQ9IlwkeyMjXD0iIGVuZD0ifSIJY29udGFpbnM9QHNoRGVyZWZMaXN0Cisgc3luIHJlZ2lvbiBzaERlcmVmCW1hdGNoZ3JvdXA9UHJlUHJvYyBzdGFydD0iXCR7XCRcJCIgZW5kPSJ9Igljb250YWlucz1Ac2hEZXJlZkxpc3QKIGVuZGlmCiAKICIgYmFzaDogJHshcHJlZml4Kn0gYW5kICR7I3BhcmFtZXRlcn06IHt7ezEKQEAgLTQwMSw5ICs0MTksOSBAQAogIHN5biByZWdpb24gc2hEZXJlZlBhdHRlcm4JY29udGFpbmVkCXN0YXJ0PSJ7IiBlbmQ9In0iCWNvbnRhaW5zPXNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaERlcmVmU3RyaW5nLHNoQ29tbWFuZFN1YiBuZXh0Z3JvdXA9c2hEZXJlZlBhdHRlcm4KICBzeW4gbWF0Y2ggIHNoRGVyZWZFc2NhcGUJY29udGFpbmVkCSdcJShcXFxcXCkqXFwuJwogZW5kaWYKLXN5biByZWdpb24gc2hEZXJlZlN0cmluZwljb250YWluZWQJbWF0Y2hncm91cD1zaE9wZXJhdG9yIHN0YXJ0PSsnKyBlbmQ9KycrCQljb250YWlucz1zaFN0cmluZ1NwZWNpYWwKLXN5biByZWdpb24gc2hEZXJlZlN0cmluZwljb250YWluZWQJbWF0Y2hncm91cD1zaE9wZXJhdG9yIHN0YXJ0PSsiKyBza2lwPStcXCIrIGVuZD0rIisJY29udGFpbnM9QHNoRGJsUXVvdGVMaXN0LHNoU3RyaW5nU3BlY2lhbAotc3luIG1hdGNoICBzaERlcmVmU3RyaW5nCWNvbnRhaW5lZAkiXFxbIiddIgorc3luIHJlZ2lvbiBzaERlcmVmU3RyaW5nCWNvbnRhaW5lZAltYXRjaGdyb3VwPXNoT3BlcmF0b3Igc3RhcnQ9K1wlKFxcXClcQDwhJysgZW5kPSsnKwkJY29udGFpbnM9c2hTdHJpbmdTcGVjaWFsCitzeW4gcmVnaW9uIHNoRGVyZWZTdHJpbmcJY29udGFpbmVkCW1hdGNoZ3JvdXA9c2hPcGVyYXRvciBzdGFydD0rXCUoXFxcKVxAPCEiKyBza2lwPStcXCIrIGVuZD0rIisJY29udGFpbnM9QHNoRGJsUXVvdGVMaXN0LHNoU3RyaW5nU3BlY2lhbAorc3luIG1hdGNoICBzaERlcmVmU3RyaW5nCWNvbnRhaW5lZAkiXFxbIiddIgluZXh0Z3JvdXA9c2hEZXJlZlBhdHRlcm4KIAogaWYgZXhpc3RzKCJiOmlzX2Jhc2giKQogICIgYmFzaCA6ICR7cGFyYW1ldGVyOm9mZnNldH0KQEAgLTQxOCw2ICs0MzYsOSBAQAogIHN5biByZWdpb24gc2hEZXJlZlBQU3JpZ2h0CWNvbnRhaW5lZAlzdGFydD0nLicJZW5kPSdcemV9Jwljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdAogZW5kaWYKIAorIiBBcml0aG1ldGljIFBhcmVudGhlc2l6ZWQgRXhwcmVzc2lvbnM6IHt7ezEKK3N5biByZWdpb24gc2hQYXJlbiBtYXRjaGdyb3VwPXNoQXJpdGhSZWdpb24gc3RhcnQ9JyhcemVbXihdJyBlbmQ9JyknIGNvbnRhaW5zPUBzaEFyaXRoUGFyZW5MaXN0CisKICIgVXNlZnVsIHNoIEtleXdvcmRzOiB7e3sxCiAiID09PT09PT09PT09PT09PT09PT0KIHN5biBrZXl3b3JkIHNoU3RhdGVtZW50IGJyZWFrIGNkIGNoZGlyIGNvbnRpbnVlIGV2YWwgZXhlYyBleGl0IGtpbGwgbmV3Z3JwIHB3ZCByZWFkIHJlYWRvbmx5IHJldHVybiBzaGlmdCB0ZXN0IHRyYXAgdWxpbWl0IHVtYXNrIHdhaXQKQEAgLTQyNyw3ICs0NDgsMTIgQEAKICIgVXNlZnVsIGtzaCBLZXl3b3Jkczoge3t7MQogIiA9PT09PT09PT09PT09PT09PT09PQogaWYgZXhpc3RzKCJiOmlzX2tvcm5zaGVsbCIpIHx8IGV4aXN0cygiYjppc19iYXNoIikKLSBzeW4ga2V5d29yZCBzaFN0YXRlbWVudCBhdXRvbG9hZCBiZyBmYWxzZSBmYyBmZyBmdW5jdGlvbnMgZ2V0b3B0cyBoYXNoIGhpc3RvcnkgaW50ZWdlciBqb2JzIGxldCBub2h1cCBwcmludCBwcmludGYgciBzdG9wIHN1c3BlbmQgdGltZSB0aW1lcyB0cnVlIHR5cGUgdW5hbGlhcyB3aGVuY2UKKyBzeW4ga2V5d29yZCBzaFN0YXRlbWVudCBhdXRvbG9hZCBiZyBmYWxzZSBmYyBmZyBmdW5jdGlvbnMgZ2V0b3B0cyBoYXNoIGhpc3RvcnkgaW50ZWdlciBqb2JzIGxldCBub2h1cCBwcmludCBwcmludGYgciBzdG9wIHN1c3BlbmQgdGltZXMgdHJ1ZSB0eXBlIHVuYWxpYXMgd2hlbmNlCisgaWYgZXhpc3RzKCJnOmlzX3Bvc2l4IikKKyAgc3luIGtleXdvcmQgc2hTdGF0ZW1lbnQgY29tbWFuZAorIGVsc2UKKyAgc3luIGtleXdvcmQgc2hTdGF0ZW1lbnQgdGltZQorIGVuZGlmCiAKICIgVXNlZnVsIGJhc2ggS2V5d29yZHM6IHt7ezEKICIgPT09PT09PT09PT09PT09PT09PT09CkBAIC00NjcsNyArNDkzLDYgQEAKIGhpIGRlZiBsaW5rIHNoQ2FzZURvdWJsZVF1b3RlCXNoRG91YmxlUXVvdGUKIGhpIGRlZiBsaW5rIHNoQ2FzZUluCXNoQ29uZGl0aW9uYWwKIGhpIGRlZiBsaW5rIHNoQ2FzZVNpbmdsZVF1b3RlCXNoU2luZ2xlUXVvdGUKLWhpIGRlZiBsaW5rIHNoQ2FzZURvdWJsZVF1b3RlCXNoU2luZ2xlUXVvdGUKIGhpIGRlZiBsaW5rIHNoQ2FzZVN0YXJ0CXNoQ29uZGl0aW9uYWwKIGhpIGRlZiBsaW5rIHNoQ21kU3ViUmVnaW9uCXNoU2hlbGxWYXJpYWJsZXMKIGhpIGRlZiBsaW5rIHNoQ29sb24Jc2hTdGF0ZW1lbnQKQEAgLTQ4MSwxOCArNTA2LDIyIEBACiBoaSBkZWYgbGluayBzaERlcmVmVmFyCXNoRGVyZWYKIGhpIGRlZiBsaW5rIHNoRG91YmxlUXVvdGUJc2hTdHJpbmcKIGhpIGRlZiBsaW5rIHNoRWNobwlzaFN0cmluZworaGkgZGVmIGxpbmsgc2hFY2hvUXVvdGUJc2hTdHJpbmcKIGhpIGRlZiBsaW5rIHNoRW1iZWRkZWRFY2hvCXNoU3RyaW5nCitoaSBkZWYgbGluayBzaEVzY2FwZQlzaENvbW1hbmRTdWIKIGhpIGRlZiBsaW5rIHNoRXhTaW5nbGVRdW90ZQlzaFNpbmdsZVF1b3RlCi1oaSBkZWYgbGluayBzaEV4RG91YmxlUXVvdGUJc2hTaW5nbGVRdW90ZQotaGkgZGVmIGxpbmsgc2hGdW5jdGlvblN0YXJ0CURlbGltaXRlcgoraGkgZGVmIGxpbmsgc2hGdW5jdGlvbglGdW5jdGlvbgogaGkgZGVmIGxpbmsgc2hIZXJlRG9jCXNoU3RyaW5nCiBoaSBkZWYgbGluayBzaEhlcmVQYXlsb2FkCXNoSGVyZURvYwogaGkgZGVmIGxpbmsgc2hMb29wCXNoU3RhdGVtZW50CiBoaSBkZWYgbGluayBzaE9wdGlvbglzaENvbW1hbmRTdWIKIGhpIGRlZiBsaW5rIHNoUGF0dGVybglzaFN0cmluZworaGkgZGVmIGxpbmsgc2hQYXJlbglzaEFyaXRobWV0aWMKIGhpIGRlZiBsaW5rIHNoUG9zblBhcm0Jc2hTaGVsbFZhcmlhYmxlcworaGkgZGVmIGxpbmsgc2hRdWlja0NvbW1lbnQJc2hDb21tZW50CiBoaSBkZWYgbGluayBzaFJhbmdlCXNoT3BlcmF0b3IKIGhpIGRlZiBsaW5rIHNoUmVkaXIJc2hPcGVyYXRvcgoraGkgZGVmIGxpbmsgc2hTZXRPcHRpb24Jc2hPcHRpb24KIGhpIGRlZiBsaW5rIHNoU2luZ2xlUXVvdGUJc2hTdHJpbmcKIGhpIGRlZiBsaW5rIHNoU291cmNlCXNoT3BlcmF0b3IKIGhpIGRlZiBsaW5rIHNoU3RyaW5nU3BlY2lhbAlzaFNwZWNpYWwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3ZpbS52aW0gYi9ydW50aW1lL3N5bnRheC92aW0udmltCmluZGV4IGJiZjMxZjcuLmMyMjBmOWQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3ZpbS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvdmltLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCi0iIExhbmd1YWdlOglWaW0gNy4xIHNjcmlwdAorIiBMYW5ndWFnZToJVmltIDcuMiBzY3JpcHQKICIgTWFpbnRhaW5lcjoJRHIuIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiA8TmRyT2NoaXBTQFBjYW1wYmVsbEFmYW1pbHkuTWJpej4KLSIgTGFzdCBDaGFuZ2U6CUFwciAwOCwgMjAwOAotIiBWZXJzaW9uOgk3LjEtNzcKKyIgTGFzdCBDaGFuZ2U6CUp1bCAxMCwgMjAwOAorIiBWZXJzaW9uOgk3LjItNzkrCiAiIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGtleXdvcmQgbGlzdHM6IHt7ezEKIAogIiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQge3t7MgpAQCAtMjUsMTIgKzI1LDEyIEBACiAKICIgdmltT3B0aW9ucyBhcmUgY2F1Z2h0IG9ubHkgd2hlbiBjb250YWluZWQgaW4gYSB2aW1TZXQge3t7Mgogc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlhY2QgYW1iaXdpZHRoIGFyYWJpY3NoYXBlIGF1dG93cml0ZWFsbCBiYWNrdXBkaXIgYmRsYXkgYmluYXJ5IGJyZWFrYXQgYnVmaGlkZGVuIGNkcGF0aCBjaW4gY2lud29yZHMgY29sdW1ucyBjb21wbGV0ZW9wdCBjcG8gY3Njb3BldGFnb3JkZXIgY3N2ZXJiIGRlY28gZGljdGlvbmFyeSBkaXJlY3RvcnkgZWQgZW5jb2RpbmcgZXJyb3JmaWxlIGV4cmMgZmRscyBmZW5jcyBmaWxlZm9ybWF0cyBmbXIgZm9sZGxldmVsIGZvbGR0ZXh0IGZzeW5jIGdmcyBndGwgZ3Vpb3B0aW9ucyBoZiBoayBobHNlYXJjaCBpbWFrIGltcyBpbmRlbnRleHByIGlzIGlzcCBrZXl3b3JkcHJnIGxhenlyZWRyYXcgbGlzcHdvcmRzIGxzIG1ha2VlZiBtYXhtYXBkZXB0aCBtZmQgbW1kIG1vZGlmaWVkIG1vdXNlbW9kZWwgbXNtIG51bWJlcndpZHRoIG9wZXJhdG9yZnVuYyBwYXN0ZXRvZ2dsZSBwZXhwciBwbWJmbiBwcmludGV4cHIgcHQgcmVhZG9ubHkgcmlnaHRsZWZ0IHJ0cCBzYiBzY3JvbGwgc2VjdCBzZXNzaW9ub3B0aW9ucyBzaGVsbHBpcGUgc2hlbGx4cXVvdGUgc2hvd2JyZWFrIHNocSBzbG0gc21kIHNwYyBzcGYgc3Igc3RhIHN0cyBzd2FwZmlsZSBzeHEgdGFicGFnZW1heCB0YWdzIHRiaXMgdGVyc2UgdGhlc2F1cnVzIHRpdGxlb2xkIHRvb2xiYXJpY29uc2l6ZSB0c3IgdHR5ZmFzdCB0eCB1dCB2ZXJib3NlZmlsZSB2aXJ0dWFsZWRpdCB3YiB3Zncgd2lsZGNoYXJtIHdpbmFsdGtleXMgd2lubWlud2lkdGggd21udSB3cml0ZQotc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlhaSBhbWJ3IGFyaSBhdyBiYWNrdXBleHQgYmV2YWwgYmlvc2sgYnJrIGJ1Zmxpc3RlZCBjZWRpdCBjaW5kZW50IGNsaXBib2FyZCBjb20gY29uZmlybSBjcG9wdGlvbnMgY3Njb3BldmVyYm9zZSBjdWMgZGVmIGRpZmYgZGlzcGxheSBlZGNvbXBhdGlibGUgZW5kb2ZsaW5lIGVycm9yZm9ybWF0IGZjbCBmZG0gZmV4IGZpbGV0eXBlIGZvIGZvbGRsZXZlbHN0YXJ0IGZvcm1hdGV4cHIgZnQgZ2Z3IGd0dCBndWlwdHkgaGggaGttYXAgaWMgaW1jIGltc2VhcmNoIGluZGVudGtleXMgaXNmIGlzcHJpbnQga20gbGJyIGxpc3QgbHNwIG1ha2VwcmcgbWF4bWVtIG1oIG1tcCBtb3JlIG1vdXNlcyBtenEgbnV3IG9wZnVuYyBwYXRjaGV4cHIgcGZuIHBvcHQgcHJpbnRmb250IHB1bWhlaWdodCByZW1hcCByaWdodGxlZnRjbWQgcnUgc2JvIHNjcm9sbGJpbmQgc2VjdGlvbnMgc2Z0IHNoZWxscXVvdGUgc2hpZnRyb3VuZCBzaG93Y21kIHNpIHNtIHNuIHNwZWxsIHNwbCBzcnIgc3RhbCBzdSBzd2Fwc3luYyBzeW4gdGFic3RvcCB0YWdzdGFjayB0YnMgdGV4dGF1dG8gdGlsZGVvcCB0aXRsZXN0cmluZyB0b3AgdHRpbWVvdXQgdHR5bSB1YyB2YiB2ZmlsZSB2aXN1YWxiZWxsIHdjIHdoIHdpbGRpZ25vcmUgd2luZG93IHdpbndpZHRoIHdtdyB3cml0ZWFueQotc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlha20gYW50aSBhcnNoYXBlIGF3YSBiYWNrdXBza2lwIGJleCBiaW9za2V5IGJyb3dzZWRpciBidWZ0eXBlIGNmIGNpbmsgY21kaGVpZ2h0IGNvbW1lbnRzIGNvbnNrIGNwdCBjc3BjIGN1bCBkZWZpbmUgZGlmZmV4cHIgZHkgZWYgZW9sIGVzY2tleXMgZmNzIGZkbiBmZiBmaWxsY2hhcnMgZm9sZGNsb3NlIGZvbGRtYXJrZXIgZm9ybWF0bGlzdHBhdCBnY3IgZ2hyIGd1aWN1cnNvciBndWl0YWJsYWJlbCBoaSBoa21hcHAgaWNvbiBpbWNtZGxpbmUgaW5jIGluZGsgaXNmbmFtZSBqb2luc3BhY2VzIGttcCBsY3MgbGlzdGNoYXJzIGx3IG1hdCBtYXhtZW1wYXR0ZXJuIG1pcyBtbXQgbW91c2UgbW91c2VzaGFwZSBtenF1YW50dW0gb2RldiBvc2ZpbGV0eXBlIHBhdGNobW9kZSBwaCBwcmVzZXJ2ZWluZGVudCBwcmludGhlYWRlciBwdmggcmVwb3J0IHJsIHJ1ZiBzYnIgc2Nyb2xsanVtcCBzZWN1cmUgc2ggc2hlbGxyZWRpciBzaGlmdHdpZHRoIHNob3dmdWxsdGFnIHNpZGVzY3JvbGwgc21hcnRjYXNlIHNvIHNwZWxsY2FwY2hlY2sgc3BsaXRiZWxvdyBzcyBzdGFydG9mbGluZSBzdWEgc3diIHN5bm1heGNvbCB0YWcgdGFsIHRlbmMgdGV4dG1vZGUgdGltZW91dCB0bCB0cG0gdHRpbWVvdXRsZW4gdHR5bW91c2UgdWwgdmJzIHZpIHZvcCB3Y20gd2hpY2h3cmFwIHdpbGRtZW51IHdpbmZpeGhlaWdodCB3aXYgd29wIHdyaXRlYmFja3VwCi1zeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCWFsIGFudGlhbGlhcyBhdXRvY2hkaXIgYmFja2dyb3VuZCBiYWxsb29uZGVsYXkgYmV4cHIgYmsgYnMgY2FzZW1hcCBjZnUgY2lua2V5cyBjbWR3aW5oZWlnaHQgY29tbWVudHN0cmluZyBjb25za2V5IGNzY29wZXBhdGhjb21wIGNzcHJnIGN1cnNvcmNvbHVtbiBkZWxjb21iaW5lIGRpZmZvcHQgZWEgZWZtIGVwIGV0IGZkYyBmZG8gZmZzIGZrIGZvbGRjb2x1bW4gZm9sZG1ldGhvZCBmb3JtYXRvcHRpb25zIGdkIGdvIGd1aWZvbnQgZ3VpdGFidG9vbHRpcCBoaWQgaGtwIGljb25zdHJpbmcgaW1kIGluY2x1ZGUgaW5leCBpc2kganMga3AgbGluZWJyZWFrIGxtIGx6IG1hdGNocGFpcnMgbWF4bWVtdG90IG1rc3BlbGxtZW0gbW9kIG1vdXNlZiBtb3VzZXQgbmYgb2Z0IHBhIHBhdGggcGhlYWRlciBwcmV2aWV3aGVpZ2h0IHByaW50bWJjaGFyc2V0IHB2dyByZXN0b3Jlc2NyZWVuIHJsYyBydWxlciBzYyBzY3JvbGxvZmYgc2VsIHNoY2Ygc2hlbGxzbGFzaCBzaG0gc2hvd21hdGNoIHNpZGVzY3JvbGxvZmYgc21hcnRpbmRlbnQgc29mdHRhYnN0b3Agc3BlbGxmaWxlIHNwbGl0cmlnaHQgc3NsIHN0YXR1c2xpbmUgc3VmZml4ZXMgc3dmIHN5bnRheCB0YWdic2VhcmNoIHRiIHRlcm0gdGV4dHdpZHRoIHRpbWVvdXRsZW4gdG0gdHIgdHRtIHR0eXNjcm9sbCB1bmRvbGV2ZWxzIHZkaXIgdmlld2RpciB3YSB3ZCB3aSB3aWxkbW9kZSB3aW5maXh3aWR0aCB3aXcgd3JhcCB3cml0ZWRlbGF5Ci1zeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCWFsZXBoIGFyIGF1dG9pbmRlbnQgYmFja3NwYWNlIGJhbGxvb25ldmFsIGJnIGJrYyBic2RpciBjYiBjaCBjaW5vIGNtcCBjb21wYXRpYmxlIGNvcHlpbmRlbnQgY3Njb3BlcHJnIGNzcWYgY3Vyc29ybGluZSBkZXggZGlncmFwaCBlYWQgZWkgZXF1YWxhbHdheXMgZXZlbnRpZ25vcmUgZmRlIGZkdCBmaWxlZW5jb2RpbmcgZmttYXAgZm9sZGVuYWJsZSBmb2xkbWlubGluZXMgZm9ybWF0cHJnIGdkZWZhdWx0IGdwIGd1aWZvbnRzZXQgaGVscGZpbGUgaGlkZGVuIGhsIGlnbm9yZWNhc2UgaW1kaXNhYmxlIGluY2x1ZGVleHByIGluZiBpc2lkZW50IGtleSBsYW5nbWFwIGxpbmVzIGxtYXAgbWEgbWF0Y2h0aW1lIG1jbyBtbCBtb2RlbGluZSBtb3VzZWZvY3VzIG1vdXNldGltZSBucmZvcm1hdHMgb2Z1IHBhcmEgcGRldiBwaSBwcmV2aWV3d2luZG93IHByaW50bWJmb250IHFlIHJldmlucyBybyBydWxlcmZvcm1hdCBzY2Igc2Nyb2xsb3B0IHNlbGVjdGlvbiBzaGVsbCBzaGVsbHRlbXAgc2hvcnRtZXNzIHNob3dtb2RlIHNpc28gc21hcnR0YWIgc29sIHNwZWxsbGFuZyBzcHIgc3NvcCBzdGwgc3VmZml4ZXNhZGQgc3dpdGNoYnVmIHRhIHRhZ2xlbmd0aCB0YmkgdGVybWJpZGkgdGYgdGl0bGUgdG8gdHMgdHR5IHR0eXR5cGUgdXBkYXRlY291bnQgdmUgdmlld29wdGlvbnMgd2FrIHdlaXJkaW52ZXJ0IHdpZyB3aWxkb3B0aW9ucyB3aW5oZWlnaHQgd20gd3JhcG1hcmdpbiB3cwotc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlhbGxvd3JldmlucyBhcmFiIGF1dG9yZWFkIGJhY2t1cCBiYWxsb29uZXhwciBiaCBibCBic2sgY2N2IGNoYXJjb252ZXJ0IGNpbm9wdGlvbnMgY21zIGNvbXBsZXRlIGNvdCBjc2NvcGVxdWlja2ZpeCBjc3QgY3doIGRnIGRpcCBlYWRpcmVjdGlvbiBlayBlcXVhbHByZyBleCBmZGkgZmVuIGZpbGVlbmNvZGluZ3MgZmxwIGZvbGRleHByIGZvbGRuZXN0bWF4IGZwIGdmbSBncmVwZm9ybWF0IGd1aWZvbnR3aWRlIGhlbHBoZWlnaHQgaGlnaGxpZ2h0IGhsZyBpbSBpbWkgaW5jc2VhcmNoIGluZmVyY2FzZSBpc2sga2V5bWFwIGxhbmdtZW51IGxpbmVzcGFjZSBsb2FkcGx1Z2lucyBtYWNhdHN1aSBtYXhjb21iaW5lIG1lZiBtbHMgbW9kZWxpbmVzIG1vdXNlaGlkZSBtcCBudSBvbW5pZnVuYyBwYXJhZ3JhcGhzIHBlbmMgcG0gcHJpbnRkZXZpY2UgcHJpbnRvcHRpb25zIHF1b3RlZXNjYXBlIHJpIHJzIHJ1bnRpbWVwYXRoIHNjciBzY3Mgc2VsZWN0bW9kZSBzaGVsbGNtZGZsYWcgc2hlbGx0eXBlIHNob3J0bmFtZSBzaG93dGFibGluZSBzaiBzbWMgc3Agc3BlbGxzdWdnZXN0IHNwcyBzdCBzdG1wIHN3IHN3cyB0YWJsaW5lIHRhZ3JlbGF0aXZlIHRiaWRpIHRlcm1lbmNvZGluZyB0Z3N0IHRpdGxlbGVuIHRvb2xiYXIgdHNsIHR0eWJ1aWx0aW4gdHcgdXBkYXRldGltZSB2ZXJib3NlIHZpbWluZm8gd2FybiB3Zmggd2lsZGNoYXIgd2ltIHdpbm1pbmhlaWdodCB3bWggd3JhcHNjYW4gd3cKLXN5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWx0a2V5bWFwIGFyYWJpYyBhdXRvd3JpdGUgYmFja3VwY29weSBiZGlyIGJpbiBib21iIGJ0IGNkIGNpIGNpbncgY28gY29tcGxldGVmdW5jIGNwIGNzY29wZXRhZyBjc3RvIGRlYnVnIGRpY3QgZGlyIGViIGVuYyBlcnJvcmJlbGxzIGV4cGFuZHRhYiBmZGwgZmVuYyBmaWxlZm9ybWF0IGZtbCBmb2xkaWdub3JlIGZvbGRvcGVuIGZzIGdmbiBncmVwcHJnIGd1aWhlYWRyb29tIGhlbHBsYW5nIGhpc3RvcnkgaGxzIGltYWN0aXZhdGVrZXkgaW1pbnNlcnQgaW5kZSBpbnNlcnRtb2RlIGlza2V5d29yZCBrZXltb2RlbCBsYXN0c3RhdHVzIGxpc3AgbHBsIG1hZ2ljIG1heGZ1bmNkZXB0aCBtZW51aXRlbXMgbW0gbW9kaWZpYWJsZSBtb3VzZW0gbXBzIG51bWJlciBvcGVuZGV2aWNlIHBhc3RlIHBleCBwbWJjcyBwcmludGVuY29kaW5nIHByb21wdCAKK3N5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWkgYW1idyBhcmkgYXcgYmFja3VwZXh0IGJldmFsIGJpb3NrIGJyayBidWZsaXN0ZWQgY2VkaXQgY2luZGVudCBjbGlwYm9hcmQgY29tIGNvbmZpcm0gY3BvcHRpb25zIGNzY29wZXZlcmJvc2UgY3VjIGRlZiBkaWZmIGRpc3BsYXkgZWRjb21wYXRpYmxlIGVuZG9mbGluZSBlcnJvcmZvcm1hdCBmY2wgZmRtIGZleCBmaWxldHlwZSBmbyBmb2xkbGV2ZWxzdGFydCBmb3JtYXRleHByIGZ0IGdmdyBndHQgZ3VpcHR5IGhoIGhrbWFwIGljIGltYyBpbXNlYXJjaCBpbmRlbnRrZXlzIGlzZiBpc3ByaW50IGttIGxiciBsaXN0IGxzcCBtYWtlcHJnIG1heG1lbSBtaCBtbXAgbW9yZSBtb3VzZXMgbXpxIG51dyBvcGZ1bmMgcGF0Y2hleHByIHBmbiBwb3B0IHByaW50Zm9udCBwdW1oZWlnaHQgcmVkcmF3dGltZSByaWdodGxlZnRjbWQgcnUgc2JvIHNjcm9sbGJpbmQgc2VjdGlvbnMgc2Z0IHNoZWxscXVvdGUgc2hpZnRyb3VuZCBzaG93Y21kIHNpIHNtIHNuIHNwZWxsIHNwbCBzcnIgc3RhbCBzdSBzd2Fwc3luYyBzeW4gdGFic3RvcCB0YWdzdGFjayB0YnMgdGV4dGF1dG8gdGlsZGVvcCB0aXRsZXN0cmluZyB0b3AgdHRpbWVvdXQgdHR5bSB1YyB2YiB2ZmlsZSB2aXN1YWxiZWxsIHdjIHdoIHdpbGRpZ25vcmUgd2luZG93IHdpbndpZHRoIHdtdyB3cml0ZWFueQorc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlha20gYW50aSBhcnNoYXBlIGF3YSBiYWNrdXBza2lwIGJleCBiaW9za2V5IGJyb3dzZWRpciBidWZ0eXBlIGNmIGNpbmsgY21kaGVpZ2h0IGNvbW1lbnRzIGNvbnNrIGNwdCBjc3BjIGN1bCBkZWZpbmUgZGlmZmV4cHIgZHkgZWYgZW9sIGVzY2tleXMgZmNzIGZkbiBmZiBmaWxsY2hhcnMgZm9sZGNsb3NlIGZvbGRtYXJrZXIgZm9ybWF0bGlzdHBhdCBnY3IgZ2hyIGd1aWN1cnNvciBndWl0YWJsYWJlbCBoaSBoa21hcHAgaWNvbiBpbWNtZGxpbmUgaW5jIGluZGsgaXNmbmFtZSBqb2luc3BhY2VzIGttcCBsY3MgbGlzdGNoYXJzIGx3IG1hdCBtYXhtZW1wYXR0ZXJuIG1pcyBtbXQgbW91c2UgbW91c2VzaGFwZSBtenF1YW50dW0gb2RldiBvc2ZpbGV0eXBlIHBhdGNobW9kZSBwaCBwcmVzZXJ2ZWluZGVudCBwcmludGhlYWRlciBwdmggcmVtYXAgcmwgcnVmIHNiciBzY3JvbGxqdW1wIHNlY3VyZSBzaCBzaGVsbHJlZGlyIHNoaWZ0d2lkdGggc2hvd2Z1bGx0YWcgc2lkZXNjcm9sbCBzbWFydGNhc2Ugc28gc3BlbGxjYXBjaGVjayBzcGxpdGJlbG93IHNzIHN0YXJ0b2ZsaW5lIHN1YSBzd2Igc3lubWF4Y29sIHRhZyB0YWwgdGVuYyB0ZXh0bW9kZSB0aW1lb3V0IHRsIHRwbSB0dGltZW91dGxlbiB0dHltb3VzZSB1bCB2YnMgdmkgdm9wIHdjbSB3aGljaHdyYXAgd2lsZG1lbnUgd2luZml4aGVpZ2h0IHdpdiB3b3Agd3JpdGViYWNrdXAKK3N5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWwgYW50aWFsaWFzIGF1dG9jaGRpciBiYWNrZ3JvdW5kIGJhbGxvb25kZWxheSBiZXhwciBiayBicyBjYXNlbWFwIGNmdSBjaW5rZXlzIGNtZHdpbmhlaWdodCBjb21tZW50c3RyaW5nIGNvbnNrZXkgY3Njb3BlcGF0aGNvbXAgY3NwcmcgY3Vyc29yY29sdW1uIGRlbGNvbWJpbmUgZGlmZm9wdCBlYSBlZm0gZXAgZXQgZmRjIGZkbyBmZnMgZmsgZm9sZGNvbHVtbiBmb2xkbWV0aG9kIGZvcm1hdG9wdGlvbnMgZ2QgZ28gZ3VpZm9udCBndWl0YWJ0b29sdGlwIGhpZCBoa3AgaWNvbnN0cmluZyBpbWQgaW5jbHVkZSBpbmV4IGlzaSBqcyBrcCBsaW5lYnJlYWsgbG0gbHogbWF0Y2hwYWlycyBtYXhtZW10b3QgbWtzcGVsbG1lbSBtb2QgbW91c2VmIG1vdXNldCBuZiBvZnQgcGEgcGF0aCBwaGVhZGVyIHByZXZpZXdoZWlnaHQgcHJpbnRtYmNoYXJzZXQgcHZ3IHJlcG9ydCBybGMgcnVsZXIgc2Mgc2Nyb2xsb2ZmIHNlbCBzaGNmIHNoZWxsc2xhc2ggc2htIHNob3dtYXRjaCBzaWRlc2Nyb2xsb2ZmIHNtYXJ0aW5kZW50IHNvZnR0YWJzdG9wIHNwZWxsZmlsZSBzcGxpdHJpZ2h0IHNzbCBzdGF0dXNsaW5lIHN1ZmZpeGVzIHN3ZiBzeW50YXggdGFnYnNlYXJjaCB0YiB0ZXJtIHRleHR3aWR0aCB0aW1lb3V0bGVuIHRtIHRyIHR0bSB0dHlzY3JvbGwgdW5kb2xldmVscyB2ZGlyIHZpZXdkaXIgd2Egd2Qgd2kgd2lsZG1vZGUgd2luZml4d2lkdGggd2l3IHdyYXAgd3JpdGVkZWxheQorc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlhbGVwaCBhciBhdXRvaW5kZW50IGJhY2tzcGFjZSBiYWxsb29uZXZhbCBiZyBia2MgYnNkaXIgY2IgY2ggY2lubyBjbXAgY29tcGF0aWJsZSBjb3B5aW5kZW50IGNzY29wZXByZyBjc3FmIGN1cnNvcmxpbmUgZGV4IGRpZ3JhcGggZWFkIGVpIGVxdWFsYWx3YXlzIGV2ZW50aWdub3JlIGZkZSBmZHQgZmlsZWVuY29kaW5nIGZrbWFwIGZvbGRlbmFibGUgZm9sZG1pbmxpbmVzIGZvcm1hdHByZyBnZGVmYXVsdCBncCBndWlmb250c2V0IGhlbHBmaWxlIGhpZGRlbiBobCBpZ25vcmVjYXNlIGltZGlzYWJsZSBpbmNsdWRlZXhwciBpbmYgaXNpZGVudCBrZXkgbGFuZ21hcCBsaW5lcyBsbWFwIG1hIG1hdGNodGltZSBtY28gbWwgbW9kZWxpbmUgbW91c2Vmb2N1cyBtb3VzZXRpbWUgbnJmb3JtYXRzIG9mdSBwYXJhIHBkZXYgcGkgcHJldmlld3dpbmRvdyBwcmludG1iZm9udCBxZSByZXN0b3Jlc2NyZWVuIHJvIHJ1bGVyZm9ybWF0IHNjYiBzY3JvbGxvcHQgc2VsZWN0aW9uIHNoZWxsIHNoZWxsdGVtcCBzaG9ydG1lc3Mgc2hvd21vZGUgc2lzbyBzbWFydHRhYiBzb2wgc3BlbGxsYW5nIHNwciBzc29wIHN0bCBzdWZmaXhlc2FkZCBzd2l0Y2hidWYgdGEgdGFnbGVuZ3RoIHRiaSB0ZXJtYmlkaSB0ZiB0aXRsZSB0byB0cyB0dHkgdHR5dHlwZSB1cGRhdGVjb3VudCB2ZSB2aWV3b3B0aW9ucyB3YWsgd2VpcmRpbnZlcnQgd2lnIHdpbGRvcHRpb25zIHdpbmhlaWdodCB3bSB3cmFwbWFyZ2luIHdzCitzeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCWFsbG93cmV2aW5zIGFyYWIgYXV0b3JlYWQgYmFja3VwIGJhbGxvb25leHByIGJoIGJsIGJzayBjY3YgY2hhcmNvbnZlcnQgY2lub3B0aW9ucyBjbXMgY29tcGxldGUgY290IGNzY29wZXF1aWNrZml4IGNzdCBjd2ggZGcgZGlwIGVhZGlyZWN0aW9uIGVrIGVxdWFscHJnIGV4IGZkaSBmZW4gZmlsZWVuY29kaW5ncyBmbHAgZm9sZGV4cHIgZm9sZG5lc3RtYXggZnAgZ2ZtIGdyZXBmb3JtYXQgZ3VpZm9udHdpZGUgaGVscGhlaWdodCBoaWdobGlnaHQgaGxnIGltIGltaSBpbmNzZWFyY2ggaW5mZXJjYXNlIGlzayBrZXltYXAgbGFuZ21lbnUgbGluZXNwYWNlIGxvYWRwbHVnaW5zIG1hY2F0c3VpIG1heGNvbWJpbmUgbWVmIG1scyBtb2RlbGluZXMgbW91c2VoaWRlIG1wIG51IG9tbmlmdW5jIHBhcmFncmFwaHMgcGVuYyBwbSBwcmludGRldmljZSBwcmludG9wdGlvbnMgcXVvdGVlc2NhcGUgcmV2aW5zIHJzIHJ1bnRpbWVwYXRoIHNjciBzY3Mgc2VsZWN0bW9kZSBzaGVsbGNtZGZsYWcgc2hlbGx0eXBlIHNob3J0bmFtZSBzaG93dGFibGluZSBzaiBzbWMgc3Agc3BlbGxzdWdnZXN0IHNwcyBzdCBzdG1wIHN3IHN3cyB0YWJsaW5lIHRhZ3JlbGF0aXZlIHRiaWRpIHRlcm1lbmNvZGluZyB0Z3N0IHRpdGxlbGVuIHRvb2xiYXIgdHNsIHR0eWJ1aWx0aW4gdHcgdXBkYXRldGltZSB2ZXJib3NlIHZpbWluZm8gd2FybiB3Zmggd2lsZGNoYXIgd2ltIHdpbm1pbmhlaWdodCB3bWggd3JhcHNjYW4gd3cKK3N5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWx0a2V5bWFwIGFyYWJpYyBhdXRvd3JpdGUgYmFja3VwY29weSBiZGlyIGJpbiBib21iIGJ0IGNkIGNpIGNpbncgY28gY29tcGxldGVmdW5jIGNwIGNzY29wZXRhZyBjc3RvIGRlYnVnIGRpY3QgZGlyIGViIGVuYyBlcnJvcmJlbGxzIGV4cGFuZHRhYiBmZGwgZmVuYyBmaWxlZm9ybWF0IGZtbCBmb2xkaWdub3JlIGZvbGRvcGVuIGZzIGdmbiBncmVwcHJnIGd1aWhlYWRyb29tIGhlbHBsYW5nIGhpc3RvcnkgaGxzIGltYWN0aXZhdGVrZXkgaW1pbnNlcnQgaW5kZSBpbnNlcnRtb2RlIGlza2V5d29yZCBrZXltb2RlbCBsYXN0c3RhdHVzIGxpc3AgbHBsIG1hZ2ljIG1heGZ1bmNkZXB0aCBtZW51aXRlbXMgbW0gbW9kaWZpYWJsZSBtb3VzZW0gbXBzIG51bWJlciBvcGVuZGV2aWNlIHBhc3RlIHBleCBwbWJjcyBwcmludGVuY29kaW5nIHByb21wdCByZHQgcmkgCiAKICIgdmltT3B0aW9uczogVGhlc2UgYXJlIHRoZSB0dXJuLW9mZiBzZXR0aW5nIHZhcmlhbnRzIHt7ezIKIHN5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJbm9hY2Qgbm9hbGxvd3JldmlucyBub2FudGlhbGlhcyBub2FyYWJpYyBub2Fyc2hhcGUgbm9hdXRvcmVhZCBub2F3IG5vYmFsbG9vbmV2YWwgbm9iaW5hcnkgbm9iayBub2J1Zmxpc3RlZCBub2NpbiBub2NvbmZpcm0gbm9jb3B5aW5kZW50IG5vY3Njb3BldmVyYm9zZSBub2N1YyBub2N1cnNvcmxpbmUgbm9kZyBub2Rpc2FibGUgbm9lYiBub2VkY29tcGF0aWJsZSBub2VuZG9mbGluZSBub2VxdWFsYWx3YXlzIG5vZXNja2V5cyBub2V4IG5vZXhyYyBub2ZrIG5vZm9sZGVuYWJsZSBub2dkZWZhdWx0IG5vaGlkIG5vaGsgbm9oa21hcHAgbm9obHMgbm9pYyBub2lnbm9yZWNhc2Ugbm9pbWMgbm9pbWQgbm9pbmYgbm9pbnNlcnRtb2RlIG5vam9pbnNwYWNlcyBub2xhenlyZWRyYXcgbm9saW5lYnJlYWsgbm9saXN0IG5vbHBsIG5vbWEgbm9tYWdpYyBub21sIG5vbW9kZWxpbmUgbm9tb2RpZmllZCBub21vdXNlZiBub21vdXNlaGlkZSBub251bWJlciBub29wZW5kZXZpY2Ugbm9waSBub3ByZXZpZXd3aW5kb3cgbm9wdncgbm9yZW1hcCBub3JldmlucyBub3JpZ2h0bGVmdCBub3JsIG5vcm8gbm9ydSBub3NiIG5vc2NiIG5vc2NzIG5vc2Z0IG5vc2hlbGx0ZW1wIG5vc2hvcnRuYW1lIG5vc2hvd2Z1bGx0YWcgbm9zaG93bW9kZSBub3NtIG5vc21hcnRpbmRlbnQgbm9zbWQgbm9zb2wgbm9zcGxpdGJlbG93IG5vc3ByIG5vc3NsIG5vc3RhcnRvZmxpbmUgbm9zd2FwZmlsZSBub3RhIG5vdGFncmVsYXRpdmUgbm90Ymkgbm90YnMgbm90ZXJzZSBub3RleHRtb2RlIG5vdGdzdCBub3RpbWVvdXQgbm90byBub3RyIG5vdHR5YnVpbHRpbiBub3R4IG5vdmlzdWFsYmVsbCBub3dhcm4gbm93ZWlyZGludmVydCBub3dmdyBub3dpbmZpeGhlaWdodCBub3dpdiBub3dyYXAgbm93cml0ZSBub3dyaXRlYmFja3VwCkBAIC03MCw5ICs3MCw5IEBACiBzeW4gY2FzZSBtYXRjaAogCiAiIEZ1bmN0aW9uIE5hbWVzIHt7ezIKLXN5biBrZXl3b3JkIHZpbUZ1bmNOYW1lIGNvbnRhaW5lZAlhZGQgYXJnaWR4IGJyb3dzZWRpciBidWZsb2FkZWQgYnVmd2lubnIgY2FsbCBjaW5kZW50IGNvbXBsZXRlIGNvbmZpcm0gY3Njb3BlX2Nvbm5lY3Rpb24gZGVsZXRlIGRpZmZfaGxJRCBldmFsIGV4aXN0cyBleHByOCBmZWVka2V5cyBmaWxld3JpdGFibGUgZmluZGRpciBmbmFtZW1vZGlmeSBmb2xkY2xvc2VkZW5kIGZvbGR0ZXh0IGZvcmVncm91bmQgZ2FyYmFnZWNvbGxlY3QgZ2V0YnVmbGluZSBnZXRjaGFyIGdldGNtZGxpbmUgZ2V0Y21kdHlwZSBnZXRmb250bmFtZSBnZXRmc2l6ZSBnZXRmdHlwZSBnZXRsb2NsaXN0IGdldHBvcyBnZXRyZWcgZ2V0dGFid2ludmFyIGdldHdpbnBvc3kgZ2xvYiBoYXMgaGFzbG9jYWxkaXIgaGlzdGFkZCBoaXN0Z2V0IGhsZXhpc3RzIGhvc3RuYW1lIGluZGVudCBpbnB1dCBpbnB1dGxpc3QgaW5wdXRzYXZlIGluc2VydCBpc2xvY2tlZCBqb2luIGxlbiBsaWJjYWxsbnIgbGluZTJieXRlIGxvY2FsdGltZSBtYXBhcmcgbWF0Y2ggbWF0Y2hhcmcgbWF0Y2hlbmQgbWF0Y2hzdHIgbWluIG1vZGUgbnIyY2hhciBwcmV2bm9uYmxhbmsgcHVtdmlzaWJsZSByZWFkZmlsZSByZWx0aW1lc3RyIHJlbW90ZV9mb3JlZ3JvdW5kIHJlbW90ZV9yZWFkIHJlbW92ZSByZXBlYXQgcmV2ZXJzZSBzZWFyY2hkZWNsIHNlYXJjaHBhaXJwb3Mgc2VydmVyMmNsaWVudCBzZXRidWZ2YXIgc2V0bGluZSBzZXRtYXRjaGVzIHNldHFmbGlzdCBzZXR0YWJ3aW52YXIgc2hlbGxlc2NhcGUgc29ydCBzcGVsbGJhZHdvcmQgc3BsaXQgc3RyZnRpbWUgc3RyaW5nIHN0cnBhcnQgc3RydHJhbnMgc3Vic3RpdHV0ZSBzeW5JRGF0dHIgc3lzdGVtIHRhYnBhZ2VuciB0YWdmaWxlcyB0ZW1wbmFtZSB0b3VwcGVyIHR5cGUgdmlydGNvbCB3aW5idWZuciB3aW5oZWlnaHQgd2lubnIgd2lucmVzdHZpZXcgd2lud2lkdGgKLXN5biBrZXl3b3JkIHZpbUZ1bmNOYW1lIGNvbnRhaW5lZAlhcHBlbmQgYXJndiBidWZleGlzdHMgYnVmbmFtZSBieXRlMmxpbmUgY2hhbmdlbnIgY2xlYXJtYXRjaGVzIGNvbXBsZXRlX2FkZCBjb3B5IGN1cnNvciBkaWRfZmlsZXR5cGUgZW1wdHkgZXZlbnRoYW5kbGVyIGV4cGFuZCBleHRlbmQgZmlsZXJlYWRhYmxlIGZpbHRlciBmaW5kZmlsZSBmb2xkY2xvc2VkIGZvbGRsZXZlbCBmb2xkdGV4dHJlc3VsdCBmdW5jdGlvbiBnZXQgZ2V0YnVmdmFyIGdldGNoYXJtb2QgZ2V0Y21kcG9zIGdldGN3ZCBnZXRmcGVybSBnZXRmdGltZSBnZXRsaW5lIGdldG1hdGNoZXMgZ2V0cWZsaXN0IGdldHJlZ3R5cGUgZ2V0d2lucG9zeCBnZXR3aW52YXIgZ2xvYnBhdGggaGFzX2tleSBoYXNtYXB0byBoaXN0ZGVsIGhpc3RuciBobElEIGljb252IGluZGV4IGlucHV0ZGlhbG9nIGlucHV0cmVzdG9yZSBpbnB1dHNlY3JldCBpc2RpcmVjdG9yeSBpdGVtcyBrZXlzIGxpYmNhbGwgbGluZSBsaXNwaW5kZW50IG1hcCBtYXBjaGVjayBtYXRjaGFkZCBtYXRjaGRlbGV0ZSBtYXRjaGxpc3QgbWF4IG1rZGlyIG5leHRub25ibGFuayBwYXRoc2hvcnRlbiBwcmludGYgcmFuZ2UgcmVsdGltZSByZW1vdGVfZXhwciByZW1vdGVfcGVlayByZW1vdGVfc2VuZCByZW5hbWUgcmVzb2x2ZSBzZWFyY2ggc2VhcmNocGFpciBzZWFyY2hwb3Mgc2VydmVybGlzdCBzZXRjbWRwb3Mgc2V0bG9jbGlzdCBzZXRwb3Mgc2V0cmVnIHNldHdpbnZhciBzaW1wbGlmeSBzb3VuZGZvbGQgc3BlbGxzdWdnZXN0IHN0cjJuciBzdHJpZHggc3RybGVuIHN0cnJpZHggc3VibWF0Y2ggc3luSUQgc3luSUR0cmFucyB0YWJwYWdlYnVmbGlzdCB0YWJwYWdld2lubnIgdGFnbGlzdCB0b2xvd2VyIHRyIHZhbHVlcyB2aXN1YWxtb2RlIHdpbmNvbCB3aW5saW5lIHdpbnJlc3RjbWQgd2luc2F2ZXZpZXcgd3JpdGVmaWxlCi1zeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYXJnYyBicm93c2UgYnVmbGlzdGVkIGJ1Zm5yIGJ5dGVpZHggY2hhcjJuciBjb2wgY29tcGxldGVfY2hlY2sgY291bnQgZGVlcGNvcHkgZGlmZl9maWxsZXIgZXNjYXBlIGV4ZWN1dGFibGUgCitzeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYWJzIGFyZ2MgYXRhbiBidWZleGlzdHMgYnVmbmFtZSBieXRlMmxpbmUgY2VpbCBjaW5kZW50IGNvbXBsZXRlIGNvbmZpcm0gY291bnQgZGVlcGNvcHkgZGlmZl9maWxsZXIgZXNjYXBlIGV4ZWN1dGFibGUgZXhwcjggZmlsZXJlYWRhYmxlIGZpbmRkaXIgZmxvb3IgZm9sZGNsb3NlZCBmb2xkdGV4dCBmdW5jdGlvbiBnZXRidWZsaW5lIGdldGNoYXJtb2QgZ2V0Y21kdHlwZSBnZXRmcGVybSBnZXRmdHlwZSBnZXRtYXRjaGVzIGdldHFmbGlzdCBnZXR0YWJ3aW52YXIgZ2V0d2lucG9zeSBnbG9iIGhhcyBoYXNsb2NhbGRpciBoaXN0YWRkIGhpc3RnZXQgaGxleGlzdHMgaG9zdG5hbWUgaW5kZW50IGlucHV0IGlucHV0bGlzdCBpbnB1dHNhdmUgaW5zZXJ0IGlzbG9ja2VkIGpvaW4gbGVuIGxpYmNhbGxuciBsaW5lMmJ5dGUgbG9jYWx0aW1lIG1hcCBtYXBjaGVjayBtYXRjaGFkZCBtYXRjaGRlbGV0ZSBtYXRjaGxpc3QgbWF4IG1rZGlyIG5leHRub25ibGFuayBwYXRoc2hvcnRlbiBwcmV2bm9uYmxhbmsgcHVtdmlzaWJsZSByZWFkZmlsZSByZWx0aW1lc3RyIHJlbW90ZV9mb3JlZ3JvdW5kIHJlbW90ZV9yZWFkIHJlbW92ZSByZXBlYXQgcmV2ZXJzZSBzZWFyY2ggc2VhcmNocGFpciBzZWFyY2hwb3Mgc2VydmVybGlzdCBzZXRjbWRwb3Mgc2V0bG9jbGlzdCBzZXRwb3Mgc2V0cmVnIHNldHdpbnZhciBzaW1wbGlmeSBzb3J0IHNwZWxsYmFkd29yZCBzcGxpdCBzdHIyZmxvYXQgc3RyZnRpbWUgc3RyaW5nIHN0cnBhcnQgc3RydHJhbnMgc3Vic3RpdHV0ZSBzeW5JRGF0dHIgc3luc3RhY2sgdGFicGFnZWJ1Zmxpc3QgdGFicGFnZXdpbm5yIHRhZ2xpc3QgdG9sb3dlciB0ciB0eXBlIHZpcnRjb2wgd2luYnVmbnIgd2luaGVpZ2h0IHdpbm5yIHdpbnJlc3R2aWV3IHdpbndpZHRoCitzeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYWRkIGFyZ2lkeCBicm93c2UgYnVmbGlzdGVkIGJ1Zm5yIGJ5dGVpZHggY2hhbmdlbnIgY2xlYXJtYXRjaGVzIGNvbXBsZXRlX2FkZCBjb3B5IGNzY29wZV9jb25uZWN0aW9uIGRlbGV0ZSBkaWZmX2hsSUQgZXZhbCBleGlzdHMgZXh0ZW5kIGZpbGV3cml0YWJsZSBmaW5kZmlsZSBmbmFtZWVzY2FwZSBmb2xkY2xvc2VkZW5kIGZvbGR0ZXh0cmVzdWx0IGdhcmJhZ2Vjb2xsZWN0IGdldGJ1ZnZhciBnZXRjbWRsaW5lIGdldGN3ZCBnZXRmc2l6ZSBnZXRsaW5lIGdldHBpZCBnZXRyZWcgZ2V0d2lucG9zeCBnZXR3aW52YXIgZ2xvYnBhdGggaGFzX2tleSBoYXNtYXB0byBoaXN0ZGVsIGhpc3RuciBobElEIGljb252IGluZGV4IGlucHV0ZGlhbG9nIGlucHV0cmVzdG9yZSBpbnB1dHNlY3JldCBpc2RpcmVjdG9yeSBpdGVtcyBrZXlzIGxpYmNhbGwgbGluZSBsaXNwaW5kZW50IGxvZzEwIG1hcGFyZyBtYXRjaCBtYXRjaGFyZyBtYXRjaGVuZCBtYXRjaHN0ciBtaW4gbW9kZSBucjJjaGFyIHBvdyBwcmludGYgcmFuZ2UgcmVsdGltZSByZW1vdGVfZXhwciByZW1vdGVfcGVlayByZW1vdGVfc2VuZCByZW5hbWUgcmVzb2x2ZSByb3VuZCBzZWFyY2hkZWNsIHNlYXJjaHBhaXJwb3Mgc2VydmVyMmNsaWVudCBzZXRidWZ2YXIgc2V0bGluZSBzZXRtYXRjaGVzIHNldHFmbGlzdCBzZXR0YWJ3aW52YXIgc2hlbGxlc2NhcGUgc2luIHNvdW5kZm9sZCBzcGVsbHN1Z2dlc3Qgc3FydCBzdHIybnIgc3RyaWR4IHN0cmxlbiBzdHJyaWR4IHN1Ym1hdGNoIHN5bklEIHN5bklEdHJhbnMgc3lzdGVtIHRhYnBhZ2VuciB0YWdmaWxlcyB0ZW1wbmFtZSB0b3VwcGVyIHRydW5jIHZhbHVlcyB2aXN1YWxtb2RlIHdpbmNvbCB3aW5saW5lIHdpbnJlc3RjbWQgd2luc2F2ZXZpZXcgd3JpdGVmaWxlCitzeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYXBwZW5kIGFyZ3YgYnJvd3NlZGlyIGJ1ZmxvYWRlZCBidWZ3aW5uciBjYWxsIGNoYXIybnIgY29sIGNvbXBsZXRlX2NoZWNrIGNvcyBjdXJzb3IgZGlkX2ZpbGV0eXBlIGVtcHR5IGV2ZW50aGFuZGxlciBleHBhbmQgZmVlZGtleXMgZmlsdGVyIGZsb2F0Mm5yIGZuYW1lbW9kaWZ5IGZvbGRsZXZlbCBmb3JlZ3JvdW5kIGdldCBnZXRjaGFyIGdldGNtZHBvcyBnZXRmb250bmFtZSBnZXRmdGltZSBnZXRsb2NsaXN0IGdldHBvcyBnZXRyZWd0eXBlIAogCiAiLS0tIHN5bnRheCBhYm92ZSBnZW5lcmF0ZWQgYnkgbWt2aW12aW0gLS0tCiAiIFNwZWNpYWwgVmltIEhpZ2hsaWdodGluZyAobm90IGF1dG9tYXRpYykge3t7MQpAQCAtMTU3LDcgKzE1Nyw3IEBACiBpZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikKICBzeW4gbWF0Y2ggICB2aW1GdW5jdGlvbkVycm9yCSJcPGZ1XCVbbmN0aW9uXSFcPVxzXCtcenNcVVxpXHstfVx6ZVxzKigiICAgICAgICAgICAgICAgIAljb250YWlucz12aW1GdW5jS2V5LHZpbUZ1bmNCbGFuayBuZXh0Z3JvdXA9dmltRnVuY0JvZHkKIGVuZGlmCi1zeW4gbWF0Y2ggICB2aW1GdW5jdGlvbgkiXDxmdVwlW25jdGlvbl0hXD1cc1wrXChcKDxbc1NdW2lJXVtkRF0+XHxbU3NdOlx8XHVcfFxpXCsjXClcaSpcfGc6XChcSVxpKlwuXClcK1xJXGkqXClcemVccyooIgljb250YWlucz1AdmltRnVuY0xpc3QgbmV4dGdyb3VwPXZpbUZ1bmNCb2R5CitzeW4gbWF0Y2ggICB2aW1GdW5jdGlvbgkiXDxmdVwlW25jdGlvbl0hXD1cc1wrXChcKDxbc1NdW2lJXVtkRF0+XHxbU3NdOlx8XHVcfFxpXCsjXClcaSpcfFwoZzpcKVw9XChcSVxpKlwuXClcK1xJXGkqXClcemVccyooIgljb250YWlucz1AdmltRnVuY0xpc3QgbmV4dGdyb3VwPXZpbUZ1bmNCb2R5CiBpZiBleGlzdHMoImc6dmltc3luX2ZvbGRpbmciKSAmJiBnOnZpbXN5bl9mb2xkaW5nID1+ICdmJwogIHN5biByZWdpb24gIHZpbUZ1bmNCb2R5ICBjb250YWluZWQJZm9sZCBzdGFydD0iXHplKCIJbWF0Y2hncm91cD12aW1Db21tYW5kIGVuZD0iXDxcKGVuZGZcPlx8ZW5kZnVcJVtuY3Rpb25dXD5cKSIJCWNvbnRhaW5zPUB2aW1GdW5jQm9keUxpc3QKIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkBAIC01NDcsNiArNTQ3LDkgQEAKICAgc3luIHJlZ2lvbiB2aW1QZXJsUmVnaW9uIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3BlXCVbcmxdXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsgY29udGFpbnM9QHZpbVBlcmxTY3JpcHQKICAgc3luIHJlZ2lvbiB2aW1QZXJsUmVnaW9uIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3BlXCVbcmxdXHMqPDxccyokKyBlbmQ9K1wuJCsgY29udGFpbnM9QHZpbVBlcmxTY3JpcHQKICBlbmRpZgorZWxzZQorIHN5biByZWdpb24gdmltRW1iZWRFcnJvciBzdGFydD0rcGVcJVtybF1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKworIHN5biByZWdpb24gdmltRW1iZWRFcnJvciBzdGFydD0rcGVcJVtybF1ccyo8PFxzKiQrIGVuZD0rXC4kKwogZW5kaWYKIAogIiBbLS0gcnVieSAtLV0ge3t7MwpAQCAtNTU2LDkgKzU1OSwxMiBAQAogIGlmIGV4aXN0cygiZzp2aW1zeW5fZm9sZGluZyIpICYmIGc6dmltc3luX2ZvbGRpbmcgPX4gJ3InCiAgIHN5biByZWdpb24gdmltUnVieVJlZ2lvbiBmb2xkIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3J1Ylt5XVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrIGNvbnRhaW5zPUB2aW1SdWJ5U2NyaXB0CiAgZWxzZQotICBzeW4gcmVnaW9uIHZpbVJ1YnlSZWdpb24gZm9sZCBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PStydWJbeV1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKyBjb250YWlucz1AdmltUnVieVNjcmlwdAorICBzeW4gcmVnaW9uIHZpbVJ1YnlSZWdpb24gbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rcnViW3ldXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsgY29udGFpbnM9QHZpbVJ1YnlTY3JpcHQKICBlbmRpZgogIHN5biByZWdpb24gdmltUnVieVJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PStydWJbeV1ccyo8PFxzKiQrIGVuZD0rXC4kKyBjb250YWlucz1AdmltUnVieVNjcmlwdAorZWxzZQorIHN5biByZWdpb24gdmltRW1iZWRFcnJvciBzdGFydD0rcnViW3ldXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsKKyBzeW4gcmVnaW9uIHZpbUVtYmVkRXJyb3Igc3RhcnQ9K3J1Ylt5XVxzKjw8XHMqJCsgZW5kPStcLiQrCiBlbmRpZgogCiAiIFstLSBweXRob24gLS1dIHt7ezMKQEAgLTU3Miw2ICs1NzgsOSBAQAogICBzeW4gcmVnaW9uIHZpbVB5dGhvblJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PStweVwlW3Rob25dXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsgY29udGFpbnM9QHZpbVB5dGhvblNjcmlwdAogICBzeW4gcmVnaW9uIHZpbVB5dGhvblJlZ2lvbiBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PStweVwlW3Rob25dXHMqPDxccyokKyBlbmQ9K1wuJCsgY29udGFpbnM9QHZpbVB5dGhvblNjcmlwdAogIGVuZGlmCitlbHNlCisgc3luIHJlZ2lvbiB2aW1FbWJlZEVycm9yIHN0YXJ0PStweVwlW3Rob25dXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsKKyBzeW4gcmVnaW9uIHZpbUVtYmVkRXJyb3Igc3RhcnQ9K3B5XCVbdGhvbl1ccyo8PFxzKiQrIGVuZD0rXC4kKwogZW5kaWYKIAogIiBbLS0gdGNsIC0tXSB7e3szCkBAIC01OTMsNiArNjAyLDkgQEAKICAgIHN5biByZWdpb24gdmltVGNsUmVnaW9uIG1hdGNoZ3JvdXA9dmltU2NyaXB0RGVsaW0gc3RhcnQ9K3RjW2xdXD1ccyo8PFxzKiQrIGVuZD0rXC4kKyBjb250YWlucz1AdmltVGNsU2NyaXB0CiAgIGVuZGlmCiAgZW5kaWYKK2Vsc2UKKyBzeW4gcmVnaW9uIHZpbUVtYmVkRXJyb3Igc3RhcnQ9K3RjW2xdXD1ccyo8PFxzKlx6KC4qXCkkKyBlbmQ9K15cejEkKworIHN5biByZWdpb24gdmltRW1iZWRFcnJvciBzdGFydD0rdGNbbF1cPVxzKjw8XHMqJCsgZW5kPStcLiQrCiBlbmRpZgogdW5sZXQgdHJ5dGNsCiAKQEAgLTYwMiwxMyArNjE0LDE2IEBACiAgbGV0IGlza0tlZXA9ICZpc2sKICBzeW4gaW5jbHVkZSBAdmltTXpTY2hlbWVTY3JpcHQgPHNmaWxlPjpwOmgvc2NoZW1lLnZpbQogIGxldCAmaXNrPSBpc2tLZWVwCi0gaWYgZXhpc3RzKCJnOnZpbXN5bl9mb2xkaW5nIikgJiYgZzp2aW1zeW5fZm9sZGluZyA9fiAndCcKKyBpZiBleGlzdHMoImc6dmltc3luX2ZvbGRpbmciKSAmJiBnOnZpbXN5bl9mb2xkaW5nID1+ICdtJwogICBzeW4gcmVnaW9uIHZpbU16U2NoZW1lUmVnaW9uIGZvbGQgbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rbXpcJVtzY2hlbWVdXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsgY29udGFpbnM9QHZpbU16U2NoZW1lU2NyaXB0CiAgIHN5biByZWdpb24gdmltTXpTY2hlbWVSZWdpb24gZm9sZCBtYXRjaGdyb3VwPXZpbVNjcmlwdERlbGltIHN0YXJ0PSttelwlW3NjaGVtZV1ccyo8PFxzKiQrIGVuZD0rXC4kKyBjb250YWlucz1AdmltTXpTY2hlbWVTY3JpcHQKICBlbHNlCiAgIHN5biByZWdpb24gdmltTXpTY2hlbWVSZWdpb24gbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rbXpcJVtzY2hlbWVdXHMqPDxccypceiguKlwpJCsgZW5kPSteXHoxJCsgY29udGFpbnM9QHZpbU16U2NoZW1lU2NyaXB0CiAgIHN5biByZWdpb24gdmltTXpTY2hlbWVSZWdpb24gbWF0Y2hncm91cD12aW1TY3JpcHREZWxpbSBzdGFydD0rbXpcJVtzY2hlbWVdXHMqPDxccyokKyBlbmQ9K1wuJCsgY29udGFpbnM9QHZpbU16U2NoZW1lU2NyaXB0CiAgZW5kaWYKK2Vsc2UKKyBzeW4gcmVnaW9uIHZpbUVtYmVkRXJyb3Igc3RhcnQ9K216XCVbc2NoZW1lXVxzKjw8XHMqXHooLipcKSQrIGVuZD0rXlx6MSQrCisgc3luIHJlZ2lvbiB2aW1FbWJlZEVycm9yIHN0YXJ0PSttelwlW3NjaGVtZV1ccyo8PFxzKiQrIGVuZD0rXC4kKwogZW5kaWYKIAogIiBTeW5jaHJvbml6ZSAoc3BlZWQpIHt7ezIKQEAgLTYzNSw2ICs2NTAsNyBAQAogIGhpIGRlZiBsaW5rIHZpbUJlaGF2ZUVycm9yCXZpbUVycm9yCiAgaGkgZGVmIGxpbmsgdmltQ29sbENsYXNzRXJyCXZpbUVycm9yCiAgaGkgZGVmIGxpbmsgdmltRXJyU2V0dGluZwl2aW1FcnJvcgorIGhpIGRlZiBsaW5rIHZpbUVtYmVkRXJyb3IJdmltRXJyb3IKICBoaSBkZWYgbGluayB2aW1GVEVycm9yCXZpbUVycm9yCiAgaGkgZGVmIGxpbmsgdmltRnVuY3Rpb25FcnJvcgl2aW1FcnJvcgogIGhpIGRlZiBsaW5rIHZpbUZ1bmMgICAgICAgICAJdmltRXJyb3IKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwgYi9ydW50aW1lL3R1dG9yL3R1dG9yLnBsCmluZGV4IDdmMzlmMzguLjRhZTUzNTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwKKysrIGIvcnVudGltZS90dXRvci90dXRvci5wbApAQCAtMTQyLDEyICsxNDIsMTIgQEAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJICBMZWtjamEgMS42LjogRURZQ0pBIFBMSUtVCiAKLQogCQkgICoqIFW/eWogIDp3cSAgYWJ5IHphcGlzYeYgcGxpayBpIHd5arbmLiAqKgogCiAgICAhISBVV0FHQTogemFuaW0gd3lrb25hc3ogamFraWVrb2x3aWVrIHBvbGVjZW5pYSBwcnplY3p5YWogY2GzsSBsZWtjauogISEKIAogICAxLiBaYWtv8WN6IHR1dG9yaWFsIHRhayBqYWsgdyBsZWtjamkgMS4yLjogIDpxIQorICAgICBMdWIgamW2bGkgbWFzeiBkb3N06nAgZG8gaW5uZWdvIHRlcm1pbmFsYSB6cvNiIGtvbGVqbmUga3Jva2kgdGFtLgogCiAgIDIuIFcgcG93s29jZSB3eWRhaiBwb2xlY2VuaWU6ICB2aW0gdHV0b3I8RU5URVI+CiAgICAgICJ2aW0iIGplc3QgcG9sZWNlbmllbSB1cnVjaGFtaWFqsWN5bSBlZHl0b3IgVmltLiAndHV0b3InIHRvIG5hendhIHBsaWt1CkBAIC0xNTcsMTEgKzE1NywxMSBAQAogCiAgIDQuIFphcGlzeiBwbGlrIHplIHptaWFuYW1pIGkgb3B1tuYgVmltYTogIDp3cTxFTlRFUj4KIAotICA1LiBVcnVjaG9tIHBvbm93bmllIHZpbXR1dG9yIGkgcHJ6ZWpkvCBkbyBwb2RzdW1vd2FuaWEgbGVrY2ppLgorICA1LiBKZbZsaSB6YWtv8WN6ebNltiB2aW10dXRvciB3IGtyb2t1IDEuIHVydWNob20gZ28gcG9ub3duaWUgaSBwcnplamS8CisgICAgIGRvIHBvZHN1bW93YW5pYSBwb25pv2VqLgogCiAgIDYuIFBvIHByemVjenl0YW5pdSB3c3p5c3RraWNoIGtyb2vzdyBpIGljaCB6cm96dW1pZW5pdTogd3lrb25haiBqZS4KIAotCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAkJCSAgICAgTEVLQ0pBIDEuIFBPRFNVTU9XQU5JRQogCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLnBsLmNwMTI1MCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwuY3AxMjUwCmluZGV4IDJjNjJiNzUuLjk4OTcxZDAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwuY3AxMjUwCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwuY3AxMjUwCkBAIC0xNDIsMTIgKzE0MiwxMiBAQAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAJCQkgIExla2NqYSAxLjYuOiBFRFlDSkEgUExJS1UKIAotCiAJCSAgKiogVb95aiAgOndxICBhYnkgemFwaXNh5iBwbGlrIGkgd3lqnOYuICoqCiAKICAgICEhIFVXQUdBOiB6YW5pbSB3eWtvbmFzeiBqYWtpZWtvbHdpZWsgcG9sZWNlbmlhIHByemVjenlhaiBjYbO5IGxla2Nq6iAhIQogCiAgIDEuIFpha2/xY3ogdHV0b3JpYWwgdGFrIGphayB3IGxla2NqaSAxLjIuOiAgOnEhCisgICAgIEx1YiBqZZxsaSBtYXN6IGRvc3TqcCBkbyBpbm5lZ28gdGVybWluYWxhIHpy82Iga29sZWpuZSBrcm9raSB0YW0uCiAKICAgMi4gVyBwb3ezb2NlIHd5ZGFqIHBvbGVjZW5pZTogIHZpbSB0dXRvcjxFTlRFUj4KICAgICAgInZpbSIgamVzdCBwb2xlY2VuaWVtIHVydWNoYW1pYWq5Y3ltIGVkeXRvciBWaW0uICd0dXRvcicgdG8gbmF6d2EgcGxpa3UKQEAgLTE1NywxMSArMTU3LDExIEBACiAKICAgNC4gWmFwaXN6IHBsaWsgemUgem1pYW5hbWkgaSBvcHWc5iBWaW1hOiAgOndxPEVOVEVSPgogCi0gIDUuIFVydWNob20gcG9ub3duaWUgdmltdHV0b3IgaSBwcnplamSfIGRvIHBvZHN1bW93YW5pYSBsZWtjamkuCisgIDUuIEplnGxpIHpha2/xY3p5s2WcIHZpbXR1dG9yIHcga3Jva3UgMS4gdXJ1Y2hvbSBnbyBwb25vd25pZSBpIHByemVqZJ8KKyAgICAgZG8gcG9kc3Vtb3dhbmlhIHBvbmm/ZWouCiAKICAgNi4gUG8gcHJ6ZWN6eXRhbml1IHdzenlzdGtpY2gga3Jva/N3IGkgaWNoIHpyb3p1bWllbml1OiB3eWtvbmFqIGplLgogCi0KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJICAgICBMRUtDSkEgMS4gUE9EU1VNT1dBTklFCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwudXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLnBsLnV0Zi04CmluZGV4IDQ1OTBjNDUuLjg4Zjk1ZDEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IucGwudXRmLTgKKysrIGIvcnVudGltZS90dXRvci90dXRvci5wbC51dGYtOApAQCAtMTQyLDEyICsxNDIsMTIgQEAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJICBMZWtjamEgMS42LjogRURZQ0pBIFBMSUtVCiAKLQogCQkgICoqIFXFvHlqICA6d3EgIGFieSB6YXBpc2HEhyBwbGlrIGkgd3lqxZvEhy4gKioKIAogICAgISEgVVdBR0E6IHphbmltIHd5a29uYXN6IGpha2lla29sd2llayBwb2xlY2VuaWEgcHJ6ZWN6eWFqIGNhxYLEhSBsZWtjasSZICEhCiAKICAgMS4gWmFrb8WEY3ogdHV0b3JpYWwgdGFrIGphayB3IGxla2NqaSAxLjIuOiAgOnEhCisgICAgIEx1YiBqZcWbbGkgbWFzeiBkb3N0xJlwIGRvIGlubmVnbyB0ZXJtaW5hbGEgenLDs2Iga29sZWpuZSBrcm9raSB0YW0uCiAKICAgMi4gVyBwb3fFgm9jZSB3eWRhaiBwb2xlY2VuaWU6ICB2aW0gdHV0b3I8RU5URVI+CiAgICAgICJ2aW0iIGplc3QgcG9sZWNlbmllbSB1cnVjaGFtaWFqxIVjeW0gZWR5dG9yIFZpbS4gJ3R1dG9yJyB0byBuYXp3YSBwbGlrdQpAQCAtMTU3LDExICsxNTcsMTEgQEAKIAogICA0LiBaYXBpc3ogcGxpayB6ZSB6bWlhbmFtaSBpIG9wdcWbxIcgVmltYTogIDp3cTxFTlRFUj4KIAotICA1LiBVcnVjaG9tIHBvbm93bmllIHZpbXR1dG9yIGkgcHJ6ZWpkxbogZG8gcG9kc3Vtb3dhbmlhIGxla2NqaS4KKyAgNS4gSmXFm2xpIHpha2/FhGN6ecWCZcWbIHZpbXR1dG9yIHcga3Jva3UgMS4gdXJ1Y2hvbSBnbyBwb25vd25pZSBpIHByemVqZMW6CisgICAgIGRvIHBvZHN1bW93YW5pYSBwb25pxbxlai4KIAogICA2LiBQbyBwcnplY3p5dGFuaXUgd3N6eXN0a2ljaCBrcm9rw7N3IGkgaWNoIHpyb3p1bWllbml1OiB3eWtvbmFqIGplLgogCi0KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCQkJICAgICBMRUtDSkEgMS4gUE9EU1VNT1dBTklFCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdmltcmNfZXhhbXBsZS52aW0gYi9ydW50aW1lL3ZpbXJjX2V4YW1wbGUudmltCmluZGV4IGEyYTg5MWMuLjJjMGRlM2QgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdmltcmNfZXhhbXBsZS52aW0KKysrIGIvcnVudGltZS92aW1yY19leGFtcGxlLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgQW4gZXhhbXBsZSBmb3IgYSB2aW1yYyBmaWxlLgogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IGNoYW5nZToJMjAwOCBKdW4gMTYKKyIgTGFzdCBjaGFuZ2U6CTIwMDggSnVsIDAyCiAiCiAiIFRvIHVzZSBpdCwgY29weSBpdCB0bwogIiAgICAgZm9yIFVuaXggYW5kIE9TLzI6ICB+Ly52aW1yYwpAQCAtNDIsNyArNDIsOSBAQAogaW5vcmVtYXAgPEMtVT4gPEMtRz51PEMtVT4KIAogIiBJbiBtYW55IHRlcm1pbmFsIGVtdWxhdG9ycyB0aGUgbW91c2Ugd29ya3MganVzdCBmaW5lLCB0aHVzIGVuYWJsZSBpdC4KLXNldCBtb3VzZT1hCitpZiBoYXMoJ21vdXNlJykKKyAgc2V0IG1vdXNlPWEKK2VuZGlmCiAKICIgU3dpdGNoIHN5bnRheCBoaWdobGlnaHRpbmcgb24sIHdoZW4gdGhlIHRlcm1pbmFsIGhhcyBjb2xvcnMKICIgQWxzbyBzd2l0Y2ggb24gaGlnaGxpZ2h0aW5nIHRoZSBsYXN0IHVzZWQgc2VhcmNoIHBhdHRlcm4uCg==