From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 27549 invoked from network); 20 Nov 2021 14:23:23 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 20 Nov 2021 14:23:23 -0000 Content-Type: multipart/mixed; boundary="===============2507236688668238651==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_firefox-esr=3A_update_to_91=2E3=2E0=2E?= To: ml@inbox.vuxu.org From: jdnuemm Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sat, 20 Nov 2021 15:23:23 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============2507236688668238651== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IGpkbnVlbW0gYWdhaW5zdCBtYXN0ZXIgb24g dGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2pkbnVlbW0v dm9pZC1wYWNrYWdlcyBmaXJlZm94LWVzci05MS4zLjAKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM0MTY3CgpmaXJlZm94LWVzcjogdXBkYXRlIHRvIDkx LjMuMC4KVGVzdGluZyB0aGUgY2hhbmdlczoNCg0KLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBpbiB0 aGlzIFBSOiBicmllZmx5DQoNCkxvY2FsIGJ1aWxkIHRlc3Rpbmc6DQoNCi0gSSBidWlsdCB0aGlz IFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIHg4Nl82NC1nbGliYw0KDQpO b3RlOg0KDQpJIHVzZSB0aGUgUGF0Y2hlcyBmcm9tIFRodW5kZXJiaXJkIGFuZCBzeW5jIHRoZSB0 ZW1wbGF0ZSB3aXRoIEZpcmVmb3guIA0KDQpbc2tpcCBDSV0KCkEgcGF0Y2ggZmlsZSBmcm9tIGh0 dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNDE2Ny5wYXRj aCBpcyBhdHRhY2hlZA== --===============2507236688668238651== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-firefox-esr-91.3.0-34167.patch" RnJvbSBlZTVmOThiODQxZDE1YmYzMmI5NzEyOWQxNjA0NmMzN2JiOGY5MzEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2hhbm5lcyBEYW5pZWwgTnVlbW0gPGRhbmllbC5udWVtbUBi bGFja3RyZS5lcz4KRGF0ZTogVGh1LCAxOCBOb3YgMjAyMSAxODozMzo0MSArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIGZpcmVmb3gtZXNyOiB1cGRhdGUgdG8gOTEuMy4wLgoKLS0tCiBzcmNwa2dzL2Zp cmVmb3gtZXNyL2ZpbGVzL21vemNvbmZpZyAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9maXJl Zm94LWVzci9maWxlcy92ZW5kb3IuanMgICAgICAgICAgIHwgICAyICstCiAuLi4vcGF0Y2hlcy9h dm9pZC1yZWRlZmluaXRpb24ucGF0Y2ggICAgICAgICAgfCAgMTUgKwogc3JjcGtncy9maXJlZm94 LWVzci9wYXRjaGVzL2ZpeC1jcm9zcy5wYXRjaCAgIHwgIDE2IC0KIC4uLi9wYXRjaGVzL2ZpeC1m b3J0aWZ5LWlubGluZS5wYXRjaCAgICAgICAgICB8ICAxMSAtCiAuLi4vZmlyZWZveC1lc3IvcGF0 Y2hlcy9maXgtaTM4Ni1mZGxpYm0ucGF0Y2ggfCAgMTggKwogLi4uL2ZpcmVmb3gtZXNyL3BhdGNo ZXMvZml4LXB5dGhvbjMuMTAucGF0Y2ggIHwgODI2IC0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL2Zp cmVmb3gtZXNyL3BhdGNoZXMvZml4LXdhc20tYXJtLnBhdGNoICAgIHwgIDE1IC0KIC4uLi9wYXRj aGVzL2ZpeC13ZWJydGMtZ2xpYmNpc21zLnBhdGNoICAgICAgICB8ICAgNCArLQogLi4uL2ZpcmVm b3gtZXNyL3BhdGNoZXMvZmxhYy1uby1mZnZweC5wYXRjaCAgIHwgICA1ICstCiAuLi4vcGF0Y2hl cy9tdXNsLXJ1c3QuY29uZmlndXJlLnBhdGNoICAgICAgICAgfCAgMjYgLQogLi4uL2ZpcmVmb3gt ZXNyL3BhdGNoZXMvcnVzdC1jb25maWd1cmUucGF0Y2ggIHwgMTMyICsrLQogLi4uL2ZpcmVmb3gt ZXNyL3BhdGNoZXMvcnVzdC1oYXMtaTEyOC5wYXRjaCAgIHwgIDIxIC0KIC4uLi9maXJlZm94LWVz ci9wYXRjaGVzL3NhbmRib3gtZm9yay5wYXRjaCAgICB8ICAgNCArLQogc3JjcGtncy9maXJlZm94 LWVzci9wYXRjaGVzL3NuZGlvLnBhdGNoICAgICAgIHwgIDE0ICstCiBzcmNwa2dzL2ZpcmVmb3gt ZXNyL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgfCAxMjcgKystCiBzcmNwa2dzL2ZpcmVmb3gt ZXNyL3VwZGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIDE3IGZpbGVzIGNoYW5nZWQs IDIxMCBpbnNlcnRpb25zKCspLCAxMDMxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9hdm9pZC1yZWRlZmluaXRpb24ucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LWNyb3NzLnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC1m b3J0aWZ5LWlubGluZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmlyZWZveC1l c3IvcGF0Y2hlcy9maXgtaTM4Ni1mZGxpYm0ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LXB5dGhvbjMuMTAucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LXdhc20tYXJtLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL211c2wtcnVzdC5j b25maWd1cmUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZpcmVmb3gtZXNyL3Bh dGNoZXMvcnVzdC1oYXMtaTEyOC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmlyZWZveC1l c3IvZmlsZXMvbW96Y29uZmlnIGIvc3JjcGtncy9maXJlZm94LWVzci9maWxlcy9tb3pjb25maWcK aW5kZXggNzA4ZWU5ZWRlZDliLi5mYTVhN2E0MmUwNGIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmly ZWZveC1lc3IvZmlsZXMvbW96Y29uZmlnCisrKyBiL3NyY3BrZ3MvZmlyZWZveC1lc3IvZmlsZXMv bW96Y29uZmlnCkBAIC0zMiw0ICszMiw1IEBAIGFjX2FkZF9vcHRpb25zIC0tZW5hYmxlLW9wdGlt aXplPSIkQ0ZMQUdTIgogCiBhY19hZGRfb3B0aW9ucyAtLWVuYWJsZS1vZmZpY2lhbC1icmFuZGlu ZwogYWNfYWRkX29wdGlvbnMgLS1lbmFibGUtYXBwbGljYXRpb249YnJvd3NlcgorCiBhY19hZGRf b3B0aW9ucyAtLWFsbG93LWFkZG9uLXNpZGVsb2FkCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZpcmVm b3gtZXNyL2ZpbGVzL3ZlbmRvci5qcyBiL3NyY3BrZ3MvZmlyZWZveC1lc3IvZmlsZXMvdmVuZG9y LmpzCmluZGV4IGQ4ZDYwNmJjMTVkNy4uNWJlNGYxYjVmM2ZmIDEwMDY0NAotLS0gYS9zcmNwa2dz L2ZpcmVmb3gtZXNyL2ZpbGVzL3ZlbmRvci5qcworKysgYi9zcmNwa2dzL2ZpcmVmb3gtZXNyL2Zp bGVzL3ZlbmRvci5qcwpAQCAtMSw1ICsxLDUgQEAKIC8vIFVzZSBMQU5HIGVudmlyb25tZW50IHZh cmlhYmxlIHRvIGNob29zZSBsb2NhbGUKLXByZWYoImludGwubG9jYWxlLm1hdGNoT1MiLCB0cnVl KTsKK3ByZWYoImludGwubG9jYWxlLnJlcXVlc3RlZCIsICIiKTsKIAogLy8gRGlzYWJsZSBkZWZh dWx0IGJyb3dzZXIgY2hlY2tpbmcuCiBwcmVmKCJicm93c2VyLnNoZWxsLmNoZWNrRGVmYXVsdEJy b3dzZXIiLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMv YXZvaWQtcmVkZWZpbml0aW9uLnBhdGNoIGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2F2 b2lkLXJlZGVmaW5pdGlvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjg2N2QzN2M2MmE5MAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZmlyZWZveC1l c3IvcGF0Y2hlcy9hdm9pZC1yZWRlZmluaXRpb24ucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorQXV0 aG9yOiBSYXNtdXMgVGhvbXNlbiA8b3NzQGNvZ2l0cmkuZGV2PgorUmVhc29uOiBGRiBpcyBtaXhp bmcgdXNlcnNwYWNlIG5ldCBoZWFkZXJzIChuZXQvaWYuaCkgYW5kIGtlcm5lbHNwYWNlIG9uZXMK KyhsaW51eC9pZi5oKSwgbGVhZGluZyB0byByZWRlZmluaXRpb25zLiBXZSBuZWVkIHRvIGluY2x1 ZGUgbmV0L2lmLmggYmVmb3JlCitsaW51eC9pZi5oIGJlY2F1c2UgbGludXgvaWYuaCBoYXMgcmVk aWZpbml0aW9uIGd1YXJkcyB3aGVyZWFzIG5ldC9pZi5oIGRvZXNudAorVXBzdHJlYW06IE5vCist LS0gYS9kb20vbWVkaWEvd2VicnRjL3RyYW5zcG9ydC90aGlyZF9wYXJ0eS9uSUNFci9zcmMvc3R1 bi9hZGRycy1uZXRsaW5rLmMJMjAyMC0wNy0yOCAxOToyNDozMi4zNTk3NTEwNDYgKzAyMDAKKysr KyBiL2RvbS9tZWRpYS93ZWJydGMvdHJhbnNwb3J0L3RoaXJkX3BhcnR5L25JQ0VyL3NyYy9zdHVu L2FkZHJzLW5ldGxpbmsuYwkyMDIwLTA3LTI4IDE5OjI0OjM3Ljg1NjM0Mzc1MSArMDIwMAorQEAg LTMxLDYgKzMxLDcgQEAKKyAqLworIAorICNpZiBkZWZpbmVkKExJTlVYKQorKyNpbmNsdWRlIDxu ZXQvaWYuaD4KKyAjaW5jbHVkZSAiYWRkcnMtbmV0bGluay5oIgorICNpbmNsdWRlIDxjc2lfcGxh dGZvcm0uaD4KKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZpcmVm b3gtZXNyL3BhdGNoZXMvZml4LWNyb3NzLnBhdGNoIGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRj aGVzL2ZpeC1jcm9zcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFkOGY5 MDYwYzQ2Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2Zp eC1jcm9zcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLXRlcnJpYmxlIGhh Y2sgdG8gZml4IGNyb3NzIGJ1aWxkcwotb3ZlcndyaXRlIEhPU1RfKiBmbGFncyB0byBnZXQgcmlk IG9mIC1NRgotCi1ub3RlOiB0aGlzIHBhdGNoIHdhcyB1c2VkIGZyb20gZmlyZWZveC03NyB1bnRp bCA4MCwgZHJvcHBlZCB3aXRoIHRoZSB1cGRhdGUgdG8gODEKLQotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9nbHNsb3B0L2J1aWxkLnJzCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2dsc2xvcHQvYnVp bGQucnMKLUBAIC0yOCw2ICsyOCw4IEBACi0gICAgIGVudjo6cmVtb3ZlX3Zhcihmb3JtYXQhKCJD WFhGTEFHU197fSIsICZ0YXJnZXQpKTsKLSAgICAgZW52OjpyZW1vdmVfdmFyKGZvcm1hdCEoIkNG TEFHU197fSIsIHRhcmdldC5yZXBsYWNlKCItIiwgIl8iKSkpOwotICAgICBlbnY6OnJlbW92ZV92 YXIoZm9ybWF0ISgiQ1hYRkxBR1Nfe30iLCB0YXJnZXQucmVwbGFjZSgiLSIsICJfIikpKTsKLSsg ICAgZW52OjpzZXRfdmFyKCJIT1NUX0NGTEFHUyIsICItTzIiKTsKLSsgICAgZW52OjpzZXRfdmFy KCJIT1NUX0NYWEZMQUdTIiwgIi1PMiIpOwotCi0gICAgIGNvbmZpZ3VyZSgmbXV0IGNjOjpCdWls ZDo6bmV3KCkpCi0gICAgICAgICAud2FybmluZ3MoZmFsc2UpCmRpZmYgLS1naXQgYS9zcmNwa2dz L2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LWZvcnRpZnktaW5saW5lLnBhdGNoIGIvc3JjcGtncy9m aXJlZm94LWVzci9wYXRjaGVzL2ZpeC1mb3J0aWZ5LWlubGluZS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMjQ5OGM1N2ZjNzM4Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC1mb3J0aWZ5LWlubGluZS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL21lZGlhL3dlYnJ0Yy9zaWduYWxpbmcvc3JjL3Nk cC9zaXBjYy9zZHBfb3NfZGVmcy5oCi0rKysgYi9tZWRpYS93ZWJydGMvc2lnbmFsaW5nL3NyYy9z ZHAvc2lwY2Mvc2RwX29zX2RlZnMuaAotQEAgLTI3LDggKzI3LDUgQEAKLSB0eXBlZGVmIGludDE2 X3QgICAgaW50MTY7Ci0gdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1c2hvcnQ7Ci0gdHlwZWRlZiB1 bnNpZ25lZCBsb25nICB1bG9uZzsKLS0jaWZuZGVmIF9fR05VQ19TVERDX0lOTElORV9fCi0tI2Rl ZmluZSBpbmxpbmUKLS0jZW5kaWYKLSAKLSAjZW5kaWYgLyogX1NEUF9PU19ERUZTX0hfICovCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LWkzODYtZmRsaWJtLnBh dGNoIGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC1pMzg2LWZkbGlibS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjgzMWU1ZTAzNjc4ZAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9maXgtaTM4Ni1mZGxp Ym0ucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorIyBlcnJvcjogdHlwZWRlZiByZWRlZmluaXRpb24g d2l0aCBkaWZmZXJlbnQgdHlwZXMgKCdfX2RvdWJsZV90JyAoYWthICdkb3VibGUnKSB2cyAnbG9u ZyBkb3VibGUnKQorIyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9p ZD0xNzI5NDU5CisKKy0tLSBhL21vZHVsZXMvZmRsaWJtL3NyYy9tYXRoX3ByaXZhdGUuaAorKysr IGIvbW9kdWxlcy9mZGxpYm0vc3JjL21hdGhfcHJpdmF0ZS5oCitAQCAtMzAsNyArMzAsMTIgQEAK KyAgKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2ZyZWVic2QvZnJlZWJzZC1zcmMv c2VhcmNoP3E9X19kb3VibGVfdAorICAqLworIAorKyNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYg ZGVmaW5lZChfX2kzODZfXykKKysvLyByZWx5IG9uIGdsaWJjJ3MgZG91YmxlX3QKKyt0eXBlZGVm IGxvbmcgZG91YmxlIF9fZG91YmxlX3Q7CisrI2Vsc2UKKyB0eXBlZGVmIGRvdWJsZSAgICAgIF9f ZG91YmxlX3Q7CisrI2VuZGlmCisgdHlwZWRlZiBfX2RvdWJsZV90ICBkb3VibGVfdDsKKyAKKyAv KgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC1weXRob24zLjEw LnBhdGNoIGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC1weXRob24zLjEwLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNDNlNTg3ODI1ODEuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LXB5dGhvbjMuMTAucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw4MjYgKzAsMCBAQAotZGlmZiAtdXIgYS9weXRob24vbWFjaC9t YWNoL2NvbmZpZy5weSBiL3B5dGhvbi9tYWNoL21hY2gvY29uZmlnLnB5Ci0tLS0gYS9weXRob24v bWFjaC9tYWNoL2NvbmZpZy5weQkyMDIxLTA5LTAxIDEzOjI2OjE4LjAwMDAwMDAwMCAtMDQwMAot KysrIGIvcHl0aG9uL21hY2gvbWFjaC9jb25maWcucHkJMjAyMS0xMS0wNSAxNToyOToxMi4wMDAw MDAwMDAgLTA0MDAKLUBAIC0xNDQsNyArMTQ0LDcgQEAKLSAgICAgcmV0dXJuIF8KLSAKLSAKLS1j bGFzcyBDb25maWdTZXR0aW5ncyhjb2xsZWN0aW9ucy5NYXBwaW5nKToKLStjbGFzcyBDb25maWdT ZXR0aW5ncyhjb2xsZWN0aW9ucy5hYmMuTWFwcGluZyk6Ci0gICAgICIiIkludGVyZmFjZSBmb3Ig Y29uZmlndXJhdGlvbiBzZXR0aW5ncy4KLSAKLSAgICAgVGhpcyBpcyB0aGUgbWFpbiBpbnRlcmZh Y2UgdG8gdGhlIGNvbmZpZ3VyYXRpb24uCi1AQCAtMTkwLDcgKzE5MCw3IEBACi0gICAgIHdpbGwg cmVzdWx0IGluIGV4Y2VwdGlvbnMgYmVpbmcgcmFpc2VkLgotICAgICAiIiIKLSAKLS0gICAgY2xh c3MgQ29uZmlnU2VjdGlvbihjb2xsZWN0aW9ucy5NdXRhYmxlTWFwcGluZywgb2JqZWN0KToKLSsg ICAgY2xhc3MgQ29uZmlnU2VjdGlvbihjb2xsZWN0aW9ucy5hYmMuTXV0YWJsZU1hcHBpbmcsIG9i amVjdCk6Ci0gICAgICAgICAiIiJSZXByZXNlbnRzIGFuIGluZGl2aWR1YWwgY29uZmlnIHNlY3Rp b24uIiIiCi0gICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCBuYW1lLCBzZXR0aW5n cyk6Ci0gICAgICAgICAgICAgb2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsICdfY29uZmlnJywgY29u ZmlnKQotZGlmZiAtdXIgYS9weXRob24vbWFjaC9tYWNoL2RlY29yYXRvcnMucHkgYi9weXRob24v bWFjaC9tYWNoL2RlY29yYXRvcnMucHkKLS0tLSBhL3B5dGhvbi9tYWNoL21hY2gvZGVjb3JhdG9y cy5weQkyMDIxLTA5LTAxIDEzOjI2OjE4LjAwMDAwMDAwMCAtMDQwMAotKysrIGIvcHl0aG9uL21h Y2gvbWFjaC9kZWNvcmF0b3JzLnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAw Ci1AQCAtMTQwLDcgKzE0MCw3IEBACi0gICAgICAgICAgICAgICAnQ29uZGl0aW9ucyBhcmd1bWVu dCBtdXN0IHRha2UgYSBsaXN0ICcgKyBcCi0gICAgICAgICAgICAgICAnb2YgZnVuY3Rpb25zLiBG b3VuZCAlcyBpbnN0ZWFkLicKLSAKLS0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbW1hbmQu Y29uZGl0aW9ucywgY29sbGVjdGlvbnMuSXRlcmFibGUpOgotKyAgICAgICAgaWYgbm90IGlzaW5z dGFuY2UoY29tbWFuZC5jb25kaXRpb25zLCBjb2xsZWN0aW9ucy5hYmMuSXRlcmFibGUpOgotICAg ICAgICAgICAgIG1zZyA9IG1zZyAlIChjb21tYW5kLm5hbWUsIHR5cGUoY29tbWFuZC5jb25kaXRp b25zKSkKLSAgICAgICAgICAgICByYWlzZSBNYWNoRXJyb3IobXNnKQotIAotZGlmZiAtdXIgYS9w eXRob24vbWFjaC9tYWNoL21haW4ucHkgYi9weXRob24vbWFjaC9tYWNoL21haW4ucHkKLS0tLSBh L3B5dGhvbi9tYWNoL21hY2gvbWFpbi5weQkyMDIxLTA5LTAxIDEzOjI2OjIzLjAwMDAwMDAwMCAt MDQwMAotKysrIGIvcHl0aG9uL21hY2gvbWFjaC9tYWluLnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIu MDAwMDAwMDAwIC0wNDAwCi1AQCAtMTYsNyArMTYsNyBAQAotIGltcG9ydCBzeXMKLSBpbXBvcnQg dHJhY2ViYWNrCi0gaW1wb3J0IHV1aWQKLS1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBJdGVyYWJs ZQotK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBJdGVyYWJsZQotIAotIGZyb20gc2l4IGlt cG9ydCBzdHJpbmdfdHlwZXMKLSAKLWRpZmYgLXVyIGEvcHl0aG9uL21vemJ1aWxkL21vemJ1aWxk L2JhY2tlbmQvY29uZmlnZW52aXJvbm1lbnQucHkgYi9weXRob24vbW96YnVpbGQvbW96YnVpbGQv YmFja2VuZC9jb25maWdlbnZpcm9ubWVudC5weQotLS0tIGEvcHl0aG9uL21vemJ1aWxkL21vemJ1 aWxkL2JhY2tlbmQvY29uZmlnZW52aXJvbm1lbnQucHkJMjAyMS0wOS0wMSAxMzoyNjozNC4wMDAw MDAwMDAgLTA0MDAKLSsrKyBiL3B5dGhvbi9tb3pidWlsZC9tb3pidWlsZC9iYWNrZW5kL2NvbmZp Z2Vudmlyb25tZW50LnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAt OSw3ICs5LDggQEAKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IGpzb24KLSAKLS1mcm9tIGNvbGxlY3Rp b25zIGltcG9ydCBJdGVyYWJsZSwgT3JkZXJlZERpY3QKLStmcm9tIGNvbGxlY3Rpb25zIGltcG9y dCBPcmRlcmVkRGljdAotK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBJdGVyYWJsZQotIGZy b20gdHlwZXMgaW1wb3J0IE1vZHVsZVR5cGUKLSAKLSBpbXBvcnQgbW96cGFjay5wYXRoIGFzIG1v enBhdGgKLWRpZmYgLXVyIGEvcHl0aG9uL21vemJ1aWxkL21vemJ1aWxkL21ha2V1dGlsLnB5IGIv cHl0aG9uL21vemJ1aWxkL21vemJ1aWxkL21ha2V1dGlsLnB5Ci0tLS0gYS9weXRob24vbW96YnVp bGQvbW96YnVpbGQvbWFrZXV0aWwucHkJMjAyMS0wOS0wMSAxMzoyNjoxOC4wMDAwMDAwMDAgLTA0 MDAKLSsrKyBiL3B5dGhvbi9tb3pidWlsZC9tb3pidWlsZC9tYWtldXRpbC5weQkyMDIxLTExLTA1 IDE1OjI5OjEyLjAwMDAwMDAwMCAtMDQwMAotQEAgLTcsNyArNyw3IEBACi0gaW1wb3J0IG9zCi0g aW1wb3J0IHJlCi0gaW1wb3J0IHNpeAotLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IEl0ZXJhYmxl Ci0rZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IEl0ZXJhYmxlCi0gCi0gCi0gY2xhc3MgTWFr ZWZpbGUob2JqZWN0KToKLWRpZmYgLXVyIGEvcHl0aG9uL21vemJ1aWxkL21vemJ1aWxkL3V0aWwu cHkgYi9weXRob24vbW96YnVpbGQvbW96YnVpbGQvdXRpbC5weQotLS0tIGEvcHl0aG9uL21vemJ1 aWxkL21vemJ1aWxkL3V0aWwucHkJMjAyMS0wOS0wMSAxMzoyNjoxOC4wMDAwMDAwMDAgLTA0MDAK LSsrKyBiL3B5dGhvbi9tb3pidWlsZC9tb3pidWlsZC91dGlsLnB5CTIwMjEtMTEtMDUgMTU6Mjk6 MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAtNzgyLDcgKzc4Miw3IEBACi0gICAgICAgICBzZWxmLl9z dHJpbmdzID0gU3RyaWN0T3JkZXJpbmdPbkFwcGVuZExpc3QoKQotICAgICAgICAgc2VsZi5fY2hp bGRyZW4gPSB7fQotIAotLSAgICBjbGFzcyBTdHJpbmdMaXN0QWRhcHRvcihjb2xsZWN0aW9ucy5T ZXF1ZW5jZSk6Ci0rICAgIGNsYXNzIFN0cmluZ0xpc3RBZGFwdG9yKGNvbGxlY3Rpb25zLmFiYy5T ZXF1ZW5jZSk6Ci0gICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgaHNsKToKLSAgICAgICAgICAg ICBzZWxmLl9oc2wgPSBoc2wKLSAKLWRpZmYgLXVyIGEvdGVzdGluZy9tYXJpb25ldHRlL2NsaWVu dC9tYXJpb25ldHRlX2RyaXZlci93YWl0LnB5IGIvdGVzdGluZy9tYXJpb25ldHRlL2NsaWVudC9t YXJpb25ldHRlX2RyaXZlci93YWl0LnB5Ci0tLS0gYS90ZXN0aW5nL21hcmlvbmV0dGUvY2xpZW50 L21hcmlvbmV0dGVfZHJpdmVyL3dhaXQucHkJMjAyMS0wOS0wMSAxMzoyNjozMC4wMDAwMDAwMDAg LTA0MDAKLSsrKyBiL3Rlc3RpbmcvbWFyaW9uZXR0ZS9jbGllbnQvbWFyaW9uZXR0ZV9kcml2ZXIv d2FpdC5weQkyMDIxLTExLTA1IDE1OjI5OjEyLjAwMDAwMDAwMCAtMDQwMAotQEAgLTgyLDcgKzgy LDcgQEAKLSAKLSAgICAgICAgIGV4Y2VwdGlvbnMgPSBbXQotICAgICAgICAgaWYgaWdub3JlZF9l eGNlcHRpb25zIGlzIG5vdCBOb25lOgotLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaWdub3Jl ZF9leGNlcHRpb25zLCBjb2xsZWN0aW9ucy5JdGVyYWJsZSk6Ci0rICAgICAgICAgICAgaWYgaXNp bnN0YW5jZShpZ25vcmVkX2V4Y2VwdGlvbnMsIGNvbGxlY3Rpb25zLmFiYy5JdGVyYWJsZSk6Ci0g ICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnMuZXh0ZW5kKGl0ZXIoaWdub3JlZF9leGNlcHRpb25z KSkKLSAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICBleGNlcHRpb25zLmFwcGVu ZChpZ25vcmVkX2V4Y2VwdGlvbnMpCi1kaWZmIC11ciBhL3Rlc3RpbmcvbW96YmFzZS9tYW5pZmVz dHBhcnNlci9tYW5pZmVzdHBhcnNlci9maWx0ZXJzLnB5IGIvdGVzdGluZy9tb3piYXNlL21hbmlm ZXN0cGFyc2VyL21hbmlmZXN0cGFyc2VyL2ZpbHRlcnMucHkKLS0tLSBhL3Rlc3RpbmcvbW96YmFz ZS9tYW5pZmVzdHBhcnNlci9tYW5pZmVzdHBhcnNlci9maWx0ZXJzLnB5CTIwMjEtMDktMDEgMTM6 MjY6MjMuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90ZXN0aW5nL21vemJhc2UvbWFuaWZlc3RwYXJz ZXIvbWFuaWZlc3RwYXJzZXIvZmlsdGVycy5weQkyMDIxLTExLTA1IDE1OjI5OjEyLjAwMDAwMDAw MCAtMDQwMAotQEAgLTEyLDcgKzEyLDggQEAKLSAKLSBpbXBvcnQgaXRlcnRvb2xzCi0gaW1wb3J0 IG9zCi0tZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QsIE11dGFibGVTZXF1ZW5j ZQotK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0Ci0rZnJvbSBjb2xsZWN0aW9u cy5hYmMgaW1wb3J0IE11dGFibGVTZXF1ZW5jZQotIAotIGltcG9ydCBzaXgKLSBmcm9tIHNpeCBp bXBvcnQgc3RyaW5nX3R5cGVzCi1kaWZmIC11ciBhL3Rlc3RpbmcvbW96YmFzZS92ZXJzaW9uaW5m by5weSBiL3Rlc3RpbmcvbW96YmFzZS92ZXJzaW9uaW5mby5weQotLS0tIGEvdGVzdGluZy9tb3pi YXNlL3ZlcnNpb25pbmZvLnB5CTIwMjEtMDktMDEgMTM6MjY6MjMuMDAwMDAwMDAwIC0wNDAwCi0r KysgYi90ZXN0aW5nL21vemJhc2UvdmVyc2lvbmluZm8ucHkJMjAyMS0xMS0wNSAxNToyOToxMi4w MDAwMDAwMDAgLTA0MDAKLUBAIC0xMSw3ICsxMSw3IEBACi0gCi0gZnJvbSBfX2Z1dHVyZV9fIGlt cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIHByaW50X2Z1bmN0aW9uCi0gCi0tZnJvbSBjb2xsZWN0aW9u cyBpbXBvcnQgSXRlcmFibGUKLStmcm9tIGNvbGxlY3Rpb25zLmFiYyBpbXBvcnQgSXRlcmFibGUK LSBmcm9tIGRpc3R1dGlscy52ZXJzaW9uIGltcG9ydCBTdHJpY3RWZXJzaW9uCi0gaW1wb3J0IGFy Z3BhcnNlCi0gaW1wb3J0IG9zCi1kaWZmIC11ciBhL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3Rz L3Rvb2xzL21hbmlmZXN0L3R5cGVkYXRhLnB5IGIvdGVzdGluZy93ZWItcGxhdGZvcm0vdGVzdHMv dG9vbHMvbWFuaWZlc3QvdHlwZWRhdGEucHkKLS0tLSBhL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rl c3RzL3Rvb2xzL21hbmlmZXN0L3R5cGVkYXRhLnB5CTIwMjEtMDktMDEgMTM6MjY6NDAuMDAwMDAw MDAwIC0wNDAwCi0rKysgYi90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy9tYW5pZmVz dC90eXBlZGF0YS5weQkyMDIxLTExLTA1IDE1OjI5OjEyLjAwMDAwMDAwMCAtMDQwMAotQEAgLTEs NCArMSw0IEBACi0tZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTXV0YWJsZU1hcHBpbmcKLStmcm9t IGNvbGxlY3Rpb25zLmFiYyBpbXBvcnQgTXV0YWJsZU1hcHBpbmcKLSAKLSBmcm9tIHNpeCBpbXBv cnQgaXRlcnZhbHVlcywgaXRlcml0ZW1zCi0gCi1kaWZmIC11ciBhL3Rlc3Rpbmcvd2ViLXBsYXRm b3JtL3Rlc3RzL3Rvb2xzL21hbmlmZXN0L3Zjcy5weSBiL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rl c3RzL3Rvb2xzL21hbmlmZXN0L3Zjcy5weQotLS0tIGEvdGVzdGluZy93ZWItcGxhdGZvcm0vdGVz dHMvdG9vbHMvbWFuaWZlc3QvdmNzLnB5CTIwMjEtMDktMDEgMTM6Mjc6MDUuMDAwMDAwMDAwIC0w NDAwCi0rKysgYi90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy9tYW5pZmVzdC92Y3Mu cHkJMjAyMS0xMS0wNSAxNToyOToxMi4wMDAwMDAwMDAgLTA0MDAKLUBAIC0zLDcgKzMsNyBAQAot IGltcG9ydCBvcwotIGltcG9ydCBzdGF0Ci0gZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUK LS1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNdXRhYmxlTWFwcGluZwotK2Zyb20gY29sbGVjdGlv bnMuYWJjIGltcG9ydCBNdXRhYmxlTWFwcGluZwotIAotIGZyb20gc2l4IGltcG9ydCB3aXRoX21l dGFjbGFzcywgUFkyCi0gCi1kaWZmIC11ciBhL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rv b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZnVuY3MucHkgYi90ZXN0aW5nL3dlYi1w bGF0Zm9ybS90ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2Z1bmNzLnB5 Ci0tLS0gYS90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy cy90ZXN0cy90ZXN0X2Z1bmNzLnB5CTIwMjEtMDktMDEgMTM6MjY6NTYuMDAwMDAwMDAwIC0wNDAw Ci0rKysgYi90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy cy90ZXN0cy90ZXN0X2Z1bmNzLnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAw Ci1AQCAtNCw3ICs0LDggQEAKLSAKLSBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0gCi0tZnJvbSBjb2xsZWN0aW9ucyBpbXBv cnQgTWFwcGluZywgT3JkZXJlZERpY3QsIFNlcXVlbmNlCi0rZnJvbSBjb2xsZWN0aW9ucyBpbXBv cnQgT3JkZXJlZERpY3QKLStmcm9tIGNvbGxlY3Rpb25zLmFiYyBpbXBvcnQgTWFwcGluZywgU2Vx dWVuY2UKLSAKLSBpbXBvcnQgcHl0ZXN0Ci0gCi1kaWZmIC11ciBhL3Rlc3Rpbmcvd2ViLXBsYXRm b3JtL3Rlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3NldHRpbmdzLnB5IGIvdGVzdGluZy93 ZWItcGxhdGZvcm0vdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvc2V0dGluZ3MucHkKLS0t LSBhL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3Nl dHRpbmdzLnB5CTIwMjEtMDktMDEgMTM6Mjc6MDUuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90ZXN0 aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9zZXR0aW5ncy5w eQkyMDIxLTExLTA1IDE1OjMyOjI4LjgxNzczNzM1NyAtMDQwMAotQEAgLTg4LDcgKzg4LDcgQEAK LSAgICAgICAgICkKLSAKLSAKLS1jbGFzcyBTZXR0aW5ncyhjb2xsZWN0aW9ucy5NdXRhYmxlTWFw cGluZyk6Ci0rY2xhc3MgU2V0dGluZ3MoY29sbGVjdGlvbnMuYWJjLk11dGFibGVNYXBwaW5nKToK LSAgICAgIiIiCi0gICAgIEFuIG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBIVFRQLzIgc2V0dGlu Z3Mgc3RhdGUuCi0gCi1kaWZmIC11ciBhL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rvb2xz L3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL190cmllL19iYXNlLnB5IGIvdGVzdGluZy93 ZWItcGxhdGZvcm0vdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvX3Ry aWUvX2Jhc2UucHkKLS0tLSBhL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rvb2xzL3RoaXJk X3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL190cmllL19iYXNlLnB5CTIwMjEtMDktMDEgMTM6Mjc6 MDUuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29s cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9fdHJpZS9fYmFzZS5weQkyMDIxLTExLTA1 IDE1OjI5OjEyLjAwMDAwMDAwMCAtMDQwMAotQEAgLTEsNiArMSw2IEBACi0gZnJvbSBfX2Z1dHVy ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCB1bmljb2RlX2xpdGVyYWxzCi0g Ci0tZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTWFwcGluZwotK2Zyb20gY29sbGVjdGlvbnMuYWJj IGltcG9ydCBNYXBwaW5nCi0gCi0gCi0gY2xhc3MgVHJpZShNYXBwaW5nKToKLWRpZmYgLXVyIGEv dGVzdGluZy93ZWItcGxhdGZvcm0vdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRt bDVsaWIvdHJlZWJ1aWxkZXJzL2RvbS5weSBiL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rv b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVidWlsZGVycy9kb20ucHkKLS0t LSBhL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGli L2h0bWw1bGliL3RyZWVidWlsZGVycy9kb20ucHkJMjAyMS0wOS0wMSAxMzoyNzowNS4wMDAwMDAw MDAgLTA0MDAKLSsrKyBiL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rvb2xzL3RoaXJkX3Bh cnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVidWlsZGVycy9kb20ucHkJMjAyMS0xMS0wNSAxNToy OToxMi4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xLDcgKzEsNyBAQAotIGZyb20gX19mdXR1cmVfXyBp bXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgdW5pY29kZV9saXRlcmFscwotIAotIAot LWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE11dGFibGVNYXBwaW5nCi0rZnJvbSBjb2xsZWN0aW9u cy5hYmMgaW1wb3J0IE11dGFibGVNYXBwaW5nCi0gZnJvbSB4bWwuZG9tIGltcG9ydCBtaW5pZG9t LCBOb2RlCi0gaW1wb3J0IHdlYWtyZWYKLSAKLWRpZmYgLXVyIGEvdGVzdGluZy93ZWItcGxhdGZv cm0vdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvY29tbW9uL2hlYWRlcnMucHkg Yi90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBl ci9jb21tb24vaGVhZGVycy5weQotLS0tIGEvdGVzdGluZy93ZWItcGxhdGZvcm0vdGVzdHMvdG9v bHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvY29tbW9uL2hlYWRlcnMucHkJMjAyMS0wOS0wMSAx MzoyNzowMC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBiL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3Rz L3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbW1vbi9oZWFkZXJzLnB5CTIwMjEtMTEt MDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMTAsNyArMTAsNyBAQAotIGZyb20gaHlw ZXIuY29tbW9uLnV0aWwgaW1wb3J0IHRvX2J5dGVzdHJpbmcsIHRvX2J5dGVzdHJpbmdfdHVwbGUK LSAKLSAKLS1jbGFzcyBIVFRQSGVhZGVyTWFwKGNvbGxlY3Rpb25zLk11dGFibGVNYXBwaW5nKToK LStjbGFzcyBIVFRQSGVhZGVyTWFwKGNvbGxlY3Rpb25zLmFiYy5NdXRhYmxlTWFwcGluZyk6Ci0g ICAgICIiIgotICAgICBBIHN0cnVjdHVyZSB0aGF0IGNvbnRhaW5zIEhUVFAgaGVhZGVycy4KLSAK LWRpZmYgLXVyIGEvdGVzdGluZy93ZWItcGxhdGZvcm0vdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv aHlwZXIvaHlwZXIvaDIvc2V0dGluZ3MucHkgYi90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90 b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9zZXR0aW5ncy5weQotLS0tIGEvdGVzdGlu Zy93ZWItcGxhdGZvcm0vdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvc2V0 dGluZ3MucHkJMjAyMS0wOS0wMSAxMzoyNjo1Ni4wMDAwMDAwMDAgLTA0MDAKLSsrKyBiL3Rlc3Rp bmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL3Nl dHRpbmdzLnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMTUxLDcg KzE1MSw3IEBACi0gICAgICAgICApCi0gCi0gCi0tY2xhc3MgU2V0dGluZ3MoY29sbGVjdGlvbnMu TXV0YWJsZU1hcHBpbmcpOgotK2NsYXNzIFNldHRpbmdzKGNvbGxlY3Rpb25zLmFiYy5NdXRhYmxl TWFwcGluZyk6Ci0gICAgICIiIgotICAgICBBbiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgSFRU UC8yIHNldHRpbmdzIHN0YXRlLgotIAotZGlmZiAtdXIgYS90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90 ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRwMTEvY29ubmVjdGlvbi5weSBi L3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVy L2h0dHAxMS9jb25uZWN0aW9uLnB5Ci0tLS0gYS90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90 b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRwMTEvY29ubmVjdGlvbi5weQkyMDIxLTA5 LTAxIDEzOjI3OjAwLjAwMDAwMDAwMCAtMDQwMAotKysrIGIvdGVzdGluZy93ZWItcGxhdGZvcm0v dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDExL2Nvbm5lY3Rpb24ucHkJ MjAyMS0xMS0wNSAxNToyOToxMi4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xMCw3ICsxMCw3IEBACi0g aW1wb3J0IHNvY2tldAotIGltcG9ydCBiYXNlNjQKLSAKLS1mcm9tIGNvbGxlY3Rpb25zIGltcG9y dCBJdGVyYWJsZSwgTWFwcGluZwotK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBJdGVyYWJs ZSwgTWFwcGluZwotIAotIGltcG9ydCBjb2xsZWN0aW9ucwotIGZyb20gaHlwZXJmcmFtZS5mcmFt ZSBpbXBvcnQgU2V0dGluZ3NGcmFtZQotQEAgLTI5NSw3ICsyOTUsNyBAQAotICAgICAgICAgICAg ICAgICByZXR1cm4KLSAKLSAgICAgICAgICAgICAjIEl0ZXJhYmxlcyB0aGF0IHNldCBhIHNwZWNp ZmljIGNvbnRlbnQgbGVuZ3RoLgotLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShib2R5LCBj b2xsZWN0aW9ucy5JdGVyYWJsZSk6Ci0rICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGJvZHks IGNvbGxlY3Rpb25zLmFiYy5JdGVyYWJsZSk6Ci0gICAgICAgICAgICAgICAgIGZvciBpdGVtIGlu IGJvZHk6Ci0gICAgICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5fc29jay5zZW5kKGl0ZW0pCi1kaWZmIC11ciBhL3Rlc3Rpbmcvd2ViLXBsYXRmb3Jt L3Rlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL2h5cGVyZnJhbWUv ZmxhZ3MucHkgYi90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o eXBlci9oeXBlci9wYWNrYWdlcy9oeXBlcmZyYW1lL2ZsYWdzLnB5Ci0tLS0gYS90ZXN0aW5nL3dl Yi1wbGF0Zm9ybS90ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9o eXBlcmZyYW1lL2ZsYWdzLnB5CTIwMjEtMDktMDEgMTM6Mjc6MDUuMDAwMDAwMDAwIC0wNDAwCi0r KysgYi90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9o eXBlci9wYWNrYWdlcy9oeXBlcmZyYW1lL2ZsYWdzLnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAw MDAwMDAwIC0wNDAwCi1AQCAtMTEsNyArMTEsNyBAQAotIEZsYWcgPSBjb2xsZWN0aW9ucy5uYW1l ZHR1cGxlKCJGbGFnIiwgWyJuYW1lIiwgImJpdCJdKQotIAotIAotLWNsYXNzIEZsYWdzKGNvbGxl Y3Rpb25zLk11dGFibGVTZXQpOgotK2NsYXNzIEZsYWdzKGNvbGxlY3Rpb25zLmFiYy5NdXRhYmxl U2V0KToKLSAgICAgIiIiCi0gICAgIEEgc2ltcGxlIE11dGFibGVTZXQgaW1wbGVtZW50YXRpb24g dGhhdCB3aWxsIG9ubHkgYWNjZXB0IGtub3duIGZsYWdzIGFzIGVsZW1lbnRzLgotIAotZGlmZiAt dXIgYS90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZy YW1lL2h5cGVyZnJhbWUvZmxhZ3MucHkgYi90ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29s cy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvZmxhZ3MucHkKLS0tLSBhL3Rlc3Rp bmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJm cmFtZS9mbGFncy5weQkyMDIxLTA5LTAxIDEzOjI2OjM5LjAwMDAwMDAwMCAtMDQwMAotKysrIGIv dGVzdGluZy93ZWItcGxhdGZvcm0vdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9o eXBlcmZyYW1lL2ZsYWdzLnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1A QCAtMTEsNyArMTEsNyBAQAotIEZsYWcgPSBjb2xsZWN0aW9ucy5uYW1lZHR1cGxlKCJGbGFnIiwg WyJuYW1lIiwgImJpdCJdKQotIAotIAotLWNsYXNzIEZsYWdzKGNvbGxlY3Rpb25zLk11dGFibGVT ZXQpOgotK2NsYXNzIEZsYWdzKGNvbGxlY3Rpb25zLmFiYy5NdXRhYmxlU2V0KToKLSAgICAgIiIi Ci0gICAgIEEgc2ltcGxlIE11dGFibGVTZXQgaW1wbGVtZW50YXRpb24gdGhhdCB3aWxsIG9ubHkg YWNjZXB0IGtub3duIGZsYWdzIGFzCi0gICAgIGVsZW1lbnRzLgotZGlmZiAtdXIgYS90ZXN0aW5n L3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9jb25maWcucHkgYi90 ZXN0aW5nL3dlYi1wbGF0Zm9ybS90ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9jb25maWcu cHkKLS0tLSBhL3Rlc3Rpbmcvd2ViLXBsYXRmb3JtL3Rlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNl cnZlL2NvbmZpZy5weQkyMDIxLTA5LTAxIDEzOjI3OjA1LjAwMDAwMDAwMCAtMDQwMAotKysrIGIv dGVzdGluZy93ZWItcGxhdGZvcm0vdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvY29uZmln LnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMiw3ICsyLDggQEAK LSBpbXBvcnQgbG9nZ2luZwotIGltcG9ydCBvcwotIAotLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0 IGRlZmF1bHRkaWN0LCBNYXBwaW5nCi0rZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRp Y3QKLStmcm9tIGNvbGxlY3Rpb25zLmFiYyBpbXBvcnQgTWFwcGluZwotIGZyb20gc2l4IGltcG9y dCBpbnRlZ2VyX3R5cGVzLCBpdGVyaXRlbXMsIGl0ZXJ2YWx1ZXMsIHN0cmluZ190eXBlcwotIAot IGZyb20gLiBpbXBvcnQgc3NsdXRpbHMKLWRpZmYgLXVyIGEvdGVzdGluZy93ZWItcGxhdGZvcm0v dGVzdHMvd2ViZHJpdmVyL3Rlc3RzL3N1cHBvcnQvc3luYy5weSBiL3Rlc3Rpbmcvd2ViLXBsYXRm b3JtL3Rlc3RzL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L3N5bmMucHkKLS0tLSBhL3Rlc3Rpbmcv d2ViLXBsYXRmb3JtL3Rlc3RzL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L3N5bmMucHkJMjAyMS0w OS0wMSAxMzoyNzowNS4wMDAwMDAwMDAgLTA0MDAKLSsrKyBiL3Rlc3Rpbmcvd2ViLXBsYXRmb3Jt L3Rlc3RzL3dlYmRyaXZlci90ZXN0cy9zdXBwb3J0L3N5bmMucHkJMjAyMS0xMS0wNSAxNToyOTox Mi4wMDAwMDAwMDAgLTA0MDAKLUBAIC04MSw3ICs4MSw3IEBACi0gCi0gICAgICAgICBleGNlcHRp b25zID0gW10KLSAgICAgICAgIGlmIGlnbm9yZWRfZXhjZXB0aW9ucyBpcyBub3QgTm9uZToKLS0g ICAgICAgICAgICBpZiBpc2luc3RhbmNlKGlnbm9yZWRfZXhjZXB0aW9ucywgY29sbGVjdGlvbnMu SXRlcmFibGUpOgotKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaWdub3JlZF9leGNlcHRpb25z LCBjb2xsZWN0aW9ucy5hYmMuSXRlcmFibGUpOgotICAgICAgICAgICAgICAgICBleGNlcHRpb25z LmV4dGVuZChpdGVyKGlnbm9yZWRfZXhjZXB0aW9ucykpCi0gICAgICAgICAgICAgZWxzZToKLSAg ICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5hcHBlbmQoaWdub3JlZF9leGNlcHRpb25zKQotZGlm ZiAtdXIgYS90aGlyZF9wYXJ0eS9weXRob24vZ3lwL3B5bGliL2d5cC9jb21tb24ucHkgYi90aGly ZF9wYXJ0eS9weXRob24vZ3lwL3B5bGliL2d5cC9jb21tb24ucHkKLS0tLSBhL3RoaXJkX3BhcnR5 L3B5dGhvbi9neXAvcHlsaWIvZ3lwL2NvbW1vbi5weQkyMDIxLTA5LTAxIDEzOjI2OjQ2LjAwMDAw MDAwMCAtMDQwMAotKysrIGIvdGhpcmRfcGFydHkvcHl0aG9uL2d5cC9weWxpYi9neXAvY29tbW9u LnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAtNDk0LDcgKzQ5NCw3 IEBACi0gCi0gCi0gIyBCYXNlZCBvbiBodHRwOi8vY29kZS5hY3RpdmVzdGF0ZS5jb20vcmVjaXBl cy81NzY2OTQvLgotLWNsYXNzIE9yZGVyZWRTZXQoY29sbGVjdGlvbnMuTXV0YWJsZVNldCk6Ci0r Y2xhc3MgT3JkZXJlZFNldChjb2xsZWN0aW9ucy5hYmMuTXV0YWJsZVNldCk6Ci0gICBkZWYgX19p bml0X18oc2VsZiwgaXRlcmFibGU9Tm9uZSk6Ci0gICAgIHNlbGYuZW5kID0gZW5kID0gW10KLSAg ICAgZW5kICs9IFtOb25lLCBlbmQsIGVuZF0gICAgICAgICAjIHNlbnRpbmVsIG5vZGUgZm9yIGRv dWJseSBsaW5rZWQgbGlzdAotZGlmZiAtdXIgYS90aGlyZF9wYXJ0eS9weXRob24vZ3lwL3B5bGli L2d5cC9tc3ZzX2VtdWxhdGlvbi5weSBiL3RoaXJkX3BhcnR5L3B5dGhvbi9neXAvcHlsaWIvZ3lw L21zdnNfZW11bGF0aW9uLnB5Ci0tLS0gYS90aGlyZF9wYXJ0eS9weXRob24vZ3lwL3B5bGliL2d5 cC9tc3ZzX2VtdWxhdGlvbi5weQkyMDIxLTA5LTAxIDEzOjI3OjA5LjAwMDAwMDAwMCAtMDQwMAot KysrIGIvdGhpcmRfcGFydHkvcHl0aG9uL2d5cC9weWxpYi9neXAvbXN2c19lbXVsYXRpb24ucHkJ MjAyMS0xMS0wNSAxNTozMDo0Ny43NTc3NjA4MjAgLTA0MDAKLUBAIC05MSw3ICs5MSw3IEBACi0g ICAiIiJBZGQgfHByZWZpeHwgdG8gfGVsZW1lbnR8IG9yIGVhY2ggc3ViZWxlbWVudCBpZiBlbGVt ZW50IGlzIGl0ZXJhYmxlLiIiIgotICAgaWYgZWxlbWVudCBpcyBOb25lOgotICAgICByZXR1cm4g ZWxlbWVudAotLSAgaWYgKGlzaW5zdGFuY2UoZWxlbWVudCwgY29sbGVjdGlvbnMuSXRlcmFibGUp IGFuZAotKyAgaWYgKGlzaW5zdGFuY2UoZWxlbWVudCwgY29sbGVjdGlvbnMuYWJjLkl0ZXJhYmxl KSBhbmQKLSAgICAgICBub3QgaXNpbnN0YW5jZShlbGVtZW50LCBiYXNlc3RyaW5nKSk6Ci0gICAg IHJldHVybiBbcHJlZml4ICsgZSBmb3IgZSBpbiBlbGVtZW50XQotICAgZWxzZToKLUBAIC0xMDQs NyArMTA0LDcgQEAKLSAgIGlmIG1hcCBpcyBub3QgTm9uZSBhbmQgZWxlbWVudCBpcyBub3QgTm9u ZToKLSAgICAgaWYgbm90IGNhbGxhYmxlKG1hcCk6Ci0gICAgICAgbWFwID0gbWFwLmdldCAjIEFz c3VtZSBpdCdzIGEgZGljdCwgb3RoZXJ3aXNlIGEgY2FsbGFibGUgdG8gZG8gdGhlIHJlbWFwLgot LSAgICBpZiAoaXNpbnN0YW5jZShlbGVtZW50LCBjb2xsZWN0aW9ucy5JdGVyYWJsZSkgYW5kCi0r ICAgIGlmIChpc2luc3RhbmNlKGVsZW1lbnQsIGNvbGxlY3Rpb25zLmFiYy5JdGVyYWJsZSkgYW5k Ci0gICAgICAgICBub3QgaXNpbnN0YW5jZShlbGVtZW50LCBiYXNlc3RyaW5nKSk6Ci0gICAgICAg ZWxlbWVudCA9IGZpbHRlcihOb25lLCBbbWFwKGVsZW0pIGZvciBlbGVtIGluIGVsZW1lbnRdKQot ICAgICBlbHNlOgotQEAgLTExNyw3ICsxMTcsNyBAQAotICAgdGhlbiBhZGQgfGVsZW1lbnR8IHRv IGl0LCBhZGRpbmcgZWFjaCBpdGVtIGluIHxlbGVtZW50fCBpZiBpdCdzIGEgbGlzdCBvcgotICAg dHVwbGUuIiIiCi0gICBpZiBhcHBlbmQgaXMgbm90IE5vbmUgYW5kIGVsZW1lbnQgaXMgbm90IE5v bmU6Ci0tICAgIGlmIChpc2luc3RhbmNlKGVsZW1lbnQsIGNvbGxlY3Rpb25zLkl0ZXJhYmxlKSBh bmQKLSsgICAgaWYgKGlzaW5zdGFuY2UoZWxlbWVudCwgY29sbGVjdGlvbnMuYWJjLkl0ZXJhYmxl KSBhbmQKLSAgICAgICAgIG5vdCBpc2luc3RhbmNlKGVsZW1lbnQsIGJhc2VzdHJpbmcpKToKLSAg ICAgICBhcHBlbmQuZXh0ZW5kKGVsZW1lbnQpCi0gICAgIGVsc2U6Ci1kaWZmIC11ciBhL3RoaXJk X3BhcnR5L3B5dGhvbi9neXAvdGVzdC9saWIvVGVzdEd5cC5weSBiL3RoaXJkX3BhcnR5L3B5dGhv bi9neXAvdGVzdC9saWIvVGVzdEd5cC5weQotLS0tIGEvdGhpcmRfcGFydHkvcHl0aG9uL2d5cC90 ZXN0L2xpYi9UZXN0R3lwLnB5CTIwMjEtMDktMDEgMTM6Mjc6MDkuMDAwMDAwMDAwIC0wNDAwCi0r KysgYi90aGlyZF9wYXJ0eS9weXRob24vZ3lwL3Rlc3QvbGliL1Rlc3RHeXAucHkJMjAyMS0xMS0w NSAxNTozMDozNy42NzE3NjMxNTcgLTA0MDAKLUBAIC00OTYsNyArNDk2LDcgQEAKLSAgICAgaWYg c3RhdHVzIGlzIE5vbmU6Ci0gICAgICAga3dbJ3N0YXR1cyddID0gTm9uZQotICAgICBlbHNlOgot LSAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHN0YXR1cywgY29sbGVjdGlvbnMuSXRlcmFibGUpOiBz dGF0dXMgPSAoc3RhdHVzLCkKLSsgICAgICBpZiBub3QgaXNpbnN0YW5jZShzdGF0dXMsIGNvbGxl Y3Rpb25zLmFiYy5JdGVyYWJsZSk6IHN0YXR1cyA9IChzdGF0dXMsKQotICAgICAgIGt3WydzdGF0 dXMnXSA9IGxpc3QoaXRlcnRvb2xzLmNoYWluKCgwLCksIHN0YXR1cykpCi0gICAgIHNlbGYuY21h a2VfYnVpbGQoZ3lwX2ZpbGUsIHRhcmdldCwgKiprdykKLSAgICAga3dbJ3N0YXR1cyddID0gc3Rh dHVzCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3BhdGNoZWQv bm90cGlwL192ZW5kb3IvZGlzdGxpYi9jb21wYXQucHkgYi90aGlyZF9wYXJ0eS9weXRob24vcGlw ZW52L3BpcGVudi9wYXRjaGVkL25vdHBpcC9fdmVuZG9yL2Rpc3RsaWIvY29tcGF0LnB5Ci0tLS0g YS90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi9wYXRjaGVkL25vdHBpcC9fdmVuZG9y L2Rpc3RsaWIvY29tcGF0LnB5CTIwMjEtMDktMDEgMTM6Mjc6MDkuMDAwMDAwMDAwIC0wNDAwCi0r KysgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi9wYXRjaGVkL25vdHBpcC9fdmVu ZG9yL2Rpc3RsaWIvY29tcGF0LnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAw Ci1AQCAtMzE5LDcgKzMxOSw3IEBACi0gdHJ5OgotICAgICBjYWxsYWJsZSA9IGNhbGxhYmxlCi0g ZXhjZXB0IE5hbWVFcnJvcjogICAjIHByYWdtYTogbm8gY292ZXIKLS0gICAgZnJvbSBjb2xsZWN0 aW9ucyBpbXBvcnQgQ2FsbGFibGUKLSsgICAgZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IENh bGxhYmxlCi0gCi0gICAgIGRlZiBjYWxsYWJsZShvYmopOgotICAgICAgICAgcmV0dXJuIGlzaW5z dGFuY2Uob2JqLCBDYWxsYWJsZSkKLUBAIC00NzUsNyArNDc1LDcgQEAKLSB0cnk6Ci0gICAgIGZy b20gY29sbGVjdGlvbnMgaW1wb3J0IENoYWluTWFwCi0gZXhjZXB0IEltcG9ydEVycm9yOiAjIHBy YWdtYTogbm8gY292ZXIKLS0gICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTXV0YWJsZU1hcHBp bmcKLSsgICAgZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IE11dGFibGVNYXBwaW5nCi0gCi0g ICAgIHRyeToKLSAgICAgICAgIGZyb20gcmVwcmxpYiBpbXBvcnQgcmVjdXJzaXZlX3JlcHIgYXMg X3JlY3Vyc2l2ZV9yZXByCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlw ZW52L3BhdGNoZWQvbm90cGlwL192ZW5kb3IvaHRtbDVsaWIvdHJlZWJ1aWxkZXJzL2RvbS5weSBi L3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3BhdGNoZWQvbm90cGlwL192ZW5kb3Iv aHRtbDVsaWIvdHJlZWJ1aWxkZXJzL2RvbS5weQotLS0tIGEvdGhpcmRfcGFydHkvcHl0aG9uL3Bp cGVudi9waXBlbnYvcGF0Y2hlZC9ub3RwaXAvX3ZlbmRvci9odG1sNWxpYi90cmVlYnVpbGRlcnMv ZG9tLnB5CTIwMjEtMDktMDEgMTM6MjY6NDYuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9w YXJ0eS9weXRob24vcGlwZW52L3BpcGVudi9wYXRjaGVkL25vdHBpcC9fdmVuZG9yL2h0bWw1bGli L3RyZWVidWlsZGVycy9kb20ucHkJMjAyMS0xMS0wNSAxNToyOToxMi4wMDAwMDAwMDAgLTA0MDAK LUBAIC0xLDcgKzEsNyBAQAotIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0 LCBkaXZpc2lvbiwgdW5pY29kZV9saXRlcmFscwotIAotIAotLWZyb20gY29sbGVjdGlvbnMgaW1w b3J0IE11dGFibGVNYXBwaW5nCi0rZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IE11dGFibGVN YXBwaW5nCi0gZnJvbSB4bWwuZG9tIGltcG9ydCBtaW5pZG9tLCBOb2RlCi0gaW1wb3J0IHdlYWty ZWYKLSAKLWRpZmYgLXVyIGEvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvcGF0Y2hl ZC9ub3RwaXAvX3ZlbmRvci9weXBhcnNpbmcucHkgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52 L3BpcGVudi9wYXRjaGVkL25vdHBpcC9fdmVuZG9yL3B5cGFyc2luZy5weQotLS0tIGEvdGhpcmRf cGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvcGF0Y2hlZC9ub3RwaXAvX3ZlbmRvci9weXBhcnNp bmcucHkJMjAyMS0wOS0wMSAxMzoyNjo0Ni4wMDAwMDAwMDAgLTA0MDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3BhdGNoZWQvbm90cGlwL192ZW5kb3IvcHlwYXJzaW5n LnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAtOTQwLDcgKzk0MCw3 IEBACi0gICAgIGRlZiBfX2Rpcl9fKHNlbGYpOgotICAgICAgICAgcmV0dXJuIChkaXIodHlwZShz ZWxmKSkgKyBsaXN0KHNlbGYua2V5cygpKSkKLSAKLS1jb2xsZWN0aW9ucy5NdXRhYmxlTWFwcGlu Zy5yZWdpc3RlcihQYXJzZVJlc3VsdHMpCi0rY29sbGVjdGlvbnMuYWJjLk11dGFibGVNYXBwaW5n LnJlZ2lzdGVyKFBhcnNlUmVzdWx0cykKLSAKLSBkZWYgY29sIChsb2Msc3RyZyk6Ci0gICAgICIi IlJldHVybnMgY3VycmVudCBjb2x1bW4gd2l0aGluIGEgc3RyaW5nLCBjb3VudGluZyBuZXdsaW5l cyBhcyBsaW5lIHNlcGFyYXRvcnMuCi1AQCAtMzIyMyw3ICszMjIzLDcgQEAKLSAKLSAgICAgICAg IGlmIGlzaW5zdGFuY2UoIGV4cHJzLCBiYXNlc3RyaW5nICk6Ci0gICAgICAgICAgICAgc2VsZi5l eHBycyA9IFsgUGFyc2VyRWxlbWVudC5fbGl0ZXJhbFN0cmluZ0NsYXNzKCBleHBycyApIF0KLS0g ICAgICAgIGVsaWYgaXNpbnN0YW5jZSggZXhwcnMsIGNvbGxlY3Rpb25zLkl0ZXJhYmxlICk6Ci0r ICAgICAgICBlbGlmIGlzaW5zdGFuY2UoIGV4cHJzLCBjb2xsZWN0aW9ucy5hYmMuSXRlcmFibGUg KToKLSAgICAgICAgICAgICBleHBycyA9IGxpc3QoZXhwcnMpCi0gICAgICAgICAgICAgIyBpZiBz ZXF1ZW5jZSBvZiBzdHJpbmdzIHByb3ZpZGVkLCB3cmFwIHdpdGggTGl0ZXJhbAotICAgICAgICAg ICAgIGlmIGFsbChpc2luc3RhbmNlKGV4cHIsIGJhc2VzdHJpbmcpIGZvciBleHByIGluIGV4cHJz KToKLUBAIC00NTY0LDcgKzQ1NjQsNyBAQAotICAgICBzeW1ib2xzID0gW10KLSAgICAgaWYgaXNp bnN0YW5jZShzdHJzLGJhc2VzdHJpbmcpOgotICAgICAgICAgc3ltYm9scyA9IHN0cnMuc3BsaXQo KQotLSAgICBlbGlmIGlzaW5zdGFuY2Uoc3RycywgY29sbGVjdGlvbnMuSXRlcmFibGUpOgotKyAg ICBlbGlmIGlzaW5zdGFuY2Uoc3RycywgY29sbGVjdGlvbnMuYWJjLkl0ZXJhYmxlKToKLSAgICAg ICAgIHN5bWJvbHMgPSBsaXN0KHN0cnMpCi0gICAgIGVsc2U6Ci0gICAgICAgICB3YXJuaW5ncy53 YXJuKCJJbnZhbGlkIGFyZ3VtZW50IHRvIG9uZU9mLCBleHBlY3RlZCBzdHJpbmcgb3IgaXRlcmFi bGUiLAotZGlmZiAtdXIgYS90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi9wYXRjaGVk L25vdHBpcC9fdmVuZG9yL3JlcXVlc3RzL2Nvb2tpZXMucHkgYi90aGlyZF9wYXJ0eS9weXRob24v cGlwZW52L3BpcGVudi9wYXRjaGVkL25vdHBpcC9fdmVuZG9yL3JlcXVlc3RzL2Nvb2tpZXMucHkK LS0tLSBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3BhdGNoZWQvbm90cGlwL192 ZW5kb3IvcmVxdWVzdHMvY29va2llcy5weQkyMDIxLTA5LTAxIDEzOjI3OjAwLjAwMDAwMDAwMCAt MDQwMAotKysrIGIvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvcGF0Y2hlZC9ub3Rw aXAvX3ZlbmRvci9yZXF1ZXN0cy9jb29raWVzLnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAw MDAwIC0wNDAwCi1AQCAtMTY5LDcgKzE2OSw3IEBACi0gICAgICIiIgotIAotIAotLWNsYXNzIFJl cXVlc3RzQ29va2llSmFyKGNvb2tpZWxpYi5Db29raWVKYXIsIGNvbGxlY3Rpb25zLk11dGFibGVN YXBwaW5nKToKLStjbGFzcyBSZXF1ZXN0c0Nvb2tpZUphcihjb29raWVsaWIuQ29va2llSmFyLCBj b2xsZWN0aW9ucy5hYmMuTXV0YWJsZU1hcHBpbmcpOgotICAgICAiIiJDb21wYXRpYmlsaXR5IGNs YXNzOyBpcyBhIGNvb2tpZWxpYi5Db29raWVKYXIsIGJ1dCBleHBvc2VzIGEgZGljdAotICAgICBp bnRlcmZhY2UuCi0gCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52 L3BhdGNoZWQvbm90cGlwL192ZW5kb3IvcmVxdWVzdHMvbW9kZWxzLnB5IGIvdGhpcmRfcGFydHkv cHl0aG9uL3BpcGVudi9waXBlbnYvcGF0Y2hlZC9ub3RwaXAvX3ZlbmRvci9yZXF1ZXN0cy9tb2Rl bHMucHkKLS0tLSBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3BhdGNoZWQvbm90 cGlwL192ZW5kb3IvcmVxdWVzdHMvbW9kZWxzLnB5CTIwMjEtMDktMDEgMTM6MjY6NDYuMDAwMDAw MDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi9wYXRjaGVk L25vdHBpcC9fdmVuZG9yL3JlcXVlc3RzL21vZGVscy5weQkyMDIxLTExLTA1IDE1OjMxOjM1Ljc0 NTc0OTY5MiAtMDQwMAotQEAgLTE3NCwxMCArMTc0LDEwIEBACi0gICAgICAgICBpZiBldmVudCBu b3QgaW4gc2VsZi5ob29rczoKLSAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdVbnN1cHBv cnRlZCBldmVudCBzcGVjaWZpZWQsIHdpdGggZXZlbnQgbmFtZSAiJXMiJyAlIChldmVudCkpCi0g Ci0tICAgICAgICBpZiBpc2luc3RhbmNlKGhvb2ssIGNvbGxlY3Rpb25zLkNhbGxhYmxlKToKLSsg ICAgICAgIGlmIGlzaW5zdGFuY2UoaG9vaywgY29sbGVjdGlvbnMuYWJjLkNhbGxhYmxlKToKLSAg ICAgICAgICAgICBzZWxmLmhvb2tzW2V2ZW50XS5hcHBlbmQoaG9vaykKLSAgICAgICAgIGVsaWYg aGFzYXR0cihob29rLCAnX19pdGVyX18nKToKLS0gICAgICAgICAgICBzZWxmLmhvb2tzW2V2ZW50 XS5leHRlbmQoaCBmb3IgaCBpbiBob29rIGlmIGlzaW5zdGFuY2UoaCwgY29sbGVjdGlvbnMuQ2Fs bGFibGUpKQotKyAgICAgICAgICAgIHNlbGYuaG9va3NbZXZlbnRdLmV4dGVuZChoIGZvciBoIGlu IGhvb2sgaWYgaXNpbnN0YW5jZShoLCBjb2xsZWN0aW9ucy5hYmMuQ2FsbGFibGUpKQotIAotICAg ICBkZWYgZGVyZWdpc3Rlcl9ob29rKHNlbGYsIGV2ZW50LCBob29rKToKLSAgICAgICAgICIiIkRl cmVnaXN0ZXIgYSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgaG9vay4KLUBAIC00NjEsNyArNDYxLDcg QEAKLSAKLSAgICAgICAgIGlzX3N0cmVhbSA9IGFsbChbCi0gICAgICAgICAgICAgaGFzYXR0cihk YXRhLCAnX19pdGVyX18nKSwKLS0gICAgICAgICAgICBub3QgaXNpbnN0YW5jZShkYXRhLCAoYmFz ZXN0cmluZywgbGlzdCwgdHVwbGUsIGNvbGxlY3Rpb25zLk1hcHBpbmcpKQotKyAgICAgICAgICAg IG5vdCBpc2luc3RhbmNlKGRhdGEsIChiYXNlc3RyaW5nLCBsaXN0LCB0dXBsZSwgY29sbGVjdGlv bnMuYWJjLk1hcHBpbmcpKQotICAgICAgICAgXSkKLSAKLSAgICAgICAgIHRyeToKLWRpZmYgLXVy IGEvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvcGF0Y2hlZC9ub3RwaXAvX3ZlbmRv ci9yZXF1ZXN0cy9zdHJ1Y3R1cmVzLnB5IGIvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBl bnYvcGF0Y2hlZC9ub3RwaXAvX3ZlbmRvci9yZXF1ZXN0cy9zdHJ1Y3R1cmVzLnB5Ci0tLS0gYS90 aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi9wYXRjaGVkL25vdHBpcC9fdmVuZG9yL3Jl cXVlc3RzL3N0cnVjdHVyZXMucHkJMjAyMS0wOS0wMSAxMzoyNzowMC4wMDAwMDAwMDAgLTA0MDAK LSsrKyBiL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3BhdGNoZWQvbm90cGlwL192 ZW5kb3IvcmVxdWVzdHMvc3RydWN0dXJlcy5weQkyMDIxLTExLTA1IDE1OjI5OjEyLjAwMDAwMDAw MCAtMDQwMAotQEAgLTEyLDcgKzEyLDcgQEAKLSBmcm9tIC5jb21wYXQgaW1wb3J0IE9yZGVyZWRE aWN0Ci0gCi0gCi0tY2xhc3MgQ2FzZUluc2Vuc2l0aXZlRGljdChjb2xsZWN0aW9ucy5NdXRhYmxl TWFwcGluZyk6Ci0rY2xhc3MgQ2FzZUluc2Vuc2l0aXZlRGljdChjb2xsZWN0aW9ucy5hYmMuTXV0 YWJsZU1hcHBpbmcpOgotICAgICAiIiJBIGNhc2UtaW5zZW5zaXRpdmUgYGBkaWN0YGAtbGlrZSBv YmplY3QuCi0gCi0gICAgIEltcGxlbWVudHMgYWxsIG1ldGhvZHMgYW5kIG9wZXJhdGlvbnMgb2YK LUBAIC03MSw3ICs3MSw3IEBACi0gICAgICAgICApCi0gCi0gICAgIGRlZiBfX2VxX18oc2VsZiwg b3RoZXIpOgotLSAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgY29sbGVjdGlvbnMuTWFwcGlu Zyk6Ci0rICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCBjb2xsZWN0aW9ucy5hYmMuTWFwcGlu Zyk6Ci0gICAgICAgICAgICAgb3RoZXIgPSBDYXNlSW5zZW5zaXRpdmVEaWN0KG90aGVyKQotICAg ICAgICAgZWxzZToKLSAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKLWRpZmYgLXVy IGEvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvcGF0Y2hlZC9ub3RwaXAvX3ZlbmRv ci9yZXF1ZXN0cy91dGlscy5weSBiL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3Bh dGNoZWQvbm90cGlwL192ZW5kb3IvcmVxdWVzdHMvdXRpbHMucHkKLS0tLSBhL3RoaXJkX3BhcnR5 L3B5dGhvbi9waXBlbnYvcGlwZW52L3BhdGNoZWQvbm90cGlwL192ZW5kb3IvcmVxdWVzdHMvdXRp bHMucHkJMjAyMS0wOS0wMSAxMzoyNzowMC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3BhdGNoZWQvbm90cGlwL192ZW5kb3IvcmVxdWVzdHMv dXRpbHMucHkJMjAyMS0xMS0wNSAxNTozMTo0MC4xNTc3NDg2NjUgLTA0MDAKLUBAIC0yNjIsNyAr MjYyLDcgQEAKLSAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgKHN0ciwgYnl0ZXMsIGJvb2wsIGlu dCkpOgotICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignY2Fubm90IGVuY29kZSBvYmplY3RzIHRo YXQgYXJlIG5vdCAyLXR1cGxlcycpCi0gCi0tICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGNvbGxl Y3Rpb25zLk1hcHBpbmcpOgotKyAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBjb2xsZWN0aW9ucy5h YmMuTWFwcGluZyk6Ci0gICAgICAgICB2YWx1ZSA9IHZhbHVlLml0ZW1zKCkKLSAKLSAgICAgcmV0 dXJuIGxpc3QodmFsdWUpCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlw ZW52L3BhdGNoZWQvbm90cGlwL192ZW5kb3IvdXJsbGliMy9fY29sbGVjdGlvbnMucHkgYi90aGly ZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi9wYXRjaGVkL25vdHBpcC9fdmVuZG9yL3VybGxp YjMvX2NvbGxlY3Rpb25zLnB5Ci0tLS0gYS90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVu di9wYXRjaGVkL25vdHBpcC9fdmVuZG9yL3VybGxpYjMvX2NvbGxlY3Rpb25zLnB5CTIwMjEtMDkt MDEgMTM6Mjc6MDAuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcGlw ZW52L3BpcGVudi9wYXRjaGVkL25vdHBpcC9fdmVuZG9yL3VybGxpYjMvX2NvbGxlY3Rpb25zLnB5 CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMSw1ICsxLDUgQEAKLSBm cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotLWZyb20gY29sbGVjdGlvbnMg aW1wb3J0IE1hcHBpbmcsIE11dGFibGVNYXBwaW5nCi0rZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1w b3J0IE1hcHBpbmcsIE11dGFibGVNYXBwaW5nCi0gdHJ5OgotICAgICBmcm9tIHRocmVhZGluZyBp bXBvcnQgUkxvY2sKLSBleGNlcHQgSW1wb3J0RXJyb3I6ICAjIFBsYXRmb3JtLXNwZWNpZmljOiBO byB0aHJlYWRzIGF2YWlsYWJsZQotZGlmZiAtdXIgYS90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52 L3BpcGVudi92ZW5kb3IvamluamEyL3NhbmRib3gucHkgYi90aGlyZF9wYXJ0eS9weXRob24vcGlw ZW52L3BpcGVudi92ZW5kb3IvamluamEyL3NhbmRib3gucHkKLS0tLSBhL3RoaXJkX3BhcnR5L3B5 dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRvci9qaW5qYTIvc2FuZGJveC5weQkyMDIxLTA5LTAxIDEz OjI3OjA5LjAwMDAwMDAwMCAtMDQwMAotKysrIGIvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9w aXBlbnYvdmVuZG9yL2ppbmphMi9zYW5kYm94LnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAw MDAwIC0wNDAwCi1AQCAtMTQsNyArMTQsNyBAQAotICIiIgotIGltcG9ydCB0eXBlcwotIGltcG9y dCBvcGVyYXRvcgotLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE1hcHBpbmcKLStmcm9tIGNvbGxl Y3Rpb25zLmFiYyBpbXBvcnQgTWFwcGluZwotIGZyb20gamluamEyLmVudmlyb25tZW50IGltcG9y dCBFbnZpcm9ubWVudAotIGZyb20gamluamEyLmV4Y2VwdGlvbnMgaW1wb3J0IFNlY3VyaXR5RXJy b3IKLSBmcm9tIGppbmphMi5fY29tcGF0IGltcG9ydCBzdHJpbmdfdHlwZXMsIFBZMgotQEAgLTc5 LDcgKzc5LDcgQEAKLSAgICAgcGFzcwotIAotICM6IHJlZ2lzdGVyIFB5dGhvbiAyLjYgYWJzdHJh Y3QgYmFzZSBjbGFzc2VzCi0tZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTXV0YWJsZVNldCwgTXV0 YWJsZU1hcHBpbmcsIE11dGFibGVTZXF1ZW5jZQotK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9y dCBNdXRhYmxlU2V0LCBNdXRhYmxlTWFwcGluZywgTXV0YWJsZVNlcXVlbmNlCi0gX211dGFibGVf c2V0X3R5cGVzICs9IChNdXRhYmxlU2V0LCkKLSBfbXV0YWJsZV9tYXBwaW5nX3R5cGVzICs9IChN dXRhYmxlTWFwcGluZywpCi0gX211dGFibGVfc2VxdWVuY2VfdHlwZXMgKz0gKE11dGFibGVTZXF1 ZW5jZSwpCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRv ci9qaW5qYTIvdXRpbHMucHkgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5k b3IvamluamEyL3V0aWxzLnB5Ci0tLS0gYS90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVu di92ZW5kb3IvamluamEyL3V0aWxzLnB5CTIwMjEtMDktMDEgMTM6Mjc6MDAuMDAwMDAwMDAwIC0w NDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3IvamluamEy L3V0aWxzLnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAtNDgyLDcg KzQ4Miw3IEBACi0gCi0gIyByZWdpc3RlciB0aGUgTFJVIGNhY2hlIGFzIG11dGFibGUgbWFwcGlu ZyBpZiBwb3NzaWJsZQotIHRyeToKLS0gICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTXV0YWJs ZU1hcHBpbmcKLSsgICAgZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IE11dGFibGVNYXBwaW5n Ci0gICAgIE11dGFibGVNYXBwaW5nLnJlZ2lzdGVyKExSVUNhY2hlKQotIGV4Y2VwdCBJbXBvcnRF cnJvcjoKLSAgICAgcGFzcwotZGlmZiAtdXIgYS90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3Bp cGVudi92ZW5kb3IvcGlwOS9fdmVuZG9yL2Rpc3RsaWIvY29tcGF0LnB5IGIvdGhpcmRfcGFydHkv cHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3BpcDkvX3ZlbmRvci9kaXN0bGliL2NvbXBhdC5w eQotLS0tIGEvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3BpcDkvX3Zl bmRvci9kaXN0bGliL2NvbXBhdC5weQkyMDIxLTA5LTAxIDEzOjI3OjA1LjAwMDAwMDAwMCAtMDQw MAotKysrIGIvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3BpcDkvX3Zl bmRvci9kaXN0bGliL2NvbXBhdC5weQkyMDIxLTExLTA1IDE1OjI5OjEyLjAwMDAwMDAwMCAtMDQw MAotQEAgLTMxOSw3ICszMTksNyBAQAotIHRyeToKLSAgICAgY2FsbGFibGUgPSBjYWxsYWJsZQot IGV4Y2VwdCBOYW1lRXJyb3I6ICAgIyBwcmFnbWE6IG5vIGNvdmVyCi0tICAgIGZyb20gY29sbGVj dGlvbnMgaW1wb3J0IENhbGxhYmxlCi0rICAgIGZyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBD YWxsYWJsZQotIAotICAgICBkZWYgY2FsbGFibGUob2JqKToKLSAgICAgICAgIHJldHVybiBpc2lu c3RhbmNlKG9iaiwgQ2FsbGFibGUpCi1AQCAtNDc1LDcgKzQ3NSw3IEBACi0gdHJ5OgotICAgICBm cm9tIGNvbGxlY3Rpb25zIGltcG9ydCBDaGFpbk1hcAotIGV4Y2VwdCBJbXBvcnRFcnJvcjogIyBw cmFnbWE6IG5vIGNvdmVyCi0tICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE11dGFibGVNYXBw aW5nCi0rICAgIGZyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBNdXRhYmxlTWFwcGluZwotIAot ICAgICB0cnk6Ci0gICAgICAgICBmcm9tIHJlcHJsaWIgaW1wb3J0IHJlY3Vyc2l2ZV9yZXByIGFz IF9yZWN1cnNpdmVfcmVwcgotZGlmZiAtdXIgYS90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3Bp cGVudi92ZW5kb3IvcGlwOS9fdmVuZG9yL2h0bWw1bGliL3RyZWVidWlsZGVycy9kb20ucHkgYi90 aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3IvcGlwOS9fdmVuZG9yL2h0bWw1 bGliL3RyZWVidWlsZGVycy9kb20ucHkKLS0tLSBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYv cGlwZW52L3ZlbmRvci9waXA5L192ZW5kb3IvaHRtbDVsaWIvdHJlZWJ1aWxkZXJzL2RvbS5weQky MDIxLTA5LTAxIDEzOjI3OjAwLjAwMDAwMDAwMCAtMDQwMAotKysrIGIvdGhpcmRfcGFydHkvcHl0 aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3BpcDkvX3ZlbmRvci9odG1sNWxpYi90cmVlYnVpbGRl cnMvZG9tLnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMSw3ICsx LDcgQEAKLSBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s IHVuaWNvZGVfbGl0ZXJhbHMKLSAKLSAKLS1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNdXRhYmxl TWFwcGluZwotK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBNdXRhYmxlTWFwcGluZwotIGZy b20geG1sLmRvbSBpbXBvcnQgbWluaWRvbSwgTm9kZQotIGltcG9ydCB3ZWFrcmVmCi0gCi1kaWZm IC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRvci9waXA5L192ZW5k b3IvcHlwYXJzaW5nLnB5IGIvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9y L3BpcDkvX3ZlbmRvci9weXBhcnNpbmcucHkKLS0tLSBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBl bnYvcGlwZW52L3ZlbmRvci9waXA5L192ZW5kb3IvcHlwYXJzaW5nLnB5CTIwMjEtMDktMDEgMTM6 MjY6NDYuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3Bp cGVudi92ZW5kb3IvcGlwOS9fdmVuZG9yL3B5cGFyc2luZy5weQkyMDIxLTExLTA1IDE1OjI5OjEy LjAwMDAwMDAwMCAtMDQwMAotQEAgLTk0MCw3ICs5NDAsNyBAQAotICAgICBkZWYgX19kaXJfXyhz ZWxmKToKLSAgICAgICAgIHJldHVybiAoZGlyKHR5cGUoc2VsZikpICsgbGlzdChzZWxmLmtleXMo KSkpCi0gCi0tY29sbGVjdGlvbnMuTXV0YWJsZU1hcHBpbmcucmVnaXN0ZXIoUGFyc2VSZXN1bHRz KQotK2NvbGxlY3Rpb25zLmFiYy5NdXRhYmxlTWFwcGluZy5yZWdpc3RlcihQYXJzZVJlc3VsdHMp Ci0gCi0gZGVmIGNvbCAobG9jLHN0cmcpOgotICAgICAiIiJSZXR1cm5zIGN1cnJlbnQgY29sdW1u IHdpdGhpbiBhIHN0cmluZywgY291bnRpbmcgbmV3bGluZXMgYXMgbGluZSBzZXBhcmF0b3JzLgot QEAgLTMyMjMsNyArMzIyMyw3IEBACi0gCi0gICAgICAgICBpZiBpc2luc3RhbmNlKCBleHBycywg YmFzZXN0cmluZyApOgotICAgICAgICAgICAgIHNlbGYuZXhwcnMgPSBbIFBhcnNlckVsZW1lbnQu X2xpdGVyYWxTdHJpbmdDbGFzcyggZXhwcnMgKSBdCi0tICAgICAgICBlbGlmIGlzaW5zdGFuY2Uo IGV4cHJzLCBjb2xsZWN0aW9ucy5JdGVyYWJsZSApOgotKyAgICAgICAgZWxpZiBpc2luc3RhbmNl KCBleHBycywgY29sbGVjdGlvbnMuYWJjLkl0ZXJhYmxlICk6Ci0gICAgICAgICAgICAgZXhwcnMg PSBsaXN0KGV4cHJzKQotICAgICAgICAgICAgICMgaWYgc2VxdWVuY2Ugb2Ygc3RyaW5ncyBwcm92 aWRlZCwgd3JhcCB3aXRoIExpdGVyYWwKLSAgICAgICAgICAgICBpZiBhbGwoaXNpbnN0YW5jZShl eHByLCBiYXNlc3RyaW5nKSBmb3IgZXhwciBpbiBleHBycyk6Ci1AQCAtNDU2NCw3ICs0NTY0LDcg QEAKLSAgICAgc3ltYm9scyA9IFtdCi0gICAgIGlmIGlzaW5zdGFuY2Uoc3RycyxiYXNlc3RyaW5n KToKLSAgICAgICAgIHN5bWJvbHMgPSBzdHJzLnNwbGl0KCkKLS0gICAgZWxpZiBpc2luc3RhbmNl KHN0cnMsIGNvbGxlY3Rpb25zLkl0ZXJhYmxlKToKLSsgICAgZWxpZiBpc2luc3RhbmNlKHN0cnMs IGNvbGxlY3Rpb25zLmFiYy5JdGVyYWJsZSk6Ci0gICAgICAgICBzeW1ib2xzID0gbGlzdChzdHJz KQotICAgICBlbHNlOgotICAgICAgICAgd2FybmluZ3Mud2FybigiSW52YWxpZCBhcmd1bWVudCB0 byBvbmVPZiwgZXhwZWN0ZWQgc3RyaW5nIG9yIGl0ZXJhYmxlIiwKLWRpZmYgLXVyIGEvdGhpcmRf cGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3BpcDkvX3ZlbmRvci9yZXF1ZXN0cy9j b29raWVzLnB5IGIvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3BpcDkv X3ZlbmRvci9yZXF1ZXN0cy9jb29raWVzLnB5Ci0tLS0gYS90aGlyZF9wYXJ0eS9weXRob24vcGlw ZW52L3BpcGVudi92ZW5kb3IvcGlwOS9fdmVuZG9yL3JlcXVlc3RzL2Nvb2tpZXMucHkJMjAyMS0w OS0wMSAxMzoyNzowMC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3B5dGhvbi9w aXBlbnYvcGlwZW52L3ZlbmRvci9waXA5L192ZW5kb3IvcmVxdWVzdHMvY29va2llcy5weQkyMDIx LTExLTA1IDE1OjI5OjEyLjAwMDAwMDAwMCAtMDQwMAotQEAgLTE2OSw3ICsxNjksNyBAQAotICAg ICAiIiIKLSAKLSAKLS1jbGFzcyBSZXF1ZXN0c0Nvb2tpZUphcihjb29raWVsaWIuQ29va2llSmFy LCBjb2xsZWN0aW9ucy5NdXRhYmxlTWFwcGluZyk6Ci0rY2xhc3MgUmVxdWVzdHNDb29raWVKYXIo Y29va2llbGliLkNvb2tpZUphciwgY29sbGVjdGlvbnMuYWJjLk11dGFibGVNYXBwaW5nKToKLSAg ICAgIiIiQ29tcGF0aWJpbGl0eSBjbGFzczsgaXMgYSBjb29raWVsaWIuQ29va2llSmFyLCBidXQg ZXhwb3NlcyBhIGRpY3QKLSAgICAgaW50ZXJmYWNlLgotIAotZGlmZiAtdXIgYS90aGlyZF9wYXJ0 eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3IvcGlwOS9fdmVuZG9yL3JlcXVlc3RzL21vZGVs cy5weSBiL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRvci9waXA5L192ZW5k b3IvcmVxdWVzdHMvbW9kZWxzLnB5Ci0tLS0gYS90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3Bp cGVudi92ZW5kb3IvcGlwOS9fdmVuZG9yL3JlcXVlc3RzL21vZGVscy5weQkyMDIxLTA5LTAxIDEz OjI2OjQ2LjAwMDAwMDAwMCAtMDQwMAotKysrIGIvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9w aXBlbnYvdmVuZG9yL3BpcDkvX3ZlbmRvci9yZXF1ZXN0cy9tb2RlbHMucHkJMjAyMS0xMS0wNSAx NTozMTo1Mi4zOTc3NDU4MjUgLTA0MDAKLUBAIC0xNzQsMTAgKzE3NCwxMCBAQAotICAgICAgICAg aWYgZXZlbnQgbm90IGluIHNlbGYuaG9va3M6Ci0gICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv cignVW5zdXBwb3J0ZWQgZXZlbnQgc3BlY2lmaWVkLCB3aXRoIGV2ZW50IG5hbWUgIiVzIicgJSAo ZXZlbnQpKQotIAotLSAgICAgICAgaWYgaXNpbnN0YW5jZShob29rLCBjb2xsZWN0aW9ucy5DYWxs YWJsZSk6Ci0rICAgICAgICBpZiBpc2luc3RhbmNlKGhvb2ssIGNvbGxlY3Rpb25zLmFiYy5DYWxs YWJsZSk6Ci0gICAgICAgICAgICAgc2VsZi5ob29rc1tldmVudF0uYXBwZW5kKGhvb2spCi0gICAg ICAgICBlbGlmIGhhc2F0dHIoaG9vaywgJ19faXRlcl9fJyk6Ci0tICAgICAgICAgICAgc2VsZi5o b29rc1tldmVudF0uZXh0ZW5kKGggZm9yIGggaW4gaG9vayBpZiBpc2luc3RhbmNlKGgsIGNvbGxl Y3Rpb25zLkNhbGxhYmxlKSkKLSsgICAgICAgICAgICBzZWxmLmhvb2tzW2V2ZW50XS5leHRlbmQo aCBmb3IgaCBpbiBob29rIGlmIGlzaW5zdGFuY2UoaCwgY29sbGVjdGlvbnMuYWJjLkNhbGxhYmxl KSkKLSAKLSAgICAgZGVmIGRlcmVnaXN0ZXJfaG9vayhzZWxmLCBldmVudCwgaG9vayk6Ci0gICAg ICAgICAiIiJEZXJlZ2lzdGVyIGEgcHJldmlvdXNseSByZWdpc3RlcmVkIGhvb2suCi1AQCAtNDYx LDcgKzQ2MSw3IEBACi0gCi0gICAgICAgICBpc19zdHJlYW0gPSBhbGwoWwotICAgICAgICAgICAg IGhhc2F0dHIoZGF0YSwgJ19faXRlcl9fJyksCi0tICAgICAgICAgICAgbm90IGlzaW5zdGFuY2Uo ZGF0YSwgKGJhc2VzdHJpbmcsIGxpc3QsIHR1cGxlLCBjb2xsZWN0aW9ucy5NYXBwaW5nKSkKLSsg ICAgICAgICAgICBub3QgaXNpbnN0YW5jZShkYXRhLCAoYmFzZXN0cmluZywgbGlzdCwgdHVwbGUs IGNvbGxlY3Rpb25zLmFiYy5NYXBwaW5nKSkKLSAgICAgICAgIF0pCi0gCi0gICAgICAgICB0cnk6 Ci1kaWZmIC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRvci9waXA5 L192ZW5kb3IvcmVxdWVzdHMvc3RydWN0dXJlcy5weSBiL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBl bnYvcGlwZW52L3ZlbmRvci9waXA5L192ZW5kb3IvcmVxdWVzdHMvc3RydWN0dXJlcy5weQotLS0t IGEvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3BpcDkvX3ZlbmRvci9y ZXF1ZXN0cy9zdHJ1Y3R1cmVzLnB5CTIwMjEtMDktMDEgMTM6Mjc6MDkuMDAwMDAwMDAwIC0wNDAw Ci0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3IvcGlwOS9fdmVu ZG9yL3JlcXVlc3RzL3N0cnVjdHVyZXMucHkJMjAyMS0xMS0wNSAxNTozMjowMi43NjU3NDM0MTMg LTA0MDAKLUBAIC0xMiw3ICsxMiw3IEBACi0gZnJvbSAuY29tcGF0IGltcG9ydCBPcmRlcmVkRGlj dAotIAotIAotLWNsYXNzIENhc2VJbnNlbnNpdGl2ZURpY3QoY29sbGVjdGlvbnMuTXV0YWJsZU1h cHBpbmcpOgotK2NsYXNzIENhc2VJbnNlbnNpdGl2ZURpY3QoY29sbGVjdGlvbnMuYWJjLk11dGFi bGVNYXBwaW5nKToKLSAgICAgIiIiQSBjYXNlLWluc2Vuc2l0aXZlIGBgZGljdGBgLWxpa2Ugb2Jq ZWN0LgotIAotICAgICBJbXBsZW1lbnRzIGFsbCBtZXRob2RzIGFuZCBvcGVyYXRpb25zIG9mCi1A QCAtNzEsNyArNzEsNyBAQAotICAgICAgICAgKQotIAotICAgICBkZWYgX19lcV9fKHNlbGYsIG90 aGVyKToKLS0gICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIGNvbGxlY3Rpb25zLk1hcHBpbmcp OgotKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgY29sbGVjdGlvbnMuYWJjLk1hcHBpbmcp OgotICAgICAgICAgICAgIG90aGVyID0gQ2FzZUluc2Vuc2l0aXZlRGljdChvdGhlcikKLSAgICAg ICAgIGVsc2U6Ci0gICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCi1kaWZmIC11ciBh L3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRvci9waXA5L192ZW5kb3IvcmVx dWVzdHMvdXRpbHMucHkgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3Iv cGlwOS9fdmVuZG9yL3JlcXVlc3RzL3V0aWxzLnB5Ci0tLS0gYS90aGlyZF9wYXJ0eS9weXRob24v cGlwZW52L3BpcGVudi92ZW5kb3IvcGlwOS9fdmVuZG9yL3JlcXVlc3RzL3V0aWxzLnB5CTIwMjEt MDktMDEgMTM6Mjc6MDAuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24v cGlwZW52L3BpcGVudi92ZW5kb3IvcGlwOS9fdmVuZG9yL3JlcXVlc3RzL3V0aWxzLnB5CTIwMjEt MTEtMDUgMTU6MzE6NTcuMTIzNzQ0NzI0IC0wNDAwCi1AQCAtMjYyLDcgKzI2Miw3IEBACi0gICAg IGlmIGlzaW5zdGFuY2UodmFsdWUsIChzdHIsIGJ5dGVzLCBib29sLCBpbnQpKToKLSAgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoJ2Nhbm5vdCBlbmNvZGUgb2JqZWN0cyB0aGF0IGFyZSBub3QgMi10 dXBsZXMnKQotIAotLSAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBjb2xsZWN0aW9ucy5NYXBwaW5n KToKLSsgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgY29sbGVjdGlvbnMuYWJjLk1hcHBpbmcpOgot ICAgICAgICAgdmFsdWUgPSB2YWx1ZS5pdGVtcygpCi0gCi0gICAgIHJldHVybiBsaXN0KHZhbHVl KQotZGlmZiAtdXIgYS90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3IvcGlw OS9fdmVuZG9yL3VybGxpYjMvX2NvbGxlY3Rpb25zLnB5IGIvdGhpcmRfcGFydHkvcHl0aG9uL3Bp cGVudi9waXBlbnYvdmVuZG9yL3BpcDkvX3ZlbmRvci91cmxsaWIzL19jb2xsZWN0aW9ucy5weQot LS0tIGEvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3BpcDkvX3ZlbmRv ci91cmxsaWIzL19jb2xsZWN0aW9ucy5weQkyMDIxLTA5LTAxIDEzOjI3OjAwLjAwMDAwMDAwMCAt MDQwMAotKysrIGIvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3BpcDkv X3ZlbmRvci91cmxsaWIzL19jb2xsZWN0aW9ucy5weQkyMDIxLTExLTA1IDE1OjI5OjEyLjAwMDAw MDAwMCAtMDQwMAotQEAgLTEsNSArMSw1IEBACi0gZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv bHV0ZV9pbXBvcnQKLS1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNYXBwaW5nLCBNdXRhYmxlTWFw cGluZwotK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBNYXBwaW5nLCBNdXRhYmxlTWFwcGlu ZwotIHRyeToKLSAgICAgZnJvbSB0aHJlYWRpbmcgaW1wb3J0IFJMb2NrCi0gZXhjZXB0IEltcG9y dEVycm9yOiAgIyBQbGF0Zm9ybS1zcGVjaWZpYzogTm8gdGhyZWFkcyBhdmFpbGFibGUKLWRpZmYg LXVyIGEvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3JlcXVlc3RzL2Nv b2tpZXMucHkgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3IvcmVxdWVz dHMvY29va2llcy5weQotLS0tIGEvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVu ZG9yL3JlcXVlc3RzL2Nvb2tpZXMucHkJMjAyMS0wOS0wMSAxMzoyNzowMC4wMDAwMDAwMDAgLTA0 MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRvci9yZXF1ZXN0 cy9jb29raWVzLnB5CTIwMjEtMTEtMDUgMTU6Mjk6MTIuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMTY5 LDcgKzE2OSw3IEBACi0gICAgICIiIgotIAotIAotLWNsYXNzIFJlcXVlc3RzQ29va2llSmFyKGNv b2tpZWxpYi5Db29raWVKYXIsIGNvbGxlY3Rpb25zLk11dGFibGVNYXBwaW5nKToKLStjbGFzcyBS ZXF1ZXN0c0Nvb2tpZUphcihjb29raWVsaWIuQ29va2llSmFyLCBjb2xsZWN0aW9ucy5hYmMuTXV0 YWJsZU1hcHBpbmcpOgotICAgICAiIiJDb21wYXRpYmlsaXR5IGNsYXNzOyBpcyBhIGNvb2tpZWxp Yi5Db29raWVKYXIsIGJ1dCBleHBvc2VzIGEgZGljdAotICAgICBpbnRlcmZhY2UuCi0gCi1kaWZm IC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRvci9yZXF1ZXN0cy9t b2RlbHMucHkgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3IvcmVxdWVz dHMvbW9kZWxzLnB5Ci0tLS0gYS90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5k b3IvcmVxdWVzdHMvbW9kZWxzLnB5CTIwMjEtMDktMDEgMTM6Mjc6MDkuMDAwMDAwMDAwIC0wNDAw Ci0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3IvcmVxdWVzdHMv bW9kZWxzLnB5CTIwMjEtMTEtMDUgMTU6MzI6MDkuNzMyNzQxNzkzIC0wNDAwCi1AQCAtMTc0LDEw ICsxNzQsMTAgQEAKLSAgICAgICAgIGlmIGV2ZW50IG5vdCBpbiBzZWxmLmhvb2tzOgotICAgICAg ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Vuc3VwcG9ydGVkIGV2ZW50IHNwZWNpZmllZCwgd2l0 aCBldmVudCBuYW1lICIlcyInICUgKGV2ZW50KSkKLSAKLS0gICAgICAgIGlmIGlzaW5zdGFuY2Uo aG9vaywgY29sbGVjdGlvbnMuQ2FsbGFibGUpOgotKyAgICAgICAgaWYgaXNpbnN0YW5jZShob29r LCBjb2xsZWN0aW9ucy5hYmMuQ2FsbGFibGUpOgotICAgICAgICAgICAgIHNlbGYuaG9va3NbZXZl bnRdLmFwcGVuZChob29rKQotICAgICAgICAgZWxpZiBoYXNhdHRyKGhvb2ssICdfX2l0ZXJfXycp OgotLSAgICAgICAgICAgIHNlbGYuaG9va3NbZXZlbnRdLmV4dGVuZChoIGZvciBoIGluIGhvb2sg aWYgaXNpbnN0YW5jZShoLCBjb2xsZWN0aW9ucy5DYWxsYWJsZSkpCi0rICAgICAgICAgICAgc2Vs Zi5ob29rc1tldmVudF0uZXh0ZW5kKGggZm9yIGggaW4gaG9vayBpZiBpc2luc3RhbmNlKGgsIGNv bGxlY3Rpb25zLmFiYy5DYWxsYWJsZSkpCi0gCi0gICAgIGRlZiBkZXJlZ2lzdGVyX2hvb2soc2Vs ZiwgZXZlbnQsIGhvb2spOgotICAgICAgICAgIiIiRGVyZWdpc3RlciBhIHByZXZpb3VzbHkgcmVn aXN0ZXJlZCBob29rLgotQEAgLTQ2MSw3ICs0NjEsNyBAQAotIAotICAgICAgICAgaXNfc3RyZWFt ID0gYWxsKFsKLSAgICAgICAgICAgICBoYXNhdHRyKGRhdGEsICdfX2l0ZXJfXycpLAotLSAgICAg ICAgICAgIG5vdCBpc2luc3RhbmNlKGRhdGEsIChiYXNlc3RyaW5nLCBsaXN0LCB0dXBsZSwgY29s bGVjdGlvbnMuTWFwcGluZykpCi0rICAgICAgICAgICAgbm90IGlzaW5zdGFuY2UoZGF0YSwgKGJh c2VzdHJpbmcsIGxpc3QsIHR1cGxlLCBjb2xsZWN0aW9ucy5hYmMuTWFwcGluZykpCi0gICAgICAg ICBdKQotIAotICAgICAgICAgdHJ5OgotZGlmZiAtdXIgYS90aGlyZF9wYXJ0eS9weXRob24vcGlw ZW52L3BpcGVudi92ZW5kb3IvcmVxdWVzdHMvc3RydWN0dXJlcy5weSBiL3RoaXJkX3BhcnR5L3B5 dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRvci9yZXF1ZXN0cy9zdHJ1Y3R1cmVzLnB5Ci0tLS0gYS90 aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3IvcmVxdWVzdHMvc3RydWN0dXJl cy5weQkyMDIxLTA5LTAxIDEzOjI3OjAwLjAwMDAwMDAwMCAtMDQwMAotKysrIGIvdGhpcmRfcGFy dHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3JlcXVlc3RzL3N0cnVjdHVyZXMucHkJMjAy MS0xMS0wNSAxNToyOToxMi4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xMiw3ICsxMiw3IEBACi0gZnJv bSAuY29tcGF0IGltcG9ydCBPcmRlcmVkRGljdAotIAotIAotLWNsYXNzIENhc2VJbnNlbnNpdGl2 ZURpY3QoY29sbGVjdGlvbnMuTXV0YWJsZU1hcHBpbmcpOgotK2NsYXNzIENhc2VJbnNlbnNpdGl2 ZURpY3QoY29sbGVjdGlvbnMuYWJjLk11dGFibGVNYXBwaW5nKToKLSAgICAgIiIiQSBjYXNlLWlu c2Vuc2l0aXZlIGBgZGljdGBgLWxpa2Ugb2JqZWN0LgotIAotICAgICBJbXBsZW1lbnRzIGFsbCBt ZXRob2RzIGFuZCBvcGVyYXRpb25zIG9mCi1AQCAtNzEsNyArNzEsNyBAQAotICAgICAgICAgKQot IAotICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKLS0gICAgICAgIGlmIGlzaW5zdGFuY2Uo b3RoZXIsIGNvbGxlY3Rpb25zLk1hcHBpbmcpOgotKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhl ciwgY29sbGVjdGlvbnMuYWJjLk1hcHBpbmcpOgotICAgICAgICAgICAgIG90aGVyID0gQ2FzZUlu c2Vuc2l0aXZlRGljdChvdGhlcikKLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgcmV0dXJu IE5vdEltcGxlbWVudGVkCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlw ZW52L3ZlbmRvci9yZXF1ZXN0cy91dGlscy5weSBiL3RoaXJkX3BhcnR5L3B5dGhvbi9waXBlbnYv cGlwZW52L3ZlbmRvci9yZXF1ZXN0cy91dGlscy5weQotLS0tIGEvdGhpcmRfcGFydHkvcHl0aG9u L3BpcGVudi9waXBlbnYvdmVuZG9yL3JlcXVlc3RzL3V0aWxzLnB5CTIwMjEtMDktMDEgMTM6Mjc6 MDAuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVu di92ZW5kb3IvcmVxdWVzdHMvdXRpbHMucHkJMjAyMS0xMS0wNSAxNTozMjoxMy43NzY3NDA4NjAg LTA0MDAKLUBAIC0yNjIsNyArMjYyLDcgQEAKLSAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgKHN0 ciwgYnl0ZXMsIGJvb2wsIGludCkpOgotICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignY2Fubm90 IGVuY29kZSBvYmplY3RzIHRoYXQgYXJlIG5vdCAyLXR1cGxlcycpCi0gCi0tICAgIGlmIGlzaW5z dGFuY2UodmFsdWUsIGNvbGxlY3Rpb25zLk1hcHBpbmcpOgotKyAgICBpZiBpc2luc3RhbmNlKHZh bHVlLCBjb2xsZWN0aW9ucy5hYmMuTWFwcGluZyk6Ci0gICAgICAgICB2YWx1ZSA9IHZhbHVlLml0 ZW1zKCkKLSAKLSAgICAgcmV0dXJuIGxpc3QodmFsdWUpCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5 L3B5dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRvci91cmxsaWIzL19jb2xsZWN0aW9ucy5weSBiL3Ro aXJkX3BhcnR5L3B5dGhvbi9waXBlbnYvcGlwZW52L3ZlbmRvci91cmxsaWIzL19jb2xsZWN0aW9u cy5weQotLS0tIGEvdGhpcmRfcGFydHkvcHl0aG9uL3BpcGVudi9waXBlbnYvdmVuZG9yL3VybGxp YjMvX2NvbGxlY3Rpb25zLnB5CTIwMjEtMDktMDEgMTM6MjY6NDYuMDAwMDAwMDAwIC0wNDAwCi0r KysgYi90aGlyZF9wYXJ0eS9weXRob24vcGlwZW52L3BpcGVudi92ZW5kb3IvdXJsbGliMy9fY29s bGVjdGlvbnMucHkJMjAyMS0xMS0wNSAxNToyOToxMi4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xLDUg KzEsNSBAQAotIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0tZnJvbSBj b2xsZWN0aW9ucyBpbXBvcnQgTWFwcGluZywgTXV0YWJsZU1hcHBpbmcKLStmcm9tIGNvbGxlY3Rp b25zLmFiYyBpbXBvcnQgTWFwcGluZywgTXV0YWJsZU1hcHBpbmcKLSB0cnk6Ci0gICAgIGZyb20g dGhyZWFkaW5nIGltcG9ydCBSTG9jawotIGV4Y2VwdCBJbXBvcnRFcnJvcjogICMgUGxhdGZvcm0t c3BlY2lmaWM6IE5vIHRocmVhZHMgYXZhaWxhYmxlCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5L3B5 dGhvbi9weXlhbWwvbGliMy95YW1sL2NvbnN0cnVjdG9yLnB5IGIvdGhpcmRfcGFydHkvcHl0aG9u L3B5eWFtbC9saWIzL3lhbWwvY29uc3RydWN0b3IucHkKLS0tLSBhL3RoaXJkX3BhcnR5L3B5dGhv bi9weXlhbWwvbGliMy95YW1sL2NvbnN0cnVjdG9yLnB5CTIwMjEtMDktMDEgMTM6Mjc6MDAuMDAw MDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcHl5YW1sL2xpYjMveWFtbC9j b25zdHJ1Y3Rvci5weQkyMDIxLTExLTA1IDE1OjI5OjEyLjAwMDAwMDAwMCAtMDQwMAotQEAgLTEy Myw3ICsxMjMsNyBAQAotICAgICAgICAgbWFwcGluZyA9IHt9Ci0gICAgICAgICBmb3Iga2V5X25v ZGUsIHZhbHVlX25vZGUgaW4gbm9kZS52YWx1ZToKLSAgICAgICAgICAgICBrZXkgPSBzZWxmLmNv bnN0cnVjdF9vYmplY3Qoa2V5X25vZGUsIGRlZXA9ZGVlcCkKLS0gICAgICAgICAgICBpZiBub3Qg aXNpbnN0YW5jZShrZXksIGNvbGxlY3Rpb25zLkhhc2hhYmxlKToKLSsgICAgICAgICAgICBpZiBu b3QgaXNpbnN0YW5jZShrZXksIGNvbGxlY3Rpb25zLmFiYy5IYXNoYWJsZSk6Ci0gICAgICAgICAg ICAgICAgIHJhaXNlIENvbnN0cnVjdG9yRXJyb3IoIndoaWxlIGNvbnN0cnVjdGluZyBhIG1hcHBp bmciLCBub2RlLnN0YXJ0X21hcmssCi0gICAgICAgICAgICAgICAgICAgICAgICAgImZvdW5kIHVu aGFzaGFibGUga2V5Iiwga2V5X25vZGUuc3RhcnRfbWFyaykKLSAgICAgICAgICAgICB2YWx1ZSA9 IHNlbGYuY29uc3RydWN0X29iamVjdCh2YWx1ZV9ub2RlLCBkZWVwPWRlZXApCi1kaWZmIC11ciBh L3RoaXJkX3BhcnR5L3B5dGhvbi9yZXF1ZXN0cy9yZXF1ZXN0cy9jb29raWVzLnB5IGIvdGhpcmRf cGFydHkvcHl0aG9uL3JlcXVlc3RzL3JlcXVlc3RzL2Nvb2tpZXMucHkKLS0tLSBhL3RoaXJkX3Bh cnR5L3B5dGhvbi9yZXF1ZXN0cy9yZXF1ZXN0cy9jb29raWVzLnB5CTIwMjEtMDktMDEgMTM6Mjc6 MDUuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcmVxdWVzdHMvcmVx dWVzdHMvY29va2llcy5weQkyMDIxLTExLTA1IDE1OjI5OjEyLjAwMDAwMDAwMCAtMDQwMAotQEAg LTE2MSw3ICsxNjEsNyBAQAotICAgICBVc2UgLmdldCBhbmQgLnNldCBhbmQgaW5jbHVkZSBkb21h aW4gYW5kIHBhdGggYXJncyBpbiBvcmRlciB0byBiZSBtb3JlIHNwZWNpZmljLiIiIgotIAotIAot LWNsYXNzIFJlcXVlc3RzQ29va2llSmFyKGNvb2tpZWxpYi5Db29raWVKYXIsIGNvbGxlY3Rpb25z Lk11dGFibGVNYXBwaW5nKToKLStjbGFzcyBSZXF1ZXN0c0Nvb2tpZUphcihjb29raWVsaWIuQ29v a2llSmFyLCBjb2xsZWN0aW9ucy5hYmMuTXV0YWJsZU1hcHBpbmcpOgotICAgICAiIiJDb21wYXRp YmlsaXR5IGNsYXNzOyBpcyBhIGNvb2tpZWxpYi5Db29raWVKYXIsIGJ1dCBleHBvc2VzIGEgZGlj dAotICAgICBpbnRlcmZhY2UuCi0gCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9yZXF1 ZXN0cy9yZXF1ZXN0cy9wYWNrYWdlcy91cmxsaWIzL19jb2xsZWN0aW9ucy5weSBiL3RoaXJkX3Bh cnR5L3B5dGhvbi9yZXF1ZXN0cy9yZXF1ZXN0cy9wYWNrYWdlcy91cmxsaWIzL19jb2xsZWN0aW9u cy5weQotLS0tIGEvdGhpcmRfcGFydHkvcHl0aG9uL3JlcXVlc3RzL3JlcXVlc3RzL3BhY2thZ2Vz L3VybGxpYjMvX2NvbGxlY3Rpb25zLnB5CTIwMjEtMDktMDEgMTM6Mjc6MTMuMDAwMDAwMDAwIC0w NDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcmVxdWVzdHMvcmVxdWVzdHMvcGFja2FnZXMv dXJsbGliMy9fY29sbGVjdGlvbnMucHkJMjAyMS0xMS0wNSAxNToyOToxMi4wMDAwMDAwMDAgLTA0 MDAKLUBAIC0xLDUgKzEsNSBAQAotIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w b3J0Ci0tZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTWFwcGluZywgTXV0YWJsZU1hcHBpbmcKLStm cm9tIGNvbGxlY3Rpb25zLmFiYyBpbXBvcnQgTWFwcGluZywgTXV0YWJsZU1hcHBpbmcKLSB0cnk6 Ci0gICAgIGZyb20gdGhyZWFkaW5nIGltcG9ydCBSTG9jawotIGV4Y2VwdCBJbXBvcnRFcnJvcjog ICMgUGxhdGZvcm0tc3BlY2lmaWM6IE5vIHRocmVhZHMgYXZhaWxhYmxlCi1kaWZmIC11ciBhL3Ro aXJkX3BhcnR5L3B5dGhvbi9yZXF1ZXN0cy9yZXF1ZXN0cy9zdHJ1Y3R1cmVzLnB5IGIvdGhpcmRf cGFydHkvcHl0aG9uL3JlcXVlc3RzL3JlcXVlc3RzL3N0cnVjdHVyZXMucHkKLS0tLSBhL3RoaXJk X3BhcnR5L3B5dGhvbi9yZXF1ZXN0cy9yZXF1ZXN0cy9zdHJ1Y3R1cmVzLnB5CTIwMjEtMDktMDEg MTM6Mjc6MDkuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcmVxdWVz dHMvcmVxdWVzdHMvc3RydWN0dXJlcy5weQkyMDIxLTExLTA1IDE1OjI5OjEyLjAwMDAwMDAwMCAt MDQwMAotQEAgLTExLDcgKzExLDcgQEAKLSBpbXBvcnQgY29sbGVjdGlvbnMKLSAKLSAKLS1jbGFz cyBDYXNlSW5zZW5zaXRpdmVEaWN0KGNvbGxlY3Rpb25zLk11dGFibGVNYXBwaW5nKToKLStjbGFz cyBDYXNlSW5zZW5zaXRpdmVEaWN0KGNvbGxlY3Rpb25zLmFiYy5NdXRhYmxlTWFwcGluZyk6Ci0g ICAgICIiIgotICAgICBBIGNhc2UtaW5zZW5zaXRpdmUgYGBkaWN0YGAtbGlrZSBvYmplY3QuCi0g Ci1AQCAtNzEsNyArNzEsNyBAQAotICAgICAgICAgKQotIAotICAgICBkZWYgX19lcV9fKHNlbGYs IG90aGVyKToKLS0gICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIGNvbGxlY3Rpb25zLk1hcHBp bmcpOgotKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgY29sbGVjdGlvbnMuYWJjLk1hcHBp bmcpOgotICAgICAgICAgICAgIG90aGVyID0gQ2FzZUluc2Vuc2l0aXZlRGljdChvdGhlcikKLSAg ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCi1kaWZmIC11 ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi9yZXF1ZXN0cy9yZXF1ZXN0cy91dGlscy5weSBiL3RoaXJk X3BhcnR5L3B5dGhvbi9yZXF1ZXN0cy9yZXF1ZXN0cy91dGlscy5weQotLS0tIGEvdGhpcmRfcGFy dHkvcHl0aG9uL3JlcXVlc3RzL3JlcXVlc3RzL3V0aWxzLnB5CTIwMjEtMDktMDEgMTM6Mjc6MDku MDAwMDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vcmVxdWVzdHMvcmVxdWVz dHMvdXRpbHMucHkJMjAyMS0xMS0wNSAxNTozMDo1NS40MjA3NTkwNDUgLTA0MDAKLUBAIC0xODks NyArMTg5LDcgQEAKLSAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgKHN0ciwgYnl0ZXMsIGJvb2ws IGludCkpOgotICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignY2Fubm90IGVuY29kZSBvYmplY3Rz IHRoYXQgYXJlIG5vdCAyLXR1cGxlcycpCi0gCi0tICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGNv bGxlY3Rpb25zLk1hcHBpbmcpOgotKyAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBjb2xsZWN0aW9u cy5hYmMuTWFwcGluZyk6Ci0gICAgICAgICB2YWx1ZSA9IHZhbHVlLml0ZW1zKCkKLSAKLSAgICAg cmV0dXJuIGxpc3QodmFsdWUpCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5L3B5dGhvbi92aXJ0dWFs ZW52L19fdmlydHVhbGVudl9fL2Rpc3RsaWItMC4zLjEtcHkyLnB5My1ub25lLWFueS9kaXN0bGli L2NvbXBhdC5weSBiL3RoaXJkX3BhcnR5L3B5dGhvbi92aXJ0dWFsZW52L19fdmlydHVhbGVudl9f L2Rpc3RsaWItMC4zLjEtcHkyLnB5My1ub25lLWFueS9kaXN0bGliL2NvbXBhdC5weQotLS0tIGEv dGhpcmRfcGFydHkvcHl0aG9uL3ZpcnR1YWxlbnYvX192aXJ0dWFsZW52X18vZGlzdGxpYi0wLjMu MS1weTIucHkzLW5vbmUtYW55L2Rpc3RsaWIvY29tcGF0LnB5CTIwMjEtMDktMDEgMTM6Mjc6MDAu MDAwMDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0eS9weXRob24vdmlydHVhbGVudi9fX3Zp cnR1YWxlbnZfXy9kaXN0bGliLTAuMy4xLXB5Mi5weTMtbm9uZS1hbnkvZGlzdGxpYi9jb21wYXQu cHkJMjAyMS0xMS0wNSAxNToyOToxMi4wMDAwMDAwMDAgLTA0MDAKLUBAIC00ODEsNyArNDgxLDcg QEAKLSB0cnk6Ci0gICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IENoYWluTWFwCi0gZXhjZXB0 IEltcG9ydEVycm9yOiAjIHByYWdtYTogbm8gY292ZXIKLS0gICAgZnJvbSBjb2xsZWN0aW9ucyBp bXBvcnQgTXV0YWJsZU1hcHBpbmcKLSsgICAgZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IE11 dGFibGVNYXBwaW5nCi0gCi0gICAgIHRyeToKLSAgICAgICAgIGZyb20gcmVwcmxpYiBpbXBvcnQg cmVjdXJzaXZlX3JlcHIgYXMgX3JlY3Vyc2l2ZV9yZXByCi1kaWZmIC11ciBhL3RoaXJkX3BhcnR5 L3B5dGhvbi92b2x1cHR1b3VzL3ZvbHVwdHVvdXMvc2NoZW1hX2J1aWxkZXIucHkgYi90aGlyZF9w YXJ0eS9weXRob24vdm9sdXB0dW91cy92b2x1cHR1b3VzL3NjaGVtYV9idWlsZGVyLnB5Ci0tLS0g YS90aGlyZF9wYXJ0eS9weXRob24vdm9sdXB0dW91cy92b2x1cHR1b3VzL3NjaGVtYV9idWlsZGVy LnB5CTIwMjEtMDktMDEgMTM6Mjc6MDkuMDAwMDAwMDAwIC0wNDAwCi0rKysgYi90aGlyZF9wYXJ0 eS9weXRob24vdm9sdXB0dW91cy92b2x1cHR1b3VzL3NjaGVtYV9idWlsZGVyLnB5CTIwMjEtMTEt MDUgMTU6MzA6MzIuMzk5NzY0Mzc0IC0wNDAwCi1AQCAtMjgwLDcgKzI4MCw3IEBACi0gICAgICAg ICAgICAgcmV0dXJuIHNjaGVtYS5fX3ZvbHVwdHVvdXNfY29tcGlsZV9fKHNlbGYpCi0gICAgICAg ICBpZiBpc2luc3RhbmNlKHNjaGVtYSwgT2JqZWN0KToKLSAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5fY29tcGlsZV9vYmplY3Qoc2NoZW1hKQotLSAgICAgICAgaWYgaXNpbnN0YW5jZShzY2hlbWEs IGNvbGxlY3Rpb25zLk1hcHBpbmcpOgotKyAgICAgICAgaWYgaXNpbnN0YW5jZShzY2hlbWEsIGNv bGxlY3Rpb25zLmFiYy5NYXBwaW5nKToKLSAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29tcGls ZV9kaWN0KHNjaGVtYSkKLSAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShzY2hlbWEsIGxpc3QpOgot ICAgICAgICAgICAgIHJldHVybiBzZWxmLl9jb21waWxlX2xpc3Qoc2NoZW1hKQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC13YXNtLWFybS5wYXRjaCBiL3NyY3Br Z3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9maXgtd2FzbS1hcm0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGE2MDM1ZTg3NjE2My4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv ZmlyZWZveC1lc3IvcGF0Y2hlcy9maXgtd2FzbS1hcm0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwxNSArMCwwIEBACi0tLS0gYS9qcy9zcmMvd2FzbS9XYXNtU2lnbmFsSGFuZGxlcnMuY3BwCi0r KysgYi9qcy9zcmMvd2FzbS9XYXNtU2lnbmFsSGFuZGxlcnMuY3BwCi1AQCAtMjQzLDkgKzI0Myw5 IEBACi0gLy8gSWYgeW91IHJ1biBpbnRvIGNvbXBpbGUgcHJvYmxlbXMgb24gYSB0aWVyLTMgcGxh dGZvcm0sIHlvdSBjYW4gZGlzYWJsZSB0aGUKLSAvLyBlbXVsYXRpb24gaGVyZS4KLSAKLS0jaWYg ZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19hcm1fXykKLS0jICBkZWZpbmUgV0FTTV9F TVVMQVRFX0FSTV9VTkFMSUdORURfRlBfQUNDRVNTCi0tI2VuZGlmCi0rLy8gI2lmIGRlZmluZWQo X19saW51eF9fKSAmJiBkZWZpbmVkKF9fYXJtX18pCi0rLy8gIyAgZGVmaW5lIFdBU01fRU1VTEFU RV9BUk1fVU5BTElHTkVEX0ZQX0FDQ0VTUwotKy8vICNlbmRpZgotIAotICNpZmRlZiBXQVNNX0VN VUxBVEVfQVJNX1VOQUxJR05FRF9GUF9BQ0NFU1MKLSAjICBpbmNsdWRlIDxzeXMvdXNlci5oPgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC13ZWJydGMtZ2xpYmNp c21zLnBhdGNoIGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC13ZWJydGMtZ2xpYmNp c21zLnBhdGNoCmluZGV4IDcwOTEwZGE1ODYxZS4uNWQxNzAyMWE5OWY0IDEwMDY0NAotLS0gYS9z cmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LXdlYnJ0Yy1nbGliY2lzbXMucGF0Y2gKKysr IGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC13ZWJydGMtZ2xpYmNpc21zLnBhdGNo CkBAIC0xLDUgKzEsNSBAQAotLS0tIGEvbWVkaWEvd2VicnRjL3RydW5rL3dlYnJ0Yy9zeXN0ZW1f d3JhcHBlcnMvc291cmNlL2NwdV9mZWF0dXJlc19saW51eC5jCTIwMTktMDEtMjkgMTE6MjA6NTIu Mjk4NzkzMjIzICswMTAwCi0rKysgYi9tZWRpYS93ZWJydGMvdHJ1bmsvd2VicnRjL3N5c3RlbV93 cmFwcGVycy9zb3VyY2UvY3B1X2ZlYXR1cmVzX2xpbnV4LmMJMjAxOS0wMS0yOSAxMToyMTo0OC4y NTAyNTA4NTAgKzAxMDAKKy0tLSBhL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy93ZWJydGMvc3lzdGVt X3dyYXBwZXJzL3NvdXJjZS9jcHVfZmVhdHVyZXNfbGludXguYwkyMDE5LTAxLTI5IDExOjIwOjUy LjI5ODc5MzIyMyArMDEwMAorKysrIGIvdGhpcmRfcGFydHkvbGlid2VicnRjL3dlYnJ0Yy9zeXN0 ZW1fd3JhcHBlcnMvc291cmNlL2NwdV9mZWF0dXJlc19saW51eC5jCTIwMTktMDEtMjkgMTE6MjE6 NDguMjUwMjUwODUwICswMTAwCiBAQCAtMTQsNyArMTQsNyBAQAogICNpZm5kZWYgX19HTElCQ19Q UkVSRVEKICAjZGVmaW5lIF9fR0xJQkNfUFJFUkVRKGEsIGIpIDAKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9mbGFjLW5vLWZmdnB4LnBhdGNoIGIvc3JjcGtncy9maXJl Zm94LWVzci9wYXRjaGVzL2ZsYWMtbm8tZmZ2cHgucGF0Y2gKaW5kZXggMTU0YWFkNjNlMzNhLi5l YmY0OGRlYjk3MjAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9mbGFj LW5vLWZmdnB4LnBhdGNoCisrKyBiL3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9mbGFjLW5v LWZmdnB4LnBhdGNoCkBAIC0xMiwxNSArMTIsMTQgQEAgaW5kZXggNTNmYzNjOTkzN2Y3Li5iMjM3 NzFhYjgwZmEgMTAwNjQ0CiAgCiAgbmFtZXNwYWNlIG1vemlsbGEgewogIAotQEAgLTE0LDYgKzE1 LDExIEBAIG5hbWVzcGFjZSBtb3ppbGxhIHsKK0BAIC0xNCw2ICsxNSwxMCBAQCBuYW1lc3BhY2Ug bW96aWxsYSB7CiAgYm9vbCBGbGFjRGVjb2Rlcjo6SXNFbmFibGVkKCkgewogICNpZmRlZiBNT1pf RkZWUFgKICAgIHJldHVybiBTdGF0aWNQcmVmczo6bWVkaWFfZmxhY19lbmFibGVkKCk7CiArI2Vs aWYgZGVmaW5lZChNT1pfRkZNUEVHKQogKyAgUmVmUHRyPFBETUZhY3Rvcnk+IHBsYXRmb3JtID0g bmV3IFBETUZhY3RvcnkoKTsKICsgIHJldHVybiBTdGF0aWNQcmVmczo6bWVkaWFfZmxhY19lbmFi bGVkKCkgJiYKLSsgICAgICAgICBwbGF0Zm9ybS0+U3VwcG9ydHNNaW1lVHlwZSgiYXVkaW8vZmxh YyJfbnMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRGVjb2RlckRv Y3RvckRpYWdub3N0aWNzKiAqLyBudWxscHRyKTsKKysgICAgICAgICBwbGF0Zm9ybS0+U3VwcG9y dHNNaW1lVHlwZSgiYXVkaW8vZmxhYyJfbnMpOwogICNlbHNlCiAgICAvLyBVbnRpbCBidWcgMTI5 NTg4NiBpcyBmaXhlZC4KICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmly ZWZveC1lc3IvcGF0Y2hlcy9tdXNsLXJ1c3QuY29uZmlndXJlLnBhdGNoIGIvc3JjcGtncy9maXJl Zm94LWVzci9wYXRjaGVzL211c2wtcnVzdC5jb25maWd1cmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDBiMmY3ZGVlMWQzYy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv ZmlyZWZveC1lc3IvcGF0Y2hlcy9tdXNsLXJ1c3QuY29uZmlndXJlLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMjYgKzAsMCBAQAotLS0tIGEvYnVpbGQvbW96LmNvbmZpZ3VyZS9ydXN0LmNvbmZp Z3VyZQkyMDE5LTEwLTI4IDEyOjA1OjA0LjkzMDQwNDYwMyArMDcwMAotKysrIGIvYnVpbGQvbW96 LmNvbmZpZ3VyZS9ydXN0LmNvbmZpZ3VyZQkyMDE5LTEwLTI4IDEyOjA5OjQyLjc0MjMzODk1NyAr MDcwMAotQEAgLTI5NywxMSArMjk3LDIwIEBACi0gICAgICAgICAgICAgICAgICAgICBzdWZmaXgg PSAnaGYnCi0gICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICBzdWZm aXggPSAnJwotKwotKyAgICAgICAgICAgICAgICBuYXJyb3dlZCA9IFtdCi0gICAgICAgICAgICAg ICAgIGZvciBwIGluIHByZWZpeGVzOgotICAgICAgICAgICAgICAgICAgICAgZm9yIGMgaW4gY2Fu ZGlkYXRlczoKLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiBjLnJ1c3RfdGFyZ2V0LnN0YXJ0 c3dpdGgoJ3t9LScuZm9ybWF0KHApKSBhbmQgXAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYy5ydXN0X3RhcmdldC5lbmRzd2l0aChzdWZmaXgpOgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gYy5ydXN0X3RhcmdldAotKyAgICAgICAgICAgICAgICAgICAgICAg IGlmIGMucnVzdF90YXJnZXQuc3RhcnRzd2l0aCgne30tJy5mb3JtYXQocCkpOgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYXJyb3dlZC5hcHBlbmQoYy5ydXN0X3RhcmdldCkKLSsKLSsg ICAgICAgICAgICAgICAgZm9yIHRhcmdldCBpbiBuYXJyb3dlZDoKLSsgICAgICAgICAgICAgICAg ICAgIGlmIHRhcmdldC5lbmRzd2l0aChob3N0X29yX3RhcmdldC5yYXdfb3MpOgotKyAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQKLSsKLSsgICAgICAgICAgICAgICAgZm9yIHRh cmdldCBpbiBuYXJyb3dlZDoKLSsgICAgICAgICAgICAgICAgICAgIGlmIHRhcmdldC5lbmRzd2l0 aChzdWZmaXgpOgotKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQKLSAKLSAg ICAgICAgICAgICAjIFNlZSBpZiB3ZSBjYW4gbmFycm93IGRvd24gb24gdGhlIGV4YWN0IGFsaWFz Ci0gICAgICAgICAgICAgbmFycm93ZWQgPSBbYyBmb3IgYyBpbiBjYW5kaWRhdGVzIGlmIGMudGFy Z2V0LmFsaWFzID09IGhvc3Rfb3JfdGFyZ2V0LmFsaWFzXQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9m aXJlZm94LWVzci9wYXRjaGVzL3J1c3QtY29uZmlndXJlLnBhdGNoIGIvc3JjcGtncy9maXJlZm94 LWVzci9wYXRjaGVzL3J1c3QtY29uZmlndXJlLnBhdGNoCmluZGV4IDA3Yjk4ZDZjN2NhZS4uNjFm YjJiYTg5MWQ5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvcnVzdC1j b25maWd1cmUucGF0Y2gKKysrIGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL3J1c3QtY29u ZmlndXJlLnBhdGNoCkBAIC0xLDQyICsxLDExMiBAQAogTW96aWxsYSBydXN0YyBjaGVjayBkb2Vz IG5vdCBzdXBwb3J0IGNyb3NzYnVpbGQ6IGxldCdzIHJlbW92ZSBpdAogUmVtb3ZlIGNhbGxzIHRv IHVud3JhcF9ydXN0dXAsIHRoZXkgZmFpbCBpZiBydXN0dXAgaXNuJ3QgcHJlc2VudAogCi0tLS0g YS9idWlsZC9tb3ouY29uZmlndXJlL3J1c3QuY29uZmlndXJlCTIwMTktMTAtMTcgMDQ6MTk6NTku MDAwMDAwMDAwICswNzAwCi0rKysgYi9idWlsZC9tb3ouY29uZmlndXJlL3J1c3QuY29uZmlndXJl CTIwMTktMTAtMjIgMTE6NDg6NTUuNjE2MDIyMTQwICswNzAwCi1AQCAtNzgsOSArNzgsNiBAQAot IAorRG8gbm90IHRyeSB0byBmaWd1cmUgb3V0IHRoZSBydXN0IHRhcmdldCBhcyBpdCBpcyBicm9r ZW4gb24gbXVzbAoraW5zdGVhZCB1c2Ugd2hhdCBpcyBzZXQgaW4gUlVTVF9UQVJHRVQKKworU2tp cCBleHRyYSBjaGVja3Mgb24gY3Jvc3MgYnVpbGRzIChicm9rZW4gZm9yIGFybSopCisKKy0tLSBh L2J1aWxkL21vei5jb25maWd1cmUvcnVzdC5jb25maWd1cmUJMjAyMC0xMi0xMiAwMTozNTozMy4w MDAwMDAwMDAgKzAxMDAKKysrKyBiL2J1aWxkL21vei5jb25maWd1cmUvcnVzdC5jb25maWd1cmUJ MjAyMC0xMi0xNSAxOTo0NToxNi40Njc3NTA3ODcgKzAxMDAKK0BAIC05MSw5ICs5MSw2IEBACiAg ICAgIHJldHVybiB1bndyYXAKICAKLS1ydXN0YyA9IHVud3JhcF9ydXN0dXAocnVzdGMsICdydXN0 YycpCi0tY2FyZ28gPSB1bndyYXBfcnVzdHVwKGNhcmdvLCAnY2FyZ28nKQorIAorLXJ1c3RjID0g dW53cmFwX3J1c3R1cChydXN0YywgInJ1c3RjIikKKy1jYXJnbyA9IHVud3JhcF9ydXN0dXAoY2Fy Z28sICJjYXJnbyIpCiAtCiAgCi0gc2V0X2NvbmZpZygnQ0FSR08nLCBjYXJnbykKLSBzZXRfY29u ZmlnKCdSVVNUQycsIHJ1c3RjKQotQEAgLTM0OCwyNiArMzQ1LDYgQEAKKyBzZXRfY29uZmlnKCJD QVJHTyIsIGNhcmdvKQorIHNldF9jb25maWcoIlJVU1RDIiwgcnVzdGMpCitAQCAtMjYwLDcgKzI1 Nyw5IEBACisgICAgICAgICBkYXRhLnNldGRlZmF1bHQoa2V5LCBbXSkuYXBwZW5kKG5hbWVzcGFj ZShydXN0X3RhcmdldD10LCB0YXJnZXQ9aW5mbykpCisgICAgIHJldHVybiBkYXRhCisgCistCisr QGltcG9ydHMoJ29zJykKKytAaW1wb3J0cyhfZnJvbT0nbW96YnVpbGQudXRpbCcsIF9pbXBvcnQ9 J2Vuc3VyZV91bmljb2RlJykKKytAaW1wb3J0cyhfZnJvbT0nbW96YnVpbGQudXRpbCcsIF9pbXBv cnQ9J3N5c3RlbV9lbmNvZGluZycpCisgZGVmIGRldGVjdF9ydXN0Y190YXJnZXQoCisgICAgIGhv c3Rfb3JfdGFyZ2V0LCBjb21waWxlcl9pbmZvLCBhcm1fdGFyZ2V0LCBydXN0X3N1cHBvcnRlZF90 YXJnZXRzCisgKToKK0BAIC0zODIsMTIgKzM4MSwxMiBAQAorIAorICAgICAgICAgcmV0dXJuIE5v bmUKKyAKKy0gICAgcnVzdGNfdGFyZ2V0ID0gZmluZF9jYW5kaWRhdGUoY2FuZGlkYXRlcykKKysg ICAgcnVzdGNfdGFyZ2V0ID0gb3MuZW52aXJvblsnUlVTVF9UQVJHRVQnXQogIAotICAgICAgICAg ICAgIG9zLndyaXRlKGluX2ZkLCBzb3VyY2UpCi0gICAgICAgICAgICAgb3MuY2xvc2UoaW5fZmQp CisgICAgIGlmIHJ1c3RjX3RhcmdldCBpcyBOb25lOgorICAgICAgICAgZGllKCJEb24ndCBrbm93 IGhvdyB0byB0cmFuc2xhdGUge30gZm9yIHJ1c3RjIi5mb3JtYXQoaG9zdF9vcl90YXJnZXQuYWxp YXMpKQorIAorLSAgICByZXR1cm4gcnVzdGNfdGFyZ2V0CisrICAgIHJldHVybiBlbnN1cmVfdW5p Y29kZShydXN0Y190YXJnZXQsIHN5c3RlbV9lbmNvZGluZykKKyAKKyAKKyBAaW1wb3J0cygib3Mi KQorQEAgLTQxMCwzNSArNDA5LDYgQEAKKyAKKyAgICAgICAgIG9zLndyaXRlKGluX2ZkLCBlbnN1 cmVfYmluYXJ5KHNvdXJjZSkpCisgICAgICAgICBvcy5jbG9zZShpbl9mZCkKIC0KLS0gICAgICAg ICAgICBjbWQgPSBbCi0tICAgICAgICAgICAgICAgIHJ1c3RjLAotLSAgICAgICAgICAgICAgICAn LS1jcmF0ZS10eXBlJywgJ3N0YXRpY2xpYicsCi0tICAgICAgICAgICAgICAgIHRhcmdldF9hcmcs Ci0tICAgICAgICAgICAgICAgICctbycsIG91dF9wYXRoLAotLSAgICAgICAgICAgICAgICBpbl9w YXRoLAotLSAgICAgICAgICAgIF0KKy0gICAgICAgIGNtZCA9IFsKKy0gICAgICAgICAgICBydXN0 YywKKy0gICAgICAgICAgICAiLS1jcmF0ZS10eXBlIiwKKy0gICAgICAgICAgICAic3RhdGljbGli IiwKKy0gICAgICAgICAgICB0YXJnZXRfYXJnLAorLSAgICAgICAgICAgICItbyIsCistICAgICAg ICAgICAgb3V0X3BhdGgsCistICAgICAgICAgICAgaW5fcGF0aCwKKy0gICAgICAgIF0KIC0KLS0g ICAgICAgICAgICBkZWYgZmFpbGVkKCk6Ci0tICAgICAgICAgICAgICAgIGRpZShkZWRlbnQoJycn XAotLSAgICAgICAgICAgICAgICBDYW5ub3QgY29tcGlsZSBmb3Ige30gd2l0aCB7fQotLSAgICAg ICAgICAgICAgICBUaGUgdGFyZ2V0IG1heSBiZSB1bnN1cHBvcnRlZCwgb3IgeW91IG1heSBub3Qg aGF2ZQotLSAgICAgICAgICAgICAgICBhIHJ1c3Qgc3RkIGxpYnJhcnkgZm9yIHRoYXQgdGFyZ2V0 IGluc3RhbGxlZC4gVHJ5OgorLSAgICAgICAgZGVmIGZhaWxlZCgpOgorLSAgICAgICAgICAgIGRp ZSgKKy0gICAgICAgICAgICAgICAgZGVkZW50KAorLSAgICAgICAgICAgICAgICAgICAgIiIiXAor LSAgICAgICAgICAgIENhbm5vdCBjb21waWxlIGZvciB7fSB3aXRoIHt9CistICAgICAgICAgICAg VGhlIHRhcmdldCBtYXkgYmUgdW5zdXBwb3J0ZWQsIG9yIHlvdSBtYXkgbm90IGhhdmUKKy0gICAg ICAgICAgICBhIHJ1c3Qgc3RkIGxpYnJhcnkgZm9yIHRoYXQgdGFyZ2V0IGluc3RhbGxlZC4gVHJ5 OgogLQotLSAgICAgICAgICAgICAgICAgIHJ1c3R1cCB0YXJnZXQgYWRkIHt9Ci0tICAgICAgICAg ICAgICAgICcnJy5mb3JtYXQoaG9zdF9vcl90YXJnZXQuYWxpYXMsIHJ1c3RjLCBydXN0Y190YXJn ZXQpKSkKLS0gICAgICAgICAgICBjaGVja19jbWRfb3V0cHV0KCpjbWQsIG9uZXJyb3I9ZmFpbGVk KQotLSAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhvdXRfcGF0aCkgb3Igb3MucGF0 aC5nZXRzaXplKG91dF9wYXRoKSA9PSAwOgotLSAgICAgICAgICAgICAgICBmYWlsZWQoKQotICAg ICAgICAgZmluYWxseToKLSAgICAgICAgICAgICBvcy5yZW1vdmUoaW5fcGF0aCkKLSAgICAgICAg ICAgICBvcy5yZW1vdmUob3V0X3BhdGgpCistICAgICAgICAgICAgICBydXN0dXAgdGFyZ2V0IGFk ZCB7fQorLSAgICAgICAgICAgICIiIi5mb3JtYXQoCistICAgICAgICAgICAgICAgICAgICAgICAg aG9zdF9vcl90YXJnZXQuYWxpYXMsIHJ1c3RjLCBydXN0Y190YXJnZXQKKy0gICAgICAgICAgICAg ICAgICAgICkKKy0gICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAgICkKKy0KKy0gICAgICAg IGNoZWNrX2NtZF9vdXRwdXQoKmNtZCwgb25lcnJvcj1mYWlsZWQpCistICAgICAgICBpZiBub3Qg b3MucGF0aC5leGlzdHMob3V0X3BhdGgpIG9yIG9zLnBhdGguZ2V0c2l6ZShvdXRfcGF0aCkgPT0g MDoKKy0gICAgICAgICAgICBmYWlsZWQoKQorICAgICBmaW5hbGx5OgorICAgICAgICAgb3MucmVt b3ZlKGluX3BhdGgpCisgICAgICAgICBvcy5yZW1vdmUob3V0X3BhdGgpCitAQCAtNDYyLDI4ICs0 MzIsNyBAQAorICAgICAgICAgaG9zdCwgY29tcGlsZXJfaW5mbywgYXJtX3RhcmdldCwgcnVzdF9z dXBwb3J0ZWRfdGFyZ2V0cworICAgICApCisgICAgIGlmIHJ1c3RjX3RhcmdldCAhPSBydXN0Y19o b3N0OgorLSAgICAgICAgaWYgaG9zdC5hbGlhcyA9PSBydXN0Y190YXJnZXQ6CistICAgICAgICAg ICAgY29uZmlndXJlX2hvc3QgPSBob3N0LmFsaWFzCistICAgICAgICBlbHNlOgorLSAgICAgICAg ICAgIGNvbmZpZ3VyZV9ob3N0ID0gInt9L3t9Ii5mb3JtYXQoaG9zdC5hbGlhcywgcnVzdGNfdGFy Z2V0KQorLSAgICAgICAgZGllKAorLSAgICAgICAgICAgIGRlZGVudCgKKy0gICAgICAgICAgICAg ICAgIiIiXAorLSAgICAgICAgVGhlIHJ1c3QgY29tcGlsZXIgaG9zdCAoe3J1c3RjfSkgaXMgbm90 IHN1aXRhYmxlIGZvciB0aGUgY29uZmlndXJlIGhvc3QgKHtjb25maWd1cmV9KS4KKy0KKy0gICAg ICAgIFlvdSBjYW4gc29sdmUgdGhpcyBieToKKy0gICAgICAgICogU2V0IHlvdXIgY29uZmlndXJl IGhvc3QgdG8gbWF0Y2ggdGhlIHJ1c3QgY29tcGlsZXIgaG9zdCBieSBlZGl0aW5nIHlvdXIKKy0g ICAgICAgIG1vemNvbmZpZyBhbmQgYWRkaW5nICJhY19hZGRfb3B0aW9ucyAtLWhvc3Q9e3J1c3Rj fSIuCistICAgICAgICAqIE9yLCBpbnN0YWxsIHRoZSBydXN0IHRvb2xjaGFpbiBmb3Ige2NvbmZp Z3VyZX0sIGlmIHN1cHBvcnRlZCwgYnkgcnVubmluZworLSAgICAgICAgInJ1c3R1cCBkZWZhdWx0 IHN0YWJsZS17cnVzdGNfdGFyZ2V0fSIKKy0gICAgICAgICIiIi5mb3JtYXQoCistICAgICAgICAg ICAgICAgICAgICBydXN0Yz1ydXN0Y19ob3N0LAorLSAgICAgICAgICAgICAgICAgICAgY29uZmln dXJlPWNvbmZpZ3VyZV9ob3N0LAorLSAgICAgICAgICAgICAgICAgICAgcnVzdGNfdGFyZ2V0PXJ1 c3RjX3RhcmdldCwKKy0gICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAgICkKKy0gICAgICAg ICkKKy0gICAgYXNzZXJ0X3J1c3RfY29tcGlsZShob3N0LCBydXN0Y190YXJnZXQsIHJ1c3RjKQor KyAgICAgICAgcmV0dXJuIHJ1c3RjX2hvc3QKKyAgICAgcmV0dXJuIHJ1c3RjX3RhcmdldAorIAor IApkaWZmIC0tZ2l0IGEvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL3J1c3QtaGFzLWkxMjgu cGF0Y2ggYi9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvcnVzdC1oYXMtaTEyOC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzI1YTE4NWMxYzExLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL3J1c3QtaGFzLWkxMjgucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgY29uZmlndXJlIGNoZWNrIGZhaWxzIGZv ciBjcm9zcyBidWlsZHMuCi1pMTI4IGlzIHN1cHBvcnRlZCBzaW5jZSBydXN0LTEuMjYsIHNvIGl0 IGlzIHNhZmUgZm9yIHVzIHRvIGFzc3VtZSBpdCBpcyBhbHdheXMgcHJlc2VudAotCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L251bS10cmFpdHMvYnVpbGQucnMJMjAyMC0wMi0xNCAyMzo1NzoyNS45 ODUzNTU2MTAgKzAxMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvbnVtLXRyYWl0cy9idWlsZC5y cwkyMDIwLTAyLTE0IDIzOjU4OjM2LjI1NTcxMDE4OCArMDEwMAotQEAgLTEsMTQgKzEsNSBAQAot LWV4dGVybiBjcmF0ZSBhdXRvY2ZnOwotLQotLXVzZSBzdGQ6OmVudjsKLS0KLSBmbiBtYWluKCkg ewotLSAgICBsZXQgYWMgPSBhdXRvY2ZnOjpuZXcoKTsKLS0gICAgaWYgYWMucHJvYmVfdHlwZSgi aTEyOCIpIHsKLS0gICAgICAgIHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9aGFzX2kxMjgiKTsK LS0gICAgfSBlbHNlIGlmIGVudjo6dmFyX29zKCJDQVJHT19GRUFUVVJFX0kxMjgiKS5pc19zb21l KCkgewotLSAgICAgICAgcGFuaWMhKCJpMTI4IHN1cHBvcnQgd2FzIG5vdCBkZXRlY3RlZCEiKTsK LS0gICAgfQotKyAgICBwcmludGxuISgiY2FyZ286cnVzdGMtY2ZnPWhhc19pMTI4Iik7Ci0gCi0g ICAgIGF1dG9jZmc6OnJlcnVuX3BhdGgoImJ1aWxkLnJzIik7Ci0gfQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9maXJlZm94LWVzci9wYXRjaGVzL3NhbmRib3gtZm9yay5wYXRjaCBiL3NyY3BrZ3MvZmly ZWZveC1lc3IvcGF0Y2hlcy9zYW5kYm94LWZvcmsucGF0Y2gKaW5kZXggMzI4OTQzY2IwMDEzLi5k NDU4NGU3NGI5MWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9zYW5k Ym94LWZvcmsucGF0Y2gKKysrIGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL3NhbmRib3gt Zm9yay5wYXRjaApAQCAtMiwxMiArMiwxNCBAQCBtYWtlIFNZU19mb3JrIG5vbi1mYXRhbCwgbXVz bCB1c2VzIGl0IGZvciBmb3JrKDIpCiAKIC0tLSBhL3NlY3VyaXR5L3NhbmRib3gvbGludXgvU2Fu ZGJveEZpbHRlci5jcHAKICsrKyBiL3NlY3VyaXR5L3NhbmRib3gvbGludXgvU2FuZGJveEZpbHRl ci5jcHAKLUBAIC0xMjUzLDYgKzEyNTMsOCBAQAorQEAgLTE0MjAsNiArMTQyMCwxMCBAQAogICAg ICAgICAgLy8gdXN1YWxseSBkbyBzb21ldGhpbmcgcmVhc29uYWJsZSBvbiBlcnJvci4KICAgICAg ICBjYXNlIF9fTlJfY2xvbmU6CiAgICAgICAgICByZXR1cm4gQ2xvbmVQb2xpY3koRXJyb3IoRVBF Uk0pKTsKKysjICBpZmRlZiBfX05SX2ZvcmsKICsgICAgICBjYXNlIF9fTlJfZm9yazoKICsgICAg ICAgIHJldHVybiBFcnJvcihFTk9TWVMpOworKyMgIGVuZGlmCiAgCiAgIyAgaWZkZWYgX19OUl9m YWR2aXNlNjQKICAgICAgICBjYXNlIF9fTlJfZmFkdmlzZTY0OgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9maXJlZm94LWVzci9wYXRjaGVzL3NuZGlvLnBhdGNoIGIvc3JjcGtncy9maXJlZm94LWVzci9w YXRjaGVzL3NuZGlvLnBhdGNoCmluZGV4IDk1OWZjMWVjOTEzYS4uNjg2MjhiZWE4ZDhmIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvc25kaW8ucGF0Y2gKKysrIGIvc3Jj cGtncy9maXJlZm94LWVzci9wYXRjaGVzL3NuZGlvLnBhdGNoCkBAIC00MiwxMSArNDIsMTEgQEAK ICBpZiBDT05GSUdbJ09TX1RBUkdFVCddID09ICdEYXJ3aW4nOgogLS0tIGEvYnVpbGQvbW96LmNv bmZpZ3VyZS9vbGQuY29uZmlndXJlCTIwMjAtMDYtMzAgMTI6MTc6MDQuMDg3NjA5MDcwICswMjAw CiArKysgYi9idWlsZC9tb3ouY29uZmlndXJlL29sZC5jb25maWd1cmUJMjAyMC0wNi0zMCAxMjox NzowNC4wODc2MDkwNzAgKzAyMDAKLUBAIC0yMTAsNiArMjEwLDcgQEAKK0BAIC04OCw2ICs4OCw3 IEBACiAgQG9sZF9jb25maWd1cmVfb3B0aW9ucygKLSAgICAgJy0tY2FjaGUtZmlsZScsCi0gICAg ICctLWRhdGFkaXInLAotKyAgICAnLS1lbmFibGUtc25kaW8nLAotICAgICAnLS1lbmFibGUtY3Jh c2hyZXBvcnRlcicsCi0gICAgICctLWVuYWJsZS1kYnVzJywKLSAgICAgJy0tZW5hYmxlLWRlYnVn LWpzLW1vZHVsZXMnLAorICAgICAiLS1jYWNoZS1maWxlIiwKKyAgICAgIi0tZGF0YWRpciIsCisr ICAgICItLWVuYWJsZS1zbmRpbyIsCisgICAgICItLWVuYWJsZS1jcmFzaHJlcG9ydGVyIiwKKyAg ICAgIi0tZW5hYmxlLWRidXMiLAorICAgICAiLS1lbmFibGUtZGVidWctanMtbW9kdWxlcyIsCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3RlbXBsYXRlIGIvc3JjcGtncy9maXJlZm94 LWVzci90ZW1wbGF0ZQppbmRleCAzM2ZhNGRmYWYyYTAuLjM1ZTdiMGJlOTNjOCAxMDA2NDQKLS0t IGEvc3JjcGtncy9maXJlZm94LWVzci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZpcmVmb3gtZXNy L3RlbXBsYXRlCkBAIC0zLDU4ICszLDYzIEBACiAjIFRISVMgUEtHIE1VU1QgQkUgU1lOQ0hST05J WkVEIFdJVEggInNyY3BrZ3MvZmlyZWZveC1lc3ItaTE4biIuCiAjCiBwa2duYW1lPWZpcmVmb3gt ZXNyCi12ZXJzaW9uPTc4LjE0LjAKK3ZlcnNpb249OTEuMy4wCiByZXZpc2lvbj0xCiB3cmtzcmM9 ImZpcmVmb3gtJHt2ZXJzaW9ufSIKLWJ1aWxkX2hlbHBlcj0icnVzdCBxZW11IgorYnVpbGRfaGVs cGVyPSJydXN0Igorc2hvcnRfZGVzYz0iTW96aWxsYSBGaXJlZm94IHdlYiBicm93c2VyIC0gRXh0 ZW5kZWQgU3VwcG9ydCBSZWxlYXNlIgorbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lk bGludXgub3JnPiIKK2xpY2Vuc2U9Ik1QTC0yLjAsIEdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4x LW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lm1vemlsbGEub3JnL2ZpcmVmb3gvIgor ZGlzdGZpbGVzPSIke01PWklMTEFfU0lURX0vZmlyZWZveC9yZWxlYXNlcy8ke3ZlcnNpb259ZXNy L3NvdXJjZS9maXJlZm94LSR7dmVyc2lvbn1lc3Iuc291cmNlLnRhci54eiIKK2NoZWNrc3VtPTEy OGI1MzQ5ZjExMmQ4YTBmZDg2OThmMzY0NWVkNDNlYTI5ZDRiOTUwNDdiN2M0ZmQ3NzBiOTVkMDY2 MWU5NmMKKworbGliMzJkaXNhYmxlZD15ZXMKKwogaG9zdG1ha2VkZXBlbmRzPSJhdXRvY29uZjIx MyB1bnppcCB6aXAgcGtnLWNvbmZpZyBwZXJsIHB5dGhvbjMgeWFzbSBydXN0IGNhcmdvCiAgbGx2 bSBjbGFuZyBub2RlanMtbHRzIGNiaW5kZ2VuIHB5dGhvbiBuYXNtIHdoaWNoIHRhciIKLW1ha2Vk ZXBlbmRzPSJuc3MtZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBndGsrLWRldmVsIGd0ayszLWRl dmVsIGljdS1kZXZlbAorbWFrZWRlcGVuZHM9Im5zcy1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVs IGd0ayszLWRldmVsIGljdS1kZXZlbAogIHBpeG1hbi1kZXZlbCBsaWJldmVudC1kZXZlbCBsaWJu b3RpZnktZGV2ZWwgbGlidnB4LWRldmVsCiAgbGliWHJlbmRlci1kZXZlbCBsaWJYY29tcG9zaXRl LWRldmVsIGxpYlNNLWRldmVsIGxpYlh0LWRldmVsIHJ1c3Qtc3RkCiAgbGliWGRhbWFnZS1kZXZl bCBmcmVldHlwZS1kZXZlbCAkKHZvcHRfaWYgYWxzYSBhbHNhLWxpYi1kZXZlbCkKICAkKHZvcHRf aWYgZGJ1cyBkYnVzLWdsaWItZGV2ZWwpICQodm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8t ZGV2ZWwpCiAgJCh2b3B0X2lmIHhzY3JlZW5zYXZlciBsaWJYU2NyblNhdmVyLWRldmVsKQogICQo dm9wdF9pZiBzbmRpbyBzbmRpby1kZXZlbCkgJCh2b3B0X2lmIGphY2sgamFjay1kZXZlbCkiCi1k ZXBlbmRzPSJuc3M+PTMuNTMgZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSIK LXNob3J0X2Rlc2M9IkZpcmVmb3ggYnJvd3NlciAtIEV4dGVuZGVkIFN1cHBvcnQgUmVsZWFzZSIK LW1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1saWNlbnNlPSJN UEwtMi4wLCBHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKLWhvbWVwYWdlPSJo dHRwczovL3d3dy5tb3ppbGxhLm9yZy9maXJlZm94L29yZ2FuaXphdGlvbnMvIgotZGlzdGZpbGVz PSIke01PWklMTEFfU0lURX0vZmlyZWZveC9yZWxlYXNlcy8ke3ZlcnNpb259ZXNyL3NvdXJjZS9m aXJlZm94LSR7dmVyc2lvbn1lc3Iuc291cmNlLnRhci54eiIKLWNoZWNrc3VtPWFhMGUyOGE0MTUw YzMzYTE2NTEyMGEyNGYyMGUwMzczZTc0NjM1YzlmODEyNzMyYTA4ODUwZDcxY2RhM2IyZmEKLWxp YjMyZGlzYWJsZWQ9eWVzCitkZXBlbmRzPSJuc3M+PTMuNjYgbnNwcj49NC4zMiBkZXNrdG9wLWZp bGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIgogY29uZmxpY3RzPSJmaXJlZm94Pj0wIgogCiBi dWlsZF9vcHRpb25zPSJhbHNhIGphY2sgZGJ1cyBwdWxzZWF1ZGlvIHhzY3JlZW5zYXZlciBzbmRp byB3YXlsYW5kIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJhbHNhIGphY2sgZGJ1cyBwdWxzZWF1 ZGlvIHhzY3JlZW5zYXZlciBzbmRpbyB3YXlsYW5kIgogCi1pZiBbICIkWEJQU19UQVJHRVRfTk9f QVRPTUlDOCIgXTsgdGhlbgotCW1ha2VkZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZlbCIKLWZpCi0K IGNhc2UgJFhCUFNfVEFSR0VUX01BQ0hJTkUgaW4KLQlhcm12WzU2XSopIGJyb2tlbj0icmVxdWly ZWQgTkVPTiBleHRlbnNpb25zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIGFybXZbNTZdIiA7OworCWFy bXZbNTZdKikgYnJva2VuPSJyZXF1aXJlZCBORU9OIGV4dGVuc2lvbnMgYXJlIG5vdCBzdXBwb3J0 ZWQgb24gYXJtdjYiIDs7CiAJcHBjNjQqKSA7OwogCXBwYyopIGJyb2tlbj0ieHB0Y2FsbCBiaXRy b3QiIDs7CiBlc2FjCiAKLUNYWEZMQUdTPSItV25vLWNsYXNzLW1lbWFjY2VzcyAtV25vLXVudXNl ZC1mdW5jdGlvbiIKK2lmIFsgIiRYQlBTX1RBUkdFVF9OT19BVE9NSUM4IiBdOyB0aGVuCisJbWFr ZWRlcGVuZHMrPSIgbGliYXRvbWljLWRldmVsIgorZmkKKworIyB3b3JrIGFyb3VuZCBsYXJnZSBk ZWJ1ZyBzeW1ib2xzIG9uIDMyLWJpdCBob3N0cworIyBjYXJnbzp3YXJuaW5nPWNjMXBsdXM6IG91 dCBvZiBtZW1vcnkgYWxsb2NhdGluZyA2NTUzNiBieXRlcyBhZnRlciBhIHRvdGFsIG9mIDEwMTAx MjY4NDggYnl0ZXMKK2lmIFsgIiRYQlBTX1dPUkRTSVpFIiA9ICIzMiIgXTsgdGhlbgorCW5vZGVi dWc9eWVzCitmaQogCi0jIFdlIG5lZWQgdGhpcyBiZWNhdXNlIGNhcmdvIHZlcmlmaWVzIGNoZWNr c3VtcyBvZiBhbGwgZmlsZXMKLSMgaW4gdmVuZG9yIGNyYXRlcyB3aGVuIGl0IGJ1aWxkcyBhbmQg Z2l2ZXMgdXMgbm8gd2F5IHRvCi0jIG92ZXJyaWRlIG9yIHVwZGF0ZSB0aGUgZmlsZSBzYW5lbHku Li4gc28ganVzdCBjbGVhciBvdXQgdGhlIGZpbGUgbGlzdAorIyB3ZSBuZWVkIHRoaXMgYmVjYXVz ZSBjYXJnbyB2ZXJpZmllcyBjaGVja3N1bXMgb2YgYWxsIGZpbGVzIGluIHZlbmRvcgorIyBjcmF0 ZXMgd2hlbiBpdCBidWlsZHMgYW5kIGdpdmVzIHVzIG5vIHdheSB0byBvdmVycmlkZSBvciB1cGRh dGUgdGhlCisjIGZpbGUgc2FuZWx5Li4uIHNvIGp1c3QgY2xlYXIgb3V0IHRoZSBmaWxlIGxpc3QK IF9jbGVhcl92ZW5kb3JfY2hlY2tzdW1zKCkgewogCXNlZCAtaSAncy9cKCJmaWxlcyI6e1wpW159 XSovXDEvJyB0aGlyZF9wYXJ0eS9ydXN0LyQxLy5jYXJnby1jaGVja3N1bS5qc29uCiB9CiAKIHBv c3RfZXh0cmFjdCgpIHsKLQlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSBtdXNsIF07IHRoZW4K KwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkqLW11c2wpCiAJCWNwICIke0ZJTEVT RElSfS9zdGFiLmgiIHRvb2xraXQvY3Jhc2hyZXBvcnRlci9nb29nbGUtYnJlYWtwYWQvc3JjLwot CWZpCi0JIyBHb29nbGUgQVBJIGtleSAoc2VlIGh0dHA6Ly93d3cuY2hyb21pdW0ub3JnL2RldmVs b3BlcnMvaG93LXRvcy9hcGkta2V5cykKLQkjIE5vdGU6IFRoaXMgaXMgZm9yIFZvaWQgTGludXgg dXNlIE9OTFkuCi0JZWNobyAtbiAiQUl6YVN5Q0lGZEJBN2VRUDQzUjZrWFJ3VHE3ajZNdmoxSVR6 ZTkwIiA+IGdvb2dsZS1hcGkta2V5CisJCTs7CisJZXNhYwogCiAJIyBNb3ppbGxhIEFQSSBrZXlz IChzZWUgaHR0cHM6Ly9sb2NhdGlvbi5zZXJ2aWNlcy5tb3ppbGxhLmNvbS9hcGkpCiAJIyBOb3Rl OiBUaGlzIGlzIGZvciBWb2lkIExpbnV4IHVzZSBPTkxZLgpAQCAtNjMsMjAgKzY4LDIwIEBAIHBv c3RfZXh0cmFjdCgpIHsKIAogcG9zdF9wYXRjaCgpIHsKIAlfY2xlYXJfdmVuZG9yX2NoZWNrc3Vt cyBudW0tdHJhaXRzCi0JX2NsZWFyX3ZlbmRvcl9jaGVja3N1bXMgZ2xzbG9wdAogfQogCiBkb19i dWlsZCgpIHsKLQljcCAke0ZJTEVTRElSfS9tb3pjb25maWcgLm1vemNvbmZpZworCWNwICIke0ZJ TEVTRElSfS9tb3pjb25maWciICIke3dya3NyY30vLm1vemNvbmZpZyIKIAotCWlmIFsgIiRYQlBT X1RBUkdFVF9MSUJDIiA9IG11c2wgXTsgdGhlbgorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgorCSotbXVzbCkKIAkJZWNobyAiYWNfYWRkX29wdGlvbnMgLS1kaXNhYmxlLWplbWFsbG9j IiA+Pi5tb3pjb25maWcKIAkJZWNobyAiYWNfYWRkX29wdGlvbnMgLS1kaXNhYmxlLWdvbGQiID4+ Lm1vemNvbmZpZwotCQllY2hvICJhY19hZGRfb3B0aW9ucyAtLWVuYWJsZS1yZWxlYXNlIiA+Pi5t b3pjb25maWcKLQlmaQorCQk7OworCWVzYWMKIAogCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgotCWFybSp8eDg2XzY0KnxpNjg2KikKKwl4ODZfNjQqfGk2ODYqfGFybSopCiAJCWVjaG8g ImFjX2FkZF9vcHRpb25zIC0tZGlzYWJsZS1lbGYtaGFjayIgPj4ubW96Y29uZmlnCiAJCTs7CiAJ ZXNhYwpAQCAtOTgsMTYgKzEwMywxNyBAQCBkb19idWlsZCgpIHsKIAogCQlleHBvcnQgQklOREdF Tl9DRkxBR1M9Ii0tdGFyZ2V0PSRYQlBTX0NST1NTX1RSSVBMRVQgXAogCQkJLS1zeXNyb290PSR7 WEJQU19DUk9TU19CQVNFfSAke0JJTkRHRU5fSU5DTFVERV9GTEFHU30iCi0JCWV4cG9ydCBIT1NU X0NDPSIke0NDX2hvc3R9IgorCQlleHBvcnQgSE9TVF9DQz1jYwogCQlleHBvcnQgVEFSR0VUX0ND PSIke0NDfSIKIAkJZXhwb3J0IEhPU1RfQ0ZMQUdTPSIke1hCUFNfQ0ZMQUdTfSIKIAkJZXhwb3J0 IEhPU1RfQ1hYRkxBR1M9IiR7WEJQU19DWFhGTEFHU30iCi0JCWVjaG8gImFjX2N2X3NxbGl0ZV9z ZWN1cmVfZGVsZXRlPXllcyIgPj4gLm1vemNvbmZpZwotCQllY2hvICJhY19jdl9zcWxpdGVfdGhy ZWFkc2FmZT15ZXMiID4+IC5tb3pjb25maWcKLQkJZWNobyAiYWNfY3Zfc3FsaXRlX2VuYWJsZV9m dHMzPXllcyIgPj4gLm1vemNvbmZpZwotCQllY2hvICJhY19jdl9zcWxpdGVfZGJzdGF0X3Z0YWI9 eWVzIiA+PiAubW96Y29uZmlnCi0JCWVjaG8gImFjX2N2X3NxbGl0ZV9lbmFibGVfdW5sb2NrX25v dGlmeT15ZXMiID4+IC5tb3pjb25maWcKLQkJZWNobyAiYWNfY3ZfcHJvZ19ob3N0Y3h4X3dvcmtz PTEiID4+IC5tb3pjb25maWcKKwkJZXhwb3J0IGFjX2N2X3NxbGl0ZV9zZWN1cmVfZGVsZXRlPXll cyBcCisJCQlhY19jdl9zcWxpdGVfdGhyZWFkc2FmZT15ZXMgXAorCQkJYWNfY3Zfc3FsaXRlX2Vu YWJsZV9mdHMzPXllcyBcCisJCQlhY19jdl9zcWxpdGVfZGJzdGF0X3Z0YWI9eWVzIFwKKwkJCWFj X2N2X3NxbGl0ZV9lbmFibGVfdW5sb2NrX25vdGlmeT15ZXMgXAorCQkJYWNfY3ZfcHJvZ19ob3N0 Y3h4X3dvcmtzPTEKKwogCQllY2hvICJhY19hZGRfb3B0aW9ucyAtLXRhcmdldD0kWEJQU19DUk9T U19UUklQTEVUIiA+Pi5tb3pjb25maWcKIAkJZWNobyAiYWNfYWRkX29wdGlvbnMgLS1ob3N0PSRY QlBTX1RSSVBMRVQiID4+Lm1vemNvbmZpZwogCWVsc2UKQEAgLTEyNiwxOSArMTMyLDE4IEBAIGRv X2J1aWxkKCkgewogCiAJIyB3b3JrIGFyb3VuZCBsYXJnZSBkZWJ1ZyBzeW1ib2xzIG9uIDMyLWJp dCBob3N0cwogCWlmIFsgIiRYQlBTX1dPUkRTSVpFIiA9ICIzMiIgXTsgdGhlbgotCQlleHBvcnQg Q0ZMQUdTPSIke0NGTEFHUy8tZy8tZzF9IgotCQlleHBvcnQgQ1hYRkxBR1M9IiR7Q1hYRkxBR1Mv LWcvLWcxfSIKKwkJZWNobyAiYWNfYWRkX29wdGlvbnMgLS1kaXNhYmxlLWRlYnVnLXN5bWJvbHMi ID4+Lm1vemNvbmZpZworCQllY2hvICJhY19hZGRfb3B0aW9ucyAtLWRpc2FibGUtZGVidWciID4+ Lm1vemNvbmZpZwogCQlleHBvcnQgTERGTEFHUys9IiAtV2wsLS1uby1rZWVwLW1lbW9yeSIKIAkJ IyBwYXRjaCB0aGUgcnVzdCBkZWJ1ZyBsZXZlbCwgdGhpcyBpcyBoYXJkY29kZWQKLQkJc2VkIC1p ICJzL2RlYnVnX2luZm8gPSAnMicvZGVidWdfaW5mbyA9ICcxJy8iIFwKKwkJdnNlZCAtaSAncy9k ZWJ1Z19pbmZvID0gIjIiL2RlYnVnX2luZm8gPSAiMCIvJyBcCiAJCWJ1aWxkL21vei5jb25maWd1 cmUvdG9vbGNoYWluLmNvbmZpZ3VyZQogCWZpCiAKLQkjIEZJWE1FOiBpbmNvbXBhdGlibGUgd2l0 aCBydXN0IDEuNDggaW4gdGhpcyByZWxlYXNlCi0JI2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgotCSNhYXJjaDY0KnxpNjg2Knx4ODZfNjQqKQotCSMJZWNobyAiYWNfYWRkX29wdGlvbnMg LS1lbmFibGUtcnVzdC1zaW1kIiA+Pi5tb3pjb25maWcgOzsKLQkjZXNhYworCWNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgorCWFhcmNoNjQqfGk2ODYqfHg4Nl82NCopCisJCWVjaG8gImFj X2FkZF9vcHRpb25zIC0tZW5hYmxlLXJ1c3Qtc2ltZCIgPj4ubW96Y29uZmlnIDs7CisJZXNhYwog CiAJZXhwb3J0IExERkxBR1MrPSIgLVdsLC1ycGF0aD0vdXNyL2xpYi9maXJlZm94IgogCkBAIC0x NTMsOSArMTU4LDcgQEAgZG9fYnVpbGQoKSB7CiAKIAlleHBvcnQgQVM9JENDCiAKLQljYXQgPj4u bW96Y29uZmlnIDw8RU9GCi1hY19hZGRfb3B0aW9ucyAtLXdpdGgtZ29vZ2xlLWxvY2F0aW9uLXNl cnZpY2UtYXBpLWtleWZpbGU9IiR7d3Jrc3JjfS9nb29nbGUtYXBpLWtleSIKLWFjX2FkZF9vcHRp b25zIC0td2l0aC1nb29nbGUtc2FmZWJyb3dzaW5nLWFwaS1rZXlmaWxlPSIke3dya3NyY30vZ29v Z2xlLWFwaS1rZXkiCisJY2F0IDw8ISA+Pi5tb3pjb25maWcKIGFjX2FkZF9vcHRpb25zIC0td2l0 aC1tb3ppbGxhLWFwaS1rZXlmaWxlPSIke3dya3NyY30vbW96aWxsYS1hcGkta2V5IgogYWNfYWRk X29wdGlvbnMgJCh2b3B0X2VuYWJsZSBhbHNhKQogYWNfYWRkX29wdGlvbnMgJCh2b3B0X2VuYWJs ZSBqYWNrKQpAQCAtMTY0LDQyICsxNjcsMjggQEAgYWNfYWRkX29wdGlvbnMgJCh2b3B0X2VuYWJs ZSBkYnVzKQogYWNfYWRkX29wdGlvbnMgJCh2b3B0X2VuYWJsZSBkYnVzIG5lY2tvLXdpZmkpCiBh Y19hZGRfb3B0aW9ucyAkKHZvcHRfZW5hYmxlIHB1bHNlYXVkaW8pCiBhY19hZGRfb3B0aW9ucyAt LWVuYWJsZS1kZWZhdWx0LXRvb2xraXQ9JCh2b3B0X2lmIHdheWxhbmQgJ2NhaXJvLWd0azMtd2F5 bGFuZCcgJ2NhaXJvLWd0azMnKQotRU9GCishCisKIAlybSAtZiBvbGQtY29uZmlndXJlCiAJLi9t YWNoIGJ1aWxkCi0KLQkjIE1ha2UgbGFuZ3BhY2tzIGZvciBhbGwgbGFuZ3VhZ2VzCi0JZGlyPSQo bHMgLWQgb2JqLSovYnJvd3Nlci9sb2NhbGVzKQotCWNkICR7d3Jrc3JjfS8ke2Rpcn0KLQlmb3Ig bGFuZyBpbiAke2xhbmd1YWdlc1sqXX07IGRvCi0JCW1zZ19ub3JtYWwgIk1ha2luZyBsYW5ncGFj ayBmb3IgJHtsYW5nfSAuLi5cbiIKLQkJbWFrZSAke21ha2Vqb2JzfSBsYW5ncGFjay0ke2xhbmd9 IExPQ0FMRV9NRVJHRURJUj0uCi0JZG9uZQogfQotCiBkb19pbnN0YWxsKCkgewogCWV4cG9ydCBN QUNIX1VTRV9TWVNURU1fUFlUSE9OPTEKIAlERVNURElSPSIkREVTVERJUiIgLi9tYWNoIGluc3Rh bGwKIAotCXZiaW4gJHtGSUxFU0RJUn0vZmlyZWZveC13YXlsYW5kCiAJdmluc3RhbGwgJHtGSUxF U0RJUn0vdmVuZG9yLmpzIDY0NCB1c3IvbGliL2ZpcmVmb3gvYnJvd3Nlci9kZWZhdWx0cy9wcmVm ZXJlbmNlcwogCXZpbnN0YWxsIHRhc2tjbHVzdGVyL2RvY2tlci9maXJlZm94LXNuYXAvZmlyZWZv eC5kZXNrdG9wIDY0NCB1c3Ivc2hhcmUvYXBwbGljYXRpb25zCiAKLQlmb3IgaSBpbiAxNngxNiAy MngyMiAyNHgyNCAzMngzMiA0OHg0OCAyNTZ4MjU2OyBkbworCWZvciBpIGluIDE2eDE2IDIyeDIy IDI0eDI0IDMyeDMyIDQ4eDQ4IDEyOHgxMjggMjU2eDI1NjsgZG8KIAkJdmluc3RhbGwgJHt3cmtz cmN9L2Jyb3dzZXIvYnJhbmRpbmcvb2ZmaWNpYWwvZGVmYXVsdCR7aSV4Kn0ucG5nIDY0NCBcCiAJ CQl1c3Ivc2hhcmUvaWNvbnMvaGljb2xvci8ke2l9L2FwcHMgZmlyZWZveC5wbmcKIAlkb25lCi0J dmluc3RhbGwgJHt3cmtzcmN9L2Jyb3dzZXIvYnJhbmRpbmcvb2ZmaWNpYWwvZGVmYXVsdDI1Ni5w bmcgNjQ0IFwKLQkJdXNyL3NoYXJlL3BpeG1hcHMgZmlyZWZveC5wbmcKIAotCSMgVXNlIHN5c3Rl bS1wcm92aWRlZCBkaWN0aW9uYXJpZXMKLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2ZpcmVm b3gve2RpY3Rpb25hcmllcyxoeXBoZW5hdGlvbn0KLQlsbiAtcyAvdXNyL3NoYXJlL2h1bnNwZWxs ICR7REVTVERJUn0vdXNyL2xpYi9maXJlZm94L2RpY3Rpb25hcmllcwotCWxuIC1zIC91c3Ivc2hh cmUvaHlwaGVuICR7REVTVERJUn0vdXNyL2xpYi9maXJlZm94L2h5cGhlbmF0aW9uCisJIyBXZSBk b24ndCB3YW50IHRoZSBkZXZlbG9wbWVudCBzdHVmZgorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci97 aW5jbHVkZSxsaWIvZmlyZWZveC1kZXZlbCxzaGFyZS9pZGx9CiAKIAkjIGh0dHBzOi8vYnVnemls bGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODg1MAogCWxuIC1zZiBmaXJlZm94ICR7 REVTVERJUn0vdXNyL2xpYi9maXJlZm94L2ZpcmVmb3gtYmluCiAKLQkjIFJlbW92ZSB0aGUgZGV2 ZWxvcG1lbnQgZmlsZXMgLSBub29uZSB1c2VzIHRoZW0KLQlybSAtcmYgJHtERVNURElSfS91c3Iv e2luY2x1ZGUsbGliL2ZpcmVmb3gtZGV2ZWwsc2hhcmUvaWRsfQorCXZiaW4gJHtGSUxFU0RJUn0v ZmlyZWZveC13YXlsYW5kCiB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3VwZGF0 ZSBiL3NyY3BrZ3MvZmlyZWZveC1lc3IvdXBkYXRlCmluZGV4IDYxZjY4ZGU0ZjQyYS4uOTQ2Yzhh N2FhYTQ5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3VwZGF0ZQorKysgYi9zcmNw a2dzL2ZpcmVmb3gtZXNyL3VwZGF0ZQpAQCAtMSwyICsxLDIgQEAKLXNpdGU9IiR7TU9aSUxMQV9T SVRFfS9maXJlZm94L3JlbGVhc2VzLyIKLXBhdHRlcm49IltcZC5dKyg/PWVzcikiCitzaXRlPSIk e01PWklMTEFfU0lURX0vJHtwa2duYW1lfS9yZWxlYXNlcy8iCitwYXR0ZXJuPSJcIj5cS1swLTku XSsoPz0vPC9hPikiCg== --===============2507236688668238651==--