From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Ankur Sinha (Ankur Sinha Gmail) To: git-commits@fedoraproject.org Subject: [rpms/arbor] rawhide: feat: update to 0.12.2 Date: Wed, 19 Aug 2026 09:14:13 GMT Message-ID: <178713085321.1.10944705435976576044.rpms-arbor-bc6c0bc72d33@fedoraproject.org> List-ID: X-Git-Repo: rpms/arbor X-Git-Branch: rawhide X-Git-Rev: bc6c0bc72d33e577707fd780fdbb6392f0677566 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvYXJib3IKICAgICAgICAgICAgQnJhbmNoIDogcmF3aGlkZQogICAgICAgICAg ICBDb21taXQgOiBiYzZjMGJjNzJkMzNlNTc3NzA3ZmQ3ODBmZGJiNjM5MmYwNjc3NTY2CiAgICAg ICAgICAgIEF1dGhvciA6IEFua3VyIFNpbmhhIChBbmt1ciBTaW5oYSBHbWFpbCkgPHNhbmpheS5h bmt1ckBnbWFpbC5jb20+CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDgtMThUMTY6MDU6MzIr MDE6MDAKICAgICAgICAgICAgU3RhdHMgIDogKzEzODYvLTE4MiBpbiAxMyBmaWxlKHMpCiAgICAg ICAgICAgIFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvYXJib3Iv Yy9iYzZjMGJjNzJkMzNlNTc3NzA3ZmQ3ODBmZGJiNjM5MmYwNjc3NTY2P2JyYW5jaD1yYXdoaWRl CgogICAgICAgICAgICBMb2c6CiAgICAgICAgICAgIGZlYXQ6IHVwZGF0ZSB0byAwLjEyLjIKCi0g Rml4ZXMgcmhieiMyNDg1Njg5Ci0gRml4ZXMgcmhieiMyNTAzNzc1Ci0gRml4ZXMgcmhieiMyNDMz ODY5Ci0gRml4ZXMgcmhieiMyMzgzMjIzCi0gRml4ZXMgcmhieiMyMzAzODY4CgpBc3Npc3RlZC1i eTogb3BlbmNvZGUgKERlZXBTZWVrIFY0IEZsYXNoKQoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdu b3JlIGIvLmdpdGlnbm9yZQppbmRleCA5MWE3MDkzLi5jNGE0N2NmIDEwMDY0NAotLS0gYS8uZ2l0 aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTYsMyArNiw2IEBACiAvYXJib3ItMC42LnRhci5n egogL2FyYm9yLTAuNy50YXIuZ3oKIC9hcmJvci0wLjkuMC50YXIuZ3oKKy9hcmJvci0wLjEyLjIu dGFyLmd6CisvdGlueW9wdC03ZTZkNzA3LnRhci5negorL3Vub3JkZXJlZF9kZW5zZS00LjUuMC50 YXIuZ3oKCmRpZmYgLS1naXQgYS8wMDAxLUZpeC1hLWZldy10eXBvcy10aGF0LWNhdXNlLWZhaWx1 cmUtdG8tY29tcGlsZS13aXRoLUcucGF0Y2ggYi8wMDAxLUZpeC1hLWZldy10eXBvcy10aGF0LWNh dXNlLWZhaWx1cmUtdG8tY29tcGlsZS13aXRoLUcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGQzMzdhMjkuLjAwMDAwMDAKLS0tIGEvMDAwMS1GaXgtYS1mZXctdHlwb3MtdGhh dC1jYXVzZS1mYWlsdXJlLXRvLWNvbXBpbGUtd2l0aC1HLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNDEgKzAsMCBAQAotRnJvbSA4ODgwZmY0MzVmNjliNTE1YTU3ZTYwZThiNzQzNGRhZDllNDc4 NDdlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogIkJlbmphbWluIEEuIEJlYXNsZXki IDxjb2RlQG11c2ljaW5teWJyYWluLm5ldD4KLURhdGU6IFRodSwgMTYgSmFuIDIwMjUgMDk6NDk6 MjAgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IGEgZmV3IHR5cG9zIHRoYXQgY2F1c2UgZmFp bHVyZSB0byBjb21waWxlIHdpdGggR0NDIDE1Ci0KLVRoZXNlIHdlcmUgZXZlbnR1YWxseSBpbmNs dWRlZCBpbgotNzYxMjBkMTZjMDBhZTY3MTI4YzNjNjk0MjFhYjcxMmY5ODVmMzQ0NSwgYWxvbmcg d2l0aCBtYW55IG90aGVyIGNoYW5nZXMuCi0tLS0KLSBhcmJvci9pbmNsdWRlL2FyYm9yL3V0aWwv ZXhwZWN0ZWQuaHBwIHwgMiArLQotIHB5dGhvbi9zdHJwcmludGYuaHBwICAgICAgICAgICAgICAg ICAgfCAyICstCi0gMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9hcmJvci9pbmNsdWRlL2FyYm9yL3V0aWwvZXhwZWN0ZWQuaHBw IGIvYXJib3IvaW5jbHVkZS9hcmJvci91dGlsL2V4cGVjdGVkLmhwcAotaW5kZXggOWQ4NjBmNjUu LjFhZjg4ZWI0IDEwMDY0NAotLS0tIGEvYXJib3IvaW5jbHVkZS9hcmJvci91dGlsL2V4cGVjdGVk LmhwcAotKysrIGIvYXJib3IvaW5jbHVkZS9hcmJvci91dGlsL2V4cGVjdGVkLmhwcAotQEAgLTQ4 Niw3ICs0ODYsNyBAQCBzdHJ1Y3QgZXhwZWN0ZWQ8dm9pZCwgRT4gewotICAgICAvLyBTd2FwIG9w cy4KLSAKLSAgICAgdm9pZCBzd2FwKGV4cGVjdGVkJiBvdGhlcikgewotLSAgICAgICAgZGF0YV8u c3dhcChvdGhlci5kYXRhKTsKLSsgICAgICAgIGRhdGFfLnN3YXAob3RoZXIuZGF0YV8pOwotICAg ICB9Ci0gCi0gICAgIC8vIEFjY2Vzc29ycy4KLWRpZmYgLS1naXQgYS9weXRob24vc3RycHJpbnRm LmhwcCBiL3B5dGhvbi9zdHJwcmludGYuaHBwCi1pbmRleCA2MzgwMTY3Ny4uMmNjZjEyYzEgMTAw NjQ0Ci0tLS0gYS9weXRob24vc3RycHJpbnRmLmhwcAotKysrIGIvcHl0aG9uL3N0cnByaW50Zi5o cHAKLUBAIC0xNjgsNyArMTY4LDcgQEAgbmFtZXNwYWNlIGltcGwgewotICAgICAgICAgICAgIGZv ciAoYXV0byYgeDogcy5zZXFfKSB7Ci0gICAgICAgICAgICAgICAgIGlmICghZmlyc3QpIG8gPDwg cy5zZXBfOwotICAgICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOwotLSAgICAgICAgICAgICAg ICBvIDw8IHMuZih4KTsKLSsgICAgICAgICAgICAgICAgbyA8PCBzLmZfKHgpOwotICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICByZXR1cm4gbzsKLSAgICAgICAgIH0KLS0tIAotMi40Ny4xCi0K CmRpZmYgLS1naXQgYS8wMDAxLVVzZS12ZW5kb3JlZC10aW55b3B0LWFuZC11bm9yZGVyZWRfZGVu c2UucGF0Y2ggYi8wMDAxLVVzZS12ZW5kb3JlZC10aW55b3B0LWFuZC11bm9yZGVyZWRfZGVuc2Uu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRjZDgxYgotLS0gL2Rl di9udWxsCisrKyBiLzAwMDEtVXNlLXZlbmRvcmVkLXRpbnlvcHQtYW5kLXVub3JkZXJlZF9kZW5z ZS5wYXRjaApAQCAtMCwwICsxLDQ3IEBACitGcm9tIGFhYzgzOTNkOWFhOWQyNTVkMTkyNDJjMTc5 MmQ4YmU5NDMzZjQyNDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiAiQW5rdXIgU2lu aGEgKEFua3VyIFNpbmhhIEdtYWlsKSIgPHNhbmpheS5hbmt1ckBnbWFpbC5jb20+CitEYXRlOiBU dWUsIDE4IEF1ZyAyMDI2IDExOjQyOjAyICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSB2ZW5k b3JlZCB0aW55b3B0IGFuZCB1bm9yZGVyZWRfZGVuc2UgaW5zdGVhZCBvZiBDUE0KKyBkb3dubG9h ZHMKKwordGlueW9wdCBhbmQgdW5vcmRlcmVkX2RlbnNlIGFyZSBoZWFkZXItb25seSBsaWJyYXJp ZXMgdGhhdCBhcmUgbm90CitwYWNrYWdlZCBpbiBGZWRvcmEuIENQTSB3b3VsZCBkb3dubG9hZCB0 aGVtIGZyb20gR2l0SHViIGF0IGNvbmZpZ3VyZQordGltZSwgd2hpY2ggZmFpbHMgaW4gdGhlIG9m ZmxpbmUgYnVpbGRyb290LiBVc2UgdGhlIGNvcGllcyB2ZW5kb3JlZAordW5kZXIgZXh0LyBpbnN0 ZWFkLgorLS0tCisgQ01ha2VMaXN0cy50eHQgfCAxNyArKy0tLS0tLS0tLS0tLS0tLQorIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggZjBkMjI5Y2EuLjVkYTgy M2U3IDEwMDY0NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitA QCAtMzk5LDIzICszOTksMTAgQEAgaWYodW5pdHNfQURERUQpCisgZW5kaWYoKQorIGxpc3QoQVBQ RU5EIGFyYm9yX2V4cG9ydF9kZXBlbmRlbmNpZXMgdW5pdHMpCisgCistQ1BNRmluZFBhY2thZ2Uo TkFNRSB1bm9yZGVyZWRfZGVuc2UKKy0gICAgICAgICAgICAgICBHSVRIVUJfUkVQT1NJVE9SWSBt YXJ0aW51cy91bm9yZGVyZWRfZGVuc2UKKy0gICAgICAgICAgICAgICBWRVJTSU9OIDQuNS4wCist ICAgICAgICAgICAgICAgU1lTVEVNIFlFUworLSAgICAgICAgICAgICAgIEVYQ0xVREVfRlJPTV9B TEwgWUVTKQorLQorLUNQTUZpbmRQYWNrYWdlKE5BTUUgdGlueW9wdAorLSAgICAgICAgICAgICAg IEdJVEhVQl9SRVBPU0lUT1JZIGhhbGZmbGF0L3RpbnlvcHQKKy0gICAgICAgICAgICAgICBHSVRf VEFHIDdlNmQ3MDdkNDljNmNiNGJlMjdlYmQyNTM4NTZiZTY1MjkzMjg4ZGYKKy0gICAgICAgICAg ICAgICBET1dOTE9BRF9PTkxZIFlFUykKKytzZXQodW5vcmRlcmVkX2RlbnNlX1NPVVJDRV9ESVIg JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2V4dC91bm9yZGVyZWRfZGVuc2UpCisgCisgYWRk X2xpYnJhcnkoZXh0LXRpbnlvcHQgSU5URVJGQUNFKQorLWlmKHRpbnlvcHRfQURERUQpCistICB0 YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhleHQtdGlueW9wdCBJTlRFUkZBQ0UgJDxCVUlMRF9J TlRFUkZBQ0U6JHt0aW55b3B0X1NPVVJDRV9ESVJ9L2luY2x1ZGU+KQorLWVsc2UoKQorLSAgICBt ZXNzYWdlKEZBVEFMX0VSUk9SICJDb3VsZCBub3Qgb2J0YWluIHRpbnlvcHQuIikKKy1lbmRpZigp CisrdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZXh0LXRpbnlvcHQgSU5URVJGQUNFICQ8QlVJ TERfSU5URVJGQUNFOiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9leHQvdGlueW9wdC9pbmNs dWRlPikKKyAKKyAjIGhpZGUgYWxsIGludGVybmFsIHZhcnMKKyBtYXJrX2FzX2FkdmFuY2VkKEZP UkNFIGJlbmNobWFya19ESVIgQkVOQ0hNQVJLX0JVSUxEXzMyX0JJVFMgQkVOQ0hNQVJLX0RPV05M T0FEX0RFUEVOREVOQ0lFUyBCRU5DSE1BUktfRU5BQkxFX0FTU0VNQkxZX1RFU1RTIEJFTkNITUFS S19FTkFCTEVfRE9YWUdFTiBCRU5DSE1BUktfRU5BQkxFX0VYQ0VQVElPTlMgQkVOQ0hNQVJLX0VO QUJMRV9HVEVTVF9URVNUUyBCRU5DSE1BUktfRU5BQkxFX0lOU1RBTEwgQkVOQ0hNQVJLX0VOQUJM RV9MSUJQRk0gQkVOQ0hNQVJLX0VOQUJMRV9MVE8gQkVOQ0hNQVJLX0VOQUJMRV9XRVJST1IgQkVO Q0hNQVJLX0ZPUkNFX1dFUlJPUiBCRU5DSE1BUktfSU5TVEFMTF9ET0NTIEJFTkNITUFSS19VU0Vf QlVORExFRF9HVEVTVCBCRU5DSE1BUktfVVNFX0xJQkNYWCkKKy0tIAorMi41NS4wCisKCmRpZmYg LS1naXQgYS8wMDAyLVVzZS1zeXN0ZW0tUmFuZG9tMTIzLnBhdGNoIGIvMDAwMi1Vc2Utc3lzdGVt LVJhbmRvbTEyMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWI4 MzE4Ci0tLSAvZGV2L251bGwKKysrIGIvMDAwMi1Vc2Utc3lzdGVtLVJhbmRvbTEyMy5wYXRjaApA QCAtMCwwICsxLDM5IEBACitGcm9tIDY5Zjg5NzBjYjk3NDhhOWY0Zjc5MTI4YTJjNGJlZjU0Y2Ey OWQxZmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiAiQW5rdXIgU2luaGEgKEFua3Vy IFNpbmhhIEdtYWlsKSIgPHNhbmpheS5hbmt1ckBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDE4IEF1 ZyAyMDI2IDEyOjQ3OjAxICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSBzeXN0ZW0gUmFuZG9t MTIzIGluc3RlYWQgb2YgQ1BNIGRvd25sb2FkCisKK2ZpbmRfcGFja2FnZShyYW5kb20xMjMpIGlu IENQTSBmYWlscyBiZWNhdXNlIHRoZSBzaGlwcGVkIEZpbmRSYW5kb20xMjMuY21ha2UKK21vZHVs ZSBpcyBvbmx5IGZvdW5kIGZvciB0aGUgY2FwaXRhbGlzZWQgbmFtZSwgc28gQ1BNIHRyaWVzIHRv IGRvd25sb2FkIHRoZQorbGlicmFyeSBmcm9tIEdpdEh1YiBhdCBjb25maWd1cmUgdGltZSwgd2hp Y2ggZmFpbHMgaW4gdGhlIG9mZmxpbmUgYnVpbGRyb290LgorVXNlIGZpbmRfcGFja2FnZShSYW5k b20xMjMpIGRpcmVjdGx5IGluc3RlYWQuCistLS0KKyBDTWFrZUxpc3RzLnR4dCB8IDExICsrLS0t LS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IDVk YTgyM2U3Li5kZWU4ODhiZSAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFr ZUxpc3RzLnR4dAorQEAgLTMxNywxNiArMzE3LDkgQEAgaWYobmxvaG1hbm5fanNvbl9BRERFRCkK KyBlbmRpZigpCisgCisgCisrZmluZF9wYWNrYWdlKFJhbmRvbTEyMyBSRVFVSVJFRCkKKyBhZGRf bGlicmFyeShleHQtcmFuZG9tMTIzIElOVEVSRkFDRSkKKy1DUE1GaW5kUGFja2FnZShOQU1FIHJh bmRvbTEyMworLSAgICAgICAgICAgICAgIERPV05MT0FEX09OTFkgWUVTCistICAgICAgICAgICAg ICAgR0lUSFVCX1JFUE9TSVRPUlkgREVTaGF3UmVzZWFyY2gvcmFuZG9tMTIzCistICAgICAgICAg ICAgICAgVkVSU0lPTiAxLjE0LjApCistaWYocmFuZG9tMTIzX0FEREVEKQorLSAgICB0YXJnZXRf aW5jbHVkZV9kaXJlY3RvcmllcyhleHQtcmFuZG9tMTIzIElOVEVSRkFDRSAkPEJVSUxEX0lOVEVS RkFDRToke3JhbmRvbTEyM19TT1VSQ0VfRElSfS9pbmNsdWRlPikKKy1lbHNlKCkKKy0gICAgdGFy Z2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZXh0LXJhbmRvbTEyMyBJTlRFUkZBQ0UgJHtSQU5ET00x MjNfSU5DTFVERV9ESVJ9KQorLWVuZGlmKCkKKyt0YXJnZXRfaW5jbHVkZV9kaXJlY3Rvcmllcyhl eHQtcmFuZG9tMTIzIElOVEVSRkFDRSAke1JBTkRPTTEyM19JTkNMVURFX0RJUn0pCisgaW5zdGFs bChUQVJHRVRTIGV4dC1yYW5kb20xMjMgRVhQT1JUIGFyYm9yLXRhcmdldHMpCisgCisgaWYgKEFS Ql9XSVRIX1BZVEhPTikKKy0tIAorMi41NS4wCisKCmRpZmYgLS1naXQgYS8wMDAzLVVzZS1zeXN0 ZW0tR1Rlc3QucGF0Y2ggYi8wMDAzLVVzZS1zeXN0ZW0tR1Rlc3QucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JiYzRmZAotLS0gL2Rldi9udWxsCisrKyBiLzAwMDMt VXNlLXN5c3RlbS1HVGVzdC5wYXRjaApAQCAtMCwwICsxLDQ0IEBACitGcm9tIGQ5N2ExYmQ5ODc3 NTEyOWYwOTgyZmU0MDkwNWY2NTAyZTQ1MGJmZDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiAiQW5rdXIgU2luaGEgKEFua3VyIFNpbmhhIEdtYWlsKSIgPHNhbmpheS5hbmt1ckBnbWFp bC5jb20+CitEYXRlOiBUdWUsIDE4IEF1ZyAyMDI2IDEyOjQ3OjA5ICswMTAwCitTdWJqZWN0OiBb UEFUQ0hdIFVzZSBzeXN0ZW0gR1Rlc3QgaW5zdGVhZCBvZiBDUE0gZG93bmxvYWQKKworVGhlIGd0 ZXN0LWRldmVsIHBhY2thZ2Ugb25seSBwcm92aWRlcyBhIEdUZXN0Q29uZmlnLmNtYWtlLCBzbwor ZmluZF9wYWNrYWdlKGdvb2dsZXRlc3QpIGluIENQTSBmYWlscyBhbmQgaXQgdHJpZXMgdG8gZG93 bmxvYWQgZ29vZ2xldGVzdCBmcm9tCitHaXRIdWIgYXQgY29uZmlndXJlIHRpbWUsIHdoaWNoIGZh aWxzIGluIHRoZSBvZmZsaW5lIGJ1aWxkcm9vdC4gVXNlCitmaW5kX3BhY2thZ2UoR1Rlc3QpIGRp cmVjdGx5IGFuZCBsaW5rIGFnYWluc3QgdGhlIEdUZXN0OjpndGVzdCBpbXBvcnRlZAordGFyZ2V0 cyBpbnN0ZWFkLgorLS0tCisgQ01ha2VMaXN0cy50eHQgfCAxMSArKy0tLS0tLS0tLQorIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCBkZWU4ODhiZS4uY2VmNGY0 YTIgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BA IC0zNTcsMjAgKzM1NywxMyBAQCBpZiAoQlVJTERfVEVTVElORykKKyAgICAgICAgICAgICAgICAg ICBHSVRIVUJfUkVQT1NJVE9SWSBnb29nbGUvYmVuY2htYXJrCisgICAgICAgICAgICAgICAgICAg VkVSU0lPTiAxLjguMworICAgICAgICAgICAgICAgICAgIE9QVElPTlMgIkJFTkNITUFSS19FTkFC TEVfVEVTVElORyBPRkYiICJDTUFLRV9CVUlMRF9UWVBFIHJlbGVhc2UiICJCVUlMRF9TSEFSRURf TElCUyBPRkYiKQorLSAgICBDUE1GaW5kUGFja2FnZShOQU1FIGdvb2dsZXRlc3QKKy0gICAgICAg ICAgICAgICAgICBHSVRIVUJfUkVQT1NJVE9SWSBnb29nbGUvZ29vZ2xldGVzdAorLSAgICAgICAg ICAgICAgICAgIFZFUlNJT04gMS4xNy4wCistICAgICAgICAgICAgICAgICAgT1BUSU9OUyAiSU5T VEFMTF9HVEVTVCBPRkYiICJCVUlMRF9HTU9DSyBPRkYiKQorKyAgICBmaW5kX3BhY2thZ2UoR1Rl c3QgUkVRVUlSRUQpCisgICAgIGlmKGJlbmNobWFya19BRERFRCkKKyAgICAgICAgIHRhcmdldF9s aW5rX2xpYnJhcmllcyhleHQtYmVuY2ggSU5URVJGQUNFIGJlbmNobWFyaykKKyAgICAgZWxzZSgp CisgICAgICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoZXh0LWJlbmNoIElOVEVSRkFDRSBiZW5j aG1hcms6OmJlbmNobWFyaykKKyAgICAgZW5kaWYoKQorLSAgICBpZihnb29nbGV0ZXN0X0FEREVE KQorLSAgICAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGV4dC1ndGVzdCBJTlRFUkZBQ0UgKQor LSAgICBlbHNlKCkKKy0gICAgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhleHQtZ3Rlc3QgSU5U RVJGQUNFIGd0ZXN0IGd0ZXN0X21haW4pCistICAgIGVuZGlmKCkKKysgICAgdGFyZ2V0X2xpbmtf bGlicmFyaWVzKGV4dC1ndGVzdCBJTlRFUkZBQ0UgR1Rlc3Q6Omd0ZXN0IEdUZXN0OjpndGVzdF9t YWluKQorIGVuZGlmKCkKKyAKKyBDUE1GaW5kUGFja2FnZShOQU1FIHVuaXRzCistLSAKKzIuNTUu MAorCgpkaWZmIC0tZ2l0IGEvMDAwNC1BZGQtbWlzc2luZy1zdGFuZGFyZC1pbmNsdWRlcy10by1w cm9maWxlci5wYXRjaCBiLzAwMDQtQWRkLW1pc3Npbmctc3RhbmRhcmQtaW5jbHVkZXMtdG8tcHJv ZmlsZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM4YjU4Mwot LS0gL2Rldi9udWxsCisrKyBiLzAwMDQtQWRkLW1pc3Npbmctc3RhbmRhcmQtaW5jbHVkZXMtdG8t cHJvZmlsZXIucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorRnJvbSBmNWQ5NjI5ODcwOTY2Mzc1OTFi ZGEwZjc4ZDZjYjU2MjM5NmUyMTdlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIkFu a3VyIFNpbmhhIChBbmt1ciBTaW5oYSBHbWFpbCkiIDxzYW5qYXkuYW5rdXJAZ21haWwuY29tPgor RGF0ZTogVHVlLCAxOCBBdWcgMjAyNiAxMzowMjo0NyArMDEwMAorU3ViamVjdDogW1BBVENIXSBB ZGQgbWlzc2luZyBzdGFuZGFyZCBpbmNsdWRlcyB0byBwcm9maWxlci5ocHAKKworVGhlIGhlYWRl ciB1c2VzIHN0ZDo6c2l6ZV90LCBzdGQ6OnVpbnQzMl90IGFuZCBzdGQ6OnN0cmluZyBidXQgZGlk IG5vdAoraW5jbHVkZSA8Y3N0ZGRlZj4sIDxjc3RkaW50PiBhbmQgPHN0cmluZz4uIFRoaXMgZmFp bHMgdG8gY29tcGlsZSB3aXRoIEdDQyAxNgord2hlbiB0aGUgdHlwZXMgYXJlIG5vdCBwdWxsZWQg aW4gdHJhbnNpdGl2ZWx5LCBlLmcuIGZvciB0aGUgT3Blbk1QSSBidWlsZCBvZgorYXJib3IvY29t bXVuaWNhdGlvbi9tcGkuY3BwLgorLS0tCisgYXJib3IvaW5jbHVkZS9hcmJvci9wcm9maWxlL3By b2ZpbGVyLmhwcCB8IDMgKysrCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQorCitk aWZmIC0tZ2l0IGEvYXJib3IvaW5jbHVkZS9hcmJvci9wcm9maWxlL3Byb2ZpbGVyLmhwcCBiL2Fy Ym9yL2luY2x1ZGUvYXJib3IvcHJvZmlsZS9wcm9maWxlci5ocHAKK2luZGV4IDE1ZTBhMTc2Li40 ZTRmOTA5NyAxMDA2NDQKKy0tLSBhL2FyYm9yL2luY2x1ZGUvYXJib3IvcHJvZmlsZS9wcm9maWxl ci5ocHAKKysrKyBiL2FyYm9yL2luY2x1ZGUvYXJib3IvcHJvZmlsZS9wcm9maWxlci5ocHAKK0BA IC0xLDYgKzEsOSBAQAorICNwcmFnbWEgb25jZQorIAorKyNpbmNsdWRlIDxjc3RkZGVmPgorKyNp bmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxvc3RyZWFtPgorKyNpbmNsdWRlIDxzdHJpbmc+ CisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKyAjaW5jbHVkZSA8YXJib3IvZXhwb3J0LmhwcD4KKy0t IAorMi41NS4wCisKCmRpZmYgLS1naXQgYS9DUE1fMC4zOS4wLmNtYWtlIGIvQ1BNXzAuMzkuMC5j bWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDFmYzI1Ci0tLSAvZGV2 L251bGwKKysrIGIvQ1BNXzAuMzkuMC5jbWFrZQpAQCAtMCwwICsxLDExNTkgQEAKKyMgQ1BNLmNt YWtlIC0gQ01ha2UncyBtaXNzaW5nIHBhY2thZ2UgbWFuYWdlcgorIyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY3Bt LWNtYWtlL0NQTS5jbWFrZSBmb3IgdXNhZ2UgYW5kIHVwZGF0ZSBpbnN0cnVjdGlvbnMuCisjCisj IE1JVCBMaWNlbnNlCisjIC0tLS0tLS0tLS0tCisjW1sKKyAgQ29weXJpZ2h0IChjKSAyMDE5LTIw MjMgTGFycyBNZWxjaGlvciBhbmQgY29udHJpYnV0b3JzCisKKyAgUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29w eQorICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg KHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAorICBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0 cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCisgIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg YW5kL29yIHNlbGwKKyAgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxs CisgIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKKyAg VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z IEtJTkQsIEVYUFJFU1MgT1IKKyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRI RQorICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN LCBEQU1BR0VTIE9SIE9USEVSCisgIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCisgIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MgSU4gVEhFCisgIFNPRlRXQVJFLgorXV0KKworY21ha2VfbWluaW11bV9yZXF1aXJlZChWRVJT SU9OIDMuMTQgRkFUQUxfRVJST1IpCisKKyMgSW5pdGlhbGl6ZSBsb2dnaW5nIHByZWZpeAoraWYo Tk9UIENQTV9JTkRFTlQpCisgIHNldChDUE1fSU5ERU5UCisgICAgICAiQ1BNOiIKKyAgICAgIENB Q0hFIElOVEVSTkFMICIiCisgICkKK2VuZGlmKCkKKworaWYoTk9UIENPTU1BTkQgY3BtX21lc3Nh Z2UpCisgIGZ1bmN0aW9uKGNwbV9tZXNzYWdlKQorICAgIG1lc3NhZ2UoJHtBUkdWfSkKKyAgZW5k ZnVuY3Rpb24oKQorZW5kaWYoKQorCitzZXQoQ1VSUkVOVF9DUE1fVkVSU0lPTiAxLjAuMC1kZXZl bG9wbWVudC12ZXJzaW9uKQorCitnZXRfZmlsZW5hbWVfY29tcG9uZW50KENQTV9DVVJSRU5UX0RJ UkVDVE9SWSAiJHtDTUFLRV9DVVJSRU5UX0xJU1RfRElSfSIgUkVBTFBBVEgpCitpZihDUE1fRElS RUNUT1JZKQorICBpZihOT1QgQ1BNX0RJUkVDVE9SWSBTVFJFUVVBTCBDUE1fQ1VSUkVOVF9ESVJF Q1RPUlkpCisgICAgaWYoQ1BNX1ZFUlNJT04gVkVSU0lPTl9MRVNTIENVUlJFTlRfQ1BNX1ZFUlNJ T04pCisgICAgICBtZXNzYWdlKAorICAgICAgICBBVVRIT1JfV0FSTklORworICAgICAgICAgICIk e0NQTV9JTkRFTlR9IFwKK0EgZGVwZW5kZW5jeSBpcyB1c2luZyBhIG1vcmUgcmVjZW50IENQTSB2 ZXJzaW9uICgke0NVUlJFTlRfQ1BNX1ZFUlNJT059KSB0aGFuIHRoZSBjdXJyZW50IHByb2plY3Qg KCR7Q1BNX1ZFUlNJT059KS4gXAorSXQgaXMgcmVjb21tZW5kZWQgdG8gdXBncmFkZSBDUE0gdG8g dGhlIG1vc3QgcmVjZW50IHZlcnNpb24uIFwKK1NlZSBodHRwczovL2dpdGh1Yi5jb20vY3BtLWNt YWtlL0NQTS5jbWFrZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCisgICAgICApCisgICAgZW5kaWYo KQorICAgIGlmKCR7Q01BS0VfVkVSU0lPTn0gVkVSU0lPTl9MRVNTICIzLjE3LjAiKQorICAgICAg aW5jbHVkZShGZXRjaENvbnRlbnQpCisgICAgZW5kaWYoKQorICAgIHJldHVybigpCisgIGVuZGlm KCkKKworICBnZXRfcHJvcGVydHkoCisgICAgQ1BNX0lOSVRJQUxJWkVEIEdMT0JBTCAiIgorICAg IFBST1BFUlRZIENQTV9JTklUSUFMSVpFRAorICAgIFNFVAorICApCisgIGlmKENQTV9JTklUSUFM SVpFRCkKKyAgICByZXR1cm4oKQorICBlbmRpZigpCitlbmRpZigpCisKK2lmKENVUlJFTlRfQ1BN X1ZFUlNJT04gTUFUQ0hFUyAiZGV2ZWxvcG1lbnQtdmVyc2lvbiIpCisgIG1lc3NhZ2UoCisgICAg V0FSTklORyAiJHtDUE1fSU5ERU5UfSBZb3VyIHByb2plY3QgaXMgdXNpbmcgYW4gdW5zdGFibGUg ZGV2ZWxvcG1lbnQgdmVyc2lvbiBvZiBDUE0uY21ha2UuIFwKK1BsZWFzZSB1cGRhdGUgdG8gYSBy ZWNlbnQgcmVsZWFzZSBpZiBwb3NzaWJsZS4gXAorU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jcG0t Y21ha2UvQ1BNLmNtYWtlIGZvciBkZXRhaWxzLiIKKyAgKQorZW5kaWYoKQorCitzZXRfcHJvcGVy dHkoR0xPQkFMIFBST1BFUlRZIENQTV9JTklUSUFMSVpFRCB0cnVlKQorCittYWNybyhjcG1fc2V0 X3BvbGljaWVzKQorICAjIHRoZSBwb2xpY3kgYWxsb3dzIHVzIHRvIGNoYW5nZSBvcHRpb25zIHdp dGhvdXQgY2FjaGluZworICBjbWFrZV9wb2xpY3koU0VUIENNUDAwNzcgTkVXKQorICBzZXQoQ01B S0VfUE9MSUNZX0RFRkFVTFRfQ01QMDA3NyBORVcpCisKKyAgIyB0aGUgcG9saWN5IGFsbG93cyB1 cyB0byBjaGFuZ2Ugc2V0KENBQ0hFKSB3aXRob3V0IGNhY2hpbmcKKyAgaWYoUE9MSUNZIENNUDAx MjYpCisgICAgY21ha2VfcG9saWN5KFNFVCBDTVAwMTI2IE5FVykKKyAgICBzZXQoQ01BS0VfUE9M SUNZX0RFRkFVTFRfQ01QMDEyNiBORVcpCisgIGVuZGlmKCkKKworICAjIFRoZSBwb2xpY3kgdXNl cyB0aGUgZG93bmxvYWQgdGltZSBmb3IgdGltZXN0YW1wLCBpbnN0ZWFkIG9mIHRoZSB0aW1lc3Rh bXAgaW4gdGhlIGFyY2hpdmUuIFRoaXMKKyAgIyBhbGxvd3MgZm9yIHByb3BlciByZWJ1aWxkcyB3 aGVuIGEgcHJvamVjdHMgdXJsIGNoYW5nZXMKKyAgaWYoUE9MSUNZIENNUDAxMzUpCisgICAgY21h a2VfcG9saWN5KFNFVCBDTVAwMTM1IE5FVykKKyAgICBzZXQoQ01BS0VfUE9MSUNZX0RFRkFVTFRf Q01QMDEzNSBORVcpCisgIGVuZGlmKCkKKworICAjIHRyZWF0IHJlbGF0aXZlIGdpdCByZXBvc2l0 b3J5IHBhdGhzIGFzIGJlaW5nIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQgcHJvamVjdCdzIHJlbW90 ZQorICBpZihQT0xJQ1kgQ01QMDE1MCkKKyAgICBjbWFrZV9wb2xpY3koU0VUIENNUDAxNTAgTkVX KQorICAgIHNldChDTUFLRV9QT0xJQ1lfREVGQVVMVF9DTVAwMTUwIE5FVykKKyAgZW5kaWYoKQor ZW5kbWFjcm8oKQorY3BtX3NldF9wb2xpY2llcygpCisKK29wdGlvbihDUE1fVVNFX0xPQ0FMX1BB Q0tBR0VTICJBbHdheXMgdHJ5IHRvIHVzZSBgZmluZF9wYWNrYWdlYCB0byBnZXQgZGVwZW5kZW5j aWVzIgorICAgICAgICRFTlZ7Q1BNX1VTRV9MT0NBTF9QQUNLQUdFU30KKykKK29wdGlvbihDUE1f TE9DQUxfUEFDS0FHRVNfT05MWSAiT25seSB1c2UgYGZpbmRfcGFja2FnZWAgdG8gZ2V0IGRlcGVu ZGVuY2llcyIKKyAgICAgICAkRU5We0NQTV9MT0NBTF9QQUNLQUdFU19PTkxZfQorKQorb3B0aW9u KENQTV9ET1dOTE9BRF9BTEwgIkFsd2F5cyBkb3dubG9hZCBkZXBlbmRlbmNpZXMgZnJvbSBzb3Vy Y2UiICRFTlZ7Q1BNX0RPV05MT0FEX0FMTH0pCitvcHRpb24oQ1BNX0RPTlRfVVBEQVRFX01PRFVM RV9QQVRIICJEb24ndCB1cGRhdGUgdGhlIG1vZHVsZSBwYXRoIHRvIGFsbG93IHVzaW5nIGZpbmRf cGFja2FnZSIKKyAgICAgICAkRU5We0NQTV9ET05UX1VQREFURV9NT0RVTEVfUEFUSH0KKykKK29w dGlvbihDUE1fRE9OVF9DUkVBVEVfUEFDS0FHRV9MT0NLICJEb24ndCBjcmVhdGUgYSBwYWNrYWdl IGxvY2sgZmlsZSBpbiB0aGUgYmluYXJ5IHBhdGgiCisgICAgICAgJEVOVntDUE1fRE9OVF9DUkVB VEVfUEFDS0FHRV9MT0NLfQorKQorb3B0aW9uKENQTV9JTkNMVURFX0FMTF9JTl9QQUNLQUdFX0xP Q0sKKyAgICAgICAiQWRkIGFsbCBwYWNrYWdlcyBhZGRlZCB0aHJvdWdoIENQTS5jbWFrZSB0byB0 aGUgcGFja2FnZSBsb2NrIgorICAgICAgICRFTlZ7Q1BNX0lOQ0xVREVfQUxMX0lOX1BBQ0tBR0Vf TE9DS30KKykKK29wdGlvbihDUE1fVVNFX05BTUVEX0NBQ0hFX0RJUkVDVE9SSUVTCisgICAgICAg IlVzZSBhZGRpdGlvbmFsIGRpcmVjdG9yeSBvZiBwYWNrYWdlIG5hbWUgaW4gY2FjaGUgb24gdGhl IG1vc3QgbmVzdGVkIGxldmVsLiIKKyAgICAgICAkRU5We0NQTV9VU0VfTkFNRURfQ0FDSEVfRElS RUNUT1JJRVN9CispCisKK3NldChDUE1fVkVSU0lPTgorICAgICR7Q1VSUkVOVF9DUE1fVkVSU0lP Tn0KKyAgICBDQUNIRSBJTlRFUk5BTCAiIgorKQorc2V0KENQTV9ESVJFQ1RPUlkKKyAgICAke0NQ TV9DVVJSRU5UX0RJUkVDVE9SWX0KKyAgICBDQUNIRSBJTlRFUk5BTCAiIgorKQorc2V0KENQTV9G SUxFCisgICAgJHtDTUFLRV9DVVJSRU5UX0xJU1RfRklMRX0KKyAgICBDQUNIRSBJTlRFUk5BTCAi IgorKQorc2V0KENQTV9QQUNLQUdFUworICAgICIiCisgICAgQ0FDSEUgSU5URVJOQUwgIiIKKykK K3NldChDUE1fRFJZX1JVTgorICAgIE9GRgorICAgIENBQ0hFIElOVEVSTkFMICJEb24ndCBkb3du bG9hZCBvciBjb25maWd1cmUgZGVwZW5kZW5jaWVzIChmb3IgdGVzdGluZykiCispCisKK2lmKERF RklORUQgRU5We0NQTV9TT1VSQ0VfQ0FDSEV9KQorICBzZXQoQ1BNX1NPVVJDRV9DQUNIRV9ERUZB VUxUICRFTlZ7Q1BNX1NPVVJDRV9DQUNIRX0pCitlbHNlKCkKKyAgc2V0KENQTV9TT1VSQ0VfQ0FD SEVfREVGQVVMVCBPRkYpCitlbmRpZigpCisKK3NldChDUE1fU09VUkNFX0NBQ0hFCisgICAgJHtD UE1fU09VUkNFX0NBQ0hFX0RFRkFVTFR9CisgICAgQ0FDSEUgUEFUSCAiRGlyZWN0b3J5IHRvIGRv d25sb2FkIENQTSBkZXBlbmRlbmNpZXMiCispCisKK2lmKE5PVCBDUE1fRE9OVF9VUERBVEVfTU9E VUxFX1BBVEgpCisgIHNldChDUE1fTU9EVUxFX1BBVEgKKyAgICAgICIke0NNQUtFX0JJTkFSWV9E SVJ9L0NQTV9tb2R1bGVzIgorICAgICAgQ0FDSEUgSU5URVJOQUwgIiIKKyAgKQorICAjIHJlbW92 ZSBvbGQgbW9kdWxlcworICBmaWxlKFJFTU9WRV9SRUNVUlNFICR7Q1BNX01PRFVMRV9QQVRIfSkK KyAgZmlsZShNQUtFX0RJUkVDVE9SWSAke0NQTV9NT0RVTEVfUEFUSH0pCisgICMgbG9jYWxseSBh ZGRlZCBDUE0gbW9kdWxlcyBzaG91bGQgb3ZlcnJpZGUgZ2xvYmFsIHBhY2thZ2VzCisgIHNldChD TUFLRV9NT0RVTEVfUEFUSCAiJHtDUE1fTU9EVUxFX1BBVEh9OyR7Q01BS0VfTU9EVUxFX1BBVEh9 IikKK2VuZGlmKCkKKworaWYoTk9UIENQTV9ET05UX0NSRUFURV9QQUNLQUdFX0xPQ0spCisgIHNl dChDUE1fUEFDS0FHRV9MT0NLX0ZJTEUKKyAgICAgICIke0NNQUtFX0JJTkFSWV9ESVJ9L2NwbS1w YWNrYWdlLWxvY2suY21ha2UiCisgICAgICBDQUNIRSBJTlRFUk5BTCAiIgorICApCisgIGZpbGUo V1JJVEUgJHtDUE1fUEFDS0FHRV9MT0NLX0ZJTEV9CisgICAgICAgIiMgQ1BNIFBhY2thZ2UgTG9j a1xuIyBUaGlzIGZpbGUgc2hvdWxkIGJlIGNvbW1pdHRlZCB0byB2ZXJzaW9uIGNvbnRyb2xcblxu IgorICApCitlbmRpZigpCisKK2luY2x1ZGUoRmV0Y2hDb250ZW50KQorCisjIFRyeSB0byBpbmZl ciBwYWNrYWdlIG5hbWUgZnJvbSBnaXQgcmVwb3NpdG9yeSB1cmkgKHBhdGggb3IgdXJsKQorZnVu Y3Rpb24oY3BtX3BhY2thZ2VfbmFtZV9mcm9tX2dpdF91cmkgVVJJIFJFU1VMVCkKKyAgaWYoIiR7 VVJJfSIgTUFUQ0hFUyAiKFteLzpdKykvPy5naXQvPyQiKQorICAgIHNldCgke1JFU1VMVH0KKyAg ICAgICAgJHtDTUFLRV9NQVRDSF8xfQorICAgICAgICBQQVJFTlRfU0NPUEUKKyAgICApCisgIGVs c2UoKQorICAgIHVuc2V0KCR7UkVTVUxUfSBQQVJFTlRfU0NPUEUpCisgIGVuZGlmKCkKK2VuZGZ1 bmN0aW9uKCkKKworIyBUcnkgdG8gaW5mZXIgcGFja2FnZSBuYW1lIGFuZCB2ZXJzaW9uIGZyb20g YSB1cmwKK2Z1bmN0aW9uKGNwbV9wYWNrYWdlX25hbWVfYW5kX3Zlcl9mcm9tX3VybCB1cmwgb3V0 TmFtZSBvdXRWZXIpCisgIGlmKHVybCBNQVRDSEVTICJbL1xcP10oW2EtekEtWjAtOV9cXC4tXSsp XFwuKHRhcnx0YXJcXC5nenx0YXJcXC5iejJ8emlwfFpJUCkoXFw/fC98JCkiKQorICAgICMgV2Ug bWF0Y2hlZCBhbiBhcmNoaXZlCisgICAgc2V0KGZpbGVuYW1lICIke0NNQUtFX01BVENIXzF9IikK KworICAgIGlmKGZpbGVuYW1lIE1BVENIRVMgIihbYS16QS1aMC05X1xcLi1dKylbXy1ddj8oKFsw LTldK1xcLikqWzAtOV0rW2EtekEtWjAtOV0qKSIpCisgICAgICAjIFdlIG1hdGNoZWQgPG5hbWU+ LTx2ZXJzaW9uPiAoaWUgZm9vLTEuMi4zKQorICAgICAgc2V0KCR7b3V0TmFtZX0KKyAgICAgICAg ICAiJHtDTUFLRV9NQVRDSF8xfSIKKyAgICAgICAgICBQQVJFTlRfU0NPUEUKKyAgICAgICkKKyAg ICAgIHNldCgke291dFZlcn0KKyAgICAgICAgICAiJHtDTUFLRV9NQVRDSF8yfSIKKyAgICAgICAg ICBQQVJFTlRfU0NPUEUKKyAgICAgICkKKyAgICBlbHNlaWYoZmlsZW5hbWUgTUFUQ0hFUyAiKChb MC05XStcXC4pK1swLTldK1thLXpBLVowLTldKikiKQorICAgICAgIyBXZSBjb3VsZG4ndCBmaW5k IGEgbmFtZSwgYnV0IHdlIGZvdW5kIGEgdmVyc2lvbgorICAgICAgIworICAgICAgIyBJbiBtYW55 IGNhc2VzICh3aGljaCB3ZSBkb24ndCBoYW5kbGUgaGVyZSkgdGhlIHVybCB3b3VsZCBsb29rIHNv bWV0aGluZyBsaWtlCisgICAgICAjIGBpcnJlbGV2YW50L0FDVFVBTF9QQUNLQUdFX05BTUUvaXJy ZWxldmFudC8xLjIuMy56aXBgLiBJbiBzdWNoIGEgY2FzZSB3ZSBjYW4ndCBwb3NzaWJseQorICAg ICAgIyBkaXN0aW5ndWlzaCB0aGUgcGFja2FnZSBuYW1lIGZyb20gdGhlIGlycmVsZXZhbnQgYml0 cy4gTW9yZW92ZXIgaWYgd2UgdHJ5IHRvIG1hdGNoIHRoZQorICAgICAgIyBwYWNrYWdlIG5hbWUg ZnJvbSB0aGUgZmlsZW5hbWUsIHdlJ2QgZ2V0IGJvZ3VzIGF0IGJlc3QuCisgICAgICB1bnNldCgk e291dE5hbWV9IFBBUkVOVF9TQ09QRSkKKyAgICAgIHNldCgke291dFZlcn0KKyAgICAgICAgICAi JHtDTUFLRV9NQVRDSF8xfSIKKyAgICAgICAgICBQQVJFTlRfU0NPUEUKKyAgICAgICkKKyAgICBl bHNlKCkKKyAgICAgICMgQm9sZGx5IGFzc3VtZSB0aGF0IHRoZSBmaWxlIG5hbWUgaXMgdGhlIHBh Y2thZ2UgbmFtZS4KKyAgICAgICMKKyAgICAgICMgWWVzLCBzb21ldGhpbmcgbGlrZSBgaXJyZWxl dmFudC9BQ1RVQUxfTkFNRS9pcnJlbGV2YW50L2Rvd25sb2FkLnppcGAgd2lsbCBydWluIG91ciBk YXksIGJ1dAorICAgICAgIyBzdWNoIGNhc2VzIHNob3VsZCBiZSBxdWl0ZSByYXJlLiBObyBwb3B1 bGFyIHNlcnZpY2UgZG9lcyB0aGlzLi4uIHdlIHRoaW5rLgorICAgICAgc2V0KCR7b3V0TmFtZX0K KyAgICAgICAgICAiJHtmaWxlbmFtZX0iCisgICAgICAgICAgUEFSRU5UX1NDT1BFCisgICAgICAp CisgICAgICB1bnNldCgke291dFZlcn0gUEFSRU5UX1NDT1BFKQorICAgIGVuZGlmKCkKKyAgZWxz ZSgpCisgICAgIyBObyBpZGVhcyB5ZXQgd2hhdCB0byBkbyB3aXRoIG5vbi1hcmNoaXZlcworICAg IHVuc2V0KCR7b3V0TmFtZX0gUEFSRU5UX1NDT1BFKQorICAgIHVuc2V0KCR7b3V0VmVyfSBQQVJF TlRfU0NPUEUpCisgIGVuZGlmKCkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24oY3BtX2ZpbmRf cGFja2FnZSBOQU1FIFZFUlNJT04pCisgIHN0cmluZyhSRVBMQUNFICIgIiAiOyIgRVhUUkFfQVJH UyAiJHtBUkdOfSIpCisgIGZpbmRfcGFja2FnZSgke05BTUV9ICR7VkVSU0lPTn0gJHtFWFRSQV9B UkdTfSBRVUlFVCkKKyAgaWYoJHtDUE1fQVJHU19OQU1FfV9GT1VORCkKKyAgICBpZihERUZJTkVE ICR7Q1BNX0FSR1NfTkFNRX1fVkVSU0lPTikKKyAgICAgIHNldChWRVJTSU9OICR7JHtDUE1fQVJH U19OQU1FfV9WRVJTSU9OfSkKKyAgICBlbmRpZigpCisgICAgY3BtX21lc3NhZ2UoU1RBVFVTICIk e0NQTV9JTkRFTlR9IFVzaW5nIGxvY2FsIHBhY2thZ2UgJHtDUE1fQVJHU19OQU1FfUAke1ZFUlNJ T059IikKKyAgICBDUE1SZWdpc3RlclBhY2thZ2UoJHtDUE1fQVJHU19OQU1FfSAiJHtWRVJTSU9O fSIpCisgICAgc2V0KENQTV9QQUNLQUdFX0ZPVU5ECisgICAgICAgIFlFUworICAgICAgICBQQVJF TlRfU0NPUEUKKyAgICApCisgIGVsc2UoKQorICAgIHNldChDUE1fUEFDS0FHRV9GT1VORAorICAg ICAgICBOTworICAgICAgICBQQVJFTlRfU0NPUEUKKyAgICApCisgIGVuZGlmKCkKK2VuZGZ1bmN0 aW9uKCkKKworIyBDcmVhdGUgYSBjdXN0b20gRmluZFhYWC5jbWFrZSBtb2R1bGUgZm9yIGEgQ1BN IHBhY2thZ2UgVGhpcyBwcmV2ZW50cyBgZmluZF9wYWNrYWdlKE5BTUUpYCBmcm9tCisjIGZpbmRp bmcgdGhlIHN5c3RlbSBsaWJyYXJ5CitmdW5jdGlvbihjcG1fY3JlYXRlX21vZHVsZV9maWxlIE5h bWUpCisgIGlmKE5PVCBDUE1fRE9OVF9VUERBVEVfTU9EVUxFX1BBVEgpCisgICAgIyBlcmFzZSBh bnkgcHJldmlvdXMgbW9kdWxlcworICAgIGZpbGUoV1JJVEUgJHtDUE1fTU9EVUxFX1BBVEh9L0Zp bmQke05hbWV9LmNtYWtlCisgICAgICAgICAiaW5jbHVkZShcIiR7Q1BNX0ZJTEV9XCIpXG4ke0FS R059XG5zZXQoJHtOYW1lfV9GT1VORCBUUlVFKSIKKyAgICApCisgIGVuZGlmKCkKK2VuZGZ1bmN0 aW9uKCkKKworIyBGaW5kIGEgcGFja2FnZSBsb2NhbGx5IG9yIGZhbGxiYWNrIHRvIENQTUFkZFBh Y2thZ2UKK2Z1bmN0aW9uKENQTUZpbmRQYWNrYWdlKQorICBzZXQob25lVmFsdWVBcmdzIE5BTUUg VkVSU0lPTiBHSVRfVEFHIEZJTkRfUEFDS0FHRV9BUkdVTUVOVFMpCisKKyAgY21ha2VfcGFyc2Vf YXJndW1lbnRzKENQTV9BUkdTICIiICIke29uZVZhbHVlQXJnc30iICIiICR7QVJHTn0pCisKKyAg aWYoTk9UIERFRklORUQgQ1BNX0FSR1NfVkVSU0lPTikKKyAgICBpZihERUZJTkVEIENQTV9BUkdT X0dJVF9UQUcpCisgICAgICBjcG1fZ2V0X3ZlcnNpb25fZnJvbV9naXRfdGFnKCIke0NQTV9BUkdT X0dJVF9UQUd9IiBDUE1fQVJHU19WRVJTSU9OKQorICAgIGVuZGlmKCkKKyAgZW5kaWYoKQorCisg IHNldChkb3dubG9hZFBhY2thZ2UgJHtDUE1fRE9XTkxPQURfQUxMfSkKKyAgaWYoREVGSU5FRCBD UE1fRE9XTkxPQURfJHtDUE1fQVJHU19OQU1FfSkKKyAgICBzZXQoZG93bmxvYWRQYWNrYWdlICR7 Q1BNX0RPV05MT0FEXyR7Q1BNX0FSR1NfTkFNRX19KQorICBlbHNlaWYoREVGSU5FRCBFTlZ7Q1BN X0RPV05MT0FEXyR7Q1BNX0FSR1NfTkFNRX19KQorICAgIHNldChkb3dubG9hZFBhY2thZ2UgJEVO VntDUE1fRE9XTkxPQURfJHtDUE1fQVJHU19OQU1FfX0pCisgIGVuZGlmKCkKKyAgaWYoZG93bmxv YWRQYWNrYWdlKQorICAgIENQTUFkZFBhY2thZ2UoJHtBUkdOfSkKKyAgICBjcG1fZXhwb3J0X3Zh cmlhYmxlcygke0NQTV9BUkdTX05BTUV9KQorICAgIHJldHVybigpCisgIGVuZGlmKCkKKworICBj cG1fZmluZF9wYWNrYWdlKCR7Q1BNX0FSR1NfTkFNRX0gIiR7Q1BNX0FSR1NfVkVSU0lPTn0iICR7 Q1BNX0FSR1NfRklORF9QQUNLQUdFX0FSR1VNRU5UU30pCisKKyAgaWYoTk9UIENQTV9QQUNLQUdF X0ZPVU5EKQorICAgIENQTUFkZFBhY2thZ2UoJHtBUkdOfSkKKyAgICBjcG1fZXhwb3J0X3Zhcmlh Ymxlcygke0NQTV9BUkdTX05BTUV9KQorICBlbmRpZigpCisKK2VuZGZ1bmN0aW9uKCkKKworIyBj aGVja3MgaWYgYSBwYWNrYWdlIGhhcyBiZWVuIGFkZGVkIGJlZm9yZQorZnVuY3Rpb24oY3BtX2No ZWNrX2lmX3BhY2thZ2VfYWxyZWFkeV9hZGRlZCBDUE1fQVJHU19OQU1FIENQTV9BUkdTX1ZFUlNJ T04pCisgIGlmKCIke0NQTV9BUkdTX05BTUV9IiBJTl9MSVNUIENQTV9QQUNLQUdFUykKKyAgICBD UE1HZXRQYWNrYWdlVmVyc2lvbigke0NQTV9BUkdTX05BTUV9IENQTV9QQUNLQUdFX1ZFUlNJT04p CisgICAgaWYoIiR7Q1BNX1BBQ0tBR0VfVkVSU0lPTn0iIFZFUlNJT05fTEVTUyAiJHtDUE1fQVJH U19WRVJTSU9OfSIpCisgICAgICBtZXNzYWdlKAorICAgICAgICBXQVJOSU5HCisgICAgICAgICAg IiR7Q1BNX0lOREVOVH0gUmVxdWlyZXMgYSBuZXdlciB2ZXJzaW9uIG9mICR7Q1BNX0FSR1NfTkFN RX0gKCR7Q1BNX0FSR1NfVkVSU0lPTn0pIHRoYW4gY3VycmVudGx5IGluY2x1ZGVkICgke0NQTV9Q QUNLQUdFX1ZFUlNJT059KS4iCisgICAgICApCisgICAgZW5kaWYoKQorICAgIGNwbV9nZXRfZmV0 Y2hfcHJvcGVydGllcygke0NQTV9BUkdTX05BTUV9KQorICAgIHNldCgke0NQTV9BUkdTX05BTUV9 X0FEREVEIE5PKQorICAgIHNldChDUE1fUEFDS0FHRV9BTFJFQURZX0FEREVECisgICAgICAgIFlF UworICAgICAgICBQQVJFTlRfU0NPUEUKKyAgICApCisgICAgY3BtX2V4cG9ydF92YXJpYWJsZXMo JHtDUE1fQVJHU19OQU1FfSkKKyAgZWxzZSgpCisgICAgc2V0KENQTV9QQUNLQUdFX0FMUkVBRFlf QURERUQKKyAgICAgICAgTk8KKyAgICAgICAgUEFSRU5UX1NDT1BFCisgICAgKQorICBlbmRpZigp CitlbmRmdW5jdGlvbigpCisKKyMgUGFyc2UgdGhlIGFyZ3VtZW50IG9mIENQTUFkZFBhY2thZ2Ug aW4gY2FzZSBhIHNpbmdsZSBvbmUgd2FzIHByb3ZpZGVkIGFuZCBjb252ZXJ0IGl0IHRvIGEgbGlz dCBvZgorIyBhcmd1bWVudHMgd2hpY2ggY2FuIHRoZW4gYmUgcGFyc2VkIGlkaW9tYXRpY2FsbHku IEZvciBleGFtcGxlIGdoOmZvby9iYXJAMS4yLjMgd2lsbCBiZSBjb252ZXJ0ZWQKKyMgdG86IEdJ VEhVQl9SRVBPU0lUT1JZO2Zvby9iYXI7VkVSU0lPTjsxLjIuMworZnVuY3Rpb24oY3BtX3BhcnNl X2FkZF9wYWNrYWdlX3NpbmdsZV9hcmcgYXJnIG91dEFyZ3MpCisgICMgTG9vayBmb3IgYSBzY2hl bWUKKyAgaWYoIiR7YXJnfSIgTUFUQ0hFUyAiXihbYS16QS1aXSspOiguKykkIikKKyAgICBzdHJp bmcoVE9MT1dFUiAiJHtDTUFLRV9NQVRDSF8xfSIgc2NoZW1lKQorICAgIHNldCh1cmkgIiR7Q01B S0VfTUFUQ0hfMn0iKQorCisgICAgIyBDaGVjayBmb3IgQ1BNLXNwZWNpZmljIHNjaGVtZXMKKyAg ICBpZihzY2hlbWUgU1RSRVFVQUwgImdoIikKKyAgICAgIHNldChvdXQgIkdJVEhVQl9SRVBPU0lU T1JZOyR7dXJpfSIpCisgICAgICBzZXQocGFja2FnZVR5cGUgImdpdCIpCisgICAgZWxzZWlmKHNj aGVtZSBTVFJFUVVBTCAiZ2wiKQorICAgICAgc2V0KG91dCAiR0lUTEFCX1JFUE9TSVRPUlk7JHt1 cml9IikKKyAgICAgIHNldChwYWNrYWdlVHlwZSAiZ2l0IikKKyAgICBlbHNlaWYoc2NoZW1lIFNU UkVRVUFMICJiYiIpCisgICAgICBzZXQob3V0ICJCSVRCVUNLRVRfUkVQT1NJVE9SWTske3VyaX0i KQorICAgICAgc2V0KHBhY2thZ2VUeXBlICJnaXQiKQorICAgICAgIyBBIENQTS1zcGVjaWZpYyBz Y2hlbWUgd2FzIG5vdCBmb3VuZC4gTG9va3MgbGlrZSB0aGlzIGlzIGEgZ2VuZXJpYyBVUkwgc28g dHJ5IHRvIGRldGVybWluZQorICAgICAgIyB0eXBlCisgICAgZWxzZWlmKGFyZyBNQVRDSEVTICIu Z2l0Lz8oQHwjfCQpIikKKyAgICAgIHNldChvdXQgIkdJVF9SRVBPU0lUT1JZOyR7YXJnfSIpCisg ICAgICBzZXQocGFja2FnZVR5cGUgImdpdCIpCisgICAgZWxzZSgpCisgICAgICAjIEZhbGwgYmFj ayB0byBhIFVSTAorICAgICAgc2V0KG91dCAiVVJMOyR7YXJnfSIpCisgICAgICBzZXQocGFja2Fn ZVR5cGUgImFyY2hpdmUiKQorCisgICAgICAjIFdlIGNvdWxkIGFsc28gY2hlY2sgZm9yIFNWTiBz aW5jZSBGZXRjaENvbnRlbnQgc3VwcG9ydHMgaXQsIGJ1dCBTVk4gaXMgc28gcmFyZSB0aGVzZSBk YXlzLgorICAgICAgIyBXZSBqdXN0IHdvbid0IGJvdGhlciB3aXRoIHRoZSBhZGRpdGlvbmFsIGNv bXBsZXhpdHkgaXQgd2lsbCBpbmR1Y2UgaW4gdGhpcyBmdW5jdGlvbi4gU1ZOIGlzCisgICAgICAj IGRvbmUgYnkgbXVsdGktYXJnCisgICAgZW5kaWYoKQorICBlbHNlKCkKKyAgICBpZihhcmcgTUFU Q0hFUyAiLmdpdC8/KEB8I3wkKSIpCisgICAgICBzZXQob3V0ICJHSVRfUkVQT1NJVE9SWTske2Fy Z30iKQorICAgICAgc2V0KHBhY2thZ2VUeXBlICJnaXQiKQorICAgIGVsc2UoKQorICAgICAgIyBH aXZlIHVwCisgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICIke0NQTV9JTkRFTlR9IENhbid0IGRl dGVybWluZSBwYWNrYWdlIHR5cGUgb2YgJyR7YXJnfSciKQorICAgIGVuZGlmKCkKKyAgZW5kaWYo KQorCisgICMgRm9yIGFsbCBwYWNrYWdlcyB3ZSBpbnRlcnByZXQgQC4uLiBhcyB2ZXJzaW9uLiBP bmx5IHJlcGxhY2UgdGhlIGxhc3Qgb2NjdXJyZW5jZS4gVGh1cyBVUklzCisgICMgY29udGFpbmlu ZyAnQCcgY2FuIGJlIHVzZWQKKyAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIkAoW15AXSspJCIgIjtW RVJTSU9OO1xcMSIgb3V0ICIke291dH0iKQorCisgICMgUGFyc2UgdGhlIHJlc3QgYWNjb3JkaW5n IHRvIHBhY2thZ2UgdHlwZQorICBpZihwYWNrYWdlVHlwZSBTVFJFUVVBTCAiZ2l0IikKKyAgICAj IEZvciBnaXQgcmVwb3Mgd2UgaW50ZXJwcmV0ICMuLi4gYXMgYSB0YWcgb3IgYnJhbmNoIG9yIGNv bW1pdCBoYXNoCisgICAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIiMoW14jXSspJCIgIjtHSVRfVEFH O1xcMSIgb3V0ICIke291dH0iKQorICBlbHNlaWYocGFja2FnZVR5cGUgU1RSRVFVQUwgImFyY2hp dmUiKQorICAgICMgRm9yIGFyY2hpdmVzIHdlIGludGVycHJldCAjLi4uIGFzIGEgVVJMIGhhc2gu CisgICAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIiMoW14jXSspJCIgIjtVUkxfSEFTSDtcXDEiIG91 dCAiJHtvdXR9IikKKyAgICAjIFdlIGRvbid0IHRyeSB0byBwYXJzZSB0aGUgdmVyc2lvbiBpZiBp dCdzIG5vdCBwcm92aWRlZCBleHBsaWNpdGx5LiBjcG1fZ2V0X3ZlcnNpb25fZnJvbV91cmwKKyAg ICAjIHNob3VsZCBkbyB0aGlzIGF0IGEgbGF0ZXIgcG9pbnQKKyAgZWxzZSgpCisgICAgIyBXZSBz aG91bGQgbmV2ZXIgZ2V0IGhlcmUuIFRoaXMgaXMgYW4gYXNzZXJ0aW9uIGFuZCBoaXR0aW5nIGl0 IG1lYW5zIHRoZXJlJ3MgYSBidWcgaW4gdGhlIGNvZGUKKyAgICAjIGFib3ZlLiBBIHBhY2thZ2VU eXBlIHdhcyBzZXQsIGJ1dCBub3QgaGFuZGxlZCBieSB0aGlzIGlmLWVsc2UuCisgICAgbWVzc2Fn ZShGQVRBTF9FUlJPUiAiJHtDUE1fSU5ERU5UfSBVbnN1cHBvcnRlZCBwYWNrYWdlIHR5cGUgJyR7 cGFja2FnZVR5cGV9JyBvZiAnJHthcmd9JyIpCisgIGVuZGlmKCkKKworICBzZXQoJHtvdXRBcmdz fQorICAgICAgJHtvdXR9CisgICAgICBQQVJFTlRfU0NPUEUKKyAgKQorZW5kZnVuY3Rpb24oKQor CisjIENoZWNrIHRoYXQgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGZvciBhIGdpdCByZXBvIGlzIGNs ZWFuCitmdW5jdGlvbihjcG1fY2hlY2tfZ2l0X3dvcmtpbmdfZGlyX2lzX2NsZWFuIHJlcG9QYXRo IGdpdFRhZyBpc0NsZWFuKQorCisgIGZpbmRfcGFja2FnZShHaXQgUkVRVUlSRUQpCisKKyAgaWYo Tk9UIEdJVF9FWEVDVVRBQkxFKQorICAgICMgTm8gZ2l0IGV4ZWN1dGFibGUsIGFzc3VtZSBkaXJl Y3RvcnkgaXMgY2xlYW4KKyAgICBzZXQoJHtpc0NsZWFufQorICAgICAgICBUUlVFCisgICAgICAg IFBBUkVOVF9TQ09QRQorICAgICkKKyAgICByZXR1cm4oKQorICBlbmRpZigpCisKKyAgIyBjaGVj ayBmb3IgdW5jb21taXR0ZWQgY2hhbmdlcworICBleGVjdXRlX3Byb2Nlc3MoCisgICAgQ09NTUFO RCAke0dJVF9FWEVDVVRBQkxFfSBzdGF0dXMgLS1wb3JjZWxhaW4KKyAgICBSRVNVTFRfVkFSSUFC TEUgcmVzdWx0R2l0U3RhdHVzCisgICAgT1VUUFVUX1ZBUklBQkxFIHJlcG9TdGF0dXMKKyAgICBP VVRQVVRfU1RSSVBfVFJBSUxJTkdfV0hJVEVTUEFDRSBFUlJPUl9RVUlFVAorICAgIFdPUktJTkdf RElSRUNUT1JZICR7cmVwb1BhdGh9CisgICkKKyAgaWYocmVzdWx0R2l0U3RhdHVzKQorICAgICMg bm90IHN1cHBvc2VkIHRvIGhhcHBlbiwgYXNzdW1lIGNsZWFuIGFueXdheQorICAgIG1lc3NhZ2Uo V0FSTklORyAiJHtDUE1fSU5ERU5UfSBDYWxsaW5nIGdpdCBzdGF0dXMgb24gZm9sZGVyICR7cmVw b1BhdGh9IGZhaWxlZCIpCisgICAgc2V0KCR7aXNDbGVhbn0KKyAgICAgICAgVFJVRQorICAgICAg ICBQQVJFTlRfU0NPUEUKKyAgICApCisgICAgcmV0dXJuKCkKKyAgZW5kaWYoKQorCisgIGlmKE5P VCAiJHtyZXBvU3RhdHVzfSIgU1RSRVFVQUwgIiIpCisgICAgc2V0KCR7aXNDbGVhbn0KKyAgICAg ICAgRkFMU0UKKyAgICAgICAgUEFSRU5UX1NDT1BFCisgICAgKQorICAgIHJldHVybigpCisgIGVu ZGlmKCkKKworICAjIGNoZWNrIGZvciBjb21taXR0ZWQgY2hhbmdlcworICBleGVjdXRlX3Byb2Nl c3MoCisgICAgQ09NTUFORCAke0dJVF9FWEVDVVRBQkxFfSBkaWZmIC1zIC0tZXhpdC1jb2RlICR7 Z2l0VGFnfQorICAgIFJFU1VMVF9WQVJJQUJMRSByZXN1bHRHaXREaWZmCisgICAgT1VUUFVUX1NU UklQX1RSQUlMSU5HX1dISVRFU1BBQ0UgT1VUUFVUX1FVSUVUCisgICAgV09SS0lOR19ESVJFQ1RP UlkgJHtyZXBvUGF0aH0KKyAgKQorCisgIGlmKCR7cmVzdWx0R2l0RGlmZn0gRVFVQUwgMCkKKyAg ICBzZXQoJHtpc0NsZWFufQorICAgICAgICBUUlVFCisgICAgICAgIFBBUkVOVF9TQ09QRQorICAg ICkKKyAgZWxzZSgpCisgICAgc2V0KCR7aXNDbGVhbn0KKyAgICAgICAgRkFMU0UKKyAgICAgICAg UEFSRU5UX1NDT1BFCisgICAgKQorICBlbmRpZigpCisKK2VuZGZ1bmN0aW9uKCkKKworIyBtZXRo b2QgdG8gb3ZlcndyaXRlIGludGVybmFsIEZldGNoQ29udGVudCBwcm9wZXJ0aWVzLCB0byBhbGxv dyB1c2luZyBDUE0uY21ha2UgdG8gb3ZlcmxvYWQKKyMgRmV0Y2hDb250ZW50IGNhbGxzLiBBcyB0 aGVzZSBhcmUgaW50ZXJuYWwgY21ha2UgcHJvcGVydGllcywgdGhpcyBtZXRob2Qgc2hvdWxkIGJl IHVzZWQgY2FyZWZ1bGx5CisjIGFuZCBtYXkgbmVlZCBtb2RpZmljYXRpb24gaW4gZnV0dXJlIENN YWtlIHZlcnNpb25zLiBTb3VyY2U6CisjIGh0dHBzOi8vZ2l0aHViLmNvbS9LaXR3YXJlL0NNYWtl L2Jsb2IvZGMzZDBiNWEwYTdkMjZkNDNkNmNmZWI1MTFlMjI0NTMzYjVkMTg4Zi9Nb2R1bGVzL0Zl dGNoQ29udGVudC5jbWFrZSNMMTE1MgorZnVuY3Rpb24oY3BtX292ZXJyaWRlX2ZldGNoY29udGVu dCBjb250ZW50TmFtZSkKKyAgY21ha2VfcGFyc2VfYXJndW1lbnRzKFBBUlNFX0FSR1YgMSBhcmcg IiIgIlNPVVJDRV9ESVI7QklOQVJZX0RJUiIgIiIpCisgIGlmKE5PVCAiJHthcmdfVU5QQVJTRURf QVJHVU1FTlRTfSIgU1RSRVFVQUwgIiIpCisgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiJHtDUE1f SU5ERU5UfSBVbnN1cHBvcnRlZCBhcmd1bWVudHM6ICR7YXJnX1VOUEFSU0VEX0FSR1VNRU5UU30i KQorICBlbmRpZigpCisKKyAgc3RyaW5nKFRPTE9XRVIgJHtjb250ZW50TmFtZX0gY29udGVudE5h bWVMb3dlcikKKyAgc2V0KHByZWZpeCAiX0ZldGNoQ29udGVudF8ke2NvbnRlbnROYW1lTG93ZXJ9 IikKKworICBzZXQocHJvcGVydHlOYW1lICIke3ByZWZpeH1fc291cmNlRGlyIikKKyAgZGVmaW5l X3Byb3BlcnR5KAorICAgIEdMT0JBTAorICAgIFBST1BFUlRZICR7cHJvcGVydHlOYW1lfQorICAg IEJSSUVGX0RPQ1MgIkludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbCBvZiBGZXRjaENvbnRl bnRfUG9wdWxhdGUoKSIKKyAgICBGVUxMX0RPQ1MgIkRldGFpbHMgdXNlZCBieSBGZXRjaENvbnRl bnRfUG9wdWxhdGUoKSBmb3IgJHtjb250ZW50TmFtZX0iCisgICkKKyAgc2V0X3Byb3BlcnR5KEdM T0JBTCBQUk9QRVJUWSAke3Byb3BlcnR5TmFtZX0gIiR7YXJnX1NPVVJDRV9ESVJ9IikKKworICBz ZXQocHJvcGVydHlOYW1lICIke3ByZWZpeH1fYmluYXJ5RGlyIikKKyAgZGVmaW5lX3Byb3BlcnR5 KAorICAgIEdMT0JBTAorICAgIFBST1BFUlRZICR7cHJvcGVydHlOYW1lfQorICAgIEJSSUVGX0RP Q1MgIkludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbCBvZiBGZXRjaENvbnRlbnRfUG9wdWxh dGUoKSIKKyAgICBGVUxMX0RPQ1MgIkRldGFpbHMgdXNlZCBieSBGZXRjaENvbnRlbnRfUG9wdWxh dGUoKSBmb3IgJHtjb250ZW50TmFtZX0iCisgICkKKyAgc2V0X3Byb3BlcnR5KEdMT0JBTCBQUk9Q RVJUWSAke3Byb3BlcnR5TmFtZX0gIiR7YXJnX0JJTkFSWV9ESVJ9IikKKworICBzZXQocHJvcGVy dHlOYW1lICIke3ByZWZpeH1fcG9wdWxhdGVkIikKKyAgZGVmaW5lX3Byb3BlcnR5KAorICAgIEdM T0JBTAorICAgIFBST1BFUlRZICR7cHJvcGVydHlOYW1lfQorICAgIEJSSUVGX0RPQ1MgIkludGVy bmFsIGltcGxlbWVudGF0aW9uIGRldGFpbCBvZiBGZXRjaENvbnRlbnRfUG9wdWxhdGUoKSIKKyAg ICBGVUxMX0RPQ1MgIkRldGFpbHMgdXNlZCBieSBGZXRjaENvbnRlbnRfUG9wdWxhdGUoKSBmb3Ig JHtjb250ZW50TmFtZX0iCisgICkKKyAgc2V0X3Byb3BlcnR5KEdMT0JBTCBQUk9QRVJUWSAke3By b3BlcnR5TmFtZX0gVFJVRSkKK2VuZGZ1bmN0aW9uKCkKKworIyBEb3dubG9hZCBhbmQgYWRkIGEg cGFja2FnZSBmcm9tIHNvdXJjZQorZnVuY3Rpb24oQ1BNQWRkUGFja2FnZSkKKyAgY3BtX3NldF9w b2xpY2llcygpCisKKyAgbGlzdChMRU5HVEggQVJHTiBhcmduTGVuZ3RoKQorICBpZihhcmduTGVu Z3RoIEVRVUFMIDEpCisgICAgY3BtX3BhcnNlX2FkZF9wYWNrYWdlX3NpbmdsZV9hcmcoIiR7QVJH Tn0iIEFSR04pCisKKyAgICAjIFRoZSBzaG9ydGhhbmQgc3ludGF4IGltcGxpZXMgRVhDTFVERV9G Uk9NX0FMTCBhbmQgU1lTVEVNCisgICAgc2V0KEFSR04gIiR7QVJHTn07RVhDTFVERV9GUk9NX0FM TDtZRVM7U1lTVEVNO1lFUzsiKQorICBlbmRpZigpCisKKyAgc2V0KG9uZVZhbHVlQXJncworICAg ICAgTkFNRQorICAgICAgRk9SQ0UKKyAgICAgIFZFUlNJT04KKyAgICAgIEdJVF9UQUcKKyAgICAg IERPV05MT0FEX09OTFkKKyAgICAgIEdJVEhVQl9SRVBPU0lUT1JZCisgICAgICBHSVRMQUJfUkVQ T1NJVE9SWQorICAgICAgQklUQlVDS0VUX1JFUE9TSVRPUlkKKyAgICAgIEdJVF9SRVBPU0lUT1JZ CisgICAgICBTT1VSQ0VfRElSCisgICAgICBGSU5EX1BBQ0tBR0VfQVJHVU1FTlRTCisgICAgICBO T19DQUNIRQorICAgICAgU1lTVEVNCisgICAgICBHSVRfU0hBTExPVworICAgICAgRVhDTFVERV9G Uk9NX0FMTAorICAgICAgU09VUkNFX1NVQkRJUgorICAgICAgQ1VTVE9NX0NBQ0hFX0tFWQorICAp CisKKyAgc2V0KG11bHRpVmFsdWVBcmdzIFVSTCBPUFRJT05TIERPV05MT0FEX0NPTU1BTkQpCisK KyAgY21ha2VfcGFyc2VfYXJndW1lbnRzKENQTV9BUkdTICIiICIke29uZVZhbHVlQXJnc30iICIk e211bHRpVmFsdWVBcmdzfSIgIiR7QVJHTn0iKQorCisgICMgU2V0IGRlZmF1bHQgdmFsdWVzIGZv ciBhcmd1bWVudHMKKworICBpZihOT1QgREVGSU5FRCBDUE1fQVJHU19WRVJTSU9OKQorICAgIGlm KERFRklORUQgQ1BNX0FSR1NfR0lUX1RBRykKKyAgICAgIGNwbV9nZXRfdmVyc2lvbl9mcm9tX2dp dF90YWcoIiR7Q1BNX0FSR1NfR0lUX1RBR30iIENQTV9BUkdTX1ZFUlNJT04pCisgICAgZW5kaWYo KQorICBlbmRpZigpCisKKyAgaWYoQ1BNX0FSR1NfRE9XTkxPQURfT05MWSkKKyAgICBzZXQoRE9X TkxPQURfT05MWSAke0NQTV9BUkdTX0RPV05MT0FEX09OTFl9KQorICBlbHNlKCkKKyAgICBzZXQo RE9XTkxPQURfT05MWSBOTykKKyAgZW5kaWYoKQorCisgIGlmKERFRklORUQgQ1BNX0FSR1NfR0lU SFVCX1JFUE9TSVRPUlkpCisgICAgc2V0KENQTV9BUkdTX0dJVF9SRVBPU0lUT1JZICJodHRwczov L2dpdGh1Yi5jb20vJHtDUE1fQVJHU19HSVRIVUJfUkVQT1NJVE9SWX0uZ2l0IikKKyAgZWxzZWlm KERFRklORUQgQ1BNX0FSR1NfR0lUTEFCX1JFUE9TSVRPUlkpCisgICAgc2V0KENQTV9BUkdTX0dJ VF9SRVBPU0lUT1JZICJodHRwczovL2dpdGxhYi5jb20vJHtDUE1fQVJHU19HSVRMQUJfUkVQT1NJ VE9SWX0uZ2l0IikKKyAgZWxzZWlmKERFRklORUQgQ1BNX0FSR1NfQklUQlVDS0VUX1JFUE9TSVRP UlkpCisgICAgc2V0KENQTV9BUkdTX0dJVF9SRVBPU0lUT1JZICJodHRwczovL2JpdGJ1Y2tldC5v cmcvJHtDUE1fQVJHU19CSVRCVUNLRVRfUkVQT1NJVE9SWX0uZ2l0IikKKyAgZW5kaWYoKQorCisg IGlmKERFRklORUQgQ1BNX0FSR1NfR0lUX1JFUE9TSVRPUlkpCisgICAgbGlzdChBUFBFTkQgQ1BN X0FSR1NfVU5QQVJTRURfQVJHVU1FTlRTIEdJVF9SRVBPU0lUT1JZICR7Q1BNX0FSR1NfR0lUX1JF UE9TSVRPUll9KQorICAgIGlmKE5PVCBERUZJTkVEIENQTV9BUkdTX0dJVF9UQUcpCisgICAgICBz ZXQoQ1BNX0FSR1NfR0lUX1RBRyB2JHtDUE1fQVJHU19WRVJTSU9OfSkKKyAgICBlbmRpZigpCisK KyAgICAjIElmIGEgbmFtZSB3YXNuJ3QgcHJvdmlkZWQsIHRyeSB0byBpbmZlciBpdCBmcm9tIHRo ZSBnaXQgcmVwbworICAgIGlmKE5PVCBERUZJTkVEIENQTV9BUkdTX05BTUUpCisgICAgICBjcG1f cGFja2FnZV9uYW1lX2Zyb21fZ2l0X3VyaSgke0NQTV9BUkdTX0dJVF9SRVBPU0lUT1JZfSBDUE1f QVJHU19OQU1FKQorICAgIGVuZGlmKCkKKyAgZW5kaWYoKQorCisgIHNldChDUE1fU0tJUF9GRVRD SCBGQUxTRSkKKworICBpZihERUZJTkVEIENQTV9BUkdTX0dJVF9UQUcpCisgICAgbGlzdChBUFBF TkQgQ1BNX0FSR1NfVU5QQVJTRURfQVJHVU1FTlRTIEdJVF9UQUcgJHtDUE1fQVJHU19HSVRfVEFH fSkKKyAgICAjIElmIEdJVF9TSEFMTE9XIGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBob25vciB0 aGUgdmFsdWUuCisgICAgaWYoREVGSU5FRCBDUE1fQVJHU19HSVRfU0hBTExPVykKKyAgICAgIGxp c3QoQVBQRU5EIENQTV9BUkdTX1VOUEFSU0VEX0FSR1VNRU5UUyBHSVRfU0hBTExPVyAke0NQTV9B UkdTX0dJVF9TSEFMTE9XfSkKKyAgICBlbmRpZigpCisgIGVuZGlmKCkKKworICBpZihERUZJTkVE IENQTV9BUkdTX1VSTCkKKyAgICAjIElmIGEgbmFtZSBvciB2ZXJzaW9uIGFyZW4ndCBwcm92aWRl ZCwgdHJ5IHRvIGluZmVyIHRoZW0gZnJvbSB0aGUgVVJMCisgICAgbGlzdChHRVQgQ1BNX0FSR1Nf VVJMIDAgZmlyc3RVcmwpCisgICAgY3BtX3BhY2thZ2VfbmFtZV9hbmRfdmVyX2Zyb21fdXJsKCR7 Zmlyc3RVcmx9IG5hbWVGcm9tVXJsIHZlckZyb21VcmwpCisgICAgIyBJZiB3ZSBmYWlsIHRvIG9i dGFpbiBuYW1lIGFuZCB2ZXJzaW9uIGZyb20gdGhlIGZpcnN0IFVSTCwgd2UgY291bGQgdHJ5IG90 aGVyIFVSTHMgaWYgYW55LgorICAgICMgSG93ZXZlciBtdWx0aXBsZSBVUkxzIGFyZSBleHBlY3Rl ZCB0byBiZSBxdWl0ZSByYXJlLCBzbyBmb3Igbm93IHdlIHdvbid0IGJvdGhlci4KKworICAgICMg SWYgdGhlIGNhbGxlciBwcm92aWRlZCB0aGVpciBvd24gbmFtZSBhbmQgdmVyc2lvbiwgdGhleSB0 cnVtcCB0aGUgaW5mZXJyZWQgb25lcy4KKyAgICBpZihOT1QgREVGSU5FRCBDUE1fQVJHU19OQU1F KQorICAgICAgc2V0KENQTV9BUkdTX05BTUUgJHtuYW1lRnJvbVVybH0pCisgICAgZW5kaWYoKQor ICAgIGlmKE5PVCBERUZJTkVEIENQTV9BUkdTX1ZFUlNJT04pCisgICAgICBzZXQoQ1BNX0FSR1Nf VkVSU0lPTiAke3ZlckZyb21Vcmx9KQorICAgIGVuZGlmKCkKKworICAgIGxpc3QoQVBQRU5EIENQ TV9BUkdTX1VOUEFSU0VEX0FSR1VNRU5UUyBVUkwgIiR7Q1BNX0FSR1NfVVJMfSIpCisgIGVuZGlm KCkKKworICAjIENoZWNrIGZvciByZXF1aXJlZCBhcmd1bWVudHMKKworICBpZihOT1QgREVGSU5F RCBDUE1fQVJHU19OQU1FKQorICAgIG1lc3NhZ2UoCisgICAgICBGQVRBTF9FUlJPUgorICAgICAg ICAiJHtDUE1fSU5ERU5UfSAnTkFNRScgd2FzIG5vdCBwcm92aWRlZCBhbmQgY291bGRuJ3QgYmUg YXV0b21hdGljYWxseSBpbmZlcnJlZCBmb3IgcGFja2FnZSBhZGRlZCB3aXRoIGFyZ3VtZW50czog JyR7QVJHTn0nIgorICAgICkKKyAgZW5kaWYoKQorCisgICMgQ2hlY2sgaWYgcGFja2FnZSBoYXMg YmVlbiBhZGRlZCBiZWZvcmUKKyAgY3BtX2NoZWNrX2lmX3BhY2thZ2VfYWxyZWFkeV9hZGRlZCgk e0NQTV9BUkdTX05BTUV9ICIke0NQTV9BUkdTX1ZFUlNJT059IikKKyAgaWYoQ1BNX1BBQ0tBR0Vf QUxSRUFEWV9BRERFRCkKKyAgICBjcG1fZXhwb3J0X3ZhcmlhYmxlcygke0NQTV9BUkdTX05BTUV9 KQorICAgIHJldHVybigpCisgIGVuZGlmKCkKKworICAjIENoZWNrIGZvciBtYW51YWwgb3ZlcnJp ZGVzCisgIGlmKE5PVCBDUE1fQVJHU19GT1JDRSBBTkQgTk9UICIke0NQTV8ke0NQTV9BUkdTX05B TUV9X1NPVVJDRX0iIFNUUkVRVUFMICIiKQorICAgIHNldChQQUNLQUdFX1NPVVJDRSAke0NQTV8k e0NQTV9BUkdTX05BTUV9X1NPVVJDRX0pCisgICAgc2V0KENQTV8ke0NQTV9BUkdTX05BTUV9X1NP VVJDRSAiIikKKyAgICBDUE1BZGRQYWNrYWdlKAorICAgICAgTkFNRSAiJHtDUE1fQVJHU19OQU1F fSIKKyAgICAgIFNPVVJDRV9ESVIgIiR7UEFDS0FHRV9TT1VSQ0V9IgorICAgICAgRVhDTFVERV9G Uk9NX0FMTCAiJHtDUE1fQVJHU19FWENMVURFX0ZST01fQUxMfSIKKyAgICAgIFNZU1RFTSAiJHtD UE1fQVJHU19TWVNURU19IgorICAgICAgT1BUSU9OUyAiJHtDUE1fQVJHU19PUFRJT05TfSIKKyAg ICAgIFNPVVJDRV9TVUJESVIgIiR7Q1BNX0FSR1NfU09VUkNFX1NVQkRJUn0iCisgICAgICBET1dO TE9BRF9PTkxZICIke0RPV05MT0FEX09OTFl9IgorICAgICAgRk9SQ0UgVHJ1ZQorICAgICkKKyAg ICBjcG1fZXhwb3J0X3ZhcmlhYmxlcygke0NQTV9BUkdTX05BTUV9KQorICAgIHJldHVybigpCisg IGVuZGlmKCkKKworICAjIENoZWNrIGZvciBhdmFpbGFibGUgZGVjbGFyYXRpb24KKyAgaWYoTk9U IENQTV9BUkdTX0ZPUkNFIEFORCBOT1QgIiR7Q1BNX0RFQ0xBUkFUSU9OXyR7Q1BNX0FSR1NfTkFN RX19IiBTVFJFUVVBTCAiIikKKyAgICBzZXQoZGVjbGFyYXRpb24gJHtDUE1fREVDTEFSQVRJT05f JHtDUE1fQVJHU19OQU1FfX0pCisgICAgc2V0KENQTV9ERUNMQVJBVElPTl8ke0NQTV9BUkdTX05B TUV9ICIiKQorICAgIENQTUFkZFBhY2thZ2UoJHtkZWNsYXJhdGlvbn0pCisgICAgY3BtX2V4cG9y dF92YXJpYWJsZXMoJHtDUE1fQVJHU19OQU1FfSkKKyAgICAjIGNoZWNraW5nIGFnYWluIHRvIGVu c3VyZSB2ZXJzaW9uIGFuZCBvcHRpb24gY29tcGF0aWJpbGl0eQorICAgIGNwbV9jaGVja19pZl9w YWNrYWdlX2FscmVhZHlfYWRkZWQoJHtDUE1fQVJHU19OQU1FfSAiJHtDUE1fQVJHU19WRVJTSU9O fSIpCisgICAgcmV0dXJuKCkKKyAgZW5kaWYoKQorCisgIGlmKE5PVCBDUE1fQVJHU19GT1JDRSkK KyAgICBpZihDUE1fVVNFX0xPQ0FMX1BBQ0tBR0VTIE9SIENQTV9MT0NBTF9QQUNLQUdFU19PTkxZ KQorICAgICAgY3BtX2ZpbmRfcGFja2FnZSgke0NQTV9BUkdTX05BTUV9ICIke0NQTV9BUkdTX1ZF UlNJT059IiAke0NQTV9BUkdTX0ZJTkRfUEFDS0FHRV9BUkdVTUVOVFN9KQorCisgICAgICBpZihD UE1fUEFDS0FHRV9GT1VORCkKKyAgICAgICAgY3BtX2V4cG9ydF92YXJpYWJsZXMoJHtDUE1fQVJH U19OQU1FfSkKKyAgICAgICAgcmV0dXJuKCkKKyAgICAgIGVuZGlmKCkKKworICAgICAgaWYoQ1BN X0xPQ0FMX1BBQ0tBR0VTX09OTFkpCisgICAgICAgIG1lc3NhZ2UoCisgICAgICAgICAgU0VORF9F UlJPUgorICAgICAgICAgICAgIiR7Q1BNX0lOREVOVH0gJHtDUE1fQVJHU19OQU1FfSBub3QgZm91 bmQgdmlhIGZpbmRfcGFja2FnZSgke0NQTV9BUkdTX05BTUV9ICR7Q1BNX0FSR1NfVkVSU0lPTn0p IgorICAgICAgICApCisgICAgICBlbmRpZigpCisgICAgZW5kaWYoKQorICBlbmRpZigpCisKKyAg Q1BNUmVnaXN0ZXJQYWNrYWdlKCIke0NQTV9BUkdTX05BTUV9IiAiJHtDUE1fQVJHU19WRVJTSU9O fSIpCisKKyAgaWYoREVGSU5FRCBDUE1fQVJHU19HSVRfVEFHKQorICAgIHNldChQQUNLQUdFX0lO Rk8gIiR7Q1BNX0FSR1NfR0lUX1RBR30iKQorICBlbHNlaWYoREVGSU5FRCBDUE1fQVJHU19TT1VS Q0VfRElSKQorICAgIHNldChQQUNLQUdFX0lORk8gIiR7Q1BNX0FSR1NfU09VUkNFX0RJUn0iKQor ICBlbHNlKCkKKyAgICBzZXQoUEFDS0FHRV9JTkZPICIke0NQTV9BUkdTX1ZFUlNJT059IikKKyAg ZW5kaWYoKQorCisgIGlmKERFRklORUQgRkVUQ0hDT05URU5UX0JBU0VfRElSKQorICAgICMgcmVz cGVjdCB1c2VyJ3MgRkVUQ0hDT05URU5UX0JBU0VfRElSIGlmIHNldAorICAgIHNldChDUE1fRkVU Q0hDT05URU5UX0JBU0VfRElSICR7RkVUQ0hDT05URU5UX0JBU0VfRElSfSkKKyAgZWxzZSgpCisg ICAgc2V0KENQTV9GRVRDSENPTlRFTlRfQkFTRV9ESVIgJHtDTUFLRV9CSU5BUllfRElSfS9fZGVw cykKKyAgZW5kaWYoKQorCisgIGlmKERFRklORUQgQ1BNX0FSR1NfRE9XTkxPQURfQ09NTUFORCkK KyAgICBsaXN0KEFQUEVORCBDUE1fQVJHU19VTlBBUlNFRF9BUkdVTUVOVFMgRE9XTkxPQURfQ09N TUFORCAke0NQTV9BUkdTX0RPV05MT0FEX0NPTU1BTkR9KQorICBlbHNlaWYoREVGSU5FRCBDUE1f QVJHU19TT1VSQ0VfRElSKQorICAgIGxpc3QoQVBQRU5EIENQTV9BUkdTX1VOUEFSU0VEX0FSR1VN RU5UUyBTT1VSQ0VfRElSICR7Q1BNX0FSR1NfU09VUkNFX0RJUn0pCisgICAgaWYoTk9UIElTX0FC U09MVVRFICR7Q1BNX0FSR1NfU09VUkNFX0RJUn0pCisgICAgICAjIEV4cGFuZCBgQ1BNX0FSR1Nf U09VUkNFX0RJUmAgcmVsYXRpdmUgcGF0aC4gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBFWElT VFMgZG9lc24ndCB3b3JrCisgICAgICAjIGZvciByZWxhdGl2ZSBwYXRocy4KKyAgICAgIGdldF9m aWxlbmFtZV9jb21wb25lbnQoCisgICAgICAgIHNvdXJjZV9kaXJlY3RvcnkgJHtDUE1fQVJHU19T T1VSQ0VfRElSfSBSRUFMUEFUSCBCQVNFX0RJUiAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0K KyAgICAgICkKKyAgICBlbHNlKCkKKyAgICAgIHNldChzb3VyY2VfZGlyZWN0b3J5ICR7Q1BNX0FS R1NfU09VUkNFX0RJUn0pCisgICAgZW5kaWYoKQorICAgIGlmKE5PVCBFWElTVFMgJHtzb3VyY2Vf ZGlyZWN0b3J5fSkKKyAgICAgIHN0cmluZyhUT0xPV0VSICR7Q1BNX0FSR1NfTkFNRX0gbG93ZXJf Y2FzZV9uYW1lKQorICAgICAgIyByZW1vdmUgdGltZXN0YW1wcyBzbyBDTWFrZSB3aWxsIHJlLWRv d25sb2FkIHRoZSBkZXBlbmRlbmN5CisgICAgICBmaWxlKFJFTU9WRV9SRUNVUlNFICIke0NQTV9G RVRDSENPTlRFTlRfQkFTRV9ESVJ9LyR7bG93ZXJfY2FzZV9uYW1lfS1zdWJidWlsZCIpCisgICAg ZW5kaWYoKQorICBlbHNlaWYoQ1BNX1NPVVJDRV9DQUNIRSBBTkQgTk9UIENQTV9BUkdTX05PX0NB Q0hFKQorICAgIHN0cmluZyhUT0xPV0VSICR7Q1BNX0FSR1NfTkFNRX0gbG93ZXJfY2FzZV9uYW1l KQorICAgIHNldChvcmlnaW5fcGFyYW1ldGVycyAke0NQTV9BUkdTX1VOUEFSU0VEX0FSR1VNRU5U U30pCisgICAgbGlzdChTT1JUIG9yaWdpbl9wYXJhbWV0ZXJzKQorICAgIGlmKENQTV9BUkdTX0NV U1RPTV9DQUNIRV9LRVkpCisgICAgICAjIEFwcGxpY2F0aW9uIHNldCBhIGN1c3RvbSB1bmlxdWUg ZGlyZWN0b3J5IG5hbWUKKyAgICAgIHNldChkb3dubG9hZF9kaXJlY3RvcnkgJHtDUE1fU09VUkNF X0NBQ0hFfS8ke2xvd2VyX2Nhc2VfbmFtZX0vJHtDUE1fQVJHU19DVVNUT01fQ0FDSEVfS0VZfSkK KyAgICBlbHNlaWYoQ1BNX1VTRV9OQU1FRF9DQUNIRV9ESVJFQ1RPUklFUykKKyAgICAgIHN0cmlu ZyhTSEExIG9yaWdpbl9oYXNoICIke29yaWdpbl9wYXJhbWV0ZXJzfTtORVdfQ0FDSEVfU1RSVUNU VVJFX1RBRyIpCisgICAgICBzZXQoZG93bmxvYWRfZGlyZWN0b3J5ICR7Q1BNX1NPVVJDRV9DQUNI RX0vJHtsb3dlcl9jYXNlX25hbWV9LyR7b3JpZ2luX2hhc2h9LyR7Q1BNX0FSR1NfTkFNRX0pCisg ICAgZWxzZSgpCisgICAgICBzdHJpbmcoU0hBMSBvcmlnaW5faGFzaCAiJHtvcmlnaW5fcGFyYW1l dGVyc30iKQorICAgICAgc2V0KGRvd25sb2FkX2RpcmVjdG9yeSAke0NQTV9TT1VSQ0VfQ0FDSEV9 LyR7bG93ZXJfY2FzZV9uYW1lfS8ke29yaWdpbl9oYXNofSkKKyAgICBlbmRpZigpCisgICAgIyBF eHBhbmQgYGRvd25sb2FkX2RpcmVjdG9yeWAgcmVsYXRpdmUgcGF0aC4gVGhpcyBpcyBpbXBvcnRh bnQgYmVjYXVzZSBFWElTVFMgZG9lc24ndCB3b3JrIGZvcgorICAgICMgcmVsYXRpdmUgcGF0aHMu CisgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChkb3dubG9hZF9kaXJlY3RvcnkgJHtkb3dubG9h ZF9kaXJlY3Rvcnl9IEFCU09MVVRFKQorICAgIGxpc3QoQVBQRU5EIENQTV9BUkdTX1VOUEFSU0VE X0FSR1VNRU5UUyBTT1VSQ0VfRElSICR7ZG93bmxvYWRfZGlyZWN0b3J5fSkKKworICAgIGlmKENQ TV9TT1VSQ0VfQ0FDSEUpCisgICAgICBmaWxlKExPQ0sgJHtkb3dubG9hZF9kaXJlY3Rvcnl9Ly4u L2NtYWtlLmxvY2spCisgICAgZW5kaWYoKQorCisgICAgaWYoRVhJU1RTICR7ZG93bmxvYWRfZGly ZWN0b3J5fSkKKyAgICAgIGlmKENQTV9TT1VSQ0VfQ0FDSEUpCisgICAgICAgIGZpbGUoTE9DSyAk e2Rvd25sb2FkX2RpcmVjdG9yeX0vLi4vY21ha2UubG9jayBSRUxFQVNFKQorICAgICAgZW5kaWYo KQorCisgICAgICBjcG1fc3RvcmVfZmV0Y2hfcHJvcGVydGllcygKKyAgICAgICAgJHtDUE1fQVJH U19OQU1FfSAiJHtkb3dubG9hZF9kaXJlY3Rvcnl9IgorICAgICAgICAiJHtDUE1fRkVUQ0hDT05U RU5UX0JBU0VfRElSfS8ke2xvd2VyX2Nhc2VfbmFtZX0tYnVpbGQiCisgICAgICApCisgICAgICBj cG1fZ2V0X2ZldGNoX3Byb3BlcnRpZXMoIiR7Q1BNX0FSR1NfTkFNRX0iKQorCisgICAgICBpZihE RUZJTkVEIENQTV9BUkdTX0dJVF9UQUcgQU5EIE5PVCAoUEFUQ0hfQ09NTUFORCBJTl9MSVNUIENQ TV9BUkdTX1VOUEFSU0VEX0FSR1VNRU5UUykpCisgICAgICAgICMgd2FybiBpZiBjYWNoZSBoYXMg YmVlbiBjaGFuZ2VkIHNpbmNlIGNoZWNrb3V0CisgICAgICAgIGNwbV9jaGVja19naXRfd29ya2lu Z19kaXJfaXNfY2xlYW4oJHtkb3dubG9hZF9kaXJlY3Rvcnl9ICR7Q1BNX0FSR1NfR0lUX1RBR30g SVNfQ0xFQU4pCisgICAgICAgIGlmKE5PVCAke0lTX0NMRUFOfSkKKyAgICAgICAgICBtZXNzYWdl KAorICAgICAgICAgICAgV0FSTklORyAiJHtDUE1fSU5ERU5UfSBDYWNoZSBmb3IgJHtDUE1fQVJH U19OQU1FfSAoJHtkb3dubG9hZF9kaXJlY3Rvcnl9KSBpcyBkaXJ0eSIKKyAgICAgICAgICApCisg ICAgICAgIGVuZGlmKCkKKyAgICAgIGVuZGlmKCkKKworICAgICAgY3BtX2FkZF9zdWJkaXJlY3Rv cnkoCisgICAgICAgICIke0NQTV9BUkdTX05BTUV9IgorICAgICAgICAiJHtET1dOTE9BRF9PTkxZ fSIKKyAgICAgICAgIiR7JHtDUE1fQVJHU19OQU1FfV9TT1VSQ0VfRElSfS8ke0NQTV9BUkdTX1NP VVJDRV9TVUJESVJ9IgorICAgICAgICAiJHske0NQTV9BUkdTX05BTUV9X0JJTkFSWV9ESVJ9Igor ICAgICAgICAiJHtDUE1fQVJHU19FWENMVURFX0ZST01fQUxMfSIKKyAgICAgICAgIiR7Q1BNX0FS R1NfU1lTVEVNfSIKKyAgICAgICAgIiR7Q1BNX0FSR1NfT1BUSU9OU30iCisgICAgICApCisgICAg ICBzZXQoUEFDS0FHRV9JTkZPICIke1BBQ0tBR0VfSU5GT30gYXQgJHtkb3dubG9hZF9kaXJlY3Rv cnl9IikKKworICAgICAgIyBBcyB0aGUgc291cmNlIGRpciBpcyBhbHJlYWR5IGNhY2hlZC9wb3B1 bGF0ZWQsIHdlIG92ZXJyaWRlIHRoZSBjYWxsIHRvIEZldGNoQ29udGVudC4KKyAgICAgIHNldChD UE1fU0tJUF9GRVRDSCBUUlVFKQorICAgICAgY3BtX292ZXJyaWRlX2ZldGNoY29udGVudCgKKyAg ICAgICAgIiR7bG93ZXJfY2FzZV9uYW1lfSIgU09VUkNFX0RJUiAiJHske0NQTV9BUkdTX05BTUV9 X1NPVVJDRV9ESVJ9LyR7Q1BNX0FSR1NfU09VUkNFX1NVQkRJUn0iCisgICAgICAgIEJJTkFSWV9E SVIgIiR7JHtDUE1fQVJHU19OQU1FfV9CSU5BUllfRElSfSIKKyAgICAgICkKKworICAgIGVsc2Uo KQorICAgICAgIyBFbmFibGUgc2hhbGxvdyBjbG9uZSB3aGVuIEdJVF9UQUcgaXMgbm90IGEgY29t bWl0IGhhc2guIE91ciBndWVzcyBtYXkgbm90IGJlIGFjY3VyYXRlLCBidXQKKyAgICAgICMgaXQg c2hvdWxkIGd1YXJhbnRlZSBubyBjb21taXQgaGFzaCBnZXQgbWlzLWRldGVjdGVkLgorICAgICAg aWYoTk9UIERFRklORUQgQ1BNX0FSR1NfR0lUX1NIQUxMT1cpCisgICAgICAgIGNwbV9pc19naXRf dGFnX2NvbW1pdF9oYXNoKCIke0NQTV9BUkdTX0dJVF9UQUd9IiBJU19IQVNIKQorICAgICAgICBp ZihOT1QgJHtJU19IQVNIfSkKKyAgICAgICAgICBsaXN0KEFQUEVORCBDUE1fQVJHU19VTlBBUlNF RF9BUkdVTUVOVFMgR0lUX1NIQUxMT1cgVFJVRSkKKyAgICAgICAgZW5kaWYoKQorICAgICAgZW5k aWYoKQorCisgICAgICAjIHJlbW92ZSB0aW1lc3RhbXBzIHNvIENNYWtlIHdpbGwgcmUtZG93bmxv YWQgdGhlIGRlcGVuZGVuY3kKKyAgICAgIGZpbGUoUkVNT1ZFX1JFQ1VSU0UgJHtDUE1fRkVUQ0hD T05URU5UX0JBU0VfRElSfS8ke2xvd2VyX2Nhc2VfbmFtZX0tc3ViYnVpbGQpCisgICAgICBzZXQo UEFDS0FHRV9JTkZPICIke1BBQ0tBR0VfSU5GT30gdG8gJHtkb3dubG9hZF9kaXJlY3Rvcnl9IikK KyAgICBlbmRpZigpCisgIGVuZGlmKCkKKworICBjcG1fY3JlYXRlX21vZHVsZV9maWxlKCR7Q1BN X0FSR1NfTkFNRX0gIkNQTUFkZFBhY2thZ2UoXCIke0FSR059XCIpIikKKworICBpZihDUE1fUEFD S0FHRV9MT0NLX0VOQUJMRUQpCisgICAgaWYoKENQTV9BUkdTX1ZFUlNJT04gQU5EIE5PVCBDUE1f QVJHU19TT1VSQ0VfRElSKSBPUiBDUE1fSU5DTFVERV9BTExfSU5fUEFDS0FHRV9MT0NLKQorICAg ICAgY3BtX2FkZF90b19wYWNrYWdlX2xvY2soJHtDUE1fQVJHU19OQU1FfSAiJHtBUkdOfSIpCisg ICAgZWxzZWlmKENQTV9BUkdTX1NPVVJDRV9ESVIpCisgICAgICBjcG1fYWRkX2NvbW1lbnRfdG9f cGFja2FnZV9sb2NrKCR7Q1BNX0FSR1NfTkFNRX0gImxvY2FsIGRpcmVjdG9yeSIpCisgICAgZWxz ZSgpCisgICAgICBjcG1fYWRkX2NvbW1lbnRfdG9fcGFja2FnZV9sb2NrKCR7Q1BNX0FSR1NfTkFN RX0gIiR7QVJHTn0iKQorICAgIGVuZGlmKCkKKyAgZW5kaWYoKQorCisgIGNwbV9tZXNzYWdlKAor ICAgIFNUQVRVUyAiJHtDUE1fSU5ERU5UfSBBZGRpbmcgcGFja2FnZSAke0NQTV9BUkdTX05BTUV9 QCR7Q1BNX0FSR1NfVkVSU0lPTn0gKCR7UEFDS0FHRV9JTkZPfSkiCisgICkKKworICBpZihOT1Qg Q1BNX1NLSVBfRkVUQ0gpCisgICAgY3BtX2RlY2xhcmVfZmV0Y2goCisgICAgICAiJHtDUE1fQVJH U19OQU1FfSIgIiR7Q1BNX0FSR1NfVkVSU0lPTn0iICIke1BBQ0tBR0VfSU5GT30iICIke0NQTV9B UkdTX1VOUEFSU0VEX0FSR1VNRU5UU30iCisgICAgKQorICAgIGNwbV9mZXRjaF9wYWNrYWdlKCIk e0NQTV9BUkdTX05BTUV9IiBwb3B1bGF0ZWQpCisgICAgaWYoQ1BNX1NPVVJDRV9DQUNIRSBBTkQg ZG93bmxvYWRfZGlyZWN0b3J5KQorICAgICAgZmlsZShMT0NLICR7ZG93bmxvYWRfZGlyZWN0b3J5 fS8uLi9jbWFrZS5sb2NrIFJFTEVBU0UpCisgICAgZW5kaWYoKQorICAgIGlmKCR7cG9wdWxhdGVk fSkKKyAgICAgIGNwbV9hZGRfc3ViZGlyZWN0b3J5KAorICAgICAgICAiJHtDUE1fQVJHU19OQU1F fSIKKyAgICAgICAgIiR7RE9XTkxPQURfT05MWX0iCisgICAgICAgICIkeyR7Q1BNX0FSR1NfTkFN RX1fU09VUkNFX0RJUn0vJHtDUE1fQVJHU19TT1VSQ0VfU1VCRElSfSIKKyAgICAgICAgIiR7JHtD UE1fQVJHU19OQU1FfV9CSU5BUllfRElSfSIKKyAgICAgICAgIiR7Q1BNX0FSR1NfRVhDTFVERV9G Uk9NX0FMTH0iCisgICAgICAgICIke0NQTV9BUkdTX1NZU1RFTX0iCisgICAgICAgICIke0NQTV9B UkdTX09QVElPTlN9IgorICAgICAgKQorICAgIGVuZGlmKCkKKyAgICBjcG1fZ2V0X2ZldGNoX3By b3BlcnRpZXMoIiR7Q1BNX0FSR1NfTkFNRX0iKQorICBlbmRpZigpCisKKyAgc2V0KCR7Q1BNX0FS R1NfTkFNRX1fQURERUQgWUVTKQorICBjcG1fZXhwb3J0X3ZhcmlhYmxlcygiJHtDUE1fQVJHU19O QU1FfSIpCitlbmRmdW5jdGlvbigpCisKKyMgRmV0Y2ggYSBwcmV2aW91c2x5IGRlY2xhcmVkIHBh Y2thZ2UKK21hY3JvKENQTUdldFBhY2thZ2UgTmFtZSkKKyAgaWYoREVGSU5FRCAiQ1BNX0RFQ0xB UkFUSU9OXyR7TmFtZX0iKQorICAgIENQTUFkZFBhY2thZ2UoTkFNRSAke05hbWV9KQorICBlbHNl KCkKKyAgICBtZXNzYWdlKFNFTkRfRVJST1IgIiR7Q1BNX0lOREVOVH0gQ2Fubm90IHJldHJpZXZl IHBhY2thZ2UgJHtOYW1lfTogbm8gZGVjbGFyYXRpb24gYXZhaWxhYmxlIikKKyAgZW5kaWYoKQor ZW5kbWFjcm8oKQorCisjIGV4cG9ydCB2YXJpYWJsZXMgYXZhaWxhYmxlIHRvIHRoZSBjYWxsZXIg dG8gdGhlIHBhcmVudCBzY29wZSBleHBlY3RzICR7Q1BNX0FSR1NfTkFNRX0gdG8gYmUgc2V0Citt YWNybyhjcG1fZXhwb3J0X3ZhcmlhYmxlcyBuYW1lKQorICBzZXQoJHtuYW1lfV9TT1VSQ0VfRElS CisgICAgICAiJHske25hbWV9X1NPVVJDRV9ESVJ9IgorICAgICAgUEFSRU5UX1NDT1BFCisgICkK KyAgc2V0KCR7bmFtZX1fQklOQVJZX0RJUgorICAgICAgIiR7JHtuYW1lfV9CSU5BUllfRElSfSIK KyAgICAgIFBBUkVOVF9TQ09QRQorICApCisgIHNldCgke25hbWV9X0FEREVECisgICAgICAiJHsk e25hbWV9X0FEREVEfSIKKyAgICAgIFBBUkVOVF9TQ09QRQorICApCisgIHNldChDUE1fTEFTVF9Q QUNLQUdFX05BTUUKKyAgICAgICIke25hbWV9IgorICAgICAgUEFSRU5UX1NDT1BFCisgICkKK2Vu ZG1hY3JvKCkKKworIyBkZWNsYXJlcyBhIHBhY2thZ2UsIHNvIHRoYXQgYW55IGNhbGwgdG8gQ1BN QWRkUGFja2FnZSBmb3IgdGhlIHBhY2thZ2UgbmFtZSB3aWxsIHVzZSB0aGVzZQorIyBhcmd1bWVu dHMgaW5zdGVhZC4gUHJldmlvdXMgZGVjbGFyYXRpb25zIHdpbGwgbm90IGJlIG92ZXJyaWRkZW4u CittYWNybyhDUE1EZWNsYXJlUGFja2FnZSBOYW1lKQorICBpZihOT1QgREVGSU5FRCAiQ1BNX0RF Q0xBUkFUSU9OXyR7TmFtZX0iKQorICAgIHNldCgiQ1BNX0RFQ0xBUkFUSU9OXyR7TmFtZX0iICIk e0FSR059IikKKyAgZW5kaWYoKQorZW5kbWFjcm8oKQorCitmdW5jdGlvbihjcG1fYWRkX3RvX3Bh Y2thZ2VfbG9jayBOYW1lKQorICBpZihOT1QgQ1BNX0RPTlRfQ1JFQVRFX1BBQ0tBR0VfTE9DSykK KyAgICBjcG1fcHJldHRpZnlfcGFja2FnZV9hcmd1bWVudHMoUFJFVFRZX0FSR04gZmFsc2UgJHtB UkdOfSkKKyAgICBmaWxlKEFQUEVORCAke0NQTV9QQUNLQUdFX0xPQ0tfRklMRX0gIiMgJHtOYW1l fVxuQ1BNRGVjbGFyZVBhY2thZ2UoJHtOYW1lfVxuJHtQUkVUVFlfQVJHTn0pXG4iKQorICBlbmRp ZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uKGNwbV9hZGRfY29tbWVudF90b19wYWNrYWdl X2xvY2sgTmFtZSkKKyAgaWYoTk9UIENQTV9ET05UX0NSRUFURV9QQUNLQUdFX0xPQ0spCisgICAg Y3BtX3ByZXR0aWZ5X3BhY2thZ2VfYXJndW1lbnRzKFBSRVRUWV9BUkdOIHRydWUgJHtBUkdOfSkK KyAgICBmaWxlKEFQUEVORCAke0NQTV9QQUNLQUdFX0xPQ0tfRklMRX0KKyAgICAgICAgICIjICR7 TmFtZX0gKHVudmVyc2lvbmVkKVxuIyBDUE1EZWNsYXJlUGFja2FnZSgke05hbWV9XG4ke1BSRVRU WV9BUkdOfSMpXG4iCisgICAgKQorICBlbmRpZigpCitlbmRmdW5jdGlvbigpCisKKyMgaW5jbHVk ZXMgdGhlIHBhY2thZ2UgbG9jayBmaWxlIGlmIGl0IGV4aXN0cyBhbmQgY3JlYXRlcyBhIHRhcmdl dCBgY3BtLXVwZGF0ZS1wYWNrYWdlLWxvY2tgIHRvCisjIHVwZGF0ZSBpdAorbWFjcm8oQ1BNVXNl UGFja2FnZUxvY2sgZmlsZSkKKyAgaWYoTk9UIENQTV9ET05UX0NSRUFURV9QQUNLQUdFX0xPQ0sp CisgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChDUE1fQUJTT0xVVEVfUEFDS0FHRV9MT0NLX1BB VEggJHtmaWxlfSBBQlNPTFVURSkKKyAgICBpZihFWElTVFMgJHtDUE1fQUJTT0xVVEVfUEFDS0FH RV9MT0NLX1BBVEh9KQorICAgICAgaW5jbHVkZSgke0NQTV9BQlNPTFVURV9QQUNLQUdFX0xPQ0tf UEFUSH0pCisgICAgZW5kaWYoKQorICAgIGlmKE5PVCBUQVJHRVQgY3BtLXVwZGF0ZS1wYWNrYWdl LWxvY2spCisgICAgICBhZGRfY3VzdG9tX3RhcmdldCgKKyAgICAgICAgY3BtLXVwZGF0ZS1wYWNr YWdlLWxvY2sgQ09NTUFORCAke0NNQUtFX0NPTU1BTkR9IC1FIGNvcHkgJHtDUE1fUEFDS0FHRV9M T0NLX0ZJTEV9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtDUE1f QUJTT0xVVEVfUEFDS0FHRV9MT0NLX1BBVEh9CisgICAgICApCisgICAgZW5kaWYoKQorICAgIHNl dChDUE1fUEFDS0FHRV9MT0NLX0VOQUJMRUQgdHJ1ZSkKKyAgZW5kaWYoKQorZW5kbWFjcm8oKQor CisjIHJlZ2lzdGVycyBhIHBhY2thZ2UgdGhhdCBoYXMgYmVlbiBhZGRlZCB0byBDUE0KK2Z1bmN0 aW9uKENQTVJlZ2lzdGVyUGFja2FnZSBQQUNLQUdFIFZFUlNJT04pCisgIGxpc3QoQVBQRU5EIENQ TV9QQUNLQUdFUyAke1BBQ0tBR0V9KQorICBzZXQoQ1BNX1BBQ0tBR0VTCisgICAgICAke0NQTV9Q QUNLQUdFU30KKyAgICAgIENBQ0hFIElOVEVSTkFMICIiCisgICkKKyAgc2V0KCJDUE1fUEFDS0FH RV8ke1BBQ0tBR0V9X1ZFUlNJT04iCisgICAgICAke1ZFUlNJT059CisgICAgICBDQUNIRSBJTlRF Uk5BTCAiIgorICApCitlbmRmdW5jdGlvbigpCisKKyMgcmV0cmlldmUgdGhlIGN1cnJlbnQgdmVy c2lvbiBvZiB0aGUgcGFja2FnZSB0byAke09VVFBVVH0KK2Z1bmN0aW9uKENQTUdldFBhY2thZ2VW ZXJzaW9uIFBBQ0tBR0UgT1VUUFVUKQorICBzZXQoJHtPVVRQVVR9CisgICAgICAiJHtDUE1fUEFD S0FHRV8ke1BBQ0tBR0V9X1ZFUlNJT059IgorICAgICAgUEFSRU5UX1NDT1BFCisgICkKK2VuZGZ1 bmN0aW9uKCkKKworIyBkZWNsYXJlcyBhIHBhY2thZ2UgaW4gRmV0Y2hDb250ZW50X0RlY2xhcmUK K2Z1bmN0aW9uKGNwbV9kZWNsYXJlX2ZldGNoIFBBQ0tBR0UgVkVSU0lPTiBJTkZPKQorICBpZigk e0NQTV9EUllfUlVOfSkKKyAgICBjcG1fbWVzc2FnZShTVEFUVVMgIiR7Q1BNX0lOREVOVH0gUGFj a2FnZSBub3QgZGVjbGFyZWQgKGRyeSBydW4pIikKKyAgICByZXR1cm4oKQorICBlbmRpZigpCisK KyAgRmV0Y2hDb250ZW50X0RlY2xhcmUoJHtQQUNLQUdFfSAke0FSR059KQorZW5kZnVuY3Rpb24o KQorCisjIHJldHVybnMgcHJvcGVydGllcyBmb3IgYSBwYWNrYWdlIHByZXZpb3VzbHkgZGVmaW5l ZCBieSBjcG1fZGVjbGFyZV9mZXRjaAorZnVuY3Rpb24oY3BtX2dldF9mZXRjaF9wcm9wZXJ0aWVz IFBBQ0tBR0UpCisgIGlmKCR7Q1BNX0RSWV9SVU59KQorICAgIHJldHVybigpCisgIGVuZGlmKCkK KworICBzZXQoJHtQQUNLQUdFfV9TT1VSQ0VfRElSCisgICAgICAiJHtDUE1fUEFDS0FHRV8ke1BB Q0tBR0V9X1NPVVJDRV9ESVJ9IgorICAgICAgUEFSRU5UX1NDT1BFCisgICkKKyAgc2V0KCR7UEFD S0FHRX1fQklOQVJZX0RJUgorICAgICAgIiR7Q1BNX1BBQ0tBR0VfJHtQQUNLQUdFfV9CSU5BUllf RElSfSIKKyAgICAgIFBBUkVOVF9TQ09QRQorICApCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9u KGNwbV9zdG9yZV9mZXRjaF9wcm9wZXJ0aWVzIFBBQ0tBR0Ugc291cmNlX2RpciBiaW5hcnlfZGly KQorICBpZigke0NQTV9EUllfUlVOfSkKKyAgICByZXR1cm4oKQorICBlbmRpZigpCisKKyAgc2V0 KENQTV9QQUNLQUdFXyR7UEFDS0FHRX1fU09VUkNFX0RJUgorICAgICAgIiR7c291cmNlX2Rpcn0i CisgICAgICBDQUNIRSBJTlRFUk5BTCAiIgorICApCisgIHNldChDUE1fUEFDS0FHRV8ke1BBQ0tB R0V9X0JJTkFSWV9ESVIKKyAgICAgICIke2JpbmFyeV9kaXJ9IgorICAgICAgQ0FDSEUgSU5URVJO QUwgIiIKKyAgKQorZW5kZnVuY3Rpb24oKQorCisjIGFkZHMgYSBwYWNrYWdlIGFzIGEgc3ViZGly ZWN0b3J5IGlmIHZpYWJsZSwgYWNjb3JkaW5nIHRvIHByb3ZpZGVkIG9wdGlvbnMKK2Z1bmN0aW9u KAorICBjcG1fYWRkX3N1YmRpcmVjdG9yeQorICBQQUNLQUdFCisgIERPV05MT0FEX09OTFkKKyAg U09VUkNFX0RJUgorICBCSU5BUllfRElSCisgIEVYQ0xVREUKKyAgU1lTVEVNCisgIE9QVElPTlMK KykKKworICBpZihOT1QgRE9XTkxPQURfT05MWSBBTkQgRVhJU1RTICR7U09VUkNFX0RJUn0vQ01h a2VMaXN0cy50eHQpCisgICAgc2V0KGFkZFN1YmRpcmVjdG9yeUV4dHJhQXJncyAiIikKKyAgICBp ZihFWENMVURFKQorICAgICAgbGlzdChBUFBFTkQgYWRkU3ViZGlyZWN0b3J5RXh0cmFBcmdzIEVY Q0xVREVfRlJPTV9BTEwpCisgICAgZW5kaWYoKQorICAgIGlmKCIke1NZU1RFTX0iIEFORCAiJHtD TUFLRV9WRVJTSU9OfSIgVkVSU0lPTl9HUkVBVEVSX0VRVUFMICIzLjI1IikKKyAgICAgICMgaHR0 cHM6Ly9jbWFrZS5vcmcvY21ha2UvaGVscC9sYXRlc3QvcHJvcF9kaXIvU1lTVEVNLmh0bWwjcHJv cF9kaXI6U1lTVEVNCisgICAgICBsaXN0KEFQUEVORCBhZGRTdWJkaXJlY3RvcnlFeHRyYUFyZ3Mg U1lTVEVNKQorICAgIGVuZGlmKCkKKyAgICBpZihPUFRJT05TKQorICAgICAgZm9yZWFjaChPUFRJ T04gJHtPUFRJT05TfSkKKyAgICAgICAgY3BtX3BhcnNlX29wdGlvbigiJHtPUFRJT059IikKKyAg ICAgICAgc2V0KCR7T1BUSU9OX0tFWX0gIiR7T1BUSU9OX1ZBTFVFfSIpCisgICAgICBlbmRmb3Jl YWNoKCkKKyAgICBlbmRpZigpCisgICAgc2V0KENQTV9PTERfSU5ERU5UICIke0NQTV9JTkRFTlR9 IikKKyAgICBzZXQoQ1BNX0lOREVOVCAiJHtDUE1fSU5ERU5UfSAke1BBQ0tBR0V9OiIpCisgICAg YWRkX3N1YmRpcmVjdG9yeSgke1NPVVJDRV9ESVJ9ICR7QklOQVJZX0RJUn0gJHthZGRTdWJkaXJl Y3RvcnlFeHRyYUFyZ3N9KQorICAgIHNldChDUE1fSU5ERU5UICIke0NQTV9PTERfSU5ERU5UfSIp CisgIGVuZGlmKCkKK2VuZGZ1bmN0aW9uKCkKKworIyBkb3dubG9hZHMgYSBwcmV2aW91c2x5IGRl Y2xhcmVkIHBhY2thZ2UgdmlhIEZldGNoQ29udGVudCBhbmQgZXhwb3J0cyB0aGUgdmFyaWFibGVz CisjIGAke1BBQ0tBR0V9X1NPVVJDRV9ESVJgIGFuZCBgJHtQQUNLQUdFfV9CSU5BUllfRElSYCB0 byB0aGUgcGFyZW50IHNjb3BlCitmdW5jdGlvbihjcG1fZmV0Y2hfcGFja2FnZSBQQUNLQUdFIHBv cHVsYXRlZCkKKyAgc2V0KCR7cG9wdWxhdGVkfQorICAgICAgRkFMU0UKKyAgICAgIFBBUkVOVF9T Q09QRQorICApCisgIGlmKCR7Q1BNX0RSWV9SVU59KQorICAgIGNwbV9tZXNzYWdlKFNUQVRVUyAi JHtDUE1fSU5ERU5UfSBQYWNrYWdlICR7UEFDS0FHRX0gbm90IGZldGNoZWQgKGRyeSBydW4pIikK KyAgICByZXR1cm4oKQorICBlbmRpZigpCisKKyAgRmV0Y2hDb250ZW50X0dldFByb3BlcnRpZXMo JHtQQUNLQUdFfSkKKworICBzdHJpbmcoVE9MT1dFUiAiJHtQQUNLQUdFfSIgbG93ZXJfY2FzZV9u YW1lKQorCisgIGlmKE5PVCAke2xvd2VyX2Nhc2VfbmFtZX1fUE9QVUxBVEVEKQorICAgIEZldGNo Q29udGVudF9Qb3B1bGF0ZSgke1BBQ0tBR0V9KQorICAgIHNldCgke3BvcHVsYXRlZH0KKyAgICAg ICAgVFJVRQorICAgICAgICBQQVJFTlRfU0NPUEUKKyAgICApCisgIGVuZGlmKCkKKworICBjcG1f c3RvcmVfZmV0Y2hfcHJvcGVydGllcygKKyAgICAke0NQTV9BUkdTX05BTUV9ICR7JHtsb3dlcl9j YXNlX25hbWV9X1NPVVJDRV9ESVJ9ICR7JHtsb3dlcl9jYXNlX25hbWV9X0JJTkFSWV9ESVJ9Cisg ICkKKworICBzZXQoJHtQQUNLQUdFfV9TT1VSQ0VfRElSCisgICAgICAkeyR7bG93ZXJfY2FzZV9u YW1lfV9TT1VSQ0VfRElSfQorICAgICAgUEFSRU5UX1NDT1BFCisgICkKKyAgc2V0KCR7UEFDS0FH RX1fQklOQVJZX0RJUgorICAgICAgJHske2xvd2VyX2Nhc2VfbmFtZX1fQklOQVJZX0RJUn0KKyAg ICAgIFBBUkVOVF9TQ09QRQorICApCitlbmRmdW5jdGlvbigpCisKKyMgc3BsaXRzIGEgcGFja2Fn ZSBvcHRpb24KK2Z1bmN0aW9uKGNwbV9wYXJzZV9vcHRpb24gT1BUSU9OKQorICBzdHJpbmcoUkVH RVggTUFUQ0ggIl5bXiBdKyIgT1BUSU9OX0tFWSAiJHtPUFRJT059IikKKyAgc3RyaW5nKExFTkdU SCAiJHtPUFRJT059IiBPUFRJT05fTEVOR1RIKQorICBzdHJpbmcoTEVOR1RIICIke09QVElPTl9L RVl9IiBPUFRJT05fS0VZX0xFTkdUSCkKKyAgaWYoT1BUSU9OX0tFWV9MRU5HVEggU1RSRVFVQUwg T1BUSU9OX0xFTkdUSCkKKyAgICAjIG5vIHZhbHVlIGZvciBrZXkgcHJvdmlkZWQsIGFzc3VtZSB1 c2VyIHdhbnRzIHRvIHNldCBvcHRpb24gdG8gIk9OIgorICAgIHNldChPUFRJT05fVkFMVUUgIk9O IikKKyAgZWxzZSgpCisgICAgbWF0aChFWFBSIE9QVElPTl9LRVlfTEVOR1RIICIke09QVElPTl9L RVlfTEVOR1RIfSsxIikKKyAgICBzdHJpbmcoU1VCU1RSSU5HICIke09QVElPTn0iICIke09QVElP Tl9LRVlfTEVOR1RIfSIgIi0xIiBPUFRJT05fVkFMVUUpCisgIGVuZGlmKCkKKyAgc2V0KE9QVElP Tl9LRVkKKyAgICAgICIke09QVElPTl9LRVl9IgorICAgICAgUEFSRU5UX1NDT1BFCisgICkKKyAg c2V0KE9QVElPTl9WQUxVRQorICAgICAgIiR7T1BUSU9OX1ZBTFVFfSIKKyAgICAgIFBBUkVOVF9T Q09QRQorICApCitlbmRmdW5jdGlvbigpCisKKyMgZ3Vlc3NlcyB0aGUgcGFja2FnZSB2ZXJzaW9u IGZyb20gYSBnaXQgdGFnCitmdW5jdGlvbihjcG1fZ2V0X3ZlcnNpb25fZnJvbV9naXRfdGFnIEdJ VF9UQUcgUkVTVUxUKQorICBzdHJpbmcoTEVOR1RIICR7R0lUX1RBR30gbGVuZ3RoKQorICBpZihs ZW5ndGggRVFVQUwgNDApCisgICAgIyBHSVRfVEFHIGlzIHByb2JhYmx5IGEgZ2l0IGhhc2gKKyAg ICBzZXQoJHtSRVNVTFR9CisgICAgICAgIDAKKyAgICAgICAgUEFSRU5UX1NDT1BFCisgICAgKQor ICBlbHNlKCkKKyAgICBzdHJpbmcoUkVHRVggTUFUQ0ggInY/KFswMTIzNDU2Nzg5Ll0qKS4qIiBf ICR7R0lUX1RBR30pCisgICAgc2V0KCR7UkVTVUxUfQorICAgICAgICAke0NNQUtFX01BVENIXzF9 CisgICAgICAgIFBBUkVOVF9TQ09QRQorICAgICkKKyAgZW5kaWYoKQorZW5kZnVuY3Rpb24oKQor CisjIGd1ZXNzZXMgaWYgdGhlIGdpdCB0YWcgaXMgYSBjb21taXQgaGFzaCBvciBhbiBhY3R1YWwg dGFnIG9yIGEgYnJhbmNoIG5hbWUuCitmdW5jdGlvbihjcG1faXNfZ2l0X3RhZ19jb21taXRfaGFz aCBHSVRfVEFHIFJFU1VMVCkKKyAgc3RyaW5nKExFTkdUSCAiJHtHSVRfVEFHfSIgbGVuZ3RoKQor ICAjIGZ1bGwgaGFzaCBoYXMgNDAgY2hhcmFjdGVycywgYW5kIHNob3J0IGhhc2ggaGFzIGF0IGxl YXN0IDcgY2hhcmFjdGVycy4KKyAgaWYobGVuZ3RoIExFU1MgNyBPUiBsZW5ndGggR1JFQVRFUiA0 MCkKKyAgICBzZXQoJHtSRVNVTFR9CisgICAgICAgIDAKKyAgICAgICAgUEFSRU5UX1NDT1BFCisg ICAgKQorICBlbHNlKCkKKyAgICBpZigke0dJVF9UQUd9IE1BVENIRVMgIl5bYS1mQS1GMC05XSsk IikKKyAgICAgIHNldCgke1JFU1VMVH0KKyAgICAgICAgICAxCisgICAgICAgICAgUEFSRU5UX1ND T1BFCisgICAgICApCisgICAgZWxzZSgpCisgICAgICBzZXQoJHtSRVNVTFR9CisgICAgICAgICAg MAorICAgICAgICAgIFBBUkVOVF9TQ09QRQorICAgICAgKQorICAgIGVuZGlmKCkKKyAgZW5kaWYo KQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbihjcG1fcHJldHRpZnlfcGFja2FnZV9hcmd1bWVu dHMgT1VUX1ZBUiBJU19JTl9DT01NRU5UKQorICBzZXQob25lVmFsdWVBcmdzCisgICAgICBOQU1F CisgICAgICBGT1JDRQorICAgICAgVkVSU0lPTgorICAgICAgR0lUX1RBRworICAgICAgRE9XTkxP QURfT05MWQorICAgICAgR0lUSFVCX1JFUE9TSVRPUlkKKyAgICAgIEdJVExBQl9SRVBPU0lUT1JZ CisgICAgICBCSVRCVUNLRVRfUkVQT1NJVE9SWQorICAgICAgR0lUX1JFUE9TSVRPUlkKKyAgICAg IFNPVVJDRV9ESVIKKyAgICAgIEZJTkRfUEFDS0FHRV9BUkdVTUVOVFMKKyAgICAgIE5PX0NBQ0hF CisgICAgICBTWVNURU0KKyAgICAgIEdJVF9TSEFMTE9XCisgICAgICBFWENMVURFX0ZST01fQUxM CisgICAgICBTT1VSQ0VfU1VCRElSCisgICkKKyAgc2V0KG11bHRpVmFsdWVBcmdzIFVSTCBPUFRJ T05TIERPV05MT0FEX0NPTU1BTkQpCisgIGNtYWtlX3BhcnNlX2FyZ3VtZW50cyhDUE1fQVJHUyAi IiAiJHtvbmVWYWx1ZUFyZ3N9IiAiJHttdWx0aVZhbHVlQXJnc30iICR7QVJHTn0pCisKKyAgZm9y ZWFjaChvbmVBcmdOYW1lICR7b25lVmFsdWVBcmdzfSkKKyAgICBpZihERUZJTkVEIENQTV9BUkdT XyR7b25lQXJnTmFtZX0pCisgICAgICBpZigke0lTX0lOX0NPTU1FTlR9KQorICAgICAgICBzdHJp bmcoQVBQRU5EIFBSRVRUWV9PVVRfVkFSICIjIikKKyAgICAgIGVuZGlmKCkKKyAgICAgIGlmKCR7 b25lQXJnTmFtZX0gU1RSRVFVQUwgIlNPVVJDRV9ESVIiKQorICAgICAgICBzdHJpbmcoUkVQTEFD RSAke0NNQUtFX1NPVVJDRV9ESVJ9ICJcJHtDTUFLRV9TT1VSQ0VfRElSfSIgQ1BNX0FSR1NfJHtv bmVBcmdOYW1lfQorICAgICAgICAgICAgICAgICAgICAgICAke0NQTV9BUkdTXyR7b25lQXJnTmFt ZX19CisgICAgICAgICkKKyAgICAgIGVuZGlmKCkKKyAgICAgIHN0cmluZyhBUFBFTkQgUFJFVFRZ X09VVF9WQVIgIiAgJHtvbmVBcmdOYW1lfSAke0NQTV9BUkdTXyR7b25lQXJnTmFtZX19XG4iKQor ICAgIGVuZGlmKCkKKyAgZW5kZm9yZWFjaCgpCisgIGZvcmVhY2gobXVsdGlBcmdOYW1lICR7bXVs dGlWYWx1ZUFyZ3N9KQorICAgIGlmKERFRklORUQgQ1BNX0FSR1NfJHttdWx0aUFyZ05hbWV9KQor ICAgICAgaWYoJHtJU19JTl9DT01NRU5UfSkKKyAgICAgICAgc3RyaW5nKEFQUEVORCBQUkVUVFlf T1VUX1ZBUiAiIyIpCisgICAgICBlbmRpZigpCisgICAgICBzdHJpbmcoQVBQRU5EIFBSRVRUWV9P VVRfVkFSICIgICR7bXVsdGlBcmdOYW1lfVxuIikKKyAgICAgIGZvcmVhY2goc2luZ2xlT3B0aW9u ICR7Q1BNX0FSR1NfJHttdWx0aUFyZ05hbWV9fSkKKyAgICAgICAgaWYoJHtJU19JTl9DT01NRU5U fSkKKyAgICAgICAgICBzdHJpbmcoQVBQRU5EIFBSRVRUWV9PVVRfVkFSICIjIikKKyAgICAgICAg ZW5kaWYoKQorICAgICAgICBzdHJpbmcoQVBQRU5EIFBSRVRUWV9PVVRfVkFSICIgICAgXCIke3Np bmdsZU9wdGlvbn1cIlxuIikKKyAgICAgIGVuZGZvcmVhY2goKQorICAgIGVuZGlmKCkKKyAgZW5k Zm9yZWFjaCgpCisKKyAgaWYoTk9UICIke0NQTV9BUkdTX1VOUEFSU0VEX0FSR1VNRU5UU30iIFNU UkVRVUFMICIiKQorICAgIGlmKCR7SVNfSU5fQ09NTUVOVH0pCisgICAgICBzdHJpbmcoQVBQRU5E IFBSRVRUWV9PVVRfVkFSICIjIikKKyAgICBlbmRpZigpCisgICAgc3RyaW5nKEFQUEVORCBQUkVU VFlfT1VUX1ZBUiAiICIpCisgICAgZm9yZWFjaChDUE1fQVJHU19VTlBBUlNFRF9BUkdVTUVOVCAk e0NQTV9BUkdTX1VOUEFSU0VEX0FSR1VNRU5UU30pCisgICAgICBzdHJpbmcoQVBQRU5EIFBSRVRU WV9PVVRfVkFSICIgJHtDUE1fQVJHU19VTlBBUlNFRF9BUkdVTUVOVH0iKQorICAgIGVuZGZvcmVh Y2goKQorICAgIHN0cmluZyhBUFBFTkQgUFJFVFRZX09VVF9WQVIgIlxuIikKKyAgZW5kaWYoKQor CisgIHNldCgke09VVF9WQVJ9CisgICAgICAke1BSRVRUWV9PVVRfVkFSfQorICAgICAgUEFSRU5U X1NDT1BFCisgICkKKworZW5kZnVuY3Rpb24oKQoKZGlmZiAtLWdpdCBhL2FyYm9yLTAuOS4wLXB5 YmluZDExLTMuMC5wYXRjaCBiL2FyYm9yLTAuOS4wLXB5YmluZDExLTMuMC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmZjNThkYi4uMDAwMDAwMAotLS0gYS9hcmJvci0wLjku MC1weWJpbmQxMS0zLjAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1kaWZm IC1OYXVyIGFyYm9yLTAuOS4wLW9yaWdpbmFsL3B5dGhvbi9weWFyYi5ocHAgYXJib3ItMC45LjAv cHl0aG9uL3B5YXJiLmhwcAotLS0tIGFyYm9yLTAuOS4wLW9yaWdpbmFsL3B5dGhvbi9weWFyYi5o cHAJMjAyMy0wOC0xMCAxMDo0NzozOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBhcmJvci0wLjkuMC9w eXRob24vcHlhcmIuaHBwCTIwMjUtMTEtMDMgMDg6MjQ6MDAuMDkzMjU2MzExICswMDAwCi1AQCAt MTMsMTggKzEzLDYgQEAKLSAKLSAjaW5jbHVkZSA8cHliaW5kMTEvcHliaW5kMTEuaD4KLSAKLS0v LyBWZXJzaW9uIGNoZWNrCi0tI2RlZmluZSBta190b2soeCkgI3gKLS0jZGVmaW5lIG1rX3ZlcihN LCBtLCBwKSBta190b2soTSkgIi4iIG1rX3RvayhtKSAiLiIgbWtfdG9rKHApCi0tI2RlZmluZSBQ QjExX0VSUihNLCBtLCBwKSAiUmVxdWlyZWQgdmVyc2lvbiBvZiBweWJpbmQxMSBpcyAyLjguMSA8 PSB2ZXJzaW9uIDwgMy4wLjAgRm91bmQgIiBta192ZXIoTSwgbSwgcCkKLS1zdGF0aWNfYXNzZXJ0 KChQWUJJTkQxMV9WRVJTSU9OX0hFWCA+PSAweDAyMDgwMTAwKQotLSAgICAgICAgICAgICAgJiYK LS0gICAgICAgICAgICAgIChQWUJJTkQxMV9WRVJTSU9OX0hFWCAgPCAweDAzMDAwMDAwKSwKLS0g ICAgICAgICAgICAgIFBCMTFfRVJSKFBZQklORDExX1ZFUlNJT05fTUFKT1IsIFBZQklORDExX1ZF UlNJT05fTUlOT1IsIFBZQklORDExX1ZFUlNJT05fUEFUQ0gpKTsKLS0jdW5kZWYgUEIxMV9FUlIK LS0jdW5kZWYgbWtfdmVyCi0tI3VuZGVmIG1rX3RvawotLQotIG5hbWVzcGFjZSBweWFyYiB7Ci0g Ci0gLy8gU2FtcGxlIHJlY29yZGVyIG9iamVjdCBpbnRlcmZhY2UuCgpkaWZmIC0tZ2l0IGEvYXJi b3Iuc3BlYyBiL2FyYm9yLnNwZWMKaW5kZXggOGU3NmRlNC4uYWNkOTYxYyAxMDA2NDQKLS0tIGEv YXJib3Iuc3BlYworKysgYi9hcmJvci5zcGVjCkBAIC0yOCw3ICsyOCw3IEBAIERvY3VtZW50YXRp b24gaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vYXJib3IucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0 LwogJWdsb2JhbCBmb3JnZXVybCAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcmJvci1z aW0vYXJib3IKIAogTmFtZTogICAgICAgICAgIGFyYm9yCi1WZXJzaW9uOiAgICAgICAgMC45LjAK K1ZlcnNpb246ICAgICAgICAwLjEyLjIKIFJlbGVhc2U6ICAgICAgICAlYXV0b3JlbGVhc2UKIFN1 bW1hcnk6ICAgICAgICBNdWx0aS1jb21wYXJ0bWVudCBuZXVyYWwgbmV0d29yayBzaW11bGF0aW9u IGxpYnJhcnkKIApAQCAtMzYsMjIgKzM2LDM4IEBAIFN1bW1hcnk6ICAgICAgICBNdWx0aS1jb21w YXJ0bWVudCBuZXVyYWwgbmV0d29yayBzaW11bGF0aW9uIGxpYnJhcnkKIAogVVJMOiAgICAgICAg ICAgICVmb3JnZXVybAogU291cmNlMDogICAgICAgICVmb3JnZXNvdXJjZQotIyBzY3JpcHQgdG8g cnVuIGV4YW1wbGVzCi1Tb3VyY2UxOiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRl bnQuY29tL2FyYm9yLXNpbS9hcmJvci9tYXN0ZXIvc2NyaXB0cy9ydW5fcHl0aG9uX2V4YW1wbGVz LnNoCi1Tb3VyY2UyOiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fy Ym9yLXNpbS9hcmJvci9tYXN0ZXIvc2NyaXB0cy9ydW5fY3BwX2V4YW1wbGVzLnNoCi1MaWNlbnNl OiAgICAgICAgQlNELTMtQ2xhdXNlCisKKyMgVGhlIENQTS5jbWFrZSBzaGlwcGVkIGluIHRoZSB1 cHN0cmVhbSB0YXJiYWxsIGlzIG9ubHkgYSBib290c3RyYXAgdGhhdAorIyBkb3dubG9hZHMgdGhl IGZ1bGwgQ1BNLmNtYWtlIGZyb20gR2l0SHViIGF0IGNvbmZpZ3VyZSB0aW1lLCB3aGljaCBmYWls cyBpbgorIyB0aGUgb2ZmbGluZSBidWlsZHJvb3QuIFZlbmRvciB0aGUgZnVsbCBDUE0uY21ha2Ug djAuMzkuMCBpbnN0ZWFkLgorIyBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3Bt LWNtYWtlL0NQTS5jbWFrZS9yZWZzL3RhZ3MvdjAuMzkuMC9jbWFrZS9DUE0uY21ha2UKK1NvdXJj ZTM6ICAgICAgICBDUE1fMC4zOS4wLmNtYWtlCisjIHRpbnlvcHQgYW5kIHVub3JkZXJlZF9kZW5z ZSBhcmUgaGVhZGVyLW9ubHkgZGVwZW5kZW5jaWVzIHVzZWQgYnkgYXJib3IgdGhhdAorIyBhcmUg bm90IHBhY2thZ2VkIGluIEZlZG9yYS4gQ1BNIHdvdWxkIGRvd25sb2FkIHRoZW0gZnJvbSBHaXRI dWIgYXQgY29uZmlndXJlCisjIHRpbWUsIHNvIHZlbmRvciB0aGUgcGlubmVkIHZlcnNpb25zIGlu c3RlYWQuCisjIGh0dHBzOi8vZ2l0aHViLmNvbS9oYWxmZmxhdC90aW55b3B0CislZ2xvYmFsIHRp bnlvcHRfY29tbWl0IDdlNmQ3MDdkNDljNmNiNGJlMjdlYmQyNTM4NTZiZTY1MjkzMjg4ZGYKKyVn bG9iYWwgdGlueW9wdF9zaG9ydGNvbW1pdCAlKGM9JXt0aW55b3B0X2NvbW1pdH07IGVjaG8gJHtj OjA6N30pCisjIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW51cy91bm9yZGVyZWRfZGVuc2UKKyVn bG9iYWwgdW5vcmRlcmVkX2RlbnNlX3RhZyA0LjUuMAorU291cmNlNDogICAgICAgIGh0dHBzOi8v Z2l0aHViLmNvbS9oYWxmZmxhdC90aW55b3B0L2FyY2hpdmUvJXt0aW55b3B0X2NvbW1pdH0vdGlu eW9wdC0le3RpbnlvcHRfc2hvcnRjb21taXR9LnRhci5negorU291cmNlNTogICAgICAgIGh0dHBz Oi8vZ2l0aHViLmNvbS9tYXJ0aW51cy91bm9yZGVyZWRfZGVuc2UvYXJjaGl2ZS92JXt1bm9yZGVy ZWRfZGVuc2VfdGFnfS91bm9yZGVyZWRfZGVuc2UtJXt1bm9yZGVyZWRfZGVuc2VfdGFnfS50YXIu Z3oKKworIyBMaWNlbnNlIGJyZWFrZG93bjoKKyMgICBMSUNFTlNFICAgICAgICAgICAgICAgICAg ICAgICAgLSBCU0QtMy1DbGF1c2UgKGFyYm9yIGNvZGUpCisjICAgZXh0L3RpbnlvcHQgKGJ1bmRs ZWQpICAgICAgICAgIC0gQlNELTMtQ2xhdXNlCisjICAgZXh0L3Vub3JkZXJlZF9kZW5zZSAoYnVu ZGxlZCkgIC0gTUlUCisjICAgYXJib3IvdXRpbC9za2Fzb3J0LmhwcCAgICAgICAgIC0gQlNMLTEu MAorTGljZW5zZTogICAgICAgIEJTRC0zLUNsYXVzZSBBTkQgTUlUIEFORCBCU0wtMS4wCiAKIFBh dGNoOiAgICAgICAgICAwMDAxLVF1b3RlLXZhcmlvdXMtY21ha2UtdmFyLXZhbHVlcy5wYXRjaAot IyBUZXN0cyBhcmUgZmFpbGluZyB0byBjb21waWxlIGR1ZSB0byBzb21lIG1pc3NpbmcgaW5jbHVk ZXMKLVBhdGNoOiAgICAgICAgICBmaXgtbWlzc2luZy1pbmNsdWRlcy5wYXRjaAotIyBGaXggYSBm ZXcgdHlwb3MgdGhhdCBjYXVzZSBmYWlsdXJlIHRvIGNvbXBpbGUgd2l0aCBHQ0MgMTUKLSMKLSMg VGhlc2Ugd2VyZSBldmVudHVhbGx5IGluY2x1ZGVkIGluCi0jIDc2MTIwZDE2YzAwYWU2NzEyOGMz YzY5NDIxYWI3MTJmOTg1ZjM0NDUsIGFsb25nIHdpdGggbWFueSBvdGhlciBjaGFuZ2VzLgotUGF0 Y2g6ICAgICAgICAgIDAwMDEtRml4LWEtZmV3LXR5cG9zLXRoYXQtY2F1c2UtZmFpbHVyZS10by1j b21waWxlLXdpdGgtRy5wYXRjaAotIyBSZW1vdmUgdGhlIGhhcmQtY29kZWQgcHliaW5kMTEgdmVy c2lvbiBjaGVjayBzbyB0aGF0IHdlIGNhbiBidWlsZCB3aXRoCi0jIHB5YmluZDExIDMuMDsgdGhp cyBpcyBwYXJ0IG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9hcmJvci1zaW0vYXJib3IvcHVsbC8yNDgx LgotUGF0Y2g6ICAgICAgICAgIGFyYm9yLTAuOS4wLXB5YmluZDExLTMuMC5wYXRjaAorIyBVc2Ug dGhlIHZlbmRvcmVkIHRpbnlvcHQvdW5vcmRlcmVkX2RlbnNlIGluc3RlYWQgb2YgbGV0dGluZyBD UE0gZG93bmxvYWQgdGhlbQorUGF0Y2g6ICAgICAgICAgIDAwMDEtVXNlLXZlbmRvcmVkLXRpbnlv cHQtYW5kLXVub3JkZXJlZF9kZW5zZS5wYXRjaAorIyBVc2Ugc3lzdGVtIFJhbmRvbTEyMy9HVGVz dCBpbnN0ZWFkIG9mIGxldHRpbmcgQ1BNIGRvd25sb2FkIHRoZW0KK1BhdGNoOiAgICAgICAgICAw MDAyLVVzZS1zeXN0ZW0tUmFuZG9tMTIzLnBhdGNoCitQYXRjaDogICAgICAgICAgMDAwMy1Vc2Ut c3lzdGVtLUdUZXN0LnBhdGNoCisjIEFkZCBtaXNzaW5nIHN0YW5kYXJkIGluY2x1ZGVzIGZvciBH Q0MgMTYKK1BhdGNoOiAgICAgICAgICAwMDA0LUFkZC1taXNzaW5nLXN0YW5kYXJkLWluY2x1ZGVz LXRvLXByb2ZpbGVyLnBhdGNoCiAKICMgUmFuZG9tMTIzIGRvZXMgbm90IHN1cHBvcnQ6CiAjICAg bWlwczY0cjIgbWlwczMycjIgczM5MApAQCAtNzEsOCArODcsOCBAQCBCdWlsZFJlcXVpcmVzOiAg cHliaW5kMTEtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICBweXRob24zLWRldmVsCiBCdWlsZFJlcXVp cmVzOiAgcHl0aG9uMy1zZXR1cHRvb2xzCiBCdWlsZFJlcXVpcmVzOiAgUmFuZG9tMTIzLWRldmVs Ci1CdWlsZFJlcXVpcmVzOiAgdGNsYXAtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICBwdWdpeG1sLWRl dmVsCitCdWlsZFJlcXVpcmVzOiAgdW5pdHMtbGxubC1kZXZlbAogCiAjIEZvciB2YWxpZGF0aW9u LCBidXQgd2UgZG9uJ3QgaGF2ZSB0aGVzZSBCUnMKICMgQnVpbGRSZXF1aXJlczogIGp1bGlhIGp1 bGlhLXN1bmRpYWxzIGp1bGlhLXVuaXRmdWwganVsaWEtSlNPTgpAQCAtODksNiArMTA1LDEyIEBA IFJlcXVpcmVzOiAgICAgICAle3B5M19kaXN0IG51bXB5fQogIyBQcm92aWRlIFB5dGhvbiBtZXRh IGRhdGEgZm9yIHBhY2thZ2VzIHJlcXVpcmluZyBhcmJvcgogJXB5X3Byb3ZpZGVzIHB5dGhvbjMt YXJib3IKIAorIyBCdW5kbGVkIGhlYWRlci1vbmx5IGxpYnJhcmllcyAobm90IHBhY2thZ2VkIGlu IEZlZG9yYSk6CisjIHRpbnlvcHQsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYWxmZmxhdC90aW55b3B0 CitQcm92aWRlczogICAgICAgYnVuZGxlZCh0aW55b3B0KSA9IDEuMAorIyB1bm9yZGVyZWRfZGVu c2UsIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW51cy91bm9yZGVyZWRfZGVuc2UKK1Byb3ZpZGVz OiAgICAgICBidW5kbGVkKHVub3JkZXJlZF9kZW5zZSkgPSA0LjUuMAorCiAlZGVzY3JpcHRpb24g JXtfZGVzY3JpcHRpb259CiAKICVwYWNrYWdlIGRldmVsCkBAIC0xNTcsNyArMTc5LDcgQEAgUHJv dmlkZXM6ICAgYXJib3Itb3Blbm1waS1zdGF0aWMgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KICVl bmRpZgogCiAlcHJlcAotJWZvcmdlYXV0b3NldHVwIC1wMQorJWZvcmdlYXV0b3NldHVwIC1wMSAt UyBnaXQKIAogIyBjb3JyZWN0IGNhdGFsb2d1ZSBsb2NhdGlvbgogc2VkIC1pICdzfGR1bW15LWNh dGFsb2d1ZS5zb3xsaWIvZHVtbXktY2F0YWxvZ3VlLnNvfCcgcHl0aG9uL3Rlc3QvdW5pdC90ZXN0 X2NhdGFsb2d1ZXMucHkKQEAgLTE2OSwxOCArMTkxLDIzIEBAIHNlZCAtaSAnL3Rlc3RfcGFkZGVk LmNwcC8gZCcgdGVzdC91bml0L0NNYWtlTGlzdHMudHh0CiAjIGlzIHVzZWQKIHNlZCAtaSAnL2Fk ZF9zdWJkaXJlY3RvcnkocHl0aG9uKS9pIFwKIGluY2x1ZGUoRmluZFB5dGhvbk1vZHVsZSknIENN YWtlTGlzdHMudHh0Ci0jIERvIG5vdCBidWlsZCBleHRlcm5hbCBsaWJyYXJpZXMKLXNlZCAtaSAt ZSAncy8gZXh0LXJhbmRvbTEyMy8vJyBDTWFrZUxpc3RzLnR4dAorCisjIFJlcGxhY2UgdGhlIENQ TS5jbWFrZSBib290c3RyYXAgKHdoaWNoIGRvd25sb2FkcyBDUE0gZnJvbSBHaXRIdWIgYXQgY29u ZmlndXJlCisjIHRpbWUpIHdpdGggdGhlIHZlbmRvcmVkIGNvcHksIHNvIHRoYXQgdGhlIGJ1aWxk IHdvcmtzIGluIHRoZSBvZmZsaW5lIGJ1aWxkcm9vdAorY3AgJXtTT1VSQ0UzfSBjbWFrZS9DUE0u Y21ha2UKIAogIyBEaXNhYmxlIGRvYyBidWlsZDogd2UgYnVpbHQgaXQgb3Vyc2VsdmVzCiBzZWQg LWkgJy9hZGRfc3ViZGlyZWN0b3J5KGRvYykvIGQnIENNYWtlTGlzdHMudHh0CiAKLSMgUmVtb3Zl IGV4dCBmb2xkZXJzLCB1bmJ1bmRsZSBsaWJyYXJpZXMKLXJtIC12cmYgZXh0L2dvb2dsZS1iZW5j aG1hcmsgZXh0L2pzb24gZXh0L3JhbmRvbTEyMworIyBWZW5kb3IgdGlueW9wdCBhbmQgdW5vcmRl cmVkX2RlbnNlIChoZWFkZXItb25seSBkZXBlbmRlbmNpZXMgbm90IHBhY2thZ2VkIGluCisjIEZl ZG9yYSksIHVzaW5nIHRoZSBwYXRocyBleHBlY3RlZCBieQorIyAwMDAxLVVzZS12ZW5kb3JlZC10 aW55b3B0LWFuZC11bm9yZGVyZWRfZGVuc2UucGF0Y2gKK21rZGlyIC1wIGV4dC90aW55b3B0Cit0 YXIgLXh6ZiAle1NPVVJDRTR9IC1DIGV4dC90aW55b3B0IC0tc3RyaXAtY29tcG9uZW50cz0xICd0 aW55b3B0LSovaW5jbHVkZScgJ3RpbnlvcHQtKi9MSUNFTlNFJwogbXYgZXh0L3RpbnlvcHQvTElD RU5TRSBleHQvdGlueW9wdC9MSUNFTlNFLXRpbnlvcHQKLQotIyB0Y2xhcCBhbmQganNvbiBhcmUg Ym90aCBoZWFkZXIgb25seQotZmluZCAuIC10eXBlIGYgLW5hbWUgIkNNYWtlTGlzdHMudHh0IiAt ZXhlYyBzZWQgLWkgLWUgJ3MvZXh0LXRjbGFwLy8nIC1lICdzL2V4dC1qc29uLy8nIHt9IDI+L2Rl di9udWxsICc7JworbWtkaXIgLXAgZXh0L3Vub3JkZXJlZF9kZW5zZQordGFyIC14emYgJXtTT1VS Q0U1fSAtQyBleHQvdW5vcmRlcmVkX2RlbnNlIC0tc3RyaXAtY29tcG9uZW50cz0xICd1bm9yZGVy ZWRfZGVuc2UtKi9pbmNsdWRlJyAndW5vcmRlcmVkX2RlbnNlLSovTElDRU5TRScKK212IGV4dC91 bm9yZGVyZWRfZGVuc2UvTElDRU5TRSBleHQvdW5vcmRlcmVkX2RlbnNlL0xJQ0VOU0UtdW5vcmRl cmVkX2RlbnNlCiAKICMgQ29ycmVjdCBQeXRob24gc2hlYmFuZ3MgaW4gYWxsIGZpbGVzCiBmaW5k IC4gLXR5cGUgZiAtbmFtZSAiKiIgLWV4ZWMgc2VkIC1pICdzfF4jIVsgIF0qL3Vzci9iaW4vZW52 LipweXRob24uKiR8IyEvdXNyL2Jpbi9weXRob24zfCcge30gMj4vZGV2L251bGwgJzsnCkBAIC0x ODgsMTIgKzIxNSwxNCBAQCBmaW5kIC4gLXR5cGUgZiAtbmFtZSAiKiIgLWV4ZWMgc2VkIC1pICdz fF4jIVsgIF0qL3Vzci9iaW4vZW52LipweXRob24uKiR8IyEvdXNyLwogIyBGaXggc2hlYmFuZyAo c3BlY2lhbCBjYXNlKQogc2VkIC1pICdzfF4jIVsgIF0qL3Vzci9lbnYvYmluLipweXRob24uKiR8 IyEvdXNyL2Jpbi9weXRob24zfCcgZXhhbXBsZS9sZnAvbmV1cm9uX2xmcF9leGFtcGxlLnB5CiAK LSMgdGVzdCBzY3JpcHRzCi1jcCAle1NPVVJDRTF9IHNjcmlwdHMvCi1jcCAle1NPVVJDRTJ9IHNj cmlwdHMvCisjIFVzZSB0aGUgZXhhbXBsZSBzY3JpcHRzIHNoaXBwZWQgaW4gdGhlIHRhcmJhbGwK IGNobW9kICt4IHNjcmlwdHMvKi5zaAotc2VkIC1pICdzLyBweXRob24gLyBweXRob24zIC8nIHNj cmlwdHMvcnVuX3B5dGhvbl9leGFtcGxlcy5zaAogc2VkIC1pICdzfGJ1aWxkL3wuL3wnIHNjcmlw dHMvcnVuX2NwcF9leGFtcGxlcy5zaAorIyBUaGUgcHl0aG9uIGV4YW1wbGUgcnVubmVyIHdvdWxk IHBpcCBpbnN0YWxsIGV4YW1wbGUgcmVxdWlyZW1lbnRzLCB3aGljaCBpcworIyBub3QgcG9zc2li bGUgaW4gdGhlIG9mZmxpbmUgYnVpbGRyb290LiBMRlB5a2l0ICh1c2VkIGJ5IHByb2JlX2xmcHlr aXQucHkpIGlzCisjIG5vdCBwYWNrYWdlZCBpbiBGZWRvcmEgZWl0aGVyLgorc2VkIC1pICcvcHl0 aG9uMyAtbSBwaXAgaW5zdGFsbCAtciBweXRob25cL2V4YW1wbGVcL2V4YW1wbGVfcmVxdWlyZW1l bnRzLnR4dC9kJyBzY3JpcHRzL3J1bl9weXRob25fZXhhbXBsZXMuc2gKK3NlZCAtaSAnL3J1bnB5 ZXggcHJvYmVfbGZweWtpdC5weS9kJyBzY3JpcHRzL3J1bl9weXRob25fZXhhbXBsZXMuc2gKIAog IyBidWlsZGRpciBmb3Igc2VyaWFsCiBta2RpciBidWlsZC1zZXJpYWwKQEAgLTIyNiw4ICsyNTUs NiBAQCBwdXNoZCBidWlsZCRNUElfQ09NUElMRV9UWVBFICAmJgogICAgICAgICAtRFNIQVJFX0lO U1RBTExfUFJFRklYOlBBVEg9JXtfZGF0YWRpcn0gXFxcCiAgICAgICAgIC1EQ01BS0VfU0tJUF9S UEFUSDpCT09MPU9OIFxcXAogICAgICAgICAtRENNQUtFX0JVSUxEX1RZUEU6U1RSSU5HPSJyZWxl YXNlIiBcXFwKLSAgICAgICAgLURBUkJfVVNFX0JVTkRMRURfTElCUzpCT09MPU9GRiBcXFwKLSAg ICAgICAgLURBUkJfVVNFX0JVTkRMRURfUFlCSU5EMTE6Qk9PTD1PRkYgXFxcCiAgICAgICAgIC1E QVJCX1ZFQ1RPUklaRTpCT09MPU9GRiBcXFwKICAgICAgICAgLURBUkJfV0lUSF9NUEk6Qk9PTD0k TVBJX1lFUyBcXFwKICAgICAgICAgLURBUkJfV0lUSF9HUFU6Qk9PTD1PRkYgXFxcCkBAIC0yMzYs NiArMjYzLDcgQEAgcHVzaGQgYnVpbGQkTVBJX0NPTVBJTEVfVFlQRSAgJiYKICAgICAgICAgLURD TUFLRV9JTlNUQUxMX0xJQkRJUj0le19saWJ9IFxcXAogICAgICAgICAtREFSQl9XSVRIX1BZVEhP TjpCT09MPU9OIFxcXAogICAgICAgICAtREFSQl9QWVRIT05fTElCX1BBVEg6U1RSSU5HPSRNUElf UFlUSE9OM19TSVRFQVJDSCBcXFwKKyAgICAgICAgLURBUkJfQlVJTERfUFlUSE9OX1NUVUJTOkJP T0w9T0ZGIFxcXAogJWlmICIle19saWJ9IiA9PSAibGliNjQiCiAgICAgICAgIC1ETElCX1NVRkZJ WD02NCAuLiAmJgogJWVsc2UKQEAgLTQxNiw3ICs0NDQsNyBAQCBwb3BkCiAKIAogJWZpbGVzCi0l bGljZW5zZSBMSUNFTlNFIGV4dC90aW55b3B0L0xJQ0VOU0UtdGlueW9wdAorJWxpY2Vuc2UgTElD RU5TRSBleHQvdGlueW9wdC9MSUNFTlNFLXRpbnlvcHQgZXh0L3Vub3JkZXJlZF9kZW5zZS9MSUNF TlNFLXVub3JkZXJlZF9kZW5zZQogJWRvYyBSRUFETUUubWQKICV7X2JpbmRpcn0vbW9kY2MKICV7 X2JpbmRpcn0vYXJib3ItYnVpbGQtY2F0YWxvZ3VlCkBAIC00NDIsNyArNDcwLDcgQEAgcG9wZAog JWlmICV7d2l0aCBtcGljaH0KICVmaWxlcyBtcGljaAogJWRvYyBSRUFETUUubWQKLSVsaWNlbnNl IExJQ0VOU0UgZXh0L3RpbnlvcHQvTElDRU5TRS10aW55b3B0CislbGljZW5zZSBMSUNFTlNFIGV4 dC90aW55b3B0L0xJQ0VOU0UtdGlueW9wdCBleHQvdW5vcmRlcmVkX2RlbnNlL0xJQ0VOU0UtdW5v cmRlcmVkX2RlbnNlCiAle19saWJkaXJ9L21waWNoL2Jpbi9tb2RjY19tcGljaAogJXtfbGliZGly fS9tcGljaC9iaW4vYXJib3ItYnVpbGQtY2F0YWxvZ3VlX21waWNoCiAle19saWJkaXJ9L21waWNo L2Jpbi9sbW9ycGhvX21waWNoCkBAIC00NjIsNyArNDkwLDcgQEAgcG9wZAogJWlmICV7d2l0aCBv cGVubXBpfQogJWZpbGVzIG9wZW5tcGkKICVkb2MgUkVBRE1FLm1kCi0lbGljZW5zZSBMSUNFTlNF IGV4dC90aW55b3B0L0xJQ0VOU0UtdGlueW9wdAorJWxpY2Vuc2UgTElDRU5TRSBleHQvdGlueW9w dC9MSUNFTlNFLXRpbnlvcHQgZXh0L3Vub3JkZXJlZF9kZW5zZS9MSUNFTlNFLXVub3JkZXJlZF9k ZW5zZQogJXtfbGliZGlyfS9vcGVubXBpL2Jpbi9tb2RjY19vcGVubXBpCiAle19saWJkaXJ9L29w ZW5tcGkvYmluL2FyYm9yLWJ1aWxkLWNhdGFsb2d1ZV9vcGVubXBpCiAle19saWJkaXJ9L29wZW5t cGkvYmluL2xtb3JwaG9fb3Blbm1waQoKZGlmZiAtLWdpdCBhL2ZpeC1taXNzaW5nLWluY2x1ZGVz LnBhdGNoIGIvZml4LW1pc3NpbmctaW5jbHVkZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGVkZmRhMzAuLjAwMDAwMDAKLS0tIGEvZml4LW1pc3NpbmctaW5jbHVkZXMucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi1Gcm9tIGZhMTU5MzhjMTk2YmYzMTdl MDI5MmQ0MWVjN2QzNDE5NzhlOWVkMDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBT YW5kcm8gPGRldmVsQHBlbmd1aW5wZWUubmw+Ci1EYXRlOiBNb24sIDI5IEFwciAyMDI0IDE0OjM1 OjAxICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBtaXNzaW5nIGluY2x1ZGVzCi0KLVRlc3Rz IGFyZSBmYWlsaW5nIHRvIGNvbXBpbGUgd2l0aG91dCB0aG9zZS4KLQotZGlmZiAtLWdpdCBhL3Rl c3QvdW5pdC9jb21tb24uaHBwIGIvdGVzdC91bml0L2NvbW1vbi5ocHAKLWluZGV4IGRiNzVlNGQx Li5lMDJiOWRmMiAxMDA2NDQKLS0tLSBhL3Rlc3QvdW5pdC9jb21tb24uaHBwCi0rKysgYi90ZXN0 L3VuaXQvY29tbW9uLmhwcAotQEAgLTExLDYgKzExLDcgQEAKLSAjaW5jbHVkZSA8dW5vcmRlcmVk X21hcD4KLSAjaW5jbHVkZSA8dXRpbGl0eT4KLSAjaW5jbHVkZSA8dmVjdG9yPgotKyNpbmNsdWRl IDxhbGdvcml0aG0+Ci0gCi0gI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Ci0gCi1kaWZmIC0tZ2l0 IGEvdGVzdC91bml0L3Rlc3RfZXZlbnRfcXVldWUuY3BwIGIvdGVzdC91bml0L3Rlc3RfZXZlbnRf cXVldWUuY3BwCi1pbmRleCBkYWEwY2NiOS4uMTdjMTAzNzggMTAwNjQ0Ci0tLS0gYS90ZXN0L3Vu aXQvdGVzdF9ldmVudF9xdWV1ZS5jcHAKLSsrKyBiL3Rlc3QvdW5pdC90ZXN0X2V2ZW50X3F1ZXVl LmNwcAotQEAgLTYsNiArNiw3IEBACi0gI2luY2x1ZGUgPGFyYm9yL3NwaWtlX2V2ZW50LmhwcD4K LSAKLSAjaW5jbHVkZSAiZXZlbnRfcXVldWUuaHBwIgotKyNpbmNsdWRlICJjb21tb24uaHBwIgot IAotIHVzaW5nIG5hbWVzcGFjZSBhcmI7Ci0gCi1kaWZmIC0tZ2l0IGEvdGVzdC91bml0L3Rlc3Rf b3JkZXJlZF9mb3Jlc3QuY3BwIGIvdGVzdC91bml0L3Rlc3Rfb3JkZXJlZF9mb3Jlc3QuY3BwCi1p bmRleCBjNThjNzZhNC4uMTJmN2JkMzEgMTAwNjQ0Ci0tLS0gYS90ZXN0L3VuaXQvdGVzdF9vcmRl cmVkX2ZvcmVzdC5jcHAKLSsrKyBiL3Rlc3QvdW5pdC90ZXN0X29yZGVyZWRfZm9yZXN0LmNwcAot QEAgLTUsNiArNSw3IEBACi0gCi0gI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Ci0gI2luY2x1ZGUg InV0aWwvb3JkZXJlZF9mb3Jlc3QuaHBwIgotKyNpbmNsdWRlICJjb21tb24uaHBwIgotIAotIHVz aW5nIGFyYjo6dXRpbDo6b3JkZXJlZF9mb3Jlc3Q7Ci0gCgpkaWZmIC0tZ2l0IGEvcnVuX2NwcF9l eGFtcGxlcy5zaCBiL3J1bl9jcHBfZXhhbXBsZXMuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGQ0NjNiMjkuLjAwMDAwMDAKLS0tIGEvcnVuX2NwcF9leGFtcGxlcy5zaAorKysgL2Rl di9udWxsCkBAIC0xLDIxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IGJhc2gKLSMgUnVucyBhbGwg QysrIGV4YW1wbGVzCi0KLXNldCAtRWV1byBwaXBlZmFpbAotCi1pZiBbWyAiJCMiIC1ndCAxIF1d OyB0aGVuCi0gICAgZWNobyAidXNhZ2U6IHJ1bl9jcHBfZXhhbXBsZXMuc2ggPHByZWZpeCwgZS5n LiwgbXBpcnVuIC1uIDQgLW92ZXJzdWJzY3JpYmU+IgotCWV4aXQgMQotZmkKLQotUFJFRklYPSR7 MTotfQotCi0kUFJFRklYIGJ1aWxkL2Jpbi9iZW5jaAotJFBSRUZJWCBidWlsZC9iaW4vYnJ1bmVs Ci0kUFJFRklYIGJ1aWxkL2Jpbi9kcnlydW4KLSRQUkVGSVggYnVpbGQvYmluL2dhcF9qdW5jdGlv bnMKLSRQUkVGSVggYnVpbGQvYmluL2dlbmVyYXRvcnMKLSRQUkVGSVggYnVpbGQvYmluL2xmcAot JFBSRUZJWCBidWlsZC9iaW4vcHJvYmUtZGVtbyB2Ci0kUFJFRklYIGJ1aWxkL2Jpbi9yaW5nCi0k UFJFRklYIGJ1aWxkL2Jpbi9zaW5nbGUtY2VsbAoKZGlmZiAtLWdpdCBhL3J1bl9weXRob25fZXhh bXBsZXMuc2ggYi9ydW5fcHl0aG9uX2V4YW1wbGVzLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA1ZWNhMjFkLi4wMDAwMDAwCi0tLSBhL3J1bl9weXRob25fZXhhbXBsZXMuc2gKKysr IC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jIS91c3IvYmluL2VudiBiYXNoCi0jIFJ1bnMg YWxsIFB5dGhvbiBleGFtcGxlcwotCi1zZXQgLUVldW8gcGlwZWZhaWwKLQotaWYgW1sgIiQjIiAt Z3QgMSBdXTsgdGhlbgotICAgIGVjaG8gInVzYWdlOiBydW5fcHl0aG9uX2V4YW1wbGVzLnNoIDxw cmVmaXg+IgotCWV4aXQgMQotZmkKLQotUFJFRklYPSR7MTotfQotCi0kUFJFRklYIHB5dGhvbiBw eXRob24vZXhhbXBsZS9uZXR3b3JrX3JpbmcucHkKLSRQUkVGSVggcHl0aG9uIHB5dGhvbi9leGFt cGxlL3NpbmdsZV9jZWxsX21vZGVsLnB5Ci0kUFJFRklYIHB5dGhvbiBweXRob24vZXhhbXBsZS9z aW5nbGVfY2VsbF9yZWNpcGUucHkKLSRQUkVGSVggcHl0aG9uIHB5dGhvbi9leGFtcGxlL3Npbmds ZV9jZWxsX3N0ZHAucHkKLSRQUkVGSVggcHl0aG9uIHB5dGhvbi9leGFtcGxlL2JydW5lbC5weSAt biA0MDAgLW0gMTAwIC1lIDIwIC1wIDAuMSAtdyAxLjIgLWQgMSAtZyAwLjUgLWwgNSAtdCAxMDAg LXMgMSAtRyA1MCAtUyAxMjMKLSRQUkVGSVggcHl0aG9uIHB5dGhvbi9leGFtcGxlL3NpbmdsZV9j ZWxsX3N3Yy5weSBweXRob24vZXhhbXBsZS9zaW5nbGVfY2VsbF9kZXRhaWxlZC5zd2MKLSRQUkVG SVggcHl0aG9uIHB5dGhvbi9leGFtcGxlL3NpbmdsZV9jZWxsX2RldGFpbGVkLnB5IHB5dGhvbi9l eGFtcGxlL3NpbmdsZV9jZWxsX2RldGFpbGVkLnN3YwotJFBSRUZJWCBweXRob24gcHl0aG9uL2V4 YW1wbGUvc2luZ2xlX2NlbGxfZGV0YWlsZWRfcmVjaXBlLnB5IHB5dGhvbi9leGFtcGxlL3Npbmds ZV9jZWxsX2RldGFpbGVkLnN3YwotJFBSRUZJWCBweXRob24gcHl0aG9uL2V4YW1wbGUvc2luZ2xl X2NlbGxfY2FibGUucHkKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCAyZjgw ZmVlLi4yZDA2Zjk0IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEs MyBAQAotU0hBNTEyIChhcmJvci0wLjkuMC50YXIuZ3opID0gZmEwMjgwY2FlODcwYzE1MGM4Zjg5 MTk0OWRhOWQ2Mjc2ZjY3MmJiNzE5MWI3Yjk4MmNkYTQ2OTVkZDM4ZTNiZmZkZDBkZmE1ZjNhY2My Y2Y5NDA5MDlmNjRlYjlkYTA0Y2QxMWFlYjdhNGJhYTI2MmZkYmNkOTliZTYxOGFhMTUKK1NIQTUx MiAoYXJib3ItMC4xMi4yLnRhci5neikgPSBjMjNkZTQ5YTM2YWY1ZjcyMGI5OGI1NTc0MTNlNDZi NzQ1OGNjZTUyYmVmMDU0MTM4NjE2NDcyOGY0YWNhOTA5MDI5ZmJlNDdiZDQzY2YwN2RhN2QwODM4 OGU5MTU5ZDhkZDliZWUzZWNkZTZmNzUwNTc3ZmUwMmNlYmMwNTE3ZAorU0hBNTEyICh0aW55b3B0 LTdlNmQ3MDcudGFyLmd6KSA9IDdiOGY2MzQ0NmFjNjU3MmMyZGUyMDkxYzcwMzQ1NTk3ZDMyN2Jm NjY2YmIxMWExZWNkNDk5NWVjZmY2MjEyMjg3OGZkMmI5OTk4NGQ3YTUzZmI0MTliYWYwZWY0NTJk Yzk2MDhhNzAxZTFjNTZiODhlMDMzMjg3MGExYWRiMmU4CitTSEE1MTIgKHVub3JkZXJlZF9kZW5z ZS00LjUuMC50YXIuZ3opID0gZjljODE5ZTI4ZTFjMWEzODdhY2ZlZTA5Mjc3ZDZhZjVlMzY2NTk3 YTBkMzlhY2YxYzY4N2FjZjA2MDhhOTQxYmE5NjZhZjhhYWViZGI4ZmJhMDEyNmM3MzYwMjY5YzRh NTE3NTRlZjRjYWIxN2MzNWMwMWEzMDIxNWY5NTMzNjgK